
把 Hello 换成自己的任务,先找到输入文字所在的位置
你已经照着 AIGoCode 快速开始发出第一次请求,现在想把问候语换成“请把这段发布说明整理成三条摘要”。这一步最容易混淆的地方,是三种协议没有使用完全相同的请求体。
本文只处理一个具体任务:沿用官方的单轮纯文本示例,把测试文字替换成自己的输入。这里不扩展到图片、工具调用或多轮对话,也不把一种协议的字段照搬到另一种协议。
OpenAI Compatible:修改 messages 里的 content
官方 OpenAI Compatible 示例把用户输入放在 messages 数组的一条消息里,消息具有 role 和 content 两个字段,示例中的 role 是 user,content 是 Hello from AIGoCode!。
修改时保留 messages 的数组结构和这条消息的 role,只把 content 的字符串改成你的任务。例如可以改为“请把下面的发布说明整理成三条摘要:修复登录重定向,新增工单附件预览,调整帮助入口”。这是一段建议输入,不是已经执行过的测试结果。
先只替换这一处文字,沿用原示例的其余设置。这样如果结果与预期不同,至少能清楚知道本次改动发生在输入内容,而不是同时修改模型、认证和地址。本文不再重复这几项配置;需要核对模型时,可以接着读本站的三种协议示例模型与检查顺序。
Claude Messages:也有 messages,但不要据此混用整份请求
Claude Messages 的官方纯文本示例同样使用 messages 数组,消息里也是 role 为 user、content 为问候语。替换业务输入时,改的仍是这条消息的 content。
但这只是本文所用的单轮纯文本示例在输入位置上相似。Claude 的同一份示例还包含 max_tokens,取值为 512。这里的 512 是文档示例里的参数值,不能据此推断账号额度、模型的最大能力或所有任务都适用的设置。
实操时从 Claude Messages 的完整示例开始修改,别因为看到了相同的 messages 字段,就复制 OpenAI 的整份请求替换它。本文只核对这两份官方示例的输入结构,不声称其他字段可以互换。
Gemini:沿 contents、parts 找到 text
Gemini generateContent 的官方示例使用另一层结构:外层是 contents 数组,其中一个对象包含 parts 数组,文字位于 parts 内部对象的 text 字段。对应这份单轮示例,路径可记为 contents[0].parts[0].text。
你要替换的是这里的 Hello from AIGoCode!。不要为了统一代码写法,把这个位置直接改名为 messages 或 content;如果你的业务需要一个共同的输入入口,可以先在自己的程序里保留一个普通字符串,再由各协议的请求构造逻辑把它放到各自的位置。这是组织应用代码的建议,不是 AIGoCode 额外提供的转换功能。
Gemini 示例中还有 generationConfig 下的 thinkingConfig,里面列出 thinkingBudget 和 includeThoughts。第一次替换业务文本时,可以先沿用示例,不要顺手把嵌套层级也改掉。本文不根据这份示例推断其他模型的思考参数支持情况。
发送前,检查你改的是请求内容
可以按下面的顺序做一次本地核对:
- 确认使用的是哪一种协议的完整示例,保留它原有的结构。
- OpenAI 和 Claude 的这两份纯文本示例,检查 messages 里的 content;Gemini 则检查 contents、parts、text 这三层。
- 确认输入仍是合法 JSON 字符串。业务文字包含双引号或换行时,建议交给所用语言的 JSON 序列化方法处理,避免手工拼接后破坏结构。
- 在自己的运行环境发出请求,再检查返回内容是否回应了你的任务。本文没有代你发起业务请求,也不承诺固定回复。
输入位置和输出位置也要分开。请求里的 content 或 text 是你发给模型的文字;收到响应后,应按对应协议读取回复。如果已收到 JSON 却无法显示文字,再看API 有返回却不显示文字:三种响应结构怎么读。本篇停在请求体改写这一步,不把响应解析问题混进来。