Ferramenta LlamaIndex
LlamaIndexTool
Seção intitulada “LlamaIndexTool”Descrição
Seção intitulada “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
Seção intitulada “Instalação”Para utilizar esta ferramenta, é necessário instalar o LlamaIndex:
uv add llama-indexPassos para Começar
Seção intitulada “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
Seção intitulada “Exemplo”Os exemplos a seguir demonstram como inicializar a ferramenta a partir de diferentes componentes do LlamaIndex:
A partir de uma ferramenta do LlamaIndex
Seção intitulada “A partir de uma ferramenta do LlamaIndex”from crewai_tools import LlamaIndexToolfrom crewai import Agentfrom llama_index.core.tools import FunctionTool
# Exemplo 1: Inicializando a partir do FunctionTooldef 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 FunctionToolog_tool = FunctionTool.from_defaults( search_data, name="DataSearchTool", description="Search for information in the data")
# Envolvendo com a LlamaIndexTooltool = LlamaIndexTool.from_tool(og_tool)
# Definindo um agente que utiliza a ferramenta@agentdef 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
Seção intitulada “A partir de Ferramentas do LlamaHub”from crewai_tools import LlamaIndexToolfrom llama_index.tools.wolfram_alpha import WolframAlphaToolSpec
# Inicializando a partir das ferramentas do LlamaHubwolfram_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
Seção intitulada “A partir de um mecanismo de consulta do LlamaIndex”from crewai_tools import LlamaIndexToolfrom llama_index.core import VectorStoreIndexfrom llama_index.core.readers import SimpleDirectoryReader
# Carregar documentosdocuments = SimpleDirectoryReader("./data").load_data()
# Criar um índiceindex = VectorStoreIndex.from_documents(documents)
# Criar um mecanismo de consultaquery_engine = index.as_query_engine()
# Criar uma LlamaIndexTool a partir do mecanismo de consultaquery_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
Seção intitulada “Métodos da Classe”A LlamaIndexTool oferece dois métodos de classe principais para criar instâncias:
from_tool
Seção intitulada “from_tool”Cria uma LlamaIndexTool a partir de uma ferramenta do LlamaIndex.
@classmethoddef from_tool(cls, tool: Any, **kwargs: Any) -> "LlamaIndexTool": # Implementation detailsfrom_query_engine
Seção intitulada “from_query_engine”Cria uma LlamaIndexTool a partir de um mecanismo de consulta do LlamaIndex.
@classmethoddef from_query_engine( cls, query_engine: Any, name: Optional[str] = None, description: Optional[str] = None, return_direct: bool = False, **kwargs: Any,) -> "LlamaIndexTool": # Implementation detailsParâmetros
Seção intitulada “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
Seção intitulada “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.