使用 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 官方方法均可使用。

相关

流式响应 · 错误响应 · 错误处理