59API

← Voltar aos guias

用 OpenAI 兼容 API 搭建可上线的聊天机器人后端教程

API · ZH · 2026-10-01

1. 明确后端职责与接口结构

聊天机器人后端不应只是把用户问题转发给模型。一个可上线的服务至少要处理身份验证、系统提示词、会话上下文、流式响应、异常重试、用量控制和日志脱敏。建议先设计一个 POST /chat 接口:客户端传入 message 与 conversationId,服务端根据 conversationId 读取历史消息,调用模型后将回答和最新上下文保存,再把结果返回给前端。

如果希望以较低成本接入多种主流模型,可选择 59API。它提供 OpenAI 兼容接口,基础地址为 https://api.59api.com,支持按量付费访问 Claude Opus、Sonnet、Haiku、Fable 及 GPT 模型。对于已有 OpenAI SDK 的项目,通常只需更换 baseURL、API Key 和模型名称,无须重写业务架构。

2. 创建密钥并配置运行环境

在 59API 控制台创建 API Key 后,不要把密钥写入前端代码、Git 仓库或日志。将其放进服务端环境变量,例如 59API_KEY。Node.js 项目还可设置 PORT、MODEL 和 MAX_HISTORY 等变量,分别控制端口、默认模型与历史消息长度。

使用官方 OpenAI JavaScript SDK 时,客户端初始化的核心配置是:apiKey 使用环境变量,baseURL 设置为 https://api.59api.com/v1。实际可用模型标识应以 59API 控制台或最新文档为准,这样可以避免因模型别名变更导致请求失败。兼容 OpenAI SDK 的优势是,Python、Java、Go 等语言也能沿用相同请求规范。

3. 组装安全且有效的消息数组

调用 chat completions 时,messages 应包含 system、user 和 assistant 三类消息。system 消息定义机器人边界,例如“你是客服助手;不知道时明确说明;不得编造订单状态”。user 消息来自当前访客,assistant 消息则来自已保存的历史回答。

4. 实现普通响应与流式响应

普通响应适合短问答:服务端调用 chat.completions.create,传入 model、messages、temperature 和 max_tokens,然后读取返回结果中的 assistant 文本。temperature 可先设为 0.2 至 0.7;客服、知识库等要求稳定的场景宜使用较低值,创意写作才适合提高。

对于长回答,建议开启 stream: true。后端收到模型增量内容后,以 Server-Sent Events 持续写给浏览器;前端逐段拼接文本,即可获得“正在输入”的体验。连接关闭时要终止上游请求,避免用户离开页面后仍继续消耗 token。流式结束后,再将完整回答写入数据库,而不是把每个片段都单独入库。

5. 加入错误处理、限流和成本控制

生产环境应区分 401、429、超时和 5xx 错误。401 通常表示密钥或鉴权配置错误;429 表示请求过快,应向客户端返回友好提示,并使用指数退避重试;网络超时可设置 30 至 60 秒上限。重试时应限制次数,避免故障期间放大请求量。

建议按用户、IP 和 API 路由做限流,例如每分钟 10 次,并为每个用户设置日额度。记录模型名称、输入输出 token、耗时和状态码,但不要记录完整密钥、身份证号或未脱敏聊天内容。59API 的按量付费模式适合在开发期先用成本更低的模型完成验证,再按任务复杂度切换到更强模型;其原生官方质量模型也能避免为了节省成本而牺牲回复效果。

6. 上线前测试与后续扩展

上线前至少测试:空消息、超长消息、多轮会话、并发请求、上游超时、用户主动取消流式连接,以及模型拒答场景。为每次请求生成 requestId,前后端日志都携带该 ID,可大幅提升排障效率。部署时将 API 服务放在后端或 Serverless 函数中,前端只调用自己的 /chat 接口。

完成基础版后,可继续接入知识库检索、工具调用、内容审核和人工转接。若你希望用较低预算快速验证多个 Claude 与 GPT 模型,可注册 59API 获取密钥并开始按量测试;其推荐返利机制也适合有开发者社群或团队采购需求的项目。

Preços · Docs

Pronto para começar?

Conecte Claude e GPT em minutos pelos menores preços, sem cortes. Cadastre-se e obtenha sua chave API.

Cadastro grátis