LlamaIndexTool
Descrição
A LlamaIndexTool
foi projetada para ser um wrapper geral em torno das ferramentas e mecanismos de consulta do LlamaIndex, permitindo que você aproveite os recursos do LlamaIndex em pipelines de RAG/agent como ferramentas que podem ser acopladas aos agentes do CrewAI. Essa ferramenta permite integrar de forma transparente as poderosas capacidades de processamento e recuperação de dados do LlamaIndex em seus fluxos de trabalho com o CrewAI.
Instalação
Para utilizar esta ferramenta, é necessário instalar o LlamaIndex:
Passos para Começar
Para utilizar a LlamaIndexTool
de forma eficaz, siga os passos abaixo:
- Instale o LlamaIndex: Instale o pacote LlamaIndex usando o comando acima.
- Configure o LlamaIndex: Siga a documentação do LlamaIndex para configurar um pipeline de RAG/agent.
- Crie uma Ferramenta ou Mecanismo de Consulta: Crie uma ferramenta ou mecanismo de consulta do LlamaIndex que você deseja usar com o CrewAI.
Exemplo
Os exemplos a seguir demonstram como inicializar a ferramenta a partir de diferentes componentes do LlamaIndex:
A partir de uma ferramenta do LlamaIndex
from crewai_tools import LlamaIndexTool
from crewai import Agent
from llama_index.core.tools import FunctionTool
# Exemplo 1: Inicializando a partir do FunctionTool
def search_data(query: str) -> str:
"""Busca por informações nos dados."""
# Sua implementação aqui
return f"Results for: {query}"
# Criação de um LlamaIndex FunctionTool
og_tool = FunctionTool.from_defaults(
search_data,
name="DataSearchTool",
description="Search for information in the data"
)
# Envolvendo com a LlamaIndexTool
tool = LlamaIndexTool.from_tool(og_tool)
# Definindo um agente que utiliza a ferramenta
@agent
def researcher(self) -> Agent:
'''
Este agente usa a LlamaIndexTool para buscar informações.
'''
return Agent(
config=self.agents_config["researcher"],
tools=[tool]
)
A partir de Ferramentas do LlamaHub
from crewai_tools import LlamaIndexTool
from llama_index.tools.wolfram_alpha import WolframAlphaToolSpec
# Inicializando a partir das ferramentas do LlamaHub
wolfram_spec = WolframAlphaToolSpec(app_id="your_app_id")
wolfram_tools = wolfram_spec.to_tool_list()
tools = [LlamaIndexTool.from_tool(t) for t in wolfram_tools]
A partir de um mecanismo de consulta do LlamaIndex
from crewai_tools import LlamaIndexTool
from llama_index.core import VectorStoreIndex
from llama_index.core.readers import SimpleDirectoryReader
# Carregar documentos
documents = SimpleDirectoryReader("./data").load_data()
# Criar um índice
index = VectorStoreIndex.from_documents(documents)
# Criar um mecanismo de consulta
query_engine = index.as_query_engine()
# Criar uma LlamaIndexTool a partir do mecanismo de consulta
query_tool = LlamaIndexTool.from_query_engine(
query_engine,
name="Company Data Query Tool",
description="Use this tool to lookup information in company documents"
)
Métodos da Classe
A LlamaIndexTool
oferece dois métodos de classe principais para criar instâncias:
Cria uma LlamaIndexTool
a partir de uma ferramenta do LlamaIndex.
@classmethod
def from_tool(cls, tool: Any, **kwargs: Any) -> "LlamaIndexTool":
# Implementation details
from_query_engine
Cria uma LlamaIndexTool
a partir de um mecanismo de consulta do LlamaIndex.
@classmethod
def from_query_engine(
cls,
query_engine: Any,
name: Optional[str] = None,
description: Optional[str] = None,
return_direct: bool = False,
**kwargs: Any,
) -> "LlamaIndexTool":
# Implementation details
Parâmetros
O método from_query_engine
aceita os seguintes parâmetros:
- query_engine: Obrigatório. O mecanismo de consulta do LlamaIndex a ser envolvido.
- name: Opcional. O nome da ferramenta.
- description: Opcional. A descrição da ferramenta.
- return_direct: Opcional. Define se deve retornar a resposta diretamente. O padrão é
False
.
Conclusão
A LlamaIndexTool
oferece uma maneira poderosa de integrar as capacidades do LlamaIndex aos agentes do CrewAI. Ao envolver ferramentas e mecanismos de consulta do LlamaIndex, ela permite que os agentes utilizem funcionalidades sofisticadas de recuperação e processamento de dados, aprimorando sua capacidade de trabalhar com fontes de informação complexas.
Responses are generated using AI and may contain mistakes.