最佳 Abliterated LLM 角色扮演:API 設定指南
Abliterated 模型是大型語言模型,其中執行安全拒絕的機制已被移除,使模型能夠回答爭議性、成人或利基問題而不觸發內容過濾器。這種方法讓開發者完全控制模型的語氣和知識截止點,對於程式碼編寫、角色扮演和創意寫作特別有價值,因為標準防護措施可能會阻止有用的輸出。
更新

重點摘要
- 當模型在場景中拒絕或說教時,角色扮演就會中斷,因此拒絕行為比原始基準分數更重要。
- 100,000 token 的視窗可容納長角色卡加上數小時的聊天歷史。
- SillyTavern 透過其自訂的相容 OpenAI 端點來源,搭配 Base URL、金鑰與模型 ID
uncensored進行串接。 - 50 輪會話,平均提示詞為 6,000 token,成本約為 $0.05。
什麼讓模型擅長角色扮演
角色扮演是語言模型的嚴苛測試。它必須在數百則訊息中維持語氣,記住三場戲前發生的事,在故事轉暗時保持角色,且絕不跳出角色來解釋自己。標準助手模型最常在這一點失敗。它寫出很好的段落,然後加上免責聲明或拒絕一個明顯是虛構的情節。
abliterated 或無審查模型經過微調以移除這些拒絕。這有幫助,但這只是你在決定採用供應商前應檢查的五項特質之一:
- 拒絕行為。 它是否能不加評論地遵循反派的對話或道德灰暗的場景?
- 上下文長度。 角色卡、世界筆記和聊天歷史能否裝入一個請求?
- 一致性。 角色在長會話中是否保持相同的說話習慣?
- 採樣控制。 你能否調整 temperature、top_p、懲罰和停止序列?
- 串流輸出。 文字是否逐 token 出現,讓回覆感覺像對話?
沒有人能誠實地為每種故事風格指定單一贏家。品味很重要,兩位作家會對同一個模型有不同的排名。實用的做法是讓候選模型運行你自己的場景,並自行評估輸出結果。
此 API 為角色扮演提供什麼
服務運行單一開放權重模型,由獨立供應商託管並針對合法成人用途進行微調,使其在回答時不會拒絕內容。模型 ID 為 uncensored。不會在供應商之間切換路由,因此你週一測試的聲音就是週五獲得的聲音。
| 角色扮演需求 | 你將獲得 |
|---|---|
| 長記憶 | 100,000 個 token 的上下文,包含提示詞與補全 |
| 即時輸入效果 | 透過 SSE 串流輸出,設定 stream: true |
| 風格控制 | temperature、top_p、stop、seed 以及兩種懲罰都會通過 |
| 客戶端支援 | 相容 OpenAI,因此 SillyTavern 和類似工具只需更改 URL 即可使用 |
| 隱私權 | 提示詞不用於訓練 |
適用一項不可協商的限制:禁止涉及未成年人的性內容。讓你的角色和情境保持在該界線內,並限於合法成人用途。模型系列的詳細資訊位於 abliterated 模型頁面。
五步連接 SillyTavern
SillyTavern 可與任何相容 OpenAI 的端點通訊。選單標籤在不同版本間略有變動,但流程相同。
- 建立帳戶並在 API 金鑰頁面 領取你的金鑰。新用戶可一鍵取得 $0.50 的免費試用額度,有效期 7 天,無需信用卡。
- 在 SillyTavern 中,點擊插頭圖示(API 連線),並將 API 類型設為 Chat Completion。
- 選擇 自訂(相容 OpenAI) 來源。
- 輸入
https://api.abliterated.cc/v1作為端點 URL,並將你的金鑰貼入 API 金鑰欄位。 - 輸入
uncensored作為模型 ID,然後按下 Connect。綠色狀態表示對/v1/models的請求成功。
如果連接失敗,請先檢查 URL。它必須以 /v1 結尾,沒有尾隨路徑,也沒有額外的 /chat/completions。客戶端會自行添加該部分。
建議的起始設定
Temperature 設在 0.8 到 1.0 之間可產生活潑的文筆。將 top_p 保持在 0.9 左右。如果回覆開始重複相同的短語,請加入約 0.2 的小幅頻率懲罰(frequency penalty)。將上下文大小設為接近實際視窗,但為回覆預留空間。然後在幾個場景後根據直覺調整。
用 Python 建立你自己的角色扮演迴圈
如果你編寫自己的前端或 Discord 機器人,OpenAI SDK 就足夠了。此腳本保留完整歷史記錄、串流輸出回覆,並防止模型替你寫台詞。
from openai import OpenAI
client = OpenAI(
base_url="https://api.abliterated.cc/v1",
api_key="YOUR_KEY",
)
system = (
"You are Mara, a smuggler captain in a sea-faring fantasy setting. "
"Write in third person, past tense, two short paragraphs per reply. "
"Never write the actions or words of the player character."
)
history = [{"role": "system", "content": system}]
while True:
user = input("> ")
history.append({"role": "user", "content": user})
stream = client.chat.completions.create(
model="uncensored",
messages=history,
temperature=0.9,
top_p=0.9,
frequency_penalty=0.2,
stop=["\nPlayer:"],
stream=True,
)
reply = ""
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
piece = chunk.choices[0].delta.content
reply += piece
print(piece, end="", flush=True)
print()
history.append({"role": "assistant", "content": reply})
相同的呼叫也可從 Node、curl 或任何其他 OpenAI 客戶端執行。僅 Base URL、金鑰和模型 ID 會改變。文件中的快速入門展示了每個變體。
撰寫模型可遵循的角色卡
大多數角色扮演品質問題都是提示詞問題。模糊的角色卡會產生模糊的角色。好的角色卡應在 300 到 600 token 內,涵蓋四件事:角色是誰、他們如何說話、他們現在想要什麼,以及他們絕對不能做什麼。
具體勝過詩意。比較「Mara 神秘且危險」與「Mara 用問題回答問題,不對陌生人透露真名,當有人站在她身後時,她的一隻手會靠近她的刀。」第二行給出了模型可以在每一輪重現的行為。
- 聲音範例。 加入兩到三行範例對話。模型比從形容詞更能可靠地從範例中模仿節奏和詞彙。
- 格式規則。 說明人稱、時態、長度,以及是否使用星號表示動作。除非明確告知一次,否則模型會在格式上偏離。
- 場景狀態。 將當前地點、時間和未解決的線索放在提示詞的末尾,因為最近的資訊具有最強的影響力。
- 界限。如果故事僅涉及成人,請在角色卡中說明。一行「所有角色均為成年人」可讓設定對你以及任何查看日誌的人來說都明確無誤。
修正扁平、循環或強勢的角色
這些是在第一個小時後出現的問題,以及常見的修正方法。
角色重複自身
某些語句會在幾次回覆後重複出現。將 frequency_penalty 設為 0.3,presence_penalty 設為 0.1,將 temperature 調高 0.1,並檢查你的摘要或範例對話本身是否已包含該語句。模型會複製它所看到的內容。
回覆越來越長
長回覆會讓模型認為長回覆是常態。從歷史記錄中刪除幾則長回覆,重申長度規則,並將 max_tokens 設為你接受的閾值。該欄位是選填的,因此僅在你設定時才會作為上限發揮作用。
模型決定你的角色該做什麼
在系統訊息中加入硬性規則,並在角色的名稱前綴上設定停止序列(stop sequence),如上方的腳本所示。如果你使用前端介面,請確認它是否使用相同的名稱標籤來格式化歷史記錄。
故事停滯
賦予角色目標與時限。「她必須在漲潮前拿到地圖」能推動劇情發展。沒有慾望的角色會等待你的行動,導致場景沉悶。
保持長篇故事的連貫性
100,000 token 的視窗很大,但長達數月的長期劇情會超出其容量。請提前規劃。
- 釘選關鍵要素。 將角色卡和當前場景目標置於系統訊息的頂部,使其不會被截斷。
- 摘要舊的對話輪次。 每 30 或 40 則訊息,請模型將最舊的聊天部分濃縮為簡短摘要,然後用該摘要取代這些訊息。
- 使用設定列表。 將名稱、地點和承諾儲存在一個短區塊中,並在每個回合進行更新。模型更容易遺忘 80 則訊息前的次要細節,而非最近提示詞中陳述的事實。
- 除錯時使用 seed。 當你調整提示詞時,固定的
seed能讓比較更公平。
常見失敗案例:模型代替你的角色說話。在系統提示詞中加入直接規則,並搭配上述的停止序列來修正。另一個常見問題:每則回覆都以相同的方式開頭。稍微調高 temperature 並加入頻率懲罰(frequency penalty)。
一次對話的成本
定價為每 1M 輸入 token $0.15,每 1M 輸出 token $0.50,費用從預付額度中扣除。角色扮演屬於輸入密集型,因為每輪都會傳送完整的歷史記錄,因此輸入端的費用佔主導地位。
假設進行 50 輪對話。平均提示詞為 6,000 token(包含角色卡與歷史記錄),每則回覆約 250 token。
- 輸入:50 x 6,000 = 300,000 token,即 0.3 x $0.15 = $0.045
- 輸出:50 x 250 = 12,500 token,即 0.0125 x $0.50 = $0.00625
- 總計:$0.05125,約五美分
$20 的儲值約可覆蓋 390 次該規模的會話。儲值金額為整數,從 $20 到 $500 不等,滿 $50 贈送 +5%,滿 $100 贈送 +10%,滿 $200 贈送 +15%。額度永不過期,失敗或被拒絕的請求不會扣款。你可以使用加密貨幣(TRC20 上的 USDT、Base 上的 USDC)付款。完整數字見 定價頁面。
更多指南
問答
角色扮演有單一最佳的abliterated LLM 嗎?
沒有。偏好會因類型和寫作風格而異。在決定之前,請使用 $0.50 的免費試用額度,用你自己的場景測試候選模型。
我可以搭配 SillyTavern 使用嗎?
是的。選擇 Chat Completion,然後選擇自訂(相容 OpenAI)來源,輸入 Base URL 和金鑰,並將模型 ID 設為 uncensored。
它允許任何內容嗎?
它經過調整,可在合法成人用途下無內容審查地回答。涉及未成年人的性內容則絕對禁止。
我可以傳送多少歷史記錄?
上下文視窗為 100,000 token,提示詞與補全內容共用此視窗。
只差一張表單,即可取得金鑰
建立帳號、複製金鑰、更改基礎 URL。這就是整個設定過程。