Go、Rust、Java 调用 LLM API:59API 实战接入流程
为什么用统一接口接入多种大模型
在实际项目中,团队往往同时需要 Claude 的长文本理解能力和 GPT 模型的结构化输出能力。如果每种模型都接入一套不同 SDK、鉴权方式和错误处理逻辑,后续切换模型、控制成本和排查问题都会变复杂。59API 提供 OpenAI 兼容接口,基础地址为 https://api.59api.com,可让 Go、Rust、Java 服务使用相同的 Chat Completions 请求格式访问 Claude(Opus、Sonnet、Haiku、Fable)及 GPT 模型。
它适合按量付费的原型、内部工具和生产服务:开发者可在控制台查看当前可用模型 ID 与价格,再由业务配置决定默认模型。59API 使用原生官方质量模型而非降级版本,并以较低价格提供中转服务;若团队有推广场景,还可结合推荐返佣降低长期使用成本。
开始前:创建密钥并固定请求规范
先注册 59API,创建 API Key,并将其放入部署环境变量,例如 59API_KEY。不要把密钥写进 Git 仓库、前端代码或日志。所有示例均使用 POST https://api.59api.com/v1/chat/completions,请求头包含 Authorization: Bearer 你的密钥,以及 Content-Type: application/json。
请求体至少包含 model 和 messages。model 必须填写 59API 控制台展示的准确模型 ID;messages 可先传一条 system 说明输出规则,再传 user 的业务问题。建议在配置文件中维护 MODEL_FAST、MODEL_QUALITY 两个变量:简单分类、摘要可选低成本模型,复杂代码审查、合同分析再切到更强模型。这样无需修改业务代码就能控制预算。
Go:用标准库快速实现可复用客户端
Go 服务可直接使用 net/http,避免为一个简单调用引入额外依赖。创建 http.Client 并设置超时,例如 60 秒;随后构造 map 或 struct,发送 JSON 请求。核心逻辑是:req, _ := http.NewRequest("POST", "https://api.59api.com/v1/chat/completions", bytes.NewReader(payload));req.Header.Set("Authorization", "Bearer "+os.Getenv("59API_KEY"))。
请求 JSON 可包含 model、messages 和 temperature。读取响应后,不要只打印字符串;应先检查 HTTP 状态码,再反序列化 choices 数组,并取得 choices[0].message.content。对 429 和 5xx 错误使用指数退避重试,例如等待 1、2、4 秒,最多三次;对 401 则立即告警,通常表示密钥、环境变量或 Authorization 格式有误。
Rust:用 reqwest 保持异步调用简洁
Rust 项目可使用 reqwest、tokio 与 serde_json。Cargo.toml 中启用 reqwest 的 json 和 rustls-tls 特性。通过 Client::new().post("https://api.59api.com/v1/chat/completions") 创建请求,使用 bearer_auth(std::env::var("59API_KEY")?) 设置认证,再用 json(&payload).send().await? 发送。
生产代码应先调用 error_for_status,再解析 JSON,避免把网关错误页面当作模型结果。对于面向用户的接口,建议为每个请求生成 request_id,并记录模型 ID、耗时、输入字符数和状态码,但不要记录完整提示词或模型回复中的敏感数据。Rust 的 Result 传播机制很适合将网络错误、JSON 解析错误和业务校验错误分层返回。
Java:使用 JDK HttpClient 接入企业服务
Java 11 及以上可直接使用 java.net.http.HttpClient。创建 HttpRequest 时设置 URI 为接口地址,添加 Authorization 与 Content-Type 请求头,并用 BodyPublishers.ofString(json) 发送 JSON 字符串。使用 HttpResponse.BodyHandlers.ofString() 获取结果后,再用团队现有的 Jackson 或 Gson 解析 choices 字段即可。
在 Spring Boot 中,不要为每次请求新建 HttpClient;将其作为单例 Bean,并配置连接超时和线程池。若接口要返回给浏览器,建议由后端统一清洗模型输出、限制最大输入长度,并为单个用户设置配额。需要实时展示生成过程时,在确认控制台所选模型支持后,将请求中的 stream 设为 true,并按服务端事件逐段转发。
上线检查与模型切换策略
- 用一条固定测试提示词分别验证 Go、Rust、Java 的鉴权、响应解析和 Unicode 中文处理。
- 将模型 ID、temperature、最大输出长度放在环境配置中,避免硬编码。
- 为超时、429、5xx、空 choices 和 JSON 解析失败分别建立监控指标。
- 先用低成本模型处理高频任务,再根据失败率或人工评分升级到高质量模型。
- 若使用 Claude Code、Codex 或任意 OpenAI SDK,可按其配置文档将 Base URL 指向 59API 的兼容地址,并使用同一把 API Key。
完成这套封装后,三种语言的业务层只需传入提示词和模型配置,就能获得一致的调用体验。想以较低成本验证多模型工作流,可以注册 59API,先用小流量压测确认适合自己业务的模型组合。
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