GLM-5.2 OpenAI兼容API:推理努力、函数调用和长上下文检索的实践指南
本教程提供了使用GLM-5.2的OpenAI兼容API的实用步骤,涵盖设置客户端、控制推理努力、流式推理、函数调用、多步骤工具代理、结构化JSON输出、长上下文检索和成本估算。通过可复用的聊天包装器和多个提供商选项,读者可以快速上手并测试模型的高级功能。
在本教程中,我们将使用GLM-5.2模型的托管OpenAI兼容API,而不是在本地运行完整模型。我们首先设置多个提供商选项,安全加载API密钥,并创建一个可复用的聊天包装器,支持普通聊天、思考模式、流式输出、工具调用和令牌跟踪。然后,我们超越简单的聊天机器人示例,在实际场景中测试模型,包括推理努力控制、流式推理和答案、函数调用、小型工具使用代理、结构化JSON输出、长上下文检索和成本估算。
首先,我们安装必要的库并定义提供商配置。本教程支持ZAI、OpenRouter、Together、Requesty和Hugging Face等多个提供商,默认使用ZAI。我们编写一个函数安全加载API密钥,优先从环境变量或Colab用户数据获取,否则提示输入。然后,我们创建OpenAI客户端,并设置一个全局令牌使用跟踪器,记录输入和输出令牌数量及调用次数。此外,我们定义了一个函数来提取GLM模型的隐藏推理痕迹,这在流式响应中特别有用。最后,我们编写一个可复用的聊天函数,通过extra_body参数传递GLM特定参数,如思考模式开关和推理努力级别。
接下来,我们进行基本聊天测试,验证模型是否正常工作。我们使用关闭思考模式进行简单问答,确认模型能够生成简洁的技术回答。然后,我们测试推理努力控制功能,对同一个问题分别使用关闭思考、高推理努力和最大推理努力模式,观察响应时间和输出令牌数量的差异。结果显示,关闭思考模式速度最快但可能缺乏深度,而最大努力模式虽然耗时较长,但能提供更详细的推理步骤。流式演示中,我们分别展示推理通道和答案通道的输出,让用户实时看到模型的思考过程和最终答案。
函数调用是GLM-5.2的重要特性。我们定义了两个简单工具:一个计算器(支持基本算术运算)和一个城市人口查询工具(返回预设的城市人口数据)。然后,我们按照OpenAI工具调用格式注册这些工具,并创建一个工具循环函数,让模型能够通过多个步骤调用工具并整合结果。在演示中,模型成功使用工具计算东京和墨西哥城的人口比例,以及排名东京、德里和上海的人口并计算前两名城市的总人口。这展示了模型在多步骤推理和工具使用方面的能力。
我们还展示了结构化JSON输出和长上下文检索功能。虽然代码部分被截断,但教程强调了通过参数实现JSON模式输出,以及利用GLM-5.2的超长上下文窗口(最多128K令牌)处理大型文档。最后,我们计算了整个会话的令牌使用情况和成本,确保每个演示都是可量化的。本教程为开发者提供了完整的GLM-5.2 API使用指南,帮助其快速集成到实际应用中。