Skip to Content
GGPU API文本对话

文本对话

使用 /v1/chat/completions 完成同步文本生成,从最小消息开始,再按业务需要增加上下文与生成参数。

同步请求适合等待完整结果后再继续处理的场景。需要边生成边展示时,请改用 流式响应。

最小请求

curl -X POST "${BASE_API_URI}/v1/chat/completions" \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer <access-credential-secret>' \ -d '{ "model": "qwen-plus", "messages": [ { "role": "user", "content": "用一句话介绍GGPU API。" } ] }'

这个请求只保留两个必填信息:model 决定调用哪个模型,messages 描述本轮输入。确认最小请求成功后,再增加可选参数。

组织 messages

messages 是按先后顺序排列的消息列表。每条消息由 role 和 content 组成:

角色表达什么常见用法
system整体行为与约束设定回答风格、任务边界或输出要求
user用户当前输入提问、指令或待处理内容
assistant模型此前回复在多轮对话中还原必要上下文
[ { "role": "system", "content": "你是产品支持助手,回答保持准确、简洁。" }, { "role": "user", "content": "如何判断一次 API 调用成功?" } ]

多轮对话需要由客户端保存并重新发送必要历史。只保留与当前任务相关的消息,避免无关上下文持续增长。

控制生成结果

字段是否必填作用使用建议
model是指定模型名称使用当前账号可用的准确模型 ID
messages是提供对话输入和上下文按真实对话顺序传入
temperature否调整结果的随机性先使用默认值,再通过样例评估后调整
max_tokens否限制最大输出长度结合业务输出长度和模型能力设置
stream否决定是否流式返回同步请求省略或设为 false

例如,在最小请求验证通过后增加生成参数:

{ "temperature": 0.7, "max_tokens": 512 }

读取返回结果

{ "id": "chatcmpl_xxx", "object": "chat.completion", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "GGPU API 是一个统一的模型调用入口。" }, "finish_reason": "stop" } ], "usage": { "prompt_tokens": 20, "completion_tokens": 18, "total_tokens": 38 } }

客户端通常按以下顺序处理:

  1. HTTP 状态码不是 2xx 时,进入错误分支并保存响应信息。
  2. 成功时先确认 choices 非空,再读取 choices[0].message.content。
  3. 记录 finish_reason,判断生成是否按预期结束。
  4. 响应包含 usage 时,记录输入、输出与总 Token 用量,便于核对成本。

不要假设每次成功响应都一定有可展示文本。客户端仍需处理空结果、字段缺失和模型返回差异,避免直接解引用导致业务报错。

从调试到生产

阶段重点
首次调试只发送一条 user 消息,确认地址、鉴权和模型都正确
提示词验证固定测试样例,对比参数变化是否改善结果
多轮接入明确由谁保存历史、保留多少消息、何时开启新会话
生产运行设置超时,记录请求 ID、模型、状态码与耗时,并分类处理错误

继续接入