本文へ移動

OpenAI互換

そのまま使えるOpenAI互換API

OpenAI SDKと今のコードはそのまま使えます。ベースURL、キー、モデルの3つの値を変えると、チャット補完が、何も保存しない検閲なしのモデル2つで動きます。以下では、Python、JavaScript、curlでの切り替え方と、対応している機能の正確な一覧を示します。

2026年10月29日 確認

コードで変える値
3
そのまま渡されるリクエストの任意項目
15
ルート(チャット補完を含む)
4
sk-nokeep-test でのテスト料金
$0

3つの値

ベースURL
https://nokeep.ai/v1
APIキー
sk-nokeep-test (free) or your sk-nokeep-… key
モデル
deepseek-v4.1-flash-uncensored

公式のOpenAI SDKは、ベースURLとキーを環境変数から読み込みます。そのため多くのプロジェクトでは、コードを一切変えずに切り替えられます。

シェル
export OPENAI_BASE_URL="https://nokeep.ai/v1"
export OPENAI_API_KEY="sk-nokeep-…"

そのうえで、呼び出し箇所のモデル名を変えてください。ほかの行はそのままです。

Python、JavaScript、curl で

import os
from openai import OpenAI

client = OpenAI(
    base_url="https://nokeep.ai/v1",
    api_key=os.environ["NOKEEP_API_KEY"],
)

reply = client.chat.completions.create(
    model="deepseek-v4.1-flash-uncensored",
    messages=[{"role": "user", "content": "Write a haiku about moving house."}],
)
print(reply.choices[0].message.content)

ストリーミング、ツール、JSON出力、画像は、OpenAI本来の形式と同じように動きます。OpenAI SDKを基にしたライブラリやフレームワークも、同じベースURLとキーを使えます。まずはここで呼び出しを試してください:

ここで無料で試す

テストキーを使って、実際のリクエストをAPIに送ります。固定の一行が返り、料金はかかりません。

対応している機能

機能対応状況
POST /v1/chat/completions、一括またはストリーミングはい、両方のモデル
GET /v1/models と GET /v1/models/{id}はい。コンテキスト長、最長の返信、トークンあたりの料金を含みます
ロール:system、developer、user、assistant、toolはい
ツール呼び出し:tools、tool_choiceはい。GLMでは、tool_choice は auto か none のみ指定できます。
reasoning_effortDeepSeek:none、low、high、max。GLM:low、high。
image_url パーツとしての画像(リンクまたはデータURL)deepseek-v4.1-flash-uncensored、1リクエストあたり最大10枚
response_format、temperature、top_p、stop、seed、ペナルティdeepseek-v4.1-flash-uncensored
stream_options.include_usage、max_tokens、max_completion_tokensはい
usage.prompt_tokens_details.cached_tokens のキャッシュ入力はい。キャッシュ単価で請求されます

項目はモデルごとにすべてチャット補完にあります。

対応していないもの

非対応返される内容
その他のエンドポイント:embeddings、images、audio、files、batch、moderations、Responses API と Assistants API、旧式の completions404 not_found。利用できる4つのルートを挙げます
1以外の n400 unsupported_n
モデルが受け付けない reasoning_effort400 invalid_reasoning_effort。受け付ける値を挙げます
glm-5.3-flash-uncensored で、tool_choice に関数名または required を指定すること400 unsupported_tool_choice
glm-5.3-flash-uncensored への画像、またはどちらのモデルへの音声・動画パーツ400 unsupported_input。画像を読めるモデル名を挙げます
画像が10枚を超える、またはメッセージが2,000件を超える400 too_many_images、400 invalid_messages
どちらのモデルも受け付けない項目(logprobs、logit_bias、user、store など)破棄され、x-nokeep-ignored ヘッダーに名前が書かれます

対応していないものを推測したり、黙って変えたりすることはありません。リクエストはコード付きで拒否されるか、使われなかった項目がヘッダーに書かれます。すべてのコードと対処法はエラーにあります。

知っておきたい小さな違い

  • usage.nokeep_credits は呼び出しの料金を示し、x-nokeep-credits と x-nokeep-balance ヘッダーは、返信全体についてそれを伝えます。
  • 請求は前払いのクレジットからです。1,000クレジットが$1で、$5から購入でき、有効期限はありません。拒否された呼び出しは料金がかかりません。
  • レート制限:キーごとに毎分120リクエスト。429 には Retry-After が付きます。
  • GLMのホストは混雑する時間帯があります。混雑時の呼び出しは Retry-After: 5 付きの 503 busy を返し、料金はかかりません。

よくある質問

切り替えるにはコードを変える必要がありますか?

変えるのはベースURL、キー、モデル名だけです。公式SDKなら、最初の2つは環境変数の OPENAI_BASE_URL と OPENAI_API_KEY から読み込めます。

OpenAIのエンドポイントを独自に指定できるアプリでも使えますか?

はい。OpenAI互換または独自のエンドポイント設定があるアプリなら、どれでも使えます。ガイド:SillyTavern、Open WebUI、そしてコーディングエージェントのページのコーディングエージェント。

どのOpenAIのモデルを呼び出せますか?

OpenAIのモデルはありません。形式はOpenAIのものですが、モデルは deepseek-v4.1-flash-uncensored と glm-5.3-flash-uncensored です。GET /v1/models ですべてのIDを一覧できます。

embeddingsのエンドポイントはありますか?

まだありません。このAPIが提供するのは、チャット補完、モデル一覧、稼働状況のルートです。新しいルートは変更履歴に載ります。

対応していない項目はどうなりますか?

破棄され、x-nokeep-ignored ヘッダーに名前が書かれるので、使われなかったものを正確に確認できます。リクエストの意味を変えてしまう値(例:1を超える n)は、代わりに 400 で拒否されます。