Skip to content

OpenAI 兼容接口 ​

YeahRouter 的 OpenAI 兼容接口与 OpenAI API 格式一致,可以直接使用官方 SDK。

对话补全 Chat Completions ​

bash
curl https://yeahrouter.com/v1/chat/completions \
  -H "Authorization: Bearer sk-你的密钥" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "<模型名>",
    "messages": [
      { "role": "system", "content": "你是一个乐于助人的助手。" },
      { "role": "user", "content": "你好" }
    ]
  }'
python
from openai import OpenAI

client = OpenAI(
    base_url="https://yeahrouter.com/v1",
    api_key="sk-你的密钥",
)

resp = client.chat.completions.create(
    model="<模型名>",
    messages=[{"role": "user", "content": "你好"}],
)
print(resp.choices[0].message.content)
ts
import OpenAI from 'openai'

const client = new OpenAI({
  baseURL: 'https://yeahrouter.com/v1',
  apiKey: process.env.YEAHROUTER_API_KEY,
})

const resp = await client.chat.completions.create({
  model: '<模型名>',
  messages: [{ role: 'user', content: '你好' }],
})
console.log(resp.choices[0].message.content)

流式输出 ​

加上 "stream": true,结果会以 SSE 分段返回:

python
stream = client.chat.completions.create(
    model="<模型名>",
    messages=[{"role": "user", "content": "写一首关于大海的短诗"}],
    stream=True,
)
for chunk in stream:
    if chunk.choices and chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)
ts
const stream = await client.chat.completions.create({
  model: '<模型名>',
  messages: [{ role: 'user', content: '写一首关于大海的短诗' }],
  stream: true,
})
for await (const chunk of stream) {
  process.stdout.write(chunk.choices[0]?.delta?.content ?? '')
}

如需在流式结果末尾拿到 Token 用量,加上 "stream_options": { "include_usage": true }。

Responses 接口 ​

python
resp = client.responses.create(
    model="<模型名>",
    input="用三句话解释什么是 API 网关",
)
print(resp.output_text)

向量 Embeddings ​

python
resp = client.embeddings.create(
    model="<向量模型名>",
    input=["第一段文本", "第二段文本"],
)
print(len(resp.data[0].embedding))

图片生成 ​

python
resp = client.images.generate(
    model="<图片模型名>",
    prompt="一只在月光下的橘猫,水彩风格",
    size="1024x1024",
)
print(resp.data[0].url or "已返回 base64 数据")

函数调用 / 工具调用 ​

tools、tool_choice、response_format(JSON 模式)等参数会原样传给上游模型,是否支持取决于具体模型。