跳到正文

Node.js SDK ​

在 Node.js 后端使用官方 OpenAI SDK,自定义 baseURL 即可发送兼容的文本对话请求。

安装 ​

在已有 Node.js 项目中运行:

bash
npm install openai

设置密钥 ​

powershell
$env:BEANC_API_KEY = "YOUR_API_KEY_HERE"
bash
export BEANC_API_KEY="YOUR_API_KEY_HERE"

发送文本请求 ​

保存为 main.mjs,替换模型 ID,然后在同一终端运行 node main.mjs。

javascript
import OpenAI from 'openai'

const client = new OpenAI({
  apiKey: process.env.BEANC_API_KEY,
  baseURL: 'https://api.beanc.cn/v1',
  timeout: 60_000,
  maxRetries: 0,
})

const completion = await client.chat.completions.create({
  model: 'YOUR_MODEL_ID',
  messages: [{ role: 'user', content: '你好,豆子!' }],
})

console.log(completion.choices[0].message.content)

JavaScript 使用 baseURL,Python 使用 base_url,不要混用字段名称。示例关闭自动重试,方便核对初次测试的调用记录。

流式读取 ​

保留上面的客户端配置,把调用部分换成:

javascript
const stream = await client.chat.completions.create({
  model: 'YOUR_MODEL_ID',
  messages: [{ role: 'user', content: '写一句简短的问候。' }],
  stream: true,
})

for await (const chunk of stream) {
  process.stdout.write(chunk.choices[0]?.delta?.content ?? '')
}
process.stdout.write('\n')

在网页里使用 ​

让网页请求自己的后端,由后端持有豆子 API 密钥并调用接口。不要把密钥放入前端源码、静态配置或打包后会公开的环境变量。

如果请求失败,按错误排查核对状态码、最终请求地址与模型 ID。

官方参考:OpenAI TypeScript and JavaScript API Library,“Retries / Timeouts / Customizing the fetch client”;Chat Completions Reference,流式与非流式调用。

豆子虽小,可能无限。