コンテンツへスキップ
日本語

Anthropic SDK の接続

Anthropic 公式 SDK の base_url を https://1zheai.com に設定します。キャッシュ、ストリーミング、ツール呼び出し、thinking に対応します。

Anthropic 公式 SDK はネイティブの /v1/messages を使用し、Claude のすべてのパラメータをそのまま利用できます。変更が必要なのは base_url と api_key のみです。

Python
pip install anthropic
Python
import os
import anthropic
client = anthropic.Anthropic(
base_url="https://1zheai.com",
api_key=os.environ["ONEZHE_API_KEY"],
)
message = client.messages.create(
model="claude-sonnet-5-5",
max_tokens=1024,
messages=[{"role": "user", "content": "用一句话介绍你自己"}],
)
print(message.model)
print(message.content[0].text)
print(message.usage)

base_url にルートアドレスを指定し、/v1 を追加しないでください。

Python
with client.messages.stream(
model="claude-sonnet-5-5",
max_tokens=1024,
messages=[{"role": "user", "content": "写一首四行的诗"}],
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)

長く固定された内容を system に入れ、cache_control を追加します:

Python
message = client.messages.create(
model="claude-sonnet-5-5",
max_tokens=1024,
system=[
{
"type": "text",
"text": LONG_PROJECT_CONTEXT, # 每次都一样的长文本
"cache_control": {"type": "ephemeral"},
}
],
messages=[{"role": "user", "content": "根据上面的说明回答:..."}],
)
print(message.usage.cache_creation_input_tokens, message.usage.cache_read_input_tokens)

2回目の呼び出しで cache_read_input_tokens が 0 より大きければヒットです。詳細は Prompt Caching を参照してください。

公式 SDK は ANTHROPIC_BASE_URL と ANTHROPIC_API_KEY を読み取ります。クライアント構築時にパラメータを渡さなくても構いません:

bash
export ANTHROPIC_BASE_URL="https://1zheai.com"
export ANTHROPIC_API_KEY="sk-你的Key"

次にクライアント構築時にパラメータを渡しません:

python
client = anthropic.Anthropic() # 自动读取上面两个变量

このマシンで Claude Code もこの2つの変数を読み取る場合、それらは一緒に 1折AI に切り替わります。通常、これが望む結果です。

404?

base_url に /v1 を余計に書き込んでいます。Anthropic SDK は /v1/messages を自動的に組み立てます。

401?

API キー(API key)を確認してください。また、環境に ANTHROPIC_AUTH_TOKEN(以前 Claude Code に設定した古い値など)が同時に存在する場合、SDK もそれを読み取ります。古い値を削除してから再試行してください。

system、コンテンツブロック、停止理由を照会する場合は、Messages インターフェースの詳細 を参照してください。完全なプログラムでは、コンテンツブロックの型に応じてテキストを読み取り、最初のブロックが常に text であると仮定しないでください。