大数跨境

我在 WorkBuddy 中接入 GPT-6.1 Terra,没想到。。。

我在 WorkBuddy 中接入 GPT-6.1 Terra,没想到。。。 AINLP
2026-11-03
1
导读:WorkBuddy+GPT-6.1 Terra

事情的起因是这样的,前几天,OpenAI 给 Pro 账号发 API 福利,我领了 128美刀的额度:Pro 账号可以去 OpenAI 领钱了


实话实说,我的 Codex 套餐目前足够使用的,这笔每个月发放的API 额度福利我还没有想好怎么用。刚好一个朋友留言说接入 WorkBuddy 总是失败:


我估计他填的是 OpenAI 官方的 api url,这个国内是不通的:

https://api.openai.com/v1/chat/completions

以前在 gpt-4o-mini 时代,我用过官方的 API,当时还在一台海外 vps 上通过nginx做了一个转发,现在还在,配置大概是这样的:


所以我觉得就是一个转发的问题。于是在 OpenAI 平台上,单独为 WorkBuddy 创建了一个测试用的 API Key:


然后打开 WorkBuddy,选择设置:


点击模型:


选择自定义模型:


然后添加模型:


我在接口地址填了自己之前设置的转发url,在模型名称中填了OpenAI 最新的 gpt-6.1-terra,点击保存:


没想到的是,WorkBuddy 提示“连接失败”,原本只是以为打通这个连接的问题,却一下子复杂了?

不过我还有 Codex,把剩下的事情交给 Codex,Codex 一通检查,定位出原因,大概是 WorkBuddy 发的这个 max_tokens 参数 gpt-6.1-terra 不支持:


而目前这个参数能支持的 GPT 模型大概是 gpt-4.1 这一代:


我试着填了一下gpt-4.1,确实显示可以连接成功,但是这个不是我需要的,所以让 Codex自己找解决方案并部署。

让 LiteLLM 处理接口差异

Codex 最终选择了 LiteLLM 的方案并直接帮我部署测试,以下是 Codex 写的总结。

OpenAI 的 Terra 文档明确写了,工具调用需要走 Responses API。WorkBuddy 这边使用的却是 Chat Completions 形式的消息和工具协议。

我选择了 LiteLLM 的 Chat Completions 到 Responses 桥接。它对客户端保留熟悉的请求方式,在上游调用 Responses API,再把结果转换回来。实际链路是:

WorkBuddy
  → 自己的 HTTPS 网关
  → LiteLLM 的 Chat Completions 接口
  → OpenAI Responses API

Nginx 负责 HTTPS 与路径转发;消息、参数、工具调用和流式回包的适配交给 LiteLLM。只换一个反向代理地址,不会自动完成这些转换。

使用 LiteLLM 1.106.6,路由的核心配置如下。这里仅列模型路由,鉴权和对外入口另行配置:

model_list:
  - model_name: gpt-6.1-terra
    litellm_params:
      model: openai/responses/gpt-6.1-terra
      api_key: os.environ/OPENAI_API_KEY
      reasoning_effort: none
      store: false
      num_retries: 0
      allowed_openai_params: [tool_choice]

model_name 是 WorkBuddy 看到的名字,openai/responses/ 则明确指定上游走 Responses。OpenAI Key 从服务器环境中读取,不写进这份配置示例,也不发给客户端。

tool_choice 是另一个实际踩到的点:普通对话已经能返回,到了工具测试,LiteLLM 的能力检查仍然拒绝这个参数。对这条已经确认的 Responses 路由显式允许它后,剩余工具测试才继续通过。

这次先用 reasoning_effort: none 跑通兼容链路,保留零自动重试,方便看清每个请求发生了什么。

连接按钮通过以后,我继续检查了普通对话、多轮上下文、流式工具调用,以及工具结果返回后模型能否接着回答。这几步都通过,才把它放进 WorkBuddy 的真实工作区。

文件验收刻意做得很小。准备一个 fixture.txt:

red
identifier=7319

给 WorkBuddy 的要求是:读取这个文件,把第一行改成 blue,第二行保持不变,写入 result.txt,然后重新读取新文件核对。只在测试工作区操作,不联网,不动其他目录,不改原文件和应用设置。

它在十几秒内完成了任务,回读内容是:

blue
identifier=7319

原来的 fixture.txt 没有变化。截图里还能看到这次会话使用的 gpt-6.1-terra 模型标签;服务端同期也有对应的模型请求记录。

这个任务很简单,却能检查几件聊天窗口里看不出来的事:模型提出工具调用后,客户端有没有执行;工具结果有没有正确回传;拿到结果以后,模型能不能继续完成写入与回读。文件内容可以直接比较,也不用凭一句“已经完成”判断成功。

验证之后,我保留原来的转发,给 WorkBuddy 增加了一个独立入口。LiteLLM 只监听服务器本机,由 Nginx 提供 HTTPS 访问。

WorkBuddy 自定义模型里最终填写的是下面这三项。地址是示例,需要换成自己部署的网关:

模型 ID:gpt-6.1-terra
接口地址:https://gateway.example.com/workbuddy/v1/chat/completions
API Key:单独签发给 WorkBuddy 的网关访问凭证

这里的客户端凭证和真正的 OpenAI Key 分开管理。网关只允许调用指定模型,客户端不能通过请求参数改上游地址、塞入另一把 Key,或者覆盖上游请求头。对原始输入的检查放在认证阶段,避免只在较晚的回调里检查而漏掉其他处理分支。

最后

重新接手 WorkBuddy 后,我看了一下它在 WorkBuddy 中的配置:


然后简单聊了几句:


由于本文中一些截图有我私人用的地址,所以我让它帮我做了一个图片模糊化的工具:


它一开始帮我做了一个 web 版,由于这个工具我可能会经常用到,所以让它做成一个mac上用的小工具:


但是第一版有问题:


又修复了一下,可以用了,本文中所有模糊文字的图片基本都是这个工具操作的。

整个过程大概就是这样的,不清楚是否走歪了,大家如果有好的经验欢迎分享。

参考链接

  • OpenAI GPT-6.1 Terra 模型文档:https://developers.openai.com/api/docs/models/gpt-6.1-terra
  • LiteLLM OpenAI 与 Responses 桥接文档:https://docs.litellm.ai/docs/providers/openai

【声明】内容源于网络
0
0
AINLP
一个有趣有AI的自然语言处理公众号:关注AI、NLP、大模型LLM、机器学习、推荐系统、计算广告等相关技术。公众号可直接对话双语聊天机器人,尝试对对联、作诗机、藏头诗生成器、自动写作等,查询相似词,测试NLP相关工具包。
内容 6099
粉丝 0
AINLP 一个有趣有AI的自然语言处理公众号:关注AI、NLP、大模型LLM、机器学习、推荐系统、计算广告等相关技术。公众号可直接对话双语聊天机器人,尝试对对联、作诗机、藏头诗生成器、自动写作等,查询相似词,测试NLP相关工具包。
总阅读38.8k
粉丝0
内容6.1k