魔法哥的新书 《AI 辅助编程入门》 已经上架了!前几期文章节选了书中的部分章节,分享 LLM 应用开发的实战经验,包括 如何选择模型、如何打磨系统提示词 等话题。今天我们继续探讨 LLM API 的进阶用法!
配置 LLM API 的参数
在本书第九章的案例中,我们对于 OpenAI SDK 的使用是比较初级的。实际上在 OpenAI 的 “对话式文本补全” API 协议中,提供了相当丰富的参数,可以更加精细地控制模型的输出行为。这里介绍其中比较常用的几项:
-
temperature
:温度参数,用于控制模型生成文本的随机性。温度越高,生成的文本越随机、越发散;温度越低,生成的文本越保守、越集中。比如在创意生成的场景下,可以尝试适当调高这个参数。不同模型对温度参数的范围设定和默认值设定各不相同,建议你查询模型的官方文档。 -
top_p
:这个参数也可以在一定程度上影响生成文本的随机性,但不建议与温度参数同时使用。Top-p 参数的取值介于 0 和 1 之间,数值越大,生成的文本越随机。 -
stream
:是否开启流式输出模式。对于第九章的案例来说,这个模式并不适用;但对于对话场景来说,流式输出能力就至关重要了。我们将在第十章的案例(网页版智能对话机器人)中详细探讨这个模式的运用。 -
n
:当前请求几条生成结果。对于对话场景,这个参数通常就取默认值 1,因为我们只需要一条回复;但在创意生成等场景下,你可能希望一次得到多个结果。 -
response_format
:如果把这个参数设置为{ "type": "json_object" }
,可以限制模型只能输出 JSON 格式的文本。当我们需要进一步处理模型输出的数据时,这个功能就十分有用了。为了达到理想的输出效果,建议在提示词中强调这个要求并提供示例。 -
max_tokens
:最大 token 数,用于控制模型生成文本的长度。模型在输出内容的过程中,在达到这个数值时会被强制截断。有时可以用来避免模型的异常输出消耗不必要的成本。有些模型对这个参数设置的默认值较小,容易导致意外截断,因此建议你根据自己的业务需要设置一个合理的数值。 -
tools
和tool_choice
:要求模型进入 “工具选择” 模式,这个功能的前身叫做 “Function Call”。在这种模式下,模型将从预设的工具列表中选择最合适的工具来处理用户的请求。在开发复杂的 AI Agent 时,这个功能往往可以发挥关键性的作用。不过需要注意的是,不是所有的大模型都完整兼容这个功能。
在实际应用中,我们可以根据业务需求来灵活配置这些参数,以获得更好的效果。同时也建议你有空的时候完整阅读 OpenAI 或你所用模型的 API 文档,这对于我们提升自己的 LLM 运用能力会有很大的帮助。
探究 API 的返回数据
我们在调用大模型的 “对话式文本补全” API 时,往往只提取了返回数据中的 choices[0].message.content
字段。其实完整数据中包含了很多有意义的信息,可以帮助我们进一步了解模型的工作机制。以下是一份典型的 GPT API 返回数据,我们来详细看一看:
{
"id": "chatcmpl-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"object": "chat.completion",
"created": 1709163054,
"model": "gpt-4o-2024-05-13",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "..."
},
"logprobs": null,
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 10,
"completion_tokens": 61,
"total_tokens": 71
},
"system_fingerprint": "fp_xxxxxxxxxx"
}
你需要了解的部分字段如下:
-
id
:这是当前请求的唯一标识符,记录日志和排查故障的时候可能会用到它。 -
model
:当前使用的具体模型名称。它和我们在调用 API 时传递的model
参数可能是不一致的。比如当我们只是宽泛地指定"gpt-4o"
时,API 会返回当前所用模型的精确版本"gpt-4o-2024-05-13"
。 -
choices
:这是一个列表,每个元素代表一条输出结果。输出条数是由我们在调用 API 时传递的n
参数决定的。 -
finish_reason
:如果当前输出内容是正常结束的,这个字段的值会是"stop"
;如果因为上下文长度限制而结束,它的值会是"length"
;如果当前输出处于 “工具选择” 模式,它的值会是"tool_calls"
。 -
usage
:这个字段包含了当前请求的 token 使用情况。prompt_tokens
表示所有我们在调用 API 时通过messages
字段输入给模型的 token 总数;completion_tokens
表示模型输出的 token 数;total_tokens
表示前面两者的总和。你可以通过这些信息来计算本次调用的成本。
顺便一提,大模型 API 在流式输出模式下,返回的数据结构会有所不同。我们将在第十章详细探讨这个话题。
小结
在本期文章里,我们探讨了 LLM API 的进阶用法,更深入地分析了 API 参数和返回数据。这些知识可以帮助我们更好地理解模型的工作机制、开发出更优质的 LLM 应用。相信会对你有所帮助!
魔法哥最近一年都在做 AI 领域的研发和探索,还有更多心得与你分享。各位新朋友请点关注,下次更新不迷路。
如果你希望 借助 AI 编程工具,快速掌握 LLM 应用开发技能,在 AI 时代抢占先机,请务必拿下魔法哥的这本新书!目前正遇上双十一,正是入手的好时机。
【放不了二维码,大家自行到某东搜索吧】
如果你想收藏一本魔法哥亲笔签名的纸质书,长按识别下图的小程序码,即可下单。选择 “豪华版” 还可以定制赠言哦!【同样放不了二维码,有需要的同学请私信吧】
祝阅读愉快!
🔥 往期推荐
AI 应用开发指南:
- LLM 应用开发技巧:如何选择模型? | 如何打磨系统提示词?
- 扒一扒 OpenAI o1 系列模型:为什么这么强? | 对开发者有何影响?
- 我竟然找到了白嫖 GPT-4o API 的方法!亲测可用,不看血亏!
- Kimi API 还没用起来?请看这篇无门槛快速入门指南
ChatGPT 高级技巧:
- ChatGPT 网页版崩了?魔法哥写个用户脚本来修复
- 买了 ChatGPT 会员却没用过 “代码解释器”?亏了,快看这三个案例
- ChatGPT 定制化进阶:四步成为 AI 对话高手
- GPTs 商店开张,坐等赚钱之际,别忘了做好防盗工作
AI 资讯与评述:
- 动动嘴就能写代码?用语音指挥 AI 编程助手,这体验绝了!
- 全面升级!GPT-4o 第一时间体验、疑问解答、福利揭秘
- 答应我!这个周末啃下微软认证 AI 证书,亮瞎众人
- 慢着,你用 AI 生成的作品,版权归你吗?
© Creative Commons BY-NC-ND 4.0