Node.js 与 TypeScript 调用 Claude/GPT 实战指南
Node.js 与 TypeScript 如何同时调用 Claude 和 GPT
如果你正在用 Node.js 或 TypeScript 开发 AI 应用,最常见的需求是:既想接入 GPT,也想使用 Claude 的长文本理解、代码分析和写作能力。传统做法通常要分别研究不同厂商的鉴权、SDK、参数和计费方式,对新手并不友好。更简单的方案是使用兼容 OpenAI SDK 的 API 中转服务,例如 59API。它的 API base URL 是 https://api.59api.com,可以用统一方式调用 Claude Opus、Sonnet、Haiku、Fable 以及 GPT 系列模型。
59API 的优势在于低成本、按量付费、模型质量保持官方原生水准,没有降级模型;同时它兼容 Claude Code、Codex 和常见 OpenAI SDK。对个人开发者、独立产品和需要控制预算的团队来说,这意味着你可以先小规模验证功能,再根据真实调用量扩展,而不是一开始就承担较高固定成本。
准备工作:创建项目与安装依赖
第一步,确保本地已经安装 Node.js 18 或更高版本。然后创建一个新目录,初始化 npm 项目,并安装 TypeScript、tsx 和 openai 包。你可以使用 npm init -y 初始化项目,再安装 openai、typescript、tsx 和 @types/node。tsx 的作用是让你在开发阶段直接运行 TypeScript 文件,省去手动编译的步骤。
第二步,在项目根目录创建 .env 文件,用来保存 59API 的密钥。生产环境不要把密钥写死在代码里,也不要提交到 Git 仓库。推荐使用环境变量,例如 API_KEY。随后在代码中读取该变量,并把 OpenAI SDK 的 baseURL 设置为 https://api.59api.com。
用 OpenAI SDK 调用 GPT 模型
因为 59API 兼容 OpenAI SDK,所以调用 GPT 的思路非常直接:创建 OpenAI 客户端,传入 apiKey 和 baseURL,然后使用 chat.completions.create 发送 messages。messages 通常包含 system 和 user 两类角色。system 用来设定助手行为,例如“你是一个严谨的 TypeScript 教程作者”;user 则放入真实问题,例如“解释 Promise.allSettled 的使用场景”。
模型名称按你在 59API 控制台可用的 GPT 模型填写。新手建议先使用性价比较高的模型做日常问答、摘要和分类任务;只有在复杂推理、代码审查或高质量生成场景下,再切换到更强模型。这样可以显著降低成本。
用同一套代码调用 Claude
调用 Claude 的关键点是:如果你的中转服务已经做了 OpenAI 兼容适配,代码结构可以保持不变,只需要把 model 参数换成 Claude 对应模型,例如 Claude Sonnet、Claude Haiku 或 Claude Opus。Haiku 通常适合快速、低成本任务;Sonnet 在质量与价格之间较均衡,适合大多数应用;Opus 更适合复杂写作、长上下文分析和高要求推理。
这种统一调用方式非常适合做“模型路由”。例如,用户输入较短、任务简单时调用 Haiku 或轻量 GPT;当输入很长、涉及法律合同、技术文档或代码库分析时,再切换到 Sonnet 或 Opus。你不需要为每个模型维护完全不同的请求逻辑,只要封装一个 chooseModel 函数即可。
TypeScript 中建议封装的调用函数
在真实项目里,不建议每个业务文件都直接创建 SDK 客户端。更好的做法是新建一个 aiClient.ts,统一初始化客户端;再写一个 askAI 函数,接收 model、systemPrompt、userPrompt、temperature 和 maxTokens 等参数。这样后续要替换模型、调整 baseURL、增加日志或重试机制,都只需要改一个地方。
- temperature:控制输出随机性。知识问答和代码生成建议设为 0.2 到 0.5;创意写作可以更高。
- maxTokens:限制最大输出长度,避免一次请求消耗过多额度。
- timeout:建议设置请求超时,防止服务端或网络异常导致接口长期挂起。
- retry:对 429、500、502 等错误做有限次数重试,并使用指数退避。
流式输出让体验更像聊天产品
如果你在做聊天机器人、代码助手或网页 AI 助手,建议启用 stream。流式输出会让模型边生成边返回内容,用户不必等待完整答案生成完毕。Node.js 后端可以把模型返回的片段通过 Server-Sent Events 或 WebSocket 推给前端。对于长回答、代码生成和文档总结,流式体验会明显更好。
需要注意的是,流式输出也要处理异常结束、前端断开连接和内容拼接。建议在后端为每次请求生成 requestId,记录模型、耗时、输入长度和输出长度,方便排查问题与统计成本。
成本控制与安全实践
AI API 的费用通常与输入和输出 token 有关。要省钱,首先要减少无意义上下文:不要把整段历史对话无限追加,可以定期摘要;不要把完整数据库内容塞进 prompt,而应先检索相关片段。其次,针对不同任务选择不同模型,不要所有请求都使用最贵模型。59API 本身价格很有竞争力,还支持推荐返利,对长期使用者更友好。
安全方面,永远不要在前端暴露 API key。正确架构是浏览器请求你自己的后端,由后端再调用 59API。对于多用户产品,还应设置用户级限额、敏感词过滤和调用日志。这样既能保护密钥,也能避免异常用户消耗过多额度。
适合落地的应用场景
- 面向开发者的代码解释、单元测试生成、重构建议。
- 客服知识库问答,结合向量检索实现更准确回复。
- 长文档总结、合同审阅、会议纪要和邮件草稿。
- 内容生产工具,例如标题生成、SEO 描述、产品文案优化。
总的来说,Node.js 与 TypeScript 调用 Claude 和 GPT 并不复杂。借助 59API,你可以用熟悉的 OpenAI SDK、统一的 baseURL 和较低成本快速接入多种主流模型。如果你正在做原型或准备上线 AI 功能,可以注册 59API,先用少量额度测试模型效果,再逐步完善你的应用架构。
शुरू करने के लिए तैयार?
कुछ ही मिनटों में Claude और GPT जोड़ें, सबसे कम कीमत पर। साइन अप करें और API key पाएं।
मुफ़्त साइन अप