首頁 > 科技週邊 > 人工智慧 > 使用Smolagents為AI代理構建自定義工具

使用Smolagents為AI代理構建自定義工具

Lisa Kudrow
發布: 2025-03-21 11:17:10
原創
197 人瀏覽過

LLM正在徹底改變各個領域,超越基於Web的聊天機器人,將其集成到企業和政府中。一個重大進步是使用smolagents為AI代理創建自定義工具,從而擴大其功能。 smolagents賦予了AI代理的能力,可以利用工具,在定義的環境中執行操作,甚至與其他代理進行交互。

這種方法增強了LLM驅動的AI Systems的自主權,從而提高了其可靠性,以完成端到端任務執行。

學習目標

  • 了解AI代理,與傳統LLM的區別以及使用自定義工具在現代AI應用中的作用。
  • 探索為什麼AI代理需要自定義工具以實時數據訪問,操作執行和改進的決策。
  • 在使用smolagents用於現實世界中的Smolagents集成和部署AI代理方面,獲得實踐經驗。
  • 學會創建和集成使用smolagents增強AI代理功能的自定義工具。
  • 使用您的自定義工具,掌握託管和與AI代理進行互動,創建更具交互性和智能的聊天機器人體驗。

*本文是***數據科學博客馬拉鬆的一部分。

目錄

  • 先決條件
  • 了解生成AI中的代理
  • 代理工作流程
  • AI代理的組件
  • 工具的必要性
  • smolagents
  • 我們的代碼庫
  • 構建我們的第一個工具
  • 最後一步:部署
  • 概括
  • 常見問題

先決條件

該教程針對熟悉基本LLM的中級開發人員和數據專業人員。假定以下內容:

  • 中級Python編程技能。
  • 代碼中的基本LLM使用情況。
  • 熟悉Genai生態系統。
  • 對Python的擁抱面平台和transformers圖書館的基本了解。

最佳學習的進一步推薦背景:

  • 具有LLM圖書館或Ollama等LLM圖書館的經驗。
  • 基本的機器學習理論知識。
  • API使用和解決問題的API響應。

了解生成AI中的代理

考慮chatgpt:它回答問題,寫代碼等等。此功能擴展到任務完成 - 您提供了請求,並且執行了整個任務。

例如,LLM可以搜索網絡和原因;結合起來,它可以創建旅行行程。您可能會問:“計劃於4月1日至7日的喜馬al爾邦度假,重點關注雪,滑雪,繩索和綠色景觀。找到從加爾各答的最便宜的航班。”

然後,AI將比較飛行成本,建議地點並找到酒店,並在AI中展示了一種代理方法

代理工作流程

代理使用僅通過文本與外部世界互動的LLM。

使用Smolagents為AI代理構建自定義工具

代理接收輸入為文本,使用語言的原因以及輸出文本。工具在這里至關重要,提供了代理商用來生成其文本響應的值。行動可以從市場交易到圖像生成。

使用Smolagents為AI代理構建自定義工具

工作流程是:理解 - >原因 - >互動或更廣泛:思想 - >行動 - >觀察。

AI代理的組件

AI代理包括:

  • 代理商的“大腦”(像Llama3,Phi4或GPT4這樣的LLM)。
  • 代理可以調用​​的外部工具(API,其他代理,計算器等)。

smolagents允許您使用調用函數調用的LLM創建任何Python函數。我們的示例將包括使用QWEN LLM的狗事實,時區檢索和圖像生成工具。

工具的必要性

LLM不再只是文本完成工具。它們是較大系統中的組件,通常需要非生成AI零件的輸入。

使用Smolagents為AI代理構建自定義工具

工具彌合了Genai和其他系統組件之間的差距。 LLM有局限性:

  • 知識截止日期。
  • 幻覺。
  • 不可預測的拒絕回答。
  • 次優的Web搜索選擇。

確定性工具解決了這些問題。

smolagents

smolagents (擁抱的臉)是建築物代理的框架。與某些輸出JSON的庫不同, smolagents直接輸出Python代碼,從而提高效率。

我們的代碼庫

GitHub存儲庫包含:

  • Gradio_UI.py :用於用戶交互的Gradio UI代碼。
  • agent.json :代理配置。
  • requirements.txt :項目依賴性。
  • prompts.yaml :YAML:示例提示和響應(使用Jinja模板)。
  • app.py :核心應用程序邏輯。

構建我們的第一個工具

我們將使用狗事實API( https://www.php.cn/link/0feaf58e2a12936c84c2510541b6e75a )。使AI代理可用的Python函數:

  • 使用@tool裝飾器。
  • 寫一個清晰的docstring。
  • 添加類型註釋。
  • 確保清晰的回報值。
  • 包括充分的評論。
 @工具
def get_amazing_dog_fact() - > str:
    “”“從公共API中獲取隨機的狗事實。
    #...(API呼叫和錯誤處理)...
登入後複製

時區工具:

 @工具
def get_current_time_in_timezone(時區:str) - > str:
    “”“在指定的時區獲取當前時間。”“”
    #...(時區處理)...
登入後複製

圖像生成工具也可以集成:

 image_generation_tool = load_tool(“ agestents course/text-to-image”,trust_remote_code = true)
登入後複製

使用QWEN2.5-CODER-32B-INSTRUCT模型(需要訪問應用程序):

型號= hfapimodel(
    max_tokens = 2096,
    溫度= 0.5,
    model_id ='qwen/qwen2.5-coder-32b-instruct',
    #...
)
登入後複製

提示從prompts.yaml加載。創建代理:

代理= codeagent(
    模型=模型,
    工具= [get_amazing_dog_fact,get_current_time_in_timezone,image_generation_tool],
    #...
)
登入後複製

tools參數列出了可用功能。

最後一步:部署

代理可以部署在擁抱面孔的空間上。

概括

AI代理通過工具集成增強LLM功能,增加自主權並實現複雜的任務完成。 smolagents簡化了代理的創建,自定義工具將功能擴展到標準LLM之外。在擁抱面積之類的平台上的部署有助於易於共享和互動。

常見問題

Q1。什麼是AI代理? AI代理是LLM驅動的系統,該系統與執行任務的工具相互作用。

Q2。為什麼需要自定義工具?它們可以實時數據訪問,命令執行和LLM功能以外的操作。

Q3。什麼是smolagents使用自定義工具創建AI代理的擁抱面部框架。

Q4。如何創建自定義工具?定義功能,用@tool進行裝飾,然後集成到代理中。

Q5。在哪裡部署?諸如擁抱面孔的平台。

(注意:假定圖像如原始輸入所包含。)

以上是使用Smolagents為AI代理構建自定義工具的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板