繁中 ▾
取得 API 金鑰

Uncensored VideoSora 2 API:在影片管線中使用無審查文字

與 AI 角色扮演:免費試用設定與實際成本

如果你想要無單條訊息付費牆的 AI 角色扮演,誠實的做法是使用小額試用餘額和按 token 付費的 API。本文將展示試用額度能進行多少操作、如何連接聊天前端,以及一次輪次實際成本為何。

更新

由資料串流驅動發光對話氣泡的舞台,代表透過 API 進行的 AI 角色扮演

重點摘要

  • $0.50 的試用額度足以進行數百次短角色扮演輪次,有效期 7 天,無需付款。
  • 任何接受 OpenAI 相容端點的前端均可使用:設定 Base URL、金鑰和模型 uncensored。
  • 成本由聊天歷史長度決定,而非回覆長度。刪減或總結舊的對話輪次。
  • 僅限合法成人使用的虛構與角色扮演。絕不涉及未成年人。

此處的免費含義

此服務沒有無限免費聊天,最好事先說明。你獲得的是試用額度:使用 Google 或電子郵件與密碼註冊後,你可以在 API 金鑰頁面 上一鍵領取 $0.50 的試用額度。每人限領一次,有效期為 7 天,且無需付款。試用金鑰支援 2 個並行請求和每分鐘 60 個請求,這對個人聊天來說已足夠。

這聽起來很少,但 token 很便宜。輸入成本為每 1M token $0.15,輸出成本為每 1M token $0.50。典型的角色扮演輪次包含 8,000 token 的提示詞和 300 token 的回覆,成本為 $0.00135,因此 $0.50 可覆蓋約 370 次輪次。對許多人來說,這足以度過一個完整的晚上或創作幾篇短篇故事,足以在產生任何費用之前決定設定是否適合你。

當試用額度耗盡時,你可以以 $20 為起點,以任意整數金額儲值至 $500。額度永不過期,失敗或被拒絕的請求不會收費,也沒有需要取消的訂閱。本站僅接受加密貨幣:TRC20 上的 USDT 或 Base 上的 USDC。

選擇前端

API 僅透過 HTTP 傳輸文字。你仍需要一個工具來保存你的角色、聊天歷史和提示詞模板。三種常見選擇:

  • SillyTavern。一個專為角色聊天打造的本機網頁應用程式,內含世界觀書、人設和預設值。它可讓你新增 OpenAI 相容的端點,而這正是此 API 的功能。
  • 另一個聊天客戶端,提供自訂 OpenAI 相容 URL 的欄位。請尋找名為自訂端點、代理伺服器或 OpenAI 相容的設定。
  • 你自己的腳本。 五十行 Python 程式碼可讓你完全控制記憶體、提示詞和成本。這也是查看實際發送內容的最簡單方法。

如果你正在開發應用程式而不只是聊天,相同的呼叫可透過任何 OpenAI SDK 進行。文件中的快速入門指南 在一個地方列出了端點、標頭和限制。

五步連接 SillyTavern

  1. 建立帳戶,開啟 API 金鑰頁面,領取試用額度並複製你的金鑰。
  2. 在 SillyTavern 中,開啟插頭圖示(API 連線),並將 API 類型設為 Chat Completion。
  3. 選擇名為 Custom (OpenAI-compatible) 的來源。
  4. 將 https://api.uncensoredvideo.cc/v1 貼上到自訂端點欄位,將你的金鑰貼上到金鑰欄位,並將 uncensored 輸入為模型 ID。
  5. 按下連接。綠色狀態表示對 GET /v1/models 或測試訊息的請求成功。

選單標籤在 SillyTavern 版本之間會有所變化,因此請按意思對應而非照搬文字。在怪罪應用程式之前,請從終端機測試金鑰:

curl https://api.uncensoredvideo.cc/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"uncensored","messages":[{"role":"user","content":"Reply with the word ready."}]}'

如果 curl 運作正常但應用程式不行,問題出在應用程式的欄位:缺少 /v1、金鑰中有多餘的空格,或是模型名稱錯誤。

或者寫一個簡單的聊天迴圈

腳本是了解角色扮演成本的絕佳方式,因為你可以在每輪次輸出 token 用量。此腳本會保留角色提示詞,將歷史記錄截斷至最後 20 則訊息,並串流輸出回覆。

import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.uncensoredvideo.cc/v1",
    api_key=os.environ["API_KEY"],
)

system = (
    "You are Mara, a dry-witted smuggler pilot in a space-opera story. "
    "Stay in character, write in third person, keep replies under 150 words."
)
history = []

while True:
    user = input("> ")
    history.append({"role": "user", "content": user})
    messages = [{"role": "system", "content": system}] + history[-20:]
    stream = client.chat.completions.create(
        model="uncensored",
        messages=messages,
        temperature=0.9,
        top_p=0.95,
        max_tokens=300,
        stream=True,
        stream_options={"include_usage": 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)
        if chunk.usage:
            print("\n[tokens in/out: %d/%d]" % (chunk.usage.prompt_tokens, chunk.usage.completion_tokens))
    history.append({"role": "assistant", "content": reply})

觀察使用量行。經過幾十次輪次後,你會看到輸入計數上升,而輸出保持平穩。這是你需要管理的數字。

撰寫能經得起考驗的角色提示詞

大多數角色扮演問題始於第一個提示詞,而非模型。好的角色提示詞應簡短且具體。命名角色,用一到兩句話描述語氣,描述場景,並說明回覆應多長。然後停止。每條額外規則都是你在每次輪次中付費的 token,而冗長的「要」與「不要」清單往往不如清晰的範例執行得好。

比較兩種描述同一飛行員的方式。第一種說她勇敢、有趣、忠誠且聰明。這沒有給模型任何可據以行動的資訊。第二種說她先以笑話回答問題,再說實話,除非被問兩次否則不解釋過去,且在飛船零件損壞時會輕微爆粗口。第二種給模型可重複的習慣,而習慣正是讀者體驗到的個性。

新增一個短範例對話,包含三到四行。模型非常擅長複製節奏,因此範例可以確定長度、時態和視角,無需額外規則。如果你使用第二人稱,請展示出來。如果你希望斜體敘述,也請展示出來。將範例放在系統提示詞或歷史記錄的前幾條訊息中。

最後,決定誰控制其他角色。如果你想讓模型扮演整個演員陣容,請說明。如果你想讓它只扮演一個角色,請說明它絕不能寫你角色的台詞或動作。對你的角色名稱使用停止序列可在 API 層級支援這一點。

角色扮演輪次的成本

每個請求都會重新發送系統提示詞、角色描述和歷史記錄,因此隨著對話變長,輸入 token 也會增加。以下是 300 token 回覆的算術,其本身成本為 300 x $0.50 / 1,000,000 = $0.00015:

提示詞大小輸入成本每輪成本每 100 次輪次$0.50 可支援的輪次數
4,000 個 token$0.0006$0.00075$0.075約 666
8,000 個 token$0.0012$0.00135$0.135約 370
20,000 個 token$0.0030$0.00315$0.315約 158
50,000 個 token$0.0075$0.00765$0.765約 65

結論很簡單。對於相同數量的輪次,緊湊的 8,000 token 提示詞比 50,000 token 的提示詞便宜約 5.7 倍。在 8,000 token 的層級,$20 的儲值額度可支付約 14,800 輪次。較大的儲值額度會增加獎勵:$50 加 5%、$100 加 10% 以及 $200 加 15%,因此 $100 會給予 $110 的額度。請參閱 定價頁面 查看完整表格。

保持長篇故事便宜且連貫

上下文視窗為 100,000 token(包含提示詞與回覆),因此可載入大量內容,但你通常不該這麼做。長提示詞成本更高,且會給模型更多文字使其失去焦點。以下幾種習慣可幫助改善:

  • 先摘要,然後刪除。 每 20 輪,請模型對目前的劇情進行 150 字的摘要,將其保留在系統提示詞中,並刪除舊的訊息。
  • 保持角色表簡短。 模型忽略的規則頁面,意味著你在每一輪都要為其付費。
  • 限制回覆長度。 max_tokens 是可選的,但限制可防止回覆失控並保持節奏緊湊。
  • 調整採樣。 溫度設為 0.8 至 1.0 適合小說創作。若模型重複語句,可稍微提高頻率懲罰或存在懲罰。這些參數會直接傳遞。
  • 使用 stop 序列 讓模型不要替你寫台詞,例如在你角色名稱後加上冒號的停止序列。

固定種子也會直接傳遞,這有助於當你想要重播場景並比較兩個提示詞版本時。

常見問題與快速修復

這些是人們在長對話中最常遇到的問題,以及通常有助於解決的設定。

  • 模型替你說話。 在系統提示詞中加入一行,並在你角色名稱上加上停止序列。
  • 回覆會逐輪變長。模型會複製先前回覆的長度。調低 max_tokens、手動編輯其中一則長回覆,即可重置此模式。
  • 重複短語。 稍微提高溫度,增加少量的存在或頻率懲罰,並變化你自己的訊息。模型會複製它所看到的內容。
  • 遺忘的細節。 將必須保留的事實(例如姓名、傷勢和承諾)放在提示詞頂部附近的短註記中,並在劇情變更時更新它。
  • 平淡語調。提供更強的語調範例。語調來自範例的程度遠高於形容詞。

當發生異常情況時,請印出你的腳本發送的完整訊息列表。十次中有九次的問題根源在於提示詞本身:殘留的指令、重複的摘要,或是未修剪的歷史記錄。

可能遇到的限制與錯誤

完整金鑰允許 8 個並行請求和每分鐘 300 個請求,試用金鑰則為 2 和 60。若超出限制,API 會回傳 HTTP 429。錯誤代碼 rate_limited 表示每分鐘請求過多,concurrency 表示同時請求過多。帶有 Retry-After: 5 標頭的 429 狀態碼表示暫時過載,請等待五秒後重試。

一個細節常被忽略:串流請求會佔用其並行槽位直到串流結束。如果你在試用金鑰上快速點擊三次重新生成,第三次嘗試可能會因 concurrency 而失敗。等待串流結束,或讓客戶端在短暫暫停後重試。每個回覆也包含 X-Balance-USD,因此你的腳本可以在每輪後列印剩餘額度。

一條不變的規則:該模型針對合法成人用途調整為不因內容而拒絕回答,且不會生成涉及未成年人的性內容。請讓你的故事保持在該界限內。提示詞不會用於訓練。

問答

有永久免費方案嗎?

沒有。免費部分是你註冊後每人可領取一次的 $0.50 試用額度。之後你需從預付額度按 token 付費,起始儲值金額為 $20。

我可以用於角色扮演的應用程式有哪些?

任何允許你設定 OpenAI 相容 Base URL、API 金鑰和模型名稱的應用程式或腳本。SillyTavern 是常見選擇,簡單的 Python 迴圈也可運作。

模型會在角色扮演場景中拒絕嗎?

該模型針對合法成人用途調整為不因內容而拒絕回答。它仍不會生成涉及未成年人的性內容,且此限制無法變更。

如何避免長篇故事成本過高?

保持提示詞簡短。總結舊的對話輪次,限制發送的歷史記錄量,並設定合理的回覆長度。在長對話中,輸入 token 佔帳單的較大比例。

只差一張表單,即可取得金鑰

建立帳號、複製金鑰、更改基礎 URL。這就是整個設定過程。

取得 API 金鑰