| |
以上其实就是一个标准的Open AI的API调用代码, 其中的重要参数我们也能发现有很多。
**base_url:**模型服务器地址。
在各种智能体框架和低代码平台中,都会要求配置此参数以指定请求发送到哪个模型服务器。
格式说明:
完整的 API 接口路径通常是:https://域名地址(或者ip+port)/v1/chat/completions
但是大多数智能体框架(如 LangChain、Autogen等等)默认会拼接 /chat/completions,因此我们只需配置到:**https://域名地址/v1/ **即可。
而在我们课程中用的最多的SpringAI,他不太一样的点就是,他默认拼接的是:/v1/chat/completions。所以在SpringAI框架中的配置是只到v1之前。
常见模型的base_url:
- **Chatgpt:**https://api.openai.com/v1
- **通义千问:**https://dashscope.aliyuncs.com/compatible-openai/v1
- **DeepSeek:**https://api.deepseek.com/v1
- **本地模型:**http://<IP地址或域名>:<端口号>/v1 (如ollama:http://localhost:11434/v1)
| 参数名称 | 是否必填 | 数据类型 | 作用 | 参数说明 |
|---|---|---|---|---|
| api_key | 必填 | String | 身份验证 | 在 HTTP 请求头 (Authorization: Bearer ) 中设置,用于验证身份信息、授权访问、计费等。 |
| model | 必填 | String | 指定模型 | 确定使用哪一个具体的大模型(如 qwen-plus)。 |
| messages | 必填 | Array | 消息列表 | 传递给模型的对话历史或指令。包含 role(角色:system、user、assistant)和 content(内容)。 |
| temperature | 非必填 | Float | 温度系数 | 0.0 到 2.0 (部分模型是0.0-1.0)。控制大模型输出的随机程度。低值更稳定,高值更随机。 高多样性(示例 temperature=0.9):适用于需要创意、想象力和新颖表达的场景,如创意写作、头脑风暴或市场营销文案。高确定性(示例 temperature=0.1):适用于要求内容准确、严谨和可预测的场景,如事实问答、代码生成或法律文本。通常建议默认0.7即可。 |
| top_p | 非必填 | Float | 核采样 | 与温度系数类似(但算法不同),0.0 到 1.0 。 控制大模型输出的随机程度。低值更稳定,高值更随机。 高值的输出不会像温度系数那么极端。通常不要与温度系数同时调整,只需调整其中之一即可。 |
| max_tokens | 非必填 | Integer | 模型最大输出长度 | 限定模型单次响应可以生成的最大 Token 数量,影响大模型的回复长度。 |
| n | 非必填 | Integer | 生成次数 | 请求 API 为给定的 Prompt 生成 n 个不同的回应。 |
| stream | 非必填 | Boolean | 流式输出 | 默认为false,如果设置为 true,模型会流式返回 Token,而不是等待整个回复生成完毕。非常重要,用于提升用户体验。 |
| stop | 非必填 | String/Array | 停止标记 | 字符串或字符串列表。模型一旦生成列表中的任一字符串,就会立即停止生成。 |
| presence_penalty | 非必填 | Float | 出现惩罚 | -2.0 到 2.0。 较高的正值:鼓励模型引入新话题和新词汇,生成的文本会更加多样化。 较低的负值:减少新话题的引入,生成的文本会更加集中和一致。 |
| frequency_penalty | 非必填 | Float | 频率惩罚 | -2.0 到 2.0。 较高的正值:减少重复词语的出现,生成的文本会更加多样化。 较低的负值:增加重复词语的出现,生成的文本会更加一致和连贯。 |
| seed | 非必填 | Integer | 复现性种子 | 如果设置,有助于在多次调用中复现相同的输出,提高结果的可预测性(并非 100% 保证)。 |
以上就是OpenAI API的全部入参字段,加粗标记的就是正常我们使用的最多的标准字段,其他字段基本可以不用设置,因为设置的不好就非常可能会导致模型输出的不确定性,使用默认值即可。