07 · Anthropic SDK 接入 Freecode#
使用 Anthropic Messages 协议,Base URL 填 https://api.freecode.cc。SDK 会自行追加 /v1/messages。
1. 设置环境变量#
macOS / Linux / WSL:
export FREECODE_API_KEY="sk-your-freecode-api-key"
export FREECODE_CLAUDE_MODEL="claude-sonnet-4-6"
PowerShell:
$env:FREECODE_API_KEY = "sk-your-freecode-api-key"
$env:FREECODE_CLAUDE_MODEL = "claude-sonnet-4-6"
为密钥选择支持目标 Claude 模型及 SDK 调用的分组。如果某个分组限制客户端类型,应按该分组的要求选择接入工具。
2. Python#
安装:
python -m pip install --upgrade anthropic
保存为 freecode_anthropic.py:
import os
import anthropic
client = anthropic.Anthropic(
api_key=os.environ["FREECODE_API_KEY"],
base_url="https://api.freecode.cc",
timeout=120.0,
)
message = client.messages.create(
model=os.environ.get("FREECODE_CLAUDE_MODEL", "claude-sonnet-4-6"),
max_tokens=1024,
messages=[{"role": "user", "content": "请用一句话打个招呼"}],
)
for block in message.content:
if block.type == "text":
print(block.text)
运行:
python freecode_anthropic.py
流式输出,将创建请求和打印的部分替换为:
with client.messages.stream(
model=os.environ.get("FREECODE_CLAUDE_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)
print()
3. JavaScript#
安装:
npm install @anthropic-ai/sdk
保存为 freecode_anthropic.mjs:
import Anthropic from "@anthropic-ai/sdk";
if (!process.env.FREECODE_API_KEY) {
throw new Error("请先设置 FREECODE_API_KEY");
}
const client = new Anthropic({
apiKey: process.env.FREECODE_API_KEY,
baseURL: "https://api.freecode.cc",
timeout: 120000,
});
const message = await client.messages.create({
model: process.env.FREECODE_CLAUDE_MODEL ?? "claude-sonnet-4-6",
max_tokens: 1024,
messages: [{ role: "user", content: "请用一句话打个招呼" }],
});
for (const block of message.content) {
if (block.type === "text") console.log(block.text);
}
运行:
node freecode_anthropic.mjs
流式输出,将创建请求和打印的部分替换为:
const stream = client.messages.stream({
model: process.env.FREECODE_CLAUDE_MODEL ?? "claude-sonnet-4-6",
max_tokens: 1024,
messages: [{ role: "user", content: "请写一首四行小诗" }],
});
for await (const event of stream) {
if (
event.type === "content_block_delta" &&
event.delta.type === "text_delta"
) {
process.stdout.write(event.delta.text);
}
}
process.stdout.write("\n");
4. 参数与验证#
max_tokens是 Messages 请求的必填参数,示例设置为 1024。- SDK 的
api_key/apiKey默认生成x-api-key认证头,Freecode 的 Messages 接口支持这种方式。 - Python 使用
base_url;JavaScript 使用baseURL。 - 回复的
content可能包含多个类型的块,示例只打印文本块。
收到回复后,在 使用日志 核对模型、分组和费用。也可按 OpenAI SDK 指南 使用兼容接口,但须确认目标模型和分组支持该格式。
问题排查见 常见问题。
参考:原 Anthropic SDK 指南、Anthropic Python SDK、Anthropic JavaScript SDK。