Ollama Python Library 0.4 Release Notes
Ollama Python library 0.4 讓開發者可以直接將 Python 函數作為 LLM 的工具提供,無需再手動定義 JSON schema。此更新簡化了將外部能力(例如數學運算或 API 請求)整合到模型工作流中的過程。
Direct Python Function Integration as Tools
開發者現在可以將實際的 Python 函數引用傳遞到 ollama.chat 方法的 tools 欄位中。這使得模型能夠根據使用者的提示要求執行特定的函數。
Implementation Workflow
將函數整合為工具遵循以下三個步驟:
- Function Definition: 定義一個標準的 Python 函數。為了獲得最佳的模型性能,開發者應標註參數和回傳值的類型,並包含 Google 風格的 docstrings 以提供模型所需的上下文資訊。
- Passing the Tool: 在呼叫
ollama.chat時,將函數引用包含在tools列表中。 - Execution: 遍歷
response.message.tool_calls以識別所要求的函數並使用模型提供的參數來執行它。
Support for External Libraries
此功能可擴展到現有的 Python 函式庫和 SDK。例如,requests 函式庫中的 request 函數可以作為工具傳遞,讓模型能夠觸發 HTTP 請求以獲取外部網頁內容。
Automated JSON Schema Generation
Ollama Python library 0.4 自動化了模型所需的工具定義的建立過程。在此之前,這些 JSON schema 必須手動提供。
該函式庫現在利用 Pydantic 和 docstring parsing 從 Python 函數的簽名和文件說明中自動生成 JSON schema。此過程會提取函數名稱、描述和參數類型(例如,將 Python 的 int 映射到 JSON 的 integer),以建立一個有效的工具定義供 LLM 使用。
Additional Library Enhancements
除了函數呼叫的改進之外,0.4 版本還引入了以下更新:
- Full Typing Support: 該函式庫現在具備全面的類型支援,可以在保留與現有功能向後相容性的同時,實現直接的物件存取。
- Updated Examples: 在 Ollama Python 官方 GitHub 儲存庫中提供了全新且更新過的實作範例。
Sources
相關
- Dispatch
- Dispatch
- 專案
- Dispatch
- Dispatch