---
title: "Anthropic SDK の接続"
description: "Anthropic 公式 SDK の base_url を https://1zheai.com に設定します。キャッシュ、ストリーミング、ツール呼び出し、thinking に対応します。"
headingIds: {"インストール":"section-1","呼び出し":"section-2","ストリーミング出力":"section-3","キャッシュ付き呼び出し":"section-4","環境変数の使用":"section-5","よくある問題":"section-6","リクエストとレスポンスの構造":"section-7"}
---

<aside className="docs-publication" data-pagefind-ignore>

ドキュメントは [1ZheAI](https://1zheai.com/en/editorial/#publisher) が管理しています。[出典と訂正](https://1zheai.com/en/editorial/)。

エラーを見つけましたか？ページのアドレスと説明を添えて[サポートに連絡](mailto:support@1zheai.com)してください。API キーやアカウント情報は送信しないでください。

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

## インストール

<CodeGroup>
```bash title="Python"
pip install anthropic
```
```bash title="TypeScript / Node.js"
npm install @anthropic-ai/sdk
```
</CodeGroup>

## 呼び出し

<CodeGroup>
```python title="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)
```
```typescript title="TypeScript"
import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic({
  baseURL: "https://1zheai.com",
  apiKey: process.env.ONEZHE_API_KEY,
});

const message = await client.messages.create({
  model: "claude-sonnet-5-5",
  max_tokens: 1024,
  messages: [{ role: "user", content: "用一句话介绍你自己" }],
});
console.log(message.model);
console.log(message.content);
console.log(message.usage);
```
</CodeGroup>

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

## ストリーミング出力

<CodeGroup>
```python title="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)
```
```typescript title="TypeScript"
const stream = client.messages.stream({
  model: "claude-sonnet-5-5",
  max_tokens: 1024,
  messages: [{ role: "user", content: "写一首四行的诗" }],
});
stream.on("text", (text) => process.stdout.write(text));
await stream.finalMessage();
```
</CodeGroup>

## キャッシュ付き呼び出し

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

```python title="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](/ja/docs/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 に切り替わります。通常、これが望む結果です。

## よくある問題

<AccordionGroup>
<Accordion title="404？">

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

</Accordion>
<Accordion title="401？">

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

</Accordion>
</AccordionGroup>

## リクエストとレスポンスの構造

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