首页 > 科技周边 > 人工智能 > 使用Smolagents为AI代理构建自定义工具

使用Smolagents为AI代理构建自定义工具

Lisa Kudrow
发布: 2025-03-21 11:17:10
原创
195 人浏览过

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
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板