必要な3つの値
glm apiベースURLに関する質問は、通常、URL、キー、モデル名を必要とするクライアントがあり、どの値がどこに該当するか分からない場合に寄せられます。それらを1か所にまとめました。
| 設定 | 内容 |
|---|---|
| ベース URL | https://api.glmapi.cc/v1 |
| モデル ID | uncensored |
| 認証ヘッダー | Authorization: Bearer YOUR_KEY |
| チャットエンドポイント | POST /v1/chat/completions |
| モデル一覧 | GET /v1/models |
コピーする前に1点確認してください。ドメイン名はモデル名ではなく検索用語を指しています。これは、独立したプロバイダが運営する、1つのオープンウェイトモデル向けのホストされたOpenAI互換テキストAPIであり、成人による合法的な利用のためにコンテンツ拒否なしで回答するようにチューニングされています。これはGLMの背後にあるベンダーの公式APIではなく、他のベンダーに転送するルーターでもありません。公式のGLMモデルが必要な場合は、そのベンダーのサービスをご利用ください。
Googleまたはメールとパスワードでサインアップするとキーが取得できます。APIキーのページでは、カード不要で7日間有効な$0.50のトライアルをワンクリックで受け取ることもできます。
curlで接続を確認する
SDKやアプリに触れる前に、単純なリクエストでキーとURLを確認してください。これが成功すれば、その後の問題はすべてクライアント設定にあり、アカウントには問題ありません。まず、モデルを一覧表示します:
curl https://api.glmapi.cc/v1/models \
-H "Authorization: Bearer YOUR_KEY"id uncensored を含むJSONリストが返されるはずです。次に、チャット完了を1つ送信します:
curl https://api.glmapi.cc/v1/chat/completions \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Reply with the word ready."}],
"max_tokens": 20
}'-iを付けてレスポンスヘッダーを確認してください。これらにはX-Request-Id、X-Balance-USD(残高クレジット)、X-RateLimit-Limit-Requests、X-RateLimit-Limit-Concurrencyが含まれます。後でサポートに問い合わせる必要がある場合に備えて、リクエストIDを必ず保持してください。
PythonとNode
公式のOpenAI SDKはカスタムベースURLを受け入れます。コンストラクタの引数とモデル名を変更するだけで、残りのコードはそのままです。
Python
from openai import OpenAI
client = OpenAI(
base_url="https://api.glmapi.cc/v1",
api_key="YOUR_KEY",
)
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Give me three names for a tavern."}],
)
print(resp.choices[0].message.content)Node.js
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.glmapi.cc/v1",
apiKey: process.env.GLM_API_KEY,
});
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Give me three names for a tavern." }],
});
console.log(resp.choices[0].message.content);Nodeのプロパティは大文字の baseURL であり、Pythonの引数は base_url です。これらを混同すると、SDKのデフォルトホストに静かにフォールバックし、間違ったサーバーから認証エラーが発生することがよくあります。
コードではなく環境変数
OpenAI SDKは、明示的に指定しない場合、環境変数からOPENAI_BASE_URLとOPENAI_API_KEYを読み取ります。これは、リポジトリからのスクリプトやクライアントを構築するフレームワークなど、編集できないツールをリターゲットするための最も侵襲性の低い方法です。
export OPENAI_BASE_URL="https://api.glmapi.cc/v1"
export OPENAI_API_KEY="YOUR_KEY"
python my_existing_script.py環境変数にモデル名が含まれていないため、ツールまたはその設定ファイル内でモデル名を uncensored に設定する必要があります。モデルドロップダウンで既知の名前しかリストされていない場合は、カスタムモデルまたは自由テキストオプションを探してください。
値を1か所に保持する
接続が動作したら、URLを5つのファイルに貼り付けたりしないでください。3つの値を1か所に配置し、他の場所ではそれを読み取ってください。小規模プロジェクトには .env ファイルが役立ちます:
GLM_BASE_URL=https://api.glmapi.cc/v1
GLM_API_KEY=YOUR_KEY
GLM_MODEL=uncensored次に、起動時にこれらを一度読み込み、プログラムの他の部分でインポートする単一のクライアントを構築します。キーの変更、試用残高を持つステージングキーの追加、またはこのエンドポイントの他との比較を行う際に、その恩恵が現れます。コードベースではなくファイルのみを編集します。
アカウントが許可する場合は、開発用と本番用のキーを別々に保持し、コミット、スクリーンショット、または共有ログにキーが表示された場合は直ちにローテーションしてください。リークしたキーは前払いクレジットを消費し、クレジットは戻ってきません。
チャットアプリとフレームワーク
フロントエンドは表記が異なりますが、同じ3つの値を求めます。OpenAI互換、カスタムOpenAI、または類似の接続タイプを探し、以下を入力してください:
- API URL / Base URL:
https://api.glmapi.cc/v1 - APIキー: アカウントのキー
- モデル:
uncensored
SillyTavernはカスタムチャット完了ソースを通じてOpenAI互換エンドポイントを追加でき、Open WebUIには設定にOpenAI互換接続タイプがあります。LangChainなどのフレームワークはチャットモデルクラスに base_url を受け取り、LiteLLMはカスタムAPIベースを介してOpenAIスタイルのモデルをルーティングできます。メニュー名はバージョン間で変更されるため、フィールドの正確な場所については各プロジェクトの現在のドキュメントに従ってください。
一部のアプリは、/chat/completions を自動的に追加するかどうかを尋ねます。多くのアプリは追加するため、入力するURLは /v1 で終了する必要があります。代わりにアプリが完全なエンドポイントを求める場合は、https://api.glmapi.cc/v1/chat/completions を提供してください。クイックスタート はサポートされているリクエストフィールドをより詳しく示しています。
最初の呼び出しが失敗する理由
curlテストがパスしてもアプリがエラーを返す場合、原因はほぼ常に次のいずれかです:
/v1の欠落。https://api.glmapi.ccだけでは、ルートが/v1以下にあるため、おそらく見つからないエラーで失敗します。- パスの二重化。 アプリは
/chat/completionsを追加し、あなたもそれを入力したため、/chat/completions/chat/completionsになります。ベースURLからそれを削除してください。 - 末尾のスラッシュ。 一部のクライアントはパスの結合が不十分です。ログされたURLに二重スラッシュが表示される場合は、末尾の
/を削除してください。 - 間違ったモデル名。 唯一のモデルIDは
uncensoredです。他のサービスの名前は一致しません。 - キーの問題。 貼り付け時の余分なスペースや改行を確認し、アプリがプレフィックスを既に追加している場合にキーが
Bearerとして二重に送信されていないか確認してください。 - 間違ったホストへの呼び出し。 ブラウザアプリでは、ベースURLが未設定の場合SDKのデフォルトにフォールバックします。実際のリクエストURLをログに記録してください。
ブラウザ側の呼び出しでは、開発者ツールを開くすべての人にAPIキーが公開されます。公開サイトでは、リクエストを自前のサーバーから送信し、キーをそこに保持してください。
それらすべてが説明できない場合は、最小のケースから逆算してください。失敗したアプリと同じマシンで前述のcurlコマンドを実行します。curlが成功する場合、ネットワークとキーは正常であり、アプリがリクエストを異なる方法で構築しているため、デバッグログを有効にして、ログされたURL、ヘッダー、JSONボディをcurlバージョンと文字単位で比較してください。curlがそのマシンでのみ失敗する場合、企業プロキシ、VPNルール、DNSフィルターを確認してください。これらは時として見知らぬAPIホスト名をブロックします。サーバーに到達しないリクエストは X-Request-Id を返さないため、これが2つのケースを区別する迅速な方法です。
制限と429レスポンス
完全なキーでは8つの同時リクエストと1分あたり300リクエストが可能です。試用キーではそれぞれ2と60です。いずれかを超過すると、APIはHTTP 429を返し、コードはrate_limited(1分あたりのリクエスト数超過)またはconcurrency(同時接続数超過)になります。一時的な過負荷時には、Retry-After: 5ヘッダー付きの429も返されます。
ストリーミングリクエストはストリームが終了するまで同時実行スロットを保持するため、ストリームを開いて接続を閉じずに放棄するアプリは自らスロットを使い果たす可能性があります。最大リクエストボディは8 MB、コンテキストウィンドウはプロンプトと完了を合わせて100,000トークンです。レートとチャージについては料金ページをご覧ください。
ストリーミング、ツール、JSONは同じURLを使用します
ストリーミングや関数呼び出し用の別アドレスはありません。すべては /v1/chat/completions へ送信され、リクエスト本文で機能を切り替えます。ストリーミングリクエストは "stream": true を設定しサーバー送信イベントを返します。ツール付きリクエストは tools とオプションで tool_choice を追加します。JSONモードは json_object 型で response_format を追加します。temperature、top_p、stop、seed およびペナルティなどのサンプリングフィールドは渡されます。
以下はストリーミングcurl呼び出しです。-Nフラグはcurlの出力バッファリングを無効にし、到着したチャンクをリアルタイムで表示します:
curl -N https://api.glmapi.cc/v1/chat/completions \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"uncensored","stream":true,"messages":[{"role":"user","content":"Count to five."}]}'プロキシやホスティングレイヤーがレスポンスをバッファリングする場合、ストリーミングは1つの大きな遅延レスポンスのように見えます。リバースプロキシはサーバー送信イベントのためにレスポンスバッファリングを無効にする必要があることが多いため、APIを責める前にその設定を確認してください。各機能のPython版の例については、クイックスタートをご覧ください。
その他のガイド
質問と回答
このAPIのベースURLは何ですか?
ベースURLは https://api.glmapi.cc/v1 です。チャットリクエストはその配下の /chat/completions に送信され、モデル一覧は /models にあります。
どのモデル名を使用すべきですか?
uncensored を使用してください。これは唯一のモデル ID であり、カスタムモデルを入力できる OpenAI 互換のクライアントであればすべて動作します。
これは公式の GLM API ですか?
いいえ。これは独立した OpenAI 互換サービスであり、1つのオープンウェイトモデルを実行しており、いかなるベンダーの公式 API でもありません。
キーはどのヘッダーに含めますか?
Authorization: Bearer の後にキーを続けます。OpenAI SDK は、キーを渡す際にこれを自動的に追加します。
接続テストにカードは必要ですか?
いいえ。サインアップ後、API キーページで $0.50 のワンクリックトライアル(7日間有効)が利用可能です。
キーはフォーム 1 つで手に入ります
アカウントを作成し、キーをコピーし、ベースURLを変更します。これでセットアップは完了です。
