第04课-用Llama-index创建Agent
-
核心概念:介绍了ReActAgent框架,它通过结合推理和行动创建动态的LLM Agent,使LLM模型能在复杂环境中交替进行推理和行动步骤来高效执行任务,形成闭环,直至完成任务。
-
代码实现:
- 准备环境:加载环境变量,读取api_key等配置信息。
- 构建llm:自定义OurLLM类继承自CustomLLM,实现complete和stream_complete方法,用于生成文本回答。
- 测试llm:通过调用stream_complete方法测试llm能否正常工作。
- 创建ReActAgent:定义工具函数multiply和add,并将其放入FunctionTool对象中,创建ReActAgent实例,通过调用chat方法让agent使用自定义函数完成算术题计算。
- 扩展功能:为agent添加查询天气的get_weather方法,创建weather_tool并加入agent,使其能回答天气相关问题。
-
应用场景:ReActAgent可将业务自动向代码转换,适用于多种业务场景,且符合软件解耦设计原则,不同Agent可完成不同任务并相互交互。
第07课-搜索引擎Agent
-
准备工作:加载环境变量,读取api_key等配置信息,包括
WOWRAG_API_KEY、base_url、chat_model和emb_model。 -
构建llm:
- 自定义
OurLLM类继承自CustomLLM,实现complete和stream_complete方法,用于生成文本回答。 - 通过
OpenAI客户端,使用指定的api_key和base_url进行初始化,并调用模型生成回答。
- 自定义
-
测试llm:调用
stream_complete方法测试llm,输出“我是一个人工智能助手,名叫 ChatGLM,是基于清华大学 KEG 实验室和智谱 AI 公司于 2024 年共同训练的语言模型开发的。我的任务是针对用户的问题和要求提供适当的答复和支持。” -
定义搜索工具:
- 使用
BOCHA_API_KEY调用Bocha Web Search API进行联网搜索。 - 定义
bocha_web_search_tool函数,传入搜索关键词和返回结果数量,通过post请求获取搜索结果,并返回格式化的搜索结果文本。 - 将
bocha_web_search_tool函数封装为FunctionTool对象。
- 使用
-
创建ReActAgent:使用
search_tool和自定义的llm创建ReActAgent实例。 -
测试Agent:通过调用
agent.chat方法,传入查询内容“阿里巴巴2024年的ESG报告主要讲了哪些内容?”,Agent利用搜索工具获取信息并生成回答,回答内容涵盖了阿里巴巴在可持续发展、环境、社会责任和治理等方面的进展和成就。