Skip to content

代理#

在 LlamaIndex 中组装代理可以通过定义一组工具并将它们提供给我们的 ReActAgent 实现来完成。我们在这里使用的是 OpenAI,但它可以与任何足够强大的 LLM 一起使用:

from llama_index.core.tools import FunctionTool
from llama_index.llms.openai import OpenAI
from llama_index.core.agent import ReActAgent


# 定义示例工具
def multiply(a: int, b: int) -> int:
    """将两个整数相乘并返回结果整数"""
    return a * b


multiply_tool = FunctionTool.from_defaults(fn=multiply)

# 初始化 llm
llm = OpenAI(model="gpt-3.5-turbo-0613")

# 初始化 ReAct 代理
agent = ReActAgent.from_tools([multiply_tool], llm=llm, verbose=True)

这些工具可以是 Python 函数,就像上面展示的那样,也可以是 LlamaIndex 查询引擎:

from llama_index.core.tools import QueryEngineTool

query_engine_tools = [
    QueryEngineTool(
        query_engine=sql_agent,
        metadata=ToolMetadata(
            name="sql_agent", description="可以执行 SQL 查询的代理。"
        ),
    ),
]

agent = ReActAgent.from_tools(query_engine_tools, llm=llm, verbose=True)

您可以在我们的代理模块指南中了解更多信息。

本地 OpenAIAgent#

我们建立了一个基于OpenAI API for function callingOpenAIAgent 实现,允许您快速构建代理:

LlamaIndex 中的代理组件#

LlamaIndex 提供了核心模块,可以对数据进行不同用例的自动推理,从而使它们本质上成为代理。以下是一些这些核心模块以及示例教程。

用于多文档分析的 SubQuestionQueryEngine

查询转换

路由

LLM 重新排序

聊天引擎

在代理框架中使用 LlamaIndex 作为工具#

LlamaIndex 可以作为代理框架中的工具使用,包括 LangChain、ChatGPT 等。以下是这些集成的描述。

LangChain#

我们与 LangChain 有着深度集成。 LlamaIndex 查询引擎可以轻松打包为 LangChain 代理中使用的工具,并且 LlamaIndex 也可以用作内存模块/检索器。请查看我们的指南/教程!

资源

ChatGPT#

LlamaIndex 可以作为 ChatGPT 检索插件使用(我们有一个 TODO 来开发一个更通用的插件)。

资源