AI API 参数怎么设置?一次读懂 temperature、max_tokens 与 top_p
用简单示例讲清 AI API 中 temperature、top_p 和 max_tokens 的作用、常见误区与不同任务的起始配置。
AI API 参数怎么设置?一次读懂 temperature、max_tokens 与 top_p
调用 AI API 时,模型名称和密钥只是基础配置,temperature、max_tokens(部分接口也叫 max_completion_tokens)和 top_p 会直接影响回答的长度、稳定性和随机性。参数并不是越大越好,应该先根据任务类型设置一组保守值,再用固定测试问题比较结果。
先区分三个参数
| 参数 | 主要作用 | 调大后的常见变化 |
|---|---|---|
temperature | 控制采样随机性 | 表达更发散,但结果可能不稳定 |
top_p | 限制候选 Token 的累计概率范围 | 候选范围变化,影响多样性 |
max_tokens | 限制本次最多生成的 Token 数 | 允许输出更长,但成本和延迟可能上升 |
不同模型和中转站对参数名称、范围和默认值的支持不完全相同。遇到 400 错误时,先查看服务商的模型参数说明,不要把一个模型的配置原样复制给所有模型。
temperature 怎么设
需要稳定格式的任务,例如分类、摘要、提取字段和代码生成,可以从 0~0.3 开始。需要广告文案、头脑风暴或多种改写时,可以逐步提高到 0.7~1.0,但要用多组输入检查事实一致性。temperature 只影响采样倾向,不会自动提高事实准确率,也不能替代提示词中的格式约束。
{
"model": "你的模型ID",
"messages": [{"role": "user", "content": "把下面内容提取成三条要点"}],
"temperature": 0.2,
"max_tokens": 500
}
同一请求不要同时频繁调整多个变量,否则很难知道结果变化来自哪里。建议先固定提示词和 max_tokens,只比较不同 temperature 的输出。
top_p 不要和 temperature 一起乱调
top_p 是核采样参数,模型会在累计概率达到该值的候选 Token 中选择。较低的值通常让输出更集中,较高的值保留更多候选。它和 temperature 都会改变随机性,调试时通常只选一个作为主要控制项:要么固定 top_p=1 调 temperature,要么固定 temperature 调 top_p。
如果中转站不支持 top_p,不要因为参数被忽略就反复重试;先删除该字段,使用服务商明确支持的参数。参数被忽略、自动截断或返回 400,都应记录在测试结果中。
max_tokens 如何估算
max_tokens 是输出上限,不是保证输出长度。设置太小会导致回答被截断,设置太大则可能增加等待时间或触发余额、上下文窗口限制。估算时要同时考虑输入 Token、输出上限和模型的上下文窗口:
输入 Token + max_tokens <= 模型上下文上限
长文档、代码和图片请求还要预留系统提示词、工具调用参数和历史消息的空间。出现 length、max_tokens 或上下文超限错误时,先减少历史消息和输出上限,再确认模型文档中的参数名称。
按任务给出起始配置
- 信息抽取、JSON:
temperature=0~0.2,输出上限按字段数量估算,并配合 Schema 或严格格式校验; - 普通问答:
temperature=0.3~0.7,给出足够的输出空间; - 创意写作:
temperature=0.7~1.0,仍要设置最大长度和敏感内容检查; - 代码生成:先用较低 temperature,限制输出长度,编译或测试通过后再继续修改。
这些只是测试起点,不是所有模型的官方推荐。记录模型 ID、参数、输入摘要、响应状态、Token 用量和是否截断,才能做出可复现的比较。
上线前检查清单
- 确认当前模型实际支持哪些字段和取值范围;
- 一次只调整一个采样参数;
- 给
max_tokens留出上下文窗口余量; - 对 JSON、代码和关键业务结果增加解析或测试校验;
- 记录参数和 Token 用量,但不要记录 API Key 与敏感原文;
- 以服务商当前模型文档为准,避免使用已废弃字段。
参数调优的目标是让结果在成本、速度和稳定性之间达到平衡,而不是追求某个固定数字。不同 API 中转站可能会修改默认值或限制字段,实际调用前应先用最短测试请求验证。