---
title: Ferramenta LlamaIndex
description: A `LlamaIndexTool` é um wrapper para ferramentas e mecanismos de consulta do LlamaIndex.
icon: address-book
mode: "wide"
---

# `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:

```shell
uv add llama-index
```

## Passos para Começar

Para utilizar a `LlamaIndexTool` de forma eficaz, siga os passos abaixo:

1. **Instale o LlamaIndex**: Instale o pacote LlamaIndex usando o comando acima.
2. **Configure o LlamaIndex**: Siga a [documentação do LlamaIndex](https://docs.llamaindex.ai/) para configurar um pipeline de RAG/agent.
3. **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

```python Code
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

```python Code
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

```python Code
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:

### from_tool

Cria uma `LlamaIndexTool` a partir de uma ferramenta do LlamaIndex.

```python Code
@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.

```python Code
@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.