使用 SDK 实现对话、流式输出、函数调用和文本向量化,支持 OpenAI 和 Anthropic 两种协议。
OpenAI Chat Completions
rb.openai() 返回完整的 OpenAI SDK 实例,用法与官方 OpenAI 客户端完全相同,所有请求自动经过网关。
基本对话
import { RouterBrain } from '@router-brain/sdk';
const rb = new RouterBrain('sk-xxx');
const res = await rb.openai().chat.completions.create({
model: 'gpt-4o',
messages: [
{ role: 'system', content: '你是一个助手' },
{ role: 'user', content: '南京今天天气怎么样?' },
],
});
console.log(res.choices[0].message.content);
流式对话
const stream = await rb.openai().chat.completions.create({
model: 'gpt-4o',
messages: [{ role: 'user', content: '讲个故事' }],
stream: true,
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content || '');
}
函数调用
const res = await rb.openai().chat.completions.create({
model: 'gpt-4o',
messages: [{ role: 'user', content: '北京的天气如何?' }],
tools: [{
type: 'function',
function: {
name: 'get_weather',
parameters: {
type: 'object',
properties: { city: { type: 'string' } },
},
},
}],
});
文本向量化
const res = await rb.openai().embeddings.create({
model: 'text-embedding-3-small',
input: '需要向量化的文本',
});
console.log(res.data[0].embedding); // number[]
Responses API
const res = await rb.openai().responses.create({
model: 'gpt-4o',
input: '写一首关于秋天的诗',
});
console.log(res.output_text);
rb.openai()返回完整的 OpenAI SDK 实例,所有 OpenAI 官方方法均可使用。
Anthropic Messages
rb.anthropic() 返回完整的 Anthropic SDK 实例,所有请求自动经过网关。
基本消息
const res = await rb.anthropic().messages.create({
model: 'claude-sonnet-4-20250514',
max_tokens: 1024,
messages: [{ role: 'user', content: '用中文解释量子计算的基本原理' }],
});
console.log(res.content[0].text);
流式响应
const stream = rb.anthropic().messages.stream({
model: 'claude-sonnet-4-20250514',
max_tokens: 1024,
messages: [{ role: 'user', content: '讲一个长篇科幻故事' }],
}).on('text', (text) => {
process.stdout.write(text);
});
await stream.finalMessage();
带 System Prompt
const res = await rb.anthropic().messages.create({
model: 'claude-sonnet-4-20250514',
max_tokens: 1024,
system: '你是一位资深 Python 工程师,只输出代码。',
messages: [{ role: 'user', content: '写一个快速排序的实现' }],
});
rb.anthropic()返回完整的 Anthropic SDK 实例,所有 Anthropic 官方方法均可使用。