Anthropic SDK

把 Praxis 接入 Anthropic SDK:换掉 baseURL,Claude 代码直接用。

把 Praxis 接入 Anthropic 官方 SDK——已有一切 Anthropic 代码不用换库,只改一个 baseURL。本页 Node 与 Python 均实测(其余语言同形)。

每一步都标了期望结果:照做即可,也可以把本页直接交给能操作电脑的 AI 助手,让它替你完成安装、运行与验证。

你将完成

  • 用 Anthropic SDK 调 Praxis 的模型,拿到回复与用量
  • 完成标志:hello.mjs 打印中文回复与 usage,stream.mjs 逐字打印回复
  • 预计耗时:3 分钟(不含 Node.js 安装)
  • 支持协议:Anthropic 兼容(/anthropic)

前提

开始前逐项确认:

  • 一个 Praxis API Key(sk-praxis- 开头)。没有就到 控制台 → API Keys 创建:点「创建 Key」,名称必填,有效期默认 90 天(可改永久);创建成功弹窗会展示完整 Key 并带「复制 Key」,关闭后列表只显示掩码,随时可点行内复制图标重新获取完整 Key。新账号自带 $1 免费额度。完整流程见快速开始。

  • Node.js 18 或更高(node --version 检查;用 Bun 亦可)。

  • 安装 SDK——注意包名是 @anthropic-ai/sdk(npm 上的 anthropic 是同名的占位包,不是它):

    npm install @anthropic-ai/sdk

    期望:安装无报错。

第一个请求

先把 Key 放进环境变量(export PRAXIS_API_KEY=sk-praxis-…;PowerShell:$env:PRAXIS_API_KEY="…"),再新建 hello.mjs:

import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic({
  baseURL: "https://api.deepraxis.ai/anthropic",
  apiKey: "sk-praxis-你的Key",
});

const message = await client.messages.create({
  model: "deepseek-flash",
  max_tokens: 256,
  messages: [{ role: "user", content: "用一句话介绍你自己" }],
});

console.log(message.content.find((b) => b.type === "text")?.text);
console.log(message.usage);

运行:

node hello.mjs

期望:打印一段中文回复,随后是 usage——至少包含 input_tokens / output_tokens,SDK 还会附带缓存、服务分层等字段。两处注意:max_tokens 必填(Anthropic 协议的要求);content 是块数组,取 type 为 text 的块是回复文本——推理模型前面可能先带 thinking 块。

终端运行示例脚本的真实输出

Python 版

pip install anthropic

新建 hello.py:

import os
from anthropic import Anthropic

client = Anthropic(
    base_url="https://api.deepraxis.ai/anthropic",
    api_key=os.environ["PRAXIS_API_KEY"],
)

message = client.messages.create(
    model="deepseek-flash",
    max_tokens=256,
    messages=[{"role": "user", "content": "用一句话介绍你自己"}],
)

print(next(b.text for b in message.content if b.type == "text"))
print(message.usage)

运行 python3 hello.py。期望:打印中文回复,随后是 Usage——同样必填 max_tokens,content 是块数组。流式用 client.messages.stream(...) 上下文管理器,与 Node 同形。

Python 版示例的真实输出

流式响应

新建 stream.mjs:

import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic({
  baseURL: "https://api.deepraxis.ai/anthropic",
  apiKey: process.env.PRAXIS_API_KEY,
});

const stream = client.messages.stream({
  model: "deepseek-flash",
  max_tokens: 256,
  messages: [{ role: "user", content: "用两句话解释什么是 API" }],
});

for await (const event of stream) {
  if (event.type === "content_block_delta" && event.delta.type === "text_delta") {
    process.stdout.write(event.delta.text);
  }
}
console.log();

期望:回复逐字打印、以换行收尾。流式支持按模型路由而异,个别路由可能暂未开放(报 STREAMING_UNPROVEN 时去掉流式或换模型重试)。

终端运行流式示例:回复逐字输出

常见问题

症状原因解法
导入名为 anthropic 的包后运行失败(报错指向 node_modules/anthropic/index.js 缺失或 main 无效)装到了 npm 上的同名占位包卸掉重装正主:卸载 anthropic 后安装 @anthropic-ai/sdk
401 / 无效令牌Key 复制不完整或未设进环境变量重新完整复制(注意 sk-praxis- 前缀);用 echo $PRAXIS_API_KEY 检查
400 提示缺 max_tokensAnthropic 协议必填该参数在 messages.create 里加上 max_tokens(如 256)
400 STREAMING_UNPROVEN该模型路由暂未开放流式去掉流式用普通调用,或换个模型重试
模型不存在模型 ID 与目录不一致到控制台 → 模型复制确切 ID

进阶

  • 查这次调用花了多少钱:非流式 message.usage.cost(Python SDK)直接返回费用;流式在 message_delta 事件的 usage.cost 上(get_final_message().usage 不带该字段)。JS SDK 的 Usage 类型不声明 cost(运行时字段仍在,as any 可读),Node 用户也可看控制台 → 用量与费用逐笔明细,或走 OpenAI SDK
  • 换模型:改 model 字段即可,Claude 系旗舰填 claude-opus-5;deepseek-flash 是滚动入口始终指向最新一代 Flash
  • 拿思维链:推理模型的 content 里 type 为 thinking 的块即思维链,按需读取

相关食谱

导出

本页内容