TokenPan 接入教程
核心思路
TokenPan 与 Anthropic 官方 API 完全兼容,只需将 base_url 替换为 https://yyken.com/v1,其余参数、响应格式均无需改动。
获取 API Key
登录 yyken.com 控制台,进入 API Keys 页面,点击「新建 Key」即可生成。
| 步骤 | 操作 |
|---|---|
| 1. 注册账号 | 访问 yyken.com/register 完成注册 |
| 2. 充值余额 | 支持支付宝 / 微信支付,最低充值 ¥10,余额永久有效 |
| 3. 创建 Key | 在「API Keys」页面点击「新建 Key」,复制保存(仅显示一次) |
注意
API Key 请妥善保管,不要提交到 Git 仓库或暴露在前端代码中。
Python 接入
使用官方 anthropic Python SDK,仅需在初始化时传入 base_url。
安装 SDK
bash
pip install anthropic
发送第一条消息
python
import anthropic
client = anthropic.Anthropic(
api_key="your-api-key", # 替换为你的 TokenPan API Key
base_url="https://yyken.com/v1", # TokenPan 代理地址
)
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[
{"role": "user", "content": "你好,Claude!"}
]
)
print(message.content[0].text)
使用环境变量(推荐)
bash
export ANTHROPIC_API_KEY="your-api-key"
export ANTHROPIC_BASE_URL="https://yyken.com/v1"
python
import anthropic
# SDK 自动读取环境变量,无需手动传参
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[{"role": "user", "content": "你好!"}]
)
print(message.content[0].text)
Node.js 接入
安装 SDK
bash
npm install @anthropic-ai/sdk
发送消息
javascript
import Anthropic from '@anthropic-ai/sdk';
const client = new Anthropic({
apiKey: 'your-api-key', // 替换为你的 TokenPan API Key
baseURL: 'https://yyken.com/v1', // TokenPan 代理地址
});
const message = await client.messages.create({
model: 'claude-sonnet-4-6',
max_tokens: 1024,
messages: [{ role: 'user', content: '你好,Claude!' }],
});
console.log(message.content[0].text);
提示
CommonJS 项目使用 const Anthropic = require('@anthropic-ai/sdk').default;
cURL 接入
无需安装任何依赖,直接通过 HTTP 请求调用。
bash
curl https://yyken.com/v1/messages \
-H "x-api-key: your-api-key" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "claude-sonnet-4-6",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "你好,Claude!"}]
}'
响应示例
json
{
"id": "msg_01XFDUDYJgAACzvnptvVoYEL",
"type": "message",
"role": "assistant",
"content": [{ "type": "text", "text": "你好!有什么我可以帮助你的吗?" }],
"model": "claude-sonnet-4-6",
"stop_reason": "end_turn",
"usage": { "input_tokens": 10, "output_tokens": 15 }
}
OpenAI SDK 兼容模式
TokenPan 支持 OpenAI Chat Completions 格式,已有 OpenAI 项目无需重写代码,直接替换 base_url 和 api_key 即可。
python
from openai import OpenAI
client = OpenAI(
api_key="your-api-key",
base_url="https://yyken.com/v1",
)
response = client.chat.completions.create(
model="claude-sonnet-4-6",
messages=[{"role": "user", "content": "你好,Claude!"}]
)
print(response.choices[0].message.content)
javascript
import OpenAI from 'openai';
const client = new OpenAI({
apiKey: 'your-api-key',
baseURL: 'https://yyken.com/v1',
});
const response = await client.chat.completions.create({
model: 'claude-sonnet-4-6',
messages: [{ role: 'user', content: '你好,Claude!' }],
});
console.log(response.choices[0].message.content);
注意
OpenAI 兼容模式不支持 Claude 专属参数(如 top_k、metadata)。如需完整功能,请使用 Anthropic 原生 SDK。
流式输出(Streaming)
设置 stream=True 即可逐 token 实时接收响应,适合聊天界面等实时场景。
python
import anthropic
client = anthropic.Anthropic(
api_key="your-api-key",
base_url="https://yyken.com/v1",
)
with client.messages.stream(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[{"role": "user", "content": "写一首关于春天的诗"}],
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
javascript
import Anthropic from '@anthropic-ai/sdk';
const client = new Anthropic({
apiKey: 'your-api-key',
baseURL: 'https://yyken.com/v1',
});
const stream = await client.messages.stream({
model: 'claude-sonnet-4-6',
max_tokens: 1024,
messages: [{ role: 'user', content: '写一首关于春天的诗' }],
});
for await (const chunk of stream) {
if (chunk.type === 'content_block_delta') {
process.stdout.write(chunk.delta.text);
}
}
模型列表
在 model 参数中填写以下 ID 即可调用对应模型。
| 模型 ID | 系列 | 特点 | 输入 $/1M | 输出 $/1M |
|---|---|---|---|---|
claude-opus-4-7 | Opus | 最强推理,复杂任务首选 | $ 4.25 | $ 21.25 |
claude-opus-4-6 | Opus | 旗舰级能力,稳定可靠 | $ 4.25 | $ 21.25 |
claude-sonnet-4-6 | Sonnet | 性能与成本最佳平衡,推荐 | $ 2.55 | $ 12.75 |
claude-haiku-4-5-20251001 | Haiku | 极速响应,高并发低成本 | $ 0.85 | $ 4.25 |
价格说明
以上为 TokenPan 优惠价(官方定价 × 85折)。充值即用,余额永久有效。
图片理解(Vision)
Claude 支持在消息中传入图片,进行内容识别、OCR、图表分析等任务。
python
import anthropic
client = anthropic.Anthropic(
api_key="your-api-key",
base_url="https://yyken.com/v1",
)
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "url",
"url": "https://example.com/image.jpg",
},
},
{"type": "text", "text": "请描述这张图片的内容"},
],
}],
)
print(message.content[0].text)
System Prompt
通过 system 参数设置模型的角色、行为规范和背景知识。
python
import anthropic
client = anthropic.Anthropic(
api_key="your-api-key",
base_url="https://yyken.com/v1",
)
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
system="你是一位专业的 Python 工程师,回答简洁、准确,代码示例优先。",
messages=[
{"role": "user", "content": "如何用 Python 读取 CSV 文件?"}
]
)
print(message.content[0].text)
速率限制处理
遇到 429 错误时,建议使用指数退避重试:
python
import time, anthropic
client = anthropic.Anthropic(
api_key="your-api-key",
base_url="https://yyken.com/v1",
)
def call_with_retry(messages, retries=3):
for i in range(retries):
try:
return client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=messages,
)
except anthropic.RateLimitError:
if i == retries - 1:
raise
time.sleep(2 ** i) # 1s → 2s → 4s
认证错误(401)
| 错误信息 | 原因 & 解决方法 |
|---|---|
invalid x-api-key | Key 复制有误或含空格;确认使用 TokenPan Key 而非官方 Key |
insufficient_balance | 账户余额不足,前往控制台充值后实时生效 |
authentication_error | Python SDK 用 api_key,cURL 用 x-api-key Header |
兼容性说明
| 功能 | 支持状态 | 备注 |
|---|---|---|
| Messages API | ✅ 支持 | 完全兼容 |
| 流式输出(SSE) | ✅ 支持 | 完全兼容 |
| 图片 / Vision | ✅ 支持 | URL 和 Base64 均可 |
| Tool Use / Function Calling | ✅ 支持 | 完全兼容 |
| OpenAI Chat Completions 格式 | ✅ 支持 | 兼容模式 |
| Batch API | ⚠ 部分支持 | 联系客服开通 |
| Files API | 🚧 暂不支持 | 规划中 |