Skip to content
Ask

Claude 高级能力接入说明

Xima AI 支持通过 OpenAI-compatible Chat Completions 和 Anthropic native Messages 调用 Claude 模型。普通对话可以沿用 OpenAI SDK;如果需要 Claude 原生 thinking、prompt cache、tool result、图片内容块等能力,建议使用 Anthropic native Messages。

接入信息

项目
控制台https://console.xima.ai/
OpenAI-compatible Base URLhttps://console.xima.ai/v1
OpenAI-compatible EndpointPOST /v1/chat/completions
Anthropic native EndpointPOST /v1/messages
认证方式Authorization: Bearer <XIMA_API_KEY>

建议先配置环境变量:

bash
export XIMA_API_KEY="sk-替换为你的APIKey"
export XIMA_BASE_URL="https://console.xima.ai"
export XIMA_CLAUDE_MODEL="xima/claude-sonnet-4-6"

模型选择

模型 ID建议用途
xima/claude-haiku-4-5-20251001低成本、高并发、轻量问答、分类、摘要、简单提取
xima/claude-sonnet-4-6默认推荐;通用问答、代码、复杂摘要、工具调用、稳定生产任务
xima/claude-opus-4-6高复杂度推理、代码审查、Agent 任务
xima/claude-opus-4-7高复杂度推理、长任务、多步骤规划
xima/claude-opus-4-8高难度分析、复杂代码和高级 Agent 场景

首次接入建议使用 xima/claude-sonnet-4-6。如果业务对成本更敏感,可以切到 Haiku;如果需要更强推理能力,再切到 Opus 系列。

入口选择

入口适合场景注意事项
OpenAI-compatible Chat Completions已有 OpenAI SDK、OpenAI Chat 消息结构或兼容 OpenAI 的业务框架不要直接传 Claude 原生 thinkingcache_controltool_result 等字段
Anthropic native Messages已有 Anthropic Messages 消息结构,或需要 Claude 原生 thinking、prompt cache、tool result、图片内容块可以覆盖普通对话、流式输出、工具调用、图片、长上下文和 Claude 原生能力

能力选择速查:

需求OpenAI-compatible 写法Anthropic native 写法建议
普通文本messages[].content 字符串messages[].content 字符串或内容块按现有 SDK 选择
流式输出stream: truestream: true按现有 SDK 选择
工具调用toolstool_callstoolstool_use不要混用字段
工具结果闭环role: "tool" + tool_call_idtype: "tool_result"按协议回传工具结果
图片输入image_url 内容块image + source 内容块按协议填写图片块
Claude thinking可用 reasoning_effort 做轻量适配原生 thinking需要 Claude 原生证据时用 /v1/messages
Prompt cache不建议在 Chat 示例里传 cache_control原生 cache_control需要缓存时用 /v1/messages

文本调用

OpenAI-compatible

bash
curl -sS "$XIMA_BASE_URL/v1/chat/completions" \
  -H "Authorization: Bearer $XIMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "'"$XIMA_CLAUDE_MODEL"'",
    "messages": [
      {
        "role": "user",
        "content": "用三句话介绍 Xima AI 的 Claude 模型接入方式。"
      }
    ],
    "max_tokens": 512
  }'

成功时通常从 choices[0].message.content 读取回答,并从 usage 中查看 token 使用量。

Anthropic native

bash
curl -sS "$XIMA_BASE_URL/v1/messages" \
  -H "Authorization: Bearer $XIMA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "anthropic-version: 2023-06-01" \
  -d '{
    "model": "'"$XIMA_CLAUDE_MODEL"'",
    "max_tokens": 512,
    "messages": [
      {
        "role": "user",
        "content": "用三句话介绍 Xima AI 的 Claude 模型接入方式。"
      }
    ]
  }'

SDK 示例

Python OpenAI SDK

python
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["XIMA_API_KEY"],
    base_url="https://console.xima.ai/v1",
)

response = client.chat.completions.create(
    model=os.environ.get("XIMA_CLAUDE_MODEL", "xima/claude-sonnet-4-6"),
    messages=[
        {"role": "user", "content": "请用中文总结三条接入注意事项。"}
    ],
    max_tokens=512,
)

print(response.choices[0].message.content)
print(response.usage)

Node.js OpenAI SDK

js
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.XIMA_API_KEY,
  baseURL: "https://console.xima.ai/v1"
});

const response = await client.chat.completions.create({
  model: process.env.XIMA_CLAUDE_MODEL || "xima/claude-sonnet-4-6",
  messages: [
    { role: "user", content: "请用中文总结三条接入注意事项。" }
  ],
  max_tokens: 512
});

console.log(response.choices[0].message.content);
console.log(response.usage);

如果使用 Anthropic SDK,请确保 SDK 支持把请求发送到自定义网关地址;不同 SDK 版本初始化参数可能不同。本文的 Anthropic native 示例以 HTTP 请求为准。

流式输出

长文本、聊天产品和 Agent 场景建议开启 stream

OpenAI-compatible:

bash
curl -N "$XIMA_BASE_URL/v1/chat/completions" \
  -H "Authorization: Bearer $XIMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "'"$XIMA_CLAUDE_MODEL"'",
    "messages": [
      {
        "role": "user",
        "content": "写一份 300 字以内的产品需求总结。"
      }
    ],
    "stream": true,
    "max_tokens": 800
  }'

Anthropic native:

bash
curl -N "$XIMA_BASE_URL/v1/messages" \
  -H "Authorization: Bearer $XIMA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "anthropic-version: 2023-06-01" \
  -d '{
    "model": "'"$XIMA_CLAUDE_MODEL"'",
    "max_tokens": 800,
    "stream": true,
    "messages": [
      {
        "role": "user",
        "content": "写一份 300 字以内的产品需求总结。"
      }
    ]
  }'

客户端需要按 Server-Sent Events 逐段读取返回内容。

工具调用与工具结果闭环

两种协议都支持工具定义、工具调用和工具结果回传,但字段名称不同。

能力OpenAI-compatibleAnthropic native
工具定义tools[].function.parameterstools[].input_schema
模型请求工具choices[0].message.tool_callscontent[] 中的 type: "tool_use"
工具结果role: "tool" + tool_call_idrole: "user" 消息中放 type: "tool_result" + tool_use_id

OpenAI-compatible 工具调用示例:

bash
curl -sS "$XIMA_BASE_URL/v1/chat/completions" \
  -H "Authorization: Bearer $XIMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "'"$XIMA_CLAUDE_MODEL"'",
    "messages": [
      {
        "role": "user",
        "content": "查询北京今天的天气,并给出穿衣建议。"
      }
    ],
    "tools": [
      {
        "type": "function",
        "function": {
          "name": "get_weather",
          "description": "查询城市天气",
          "parameters": {
            "type": "object",
            "properties": {
              "city": {
                "type": "string",
                "description": "城市名称"
              }
            },
            "required": ["city"]
          }
        }
      }
    ],
    "tool_choice": "auto",
    "max_tokens": 512
  }'

模型返回 tool_calls 后,业务系统执行工具,再把工具结果传回模型:

json
{
  "role": "tool",
  "tool_call_id": "call_weather_001",
  "content": "{\"city\":\"北京\",\"weather\":\"\",\"temperature_c\":26}"
}

Anthropic native 工具结果使用 Claude 原生内容块:

json
{
  "role": "user",
  "content": [
    {
      "type": "tool_result",
      "tool_use_id": "toolu_weather_001",
      "content": "{\"city\":\"北京\",\"weather\":\"\",\"temperature_c\":26}"
    }
  ]
}

tool_call_idtool_use_id 必须与上一轮模型返回的 ID 完全一致。

图片输入

Claude 支持图片理解。OpenAI-compatible 和 Anthropic native 的图片内容块不同。

OpenAI-compatible HTTPS 图片:

bash
curl -sS "$XIMA_BASE_URL/v1/chat/completions" \
  -H "Authorization: Bearer $XIMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "'"$XIMA_CLAUDE_MODEL"'",
    "messages": [
      {
        "role": "user",
        "content": [
          {
            "type": "text",
            "text": "请描述这张图片中的主要内容。"
          },
          {
            "type": "image_url",
            "image_url": {
              "url": "https://httpbin.org/image/png"
            }
          }
        ]
      }
    ],
    "max_tokens": 512
  }'

OpenAI-compatible Base64 图片需要把图片放进 data URL:

json
{
  "type": "image_url",
  "image_url": {
    "url": "data:image/png;base64,<BASE64_IMAGE>"
  }
}

Anthropic native Base64 图片:

bash
curl -sS "$XIMA_BASE_URL/v1/messages" \
  -H "Authorization: Bearer $XIMA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "anthropic-version: 2023-06-01" \
  -d '{
    "model": "'"$XIMA_CLAUDE_MODEL"'",
    "max_tokens": 800,
    "messages": [
      {
        "role": "user",
        "content": [
          {
            "type": "image",
            "source": {
              "type": "base64",
              "media_type": "image/png",
              "data": "<BASE64_IMAGE>"
            }
          },
          {
            "type": "text",
            "text": "请提取图片里的关键信息。"
          }
        ]
      }
    ]
  }'

不要把本地文件路径直接传给 API。请先上传为 HTTPS URL,或在业务侧读取文件后转成 Base64。

长上下文

长上下文本身不需要特殊字段;把稳定背景放在前面,把本轮问题放在后面即可。

OpenAI-compatible:

json
{
  "model": "xima/claude-sonnet-4-6",
  "messages": [
    {
      "role": "system",
      "content": "你是严谨的文档分析助手。只能根据用户提供的长文档回答。"
    },
    {
      "role": "user",
      "content": "长文档如下:\n<LONG_DOCUMENT_TEXT>\n\n请提取关键结论、风险点和待确认事项。"
    }
  ],
  "max_tokens": 1200
}

Anthropic native:

json
{
  "model": "xima/claude-sonnet-4-6",
  "max_tokens": 1200,
  "system": "你是严谨的文档分析助手。只能根据用户提供的长文档回答。",
  "messages": [
    {
      "role": "user",
      "content": "长文档如下:\n<LONG_DOCUMENT_TEXT>\n\n请提取关键结论、风险点和待确认事项。"
    }
  ]
}

长上下文会增加输入 tokens、响应时间和费用。生产接入前建议用真实业务文档做小样本验收。

Claude thinking

普通聊天、摘要、问答和工具调用通常不需要显式配置 thinking。如果需要 Claude 原生高级推理能力,或需要观察 thinkingsignature 等原生证据,建议使用 /v1/messages

OpenAI-compatible 可以用 reasoning_effort 做轻量适配,但它不等同于 Claude 原生 thinking:

bash
curl -sS "$XIMA_BASE_URL/v1/chat/completions" \
  -H "Authorization: Bearer $XIMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "'"$XIMA_CLAUDE_MODEL"'",
    "messages": [
      {
        "role": "user",
        "content": "请给出一个数据库慢查询排查计划,并说明每一步判断依据。"
      }
    ],
    "reasoning_effort": "low",
    "max_tokens": 1800
  }'

Anthropic native 固定预算 thinking:

bash
curl -sS "$XIMA_BASE_URL/v1/messages" \
  -H "Authorization: Bearer $XIMA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "anthropic-version: 2023-06-01" \
  -d '{
    "model": "xima/claude-sonnet-4-6",
    "max_tokens": 1600,
    "temperature": 1,
    "thinking": {
      "type": "enabled",
      "budget_tokens": 1024
    },
    "messages": [
      {
        "role": "user",
        "content": "请完成一个需要多步推理的排查计划。"
      }
    ]
  }'

thinking 会占用输出 token,通常会增加成本和响应时间。不同模型支持的 thinking 形态可能不同,建议用小样本验证后再上线。

Prompt cache

Prompt cache 适合长系统提示词、长文档前缀、固定工具说明等重复输入。需要 Claude prompt cache 时,建议使用 Anthropic native /v1/messages

bash
curl -sS "$XIMA_BASE_URL/v1/messages" \
  -H "Authorization: Bearer $XIMA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "anthropic-version: 2023-06-01" \
  -d '{
    "model": "xima/claude-sonnet-4-6",
    "max_tokens": 256,
    "system": [
      {
        "type": "text",
        "text": "这里放很长且多次请求保持不变的系统提示词、业务规则或文档前缀。",
        "cache_control": {
          "type": "ephemeral"
        }
      }
    ],
    "messages": [
      {
        "role": "user",
        "content": "请基于上面的规则,回答本轮用户问题。"
      }
    ]
  }'

缓存验收建议关注:

  • 第一次请求通常看到 cache creation,后续相同前缀请求命中时才会看到 cache read。
  • 对账时关注 usage.cache_creation_input_tokensusage.cache_read_input_tokens
  • 缓存是否命中还取决于上游账号、组织、渠道路由和前缀是否完全稳定。

计费与用量查看

  • 价格以 模型与价格 和 Xima AI 控制台「模型与定价」页面为准。
  • 调用后可在控制台日志或用量页面查看请求记录。
  • 对账时建议关注:modelendpoint、输入 tokens、输出 tokens、缓存写入 tokens、缓存读取 tokens、扣费金额、请求时间。
  • OpenAI-compatible 返回中通常查看 usage.prompt_tokensusage.completion_tokensusage.total_tokens
  • Claude 原生返回中通常查看 usage.input_tokensusage.output_tokensusage.cache_creation_input_tokensusage.cache_read_input_tokens

常见错误

HTTP 状态常见原因处理方式
401API Key 缺失、格式错误或已失效检查 Authorization: Bearer <XIMA_API_KEY>
403Key 无权限、余额不足或模型未授权检查令牌权限、余额和模型授权范围
404 / 503模型名不存在、未开通或当前没有可用渠道确认模型名完全匹配,例如 xima/claude-sonnet-4-6
429请求频率或并发超过限制降低并发,按指数退避重试
5xx上游或网关短时异常记录请求时间和模型名,重试后仍失败再联系支持

生产接入建议

  • API Key 只放在服务端,不要暴露到浏览器、移动端或公开仓库。
  • 每次请求设置合理的 max_tokens,避免输出过长造成不可控成本。
  • 长输出场景优先使用 stream: true
  • 客户端设置超时和重试,只对网络错误、4295xx 做有限次数重试。
  • 初次上线建议灰度放量,先观察成功率、响应时间、token 使用量和扣费记录。
  • 工具调用、多模态输入、长上下文、thinking 和 prompt cache 建议分别做小样本验收。