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使用指南,幫助其快速整合到實際應用中。