智慧體課程文件
為何使用 smolagents
並獲得增強的文件體驗
開始使用
為何使用 smolagents
在本模組中,我們將探討使用 smolagents 的優缺點,幫助您明智地決定它是否是適合您需求的框架。
什麼是 smolagents?
smolagents
是一個簡單而強大的用於構建 AI Agent 的框架。它為大語言模型 (LLM) 提供了與現實世界互動的 自主性,例如搜尋或生成影像。
正如我們在第一單元中學到的,AI Agent 是使用 LLM 根據 “觀察” 來生成 “思考”,從而執行 “動作” 的程式。讓我們來探討一下這在 smolagents 中是如何實現的。
smolagents 的主要優勢
- 簡潔性: 最小化的程式碼複雜度和抽象,使框架易於理解、採用和擴充套件。
- 靈活的 LLM 支援: 透過與 Hugging Face 工具和外部 API 整合,可與任何 LLM 配合使用。
- 程式碼優先的方法: 對直接用程式碼編寫動作的 Code Agent 提供一流支援,無需解析並簡化了工具呼叫。
- HF Hub 整合: 與 Hugging Face Hub 無縫整合,允許將 Gradio Spaces 用作工具。
何時使用 smolagents?
考慮到這些優勢,我們應該在什麼時候選擇 smolagents 而不是其他框架呢?
smolagents 是以下情況的理想選擇
- 您需要一個 輕量級且極簡的解決方案。
- 您想 快速進行實驗,而不需要複雜的配置。
- 您的 應用程式邏輯簡單明瞭。
程式碼動作 vs. JSON 動作
與其他 Agent 用 JSON 編寫動作的框架不同,smolagents
專注於用程式碼進行工具呼叫,從而簡化了執行過程。這是因為不需要解析 JSON 來構建呼叫工具的程式碼:輸出可以直接執行。
下圖說明了這種差異
要回顧程式碼動作與 JSON 動作之間的區別,您可以重新訪問 第一單元中的“動作”部分。
smolagents 中的 Agent 型別
smolagents
中的 Agent 以 多步 Agent 的形式運作。
每個 MultiStepAgent
執行
- 一次思考
- 一次工具呼叫和執行
除了使用 CodeAgent 作為主要 Agent 型別外,smolagents 還支援 ToolCallingAgent,後者用 JSON 編寫工具呼叫。
我們將在接下來的部分中更詳細地探討每種 Agent 型別。
@tool
裝飾器或 Tool
類來定義。smolagents 中的模型整合
smolagents
支援靈活的 LLM 整合,允許您使用任何滿足 特定標準 的可呼叫模型。該框架提供了幾個預定義的類來簡化模型連線
- TransformersModel: 實現本地
transformers
流水線以實現無縫整合。 - InferenceClientModel: 透過 Hugging Face 的基礎設施 或越來越多的 第三方推理提供商 支援無伺服器推理呼叫。
- LiteLLMModel: 利用 LiteLLM 實現輕量級模型互動。
- OpenAIServerModel: 連線到任何提供 OpenAI API 介面的服務。
- AzureOpenAIServerModel: 支援與任何 Azure OpenAI 部署整合。
這種靈活性確保開發人員可以選擇最適合其特定用例的模型和服務,並便於進行實驗。
現在我們瞭解了為何以及何時使用 smolagents,讓我們更深入地探索這個強大的庫吧!
資源
- smolagents 部落格 - smolagents 和程式碼互動簡介