6. 使用 LlamaIndex 实现本地 Agent


文档摘要

使用 LlamaIndex 实现本地 Agent 简介 本文档介绍了如何使用 LlamaIndex 中的 结合 Ollama 实现一个简单的本地 Agent。 本文档中使用的 LLM 为 qwen2:0.5b 模型,由于不同模型调用 tools 的能力不同,可以自行尝试使用不同的模型实现 Agent。 注: 本文档包含核心代码片段和详细解释。完整代码可见 notebook 。 导入依赖 初始化 Agent 工具 初始化 LLM 和 Agent 进行对话 直接使用 LLM 对话。 输出结果: LLM 调用 Agent 对话。 输出结果: 参考资料 [1] https://docs.llamaindex.ai/en/stable/examples/agent/reactagent/

使用 LlamaIndex 实现本地 Agent

简介

本文档介绍了如何使用 LlamaIndex 中的 ReActAgent 结合 Ollama 实现一个简单的本地 Agent。

本文档中使用的 LLM 为 qwen2:0.5b 模型,由于不同模型调用 tools 的能力不同,可以自行尝试使用不同的模型实现 Agent。

注: 本文档包含核心代码片段和详细解释。完整代码可见 notebook

1. 导入依赖

from llama_index.core.tools import FunctionTool from llama_index.core.agent import ReActAgent from llama_index.llms.ollama import Ollama

2. 初始化 Agent 工具

# Define tools def multiply(a: float, b: float) -> float: """Multiply two integers and return the result integer""" return a * b # Create FunctionTool instances multiply_tool = FunctionTool.from_defaults( fn=multiply, name="MultiplyTool", description="A tool that multiplies two floats.", return_direct=True )

3. 初始化 LLM 和 Agent

# Initialize LLM llm = Ollama(model="qwen2:0.5b", request_timeout=360.0) # Initialize ReAct agent with tools agent = ReActAgent.from_tools([multiply_tool], llm=llm, verbose=True)

4. 进行对话

  • 直接使用 LLM 对话。
# direct response res_llm = llm.complete("What is 2.3 × 4.8 ? Calculate step by step") print(res_llm)

输出结果:

To calculate \( 2.3 \times 4.8 \), you can follow these steps: 1. **Perform the multiplication:** When multiplying decimals, simply multiply the numerators (the top numbers) to get the numerator of the product. \[ 2.3 \times 4.8 = 9.44 \] 2. **Multiply the denominators (bottom numbers)** The denominator of \(4.8\) is not affected by the multiplication because it does not contain a factor that can affect its value or determine the result. 3. **Calculate the product** Since there are no common factors between the numerator and the denominator, the calculation is: \[ 9.44 = 2.3 \times 2.3 \] This multiplication does not give you a new number because \(2.3\) and \(2.3\) are already multiplied to get 5.6. So, \(2.3 \times 4.8 = 9.44\).
  • LLM 调用 Agent 对话。
# use agent response = agent.chat("What is 2.3 × 4.8 ? Calculate step by step") response.response

输出结果:

> Running step 9227846e-d630-4ce2-a760-c8e90366dc6c. Step input: What is 2.3 × 4.8 ? Calculate step by step Thought: The task is asking to multiply two numbers, 2.3 and 4.8, then to calculate this multiplication step by step. Action: MultiplyTool Action Input: {'a': 2.3, 'b': 4.8} Observation: 11.04

参考资料

[1] https://docs.llamaindex.ai/en/stable/examples/agent/react_agent/


作者与出处
原作者: AXYZdong
整理: 灏天文库整理
本站整理收录,版权归原作者/开源协议所有;欢迎通过原文链接访问源仓库。
发布者: 作者: AXYZdong 转发
评论区 (0)
U