API 文件
在幾分鐘內開始使用我們與 OpenAI 相容的無審查 API。使用您生成的 glm API 金鑰,向我們的單一模型端點發送請求。
驗證與標頭
您的 glm api key 授權每個請求。在 Authorization 作為 Bearer token 標頭。這是官方 OpenAI SDK 使用的標準方法,適用於任何支援 OpenAI 相容認證的客戶端。透過儀表板使用 Google 或電子郵件註冊後,您會立即收到此金鑰。
妥善保管您的金鑰。它提供對您預付餘額的完整存取權。若遺失金鑰,請生成新的金鑰;舊金鑰將立即失效。任何時間,每個帳戶僅能擁有一把有效的金鑰。
聊天完成端點
使用 POST /v1/chat/completions 端點。所有請求的基礎 URL 為 https://api.apiglm.com/v1. 您必須將模型 ID 指定為 uncensored 請求主體中。此端點處理標準的對話輪次並返回生成的文字。
每個請求從您的預付餘額中消耗 token。錯誤和拒絕不會扣除您的信用額度。該模型接受訊息序列,允許在上下文視窗內進行多輪對話。
curl https://api.apiglm.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "list the features"}]
}'
模型端點
通過調用驗證可用模型和端點配置 GET /v1/models. 此端點返回 API 目前支援的模型列表。您可以使用此功能確認連線並在發送補全請求之前檢查模型 ID。這對於除錯客戶端配置很有用。
回應包含關於模型的元資料,例如其 ID 與 owned_by 欄位。此端點不會消耗信用額度。使用它來確保您的客戶端指向正確的基礎 URL,且您的身份驗證標頭有效。
串流與 SSE
在請求主體中將 stream: true 在您的請求中。API 返回伺服器發送事件 (SSE) 串流。每個區塊包含部分文字增量。最後一個區塊包含該請求的完整 token 使用統計數據。
串流可降低使用者的感知延遲。它允許您的應用程式顯示生成中的權杖。這非常適合需要立即回饋的聊天介面。正確處理串流以確保所有權杖都被處理。
from openai import OpenAI
client = OpenAI(base_url="https://api.apiglm.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 模式。
使用此功能將 LLM 整合到您的工作流程中。在請求主體中定義函式結構描述。模型會回應一組工具呼叫清單。在您的程式碼中解析這些呼叫以觸發外部動作。這使得複雜的多步驟任務成為可能。
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.apiglm.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);
參數與限制
上下文視窗支援提示與補完合計 100,000 個 token。每次請求最大輸出為 16,000 個 token。設定 max_tokens 控制輸出長度。若未指定,預設為 2,048 個 token。您可以調整溫度、top_p 和 seed 以改變變異性。
速率限制允許每金鑰每分鐘 300 次請求。每金鑰併發請求上限為 8 個。請求主體必須低於 8 MB。錯誤會返回標準 HTTP 狀態碼。401 表示金鑰無效,402 表示您的餘額已耗盡,429 表示超出速率限制。
串流
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)常見問題
API 的基礎 URL 為何?
基礎網址為 HTTPS://api.apiglm.com/v1。所有端點(包括聊天完成和模型)均相對於此網址。請在您的 SDK 設定或 HTTP 客戶端中使用此網址。
如何處理串流回應?
在您的請求中將 stream 參數設為 true。API 會回傳 SSE 串流。每個區塊包含部分文字。最後一個區塊包含 token 用量。隨著區塊到達處理每個區塊,以顯示即時輸出。
如果我超出速率限制會發生什麼事?
API 回傳 429 狀態碼。您每個金鑰每分鐘限發 300 個請求,並發請求限 8 個。等待速率限制視窗重置,或降低您的請求頻率。