本文へ移動
すべてのドキュメント

コード

Python

公式のopenaiパッケージはそのまま動きます。ベースURLとキーを変えるだけで、あとはOpenAIのSDKと同じです。

2026年10月26日 確認

インストールと接続

Shell
pip install openai
export NOKEEP_API_KEY="sk-nokeep-test"  # your own key once it connects
client.py
import os
from openai import OpenAI

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

メッセージを送る

Python
reply = client.chat.completions.create(
    model="deepseek-v4.1-flash-uncensored",
    messages=[
        {"role": "system", "content": "You are a blunt editor."},
        {"role": "user", "content": "Cut this opening line to ten words: ..."},
    ],
)
print(reply.choices[0].message.content)
print("credits:", reply.usage.model_extra.get("nokeep_credits"))

ストリーミング

Python
stream = client.chat.completions.create(
    model="deepseek-v4.1-flash-uncensored",
    messages=[{"role": "user", "content": "Write a limerick about a cat."}],
    stream=True,
)
for chunk in stream:
    if chunk.choices:
        print(chunk.choices[0].delta.content or "", end="", flush=True)

非同期

Python
import asyncio
import os
from openai import AsyncOpenAI

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

async def main():
    reply = await client.chat.completions.create(
        model="deepseek-v4.1-flash-uncensored",
        messages=[{"role": "user", "content": "Hello"}],
    )
    print(reply.choices[0].message.content)

asyncio.run(main())

エラー

SDKはエラーの種類ごとに例外を1つ投げ、429と5xxは自動で再試行します。その際はRetry-Afterの時間だけ待ちます。codeがエラーの内容を示します。全一覧はエラーにあります。

Python
import openai

try:
    reply = client.chat.completions.create(model="deepseek-v4.1-flash-uncensored", messages=messages)
except openai.APIStatusError as error:
    print(error.status_code, error.body["error"]["code"])

SDKに引数がないフィールド

min_p、top_k、repetition_penaltyはextra_body={...}に入れて送ります。小説向けのサンプラーを参照してください。