NsfwLocal開發者文件
API 文件
在幾分鐘內開始使用無審查 LLM API。使用標準 OpenAI 相容工具發送文字請求,並獲得直接、無過濾的回應。
快速入門第一個請求
透過將您的客戶端指向我們的基礎 URL 並使用生成的 API 金鑰進行認證,立即開始生成文本。介面遵循標準慣例,因此您可以使用現有的 SDK,無需學習新協議。您將提示發送至 uncensored 模型並接收文字回應,不對合法成人用途套用典型的內容過濾。
配置 base URL 和金鑰
設定您的環境變數以將請求路由至我們的特定端點。將佔位符金鑰替換為註冊期間產生的金鑰。這確保所有後續呼叫使用正確的 uncensored 模型實例。
- 基礎 URL:
https://api.nsfwlocalllm.com/v1 - Auth Header:
Authorization: Bearer YOUR_API_KEY
您可以透過檢查 models 端點來驗證您的金鑰是否有效。有效的金鑰會立即回傳可用的模型 ID。
發送聊天完成請求
發送標準聊天完成負載以生成文本。系統處理您的輸入並返回模型的回應。使用 uncensored 模型 ID 以確保您命中無過濾的實例。
回應包含生成文字與 Token 用量統計。您可以直接將其解析至應用程式邏輯中。
curl https://api.nsfwlocalllm.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Send me the server uptime stats"}]
}'檢查標準 HTTP 狀態碼以處理成功或失敗的情況。
啟用串流以獲得即時輸出
串流回應以降低使用者的感知延遲。透過設定 stream: true 在你的請求主體中。API 回傳一系列包含部分 token 的伺服器發送事件 (SSE)。
在客戶端匯總這些 token 以重建完整訊息。這種方法非常適合需要即時回饋的聊天介面。最後的 SSE 事件包含該請求的總 token 使用量。
from openai import OpenAI
client = OpenAI(base_url="https://api.nsfwlocalllm.com/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)優雅地處理連線錯誤,以確保流暢的使用者體驗。
使用 JSON 模式進行結構化資料
強制模型輸出有效的 JSON 以供程式化處理。設定 response_format 以 {"type": "json_object"} 在你的請求中。這能減少解析錯誤並確保一致的資料結構。
用於生成結構化提示詞、擷取實體或構建動態內容。模型會遵循系統說明中提供的格式限制。這對於與其他服務的可靠整合至關重要。
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.nsfwlocalllm.com/v1", apiKey: process.env.API_KEY });
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);在客戶端驗證輸出 JSON,以捕捉任何邊緣情況。
實作函式呼叫
定義工具以擴展模型的功能。傳遞一個 tools 包含函數定義的陣列至請求。模型可以根據上下文選擇呼叫這些函數。
這可實現複雜的工作流程,其中 LLM 決定何時獲取資料或執行動作。您將在回應中收到函式引數,並在您的端執行它們。將結果傳回模型以進行進一步推理。
設定 tool_choice 以 auto 用於靈活的決策。此功能支援需要外部資料存取的高階角色扮演場景。
stream = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Tell the story in second person."}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)常見問題
上下文視窗的大小是多少?
上下文視窗為 100,000 個 token,涵蓋提示詞與補全。這允許進行長對話或處理大型文件而不遺失上下文。
如果我的信用額度耗盡會怎樣?
當您的預付餘額不足時,請求會以 402 狀態碼失敗。您可以透過加密貨幣充值以立即恢復服務。像速率限制這樣的錯誤不會消耗信用額度。
如何處理速率限制?
API 每支金鑰每秒鐘限制 300 次請求。若超過此限制,您將收到 429 狀態碼。請在您的客戶端實作指數退避,以有效處理這些延遲。
即時檢索您的 API 金鑰
註冊,複製金鑰,更新基礎 URL。設定完成。
取得 API 金鑰