Appearance
调用示例
以下是常见场景的代码示例,全部使用 https://api.1xm.ai/v1 接口。
💬 基础对话
Python
python
from openai import OpenAI
client = OpenAI(
api_key="sk-你的Key",
base_url="https://api.1xm.ai/v1"
)
response = client.chat.completions.create(
model="claude-sonnet-4-6",
messages=[
{"role": "system", "content": "你是一个专业的代码审查员"},
{"role": "user", "content": "帮我审查这段 Python 代码是否有问题"}
]
)
print(response.choices[0].message.content)Node.js
javascript
import OpenAI from 'openai';
const client = new OpenAI({
apiKey: 'sk-你的Key',
baseURL: 'https://api.1xm.ai/v1'
});
const response = await client.chat.completions.create({
model: 'claude-sonnet-4-6',
messages: [{ role: 'user', content: '用 TypeScript 写一个 REST API' }]
});
console.log(response.choices[0].message.content);cURL
bash
curl -X POST https://api.1xm.ai/v1/chat/completions \
-H "Authorization: Bearer sk-你的Key" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-6",
"messages": [{"role": "user", "content": "Hello"}]
}'🌊 流式输出
Claude Code 默认使用流式输出。在 SDK 中开启 stream=True:
Python
python
stream = client.chat.completions.create(
model="claude-sonnet-4-6",
messages=[{"role": "user", "content": "详细解释一下 TCP 三次握手"}],
stream=True
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)Node.js
javascript
const stream = await client.chat.completions.create({
model: 'claude-sonnet-4-6',
messages: [{ role: 'user', content: '写一篇关于微服务架构的文章' }],
stream: true
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content || '');
}🔄 多轮对话
python
messages = [
{"role": "system", "content": "你是一个 Python 编程教练"},
{"role": "user", "content": "什么是装饰器?"},
{"role": "assistant", "content": "装饰器是 Python 中一种修改函数行为的语法糖..."},
{"role": "user", "content": "能给一个实际的例子吗?"}
]
response = client.chat.completions.create(
model="claude-sonnet-4-6",
messages=messages
)
print(response.choices[0].message.content)🤖 切换不同模型
只需修改 model 参数:
python
# Claude(Anthropic)- 推荐用于代码任务
response = client.chat.completions.create(
model="claude-sonnet-4-6",
messages=[{"role": "user", "content": "重构这段代码"}]
)
# GPT Codex(OpenAI)- 代码生成优化
response = client.chat.completions.create(
model="gpt-5.1-codex",
messages=[{"role": "user", "content": "实现一个 LRU 缓存"}]
)
# Claude Opus(旗舰)- 复杂任务
response = client.chat.completions.create(
model="claude-opus-4-6",
messages=[{"role": "user", "content": "设计一个分布式系统架构"}]
)📊 查看 Token 用量
python
response = client.chat.completions.create(
model="claude-sonnet-4-6",
messages=[{"role": "user", "content": "你好"}]
)
usage = response.usage
print(f"输入 Token: {usage.prompt_tokens}")
print(f"输出 Token: {usage.completion_tokens}")
print(f"总计 Token: {usage.total_tokens}")🖼️ 异步图片任务
gpt-image-2 的 4K、图片编辑、多参考图等任务建议使用异步接口,避免同步请求等待过久。
javascript
const apiKey = process.env.ONE_XM_API_KEY;
const createRes = await fetch('https://api.1xm.ai/v1/images/tasks', {
method: 'POST',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
'Idempotency-Key': 'order_20260507_0001'
},
body: JSON.stringify({
model: 'gpt-image-2',
prompt: '一张高端龙虾电商海报,写实摄影风格',
size: '3840x2160',
quality: 'high',
output_format: 'png',
n: 1
})
});
const task = await createRes.json();
while (task.status !== 'succeeded') {
await new Promise(resolve => setTimeout(resolve, (task.poll_after || 5) * 1000));
const queryRes = await fetch(task.poll_url, {
headers: { Authorization: `Bearer ${apiKey}` }
});
Object.assign(task, await queryRes.json());
if (task.status === 'failed') {
throw new Error(task.error?.message || 'image task failed');
}
}
console.log(task.data[0].url);完整说明见:GPT-Image-2 图片 API。
⚙️ Function Calling
python
tools = [{
"type": "function",
"function": {
"name": "get_file_content",
"description": "读取指定文件的内容",
"parameters": {
"type": "object",
"properties": {
"path": {"type": "string", "description": "文件路径"}
},
"required": ["path"]
}
}
}]
response = client.chat.completions.create(
model="claude-sonnet-4-6",
messages=[{"role": "user", "content": "读取 main.py 的内容"}],
tools=tools
)