mirror of
https://github.com/crewAIInc/crewAI.git
synced 2026-01-09 16:18:30 +00:00
* docs(cli): document device-code login and config reset guidance; renumber sections * docs(cli): fix duplicate numbering (renumber Login/API Keys/Configuration sections) * docs: Fix webhook documentation to include meta dict in all webhook payloads - Add note explaining that meta objects from kickoff requests are included in all webhook payloads - Update webhook examples to show proper payload structure including meta field - Fix webhook examples to match actual API implementation - Apply changes to English, Korean, and Portuguese documentation Resolves the documentation gap where meta dict passing to webhooks was not documented despite being implemented in the API. * WIP: CrewAI docs theme, changelog, GEO, localization * docs(cli): fix merge markers; ensure mode: "wide"; convert ASCII tables to Markdown (en/pt-BR/ko) * docs: add group icons across locales; split Automation/Integrations; update tools overviews and links
163 lines
6.1 KiB
Plaintext
163 lines
6.1 KiB
Plaintext
---
|
|
title: Busca Vetorial Weaviate
|
|
description: O `WeaviateVectorSearchTool` foi projetado para buscar documentos semanticamente similares em um banco de dados vetorial Weaviate.
|
|
icon: network-wired
|
|
mode: "wide"
|
|
---
|
|
|
|
## Visão Geral
|
|
|
|
O `WeaviateVectorSearchTool` foi especificamente desenvolvido para realizar buscas semânticas em documentos armazenados em um banco de dados vetorial Weaviate. Essa ferramenta permite encontrar documentos semanticamente similares a uma determinada consulta, aproveitando o poder das embeddings vetoriais para resultados de busca mais precisos e contextualmente relevantes.
|
|
|
|
[Weaviate](https://weaviate.io/) é um banco de dados vetorial que armazena e consulta embeddings vetoriais, possibilitando recursos de busca semântica.
|
|
|
|
## Instalação
|
|
|
|
Para incorporar esta ferramenta ao seu projeto, é necessário instalar o cliente Weaviate:
|
|
|
|
```shell
|
|
uv add weaviate-client
|
|
```
|
|
|
|
## Etapas para Começar
|
|
|
|
Para utilizar efetivamente o `WeaviateVectorSearchTool`, siga as etapas abaixo:
|
|
|
|
1. **Instalação dos Pacotes**: Confirme que os pacotes `crewai[tools]` e `weaviate-client` estão instalados em seu ambiente Python.
|
|
2. **Configuração do Weaviate**: Configure um cluster Weaviate. Você pode seguir as instruções na [documentação do Weaviate](https://weaviate.io/developers/wcs/manage-clusters/connect).
|
|
3. **Chaves de API**: Obtenha a URL do seu cluster Weaviate e a chave de API correspondente.
|
|
4. **Chave de API da OpenAI**: Certifique-se de que você tenha uma chave de API da OpenAI definida nas variáveis de ambiente como `OPENAI_API_KEY`.
|
|
|
|
## Exemplo
|
|
|
|
O exemplo a seguir demonstra como inicializar a ferramenta e executar uma busca:
|
|
|
|
```python Code
|
|
from crewai_tools import WeaviateVectorSearchTool
|
|
|
|
# Inicializar a ferramenta
|
|
tool = WeaviateVectorSearchTool(
|
|
collection_name='example_collections',
|
|
limit=3,
|
|
weaviate_cluster_url="https://your-weaviate-cluster-url.com",
|
|
weaviate_api_key="your-weaviate-api-key",
|
|
)
|
|
|
|
@agent
|
|
def search_agent(self) -> Agent:
|
|
'''
|
|
Este agente utiliza o WeaviateVectorSearchTool para buscar
|
|
documentos semanticamente similares em um banco de dados vetorial Weaviate.
|
|
'''
|
|
return Agent(
|
|
config=self.agents_config["search_agent"],
|
|
tools=[tool]
|
|
)
|
|
```
|
|
|
|
## Parâmetros
|
|
|
|
O `WeaviateVectorSearchTool` aceita os seguintes parâmetros:
|
|
|
|
- **collection_name**: Obrigatório. O nome da coleção a ser pesquisada.
|
|
- **weaviate_cluster_url**: Obrigatório. A URL do cluster Weaviate.
|
|
- **weaviate_api_key**: Obrigatório. A chave de API para o cluster Weaviate.
|
|
- **limit**: Opcional. O número de resultados a serem retornados. O padrão é `3`.
|
|
- **vectorizer**: Opcional. O vetorizador a ser utilizado. Se não for informado, será utilizado o `text2vec_openai` com o modelo `nomic-embed-text`.
|
|
- **generative_model**: Opcional. O modelo generativo a ser utilizado. Se não for informado, será utilizado o `gpt-4o` da OpenAI.
|
|
|
|
## Configuração Avançada
|
|
|
|
Você pode personalizar o vetorizador e o modelo generativo utilizados pela ferramenta:
|
|
|
|
```python Code
|
|
from crewai_tools import WeaviateVectorSearchTool
|
|
from weaviate.classes.config import Configure
|
|
|
|
# Configurar modelo personalizado para vetorizador e modelo generativo
|
|
tool = WeaviateVectorSearchTool(
|
|
collection_name='example_collections',
|
|
limit=3,
|
|
vectorizer=Configure.Vectorizer.text2vec_openai(model="nomic-embed-text"),
|
|
generative_model=Configure.Generative.openai(model="gpt-4o-mini"),
|
|
weaviate_cluster_url="https://your-weaviate-cluster-url.com",
|
|
weaviate_api_key="your-weaviate-api-key",
|
|
)
|
|
```
|
|
|
|
## Pré-carregando Documentos
|
|
|
|
Você pode pré-carregar seu banco de dados Weaviate com documentos antes de utilizar a ferramenta:
|
|
|
|
```python Code
|
|
import os
|
|
from crewai_tools import WeaviateVectorSearchTool
|
|
import weaviate
|
|
from weaviate.classes.init import Auth
|
|
|
|
# Conectar ao Weaviate
|
|
client = weaviate.connect_to_weaviate_cloud(
|
|
cluster_url="https://your-weaviate-cluster-url.com",
|
|
auth_credentials=Auth.api_key("your-weaviate-api-key"),
|
|
headers={"X-OpenAI-Api-Key": "your-openai-api-key"}
|
|
)
|
|
|
|
# Obter ou criar coleção
|
|
test_docs = client.collections.get("example_collections")
|
|
if not test_docs:
|
|
test_docs = client.collections.create(
|
|
name="example_collections",
|
|
vectorizer_config=Configure.Vectorizer.text2vec_openai(model="nomic-embed-text"),
|
|
generative_config=Configure.Generative.openai(model="gpt-4o"),
|
|
)
|
|
|
|
# Carregar documentos
|
|
docs_to_load = os.listdir("knowledge")
|
|
with test_docs.batch.dynamic() as batch:
|
|
for d in docs_to_load:
|
|
with open(os.path.join("knowledge", d), "r") as f:
|
|
content = f.read()
|
|
batch.add_object(
|
|
{
|
|
"content": content,
|
|
"year": d.split("_")[0],
|
|
}
|
|
)
|
|
|
|
# Inicializar a ferramenta
|
|
tool = WeaviateVectorSearchTool(
|
|
collection_name='example_collections',
|
|
limit=3,
|
|
weaviate_cluster_url="https://your-weaviate-cluster-url.com",
|
|
weaviate_api_key="your-weaviate-api-key",
|
|
)
|
|
```
|
|
|
|
## Exemplo de Integração com Agente
|
|
|
|
Veja como integrar o `WeaviateVectorSearchTool` com um agente CrewAI:
|
|
|
|
```python Code
|
|
from crewai import Agent
|
|
from crewai_tools import WeaviateVectorSearchTool
|
|
|
|
# Inicializar a ferramenta
|
|
weaviate_tool = WeaviateVectorSearchTool(
|
|
collection_name='example_collections',
|
|
limit=3,
|
|
weaviate_cluster_url="https://your-weaviate-cluster-url.com",
|
|
weaviate_api_key="your-weaviate-api-key",
|
|
)
|
|
|
|
# Criar um agente com a ferramenta
|
|
rag_agent = Agent(
|
|
name="rag_agent",
|
|
role="Você é um assistente útil que pode responder perguntas com a ajuda do WeaviateVectorSearchTool.",
|
|
llm="gpt-4o-mini",
|
|
tools=[weaviate_tool],
|
|
)
|
|
```
|
|
|
|
## Conclusão
|
|
|
|
O `WeaviateVectorSearchTool` fornece uma maneira poderosa de buscar documentos semanticamente similares em um banco de dados vetorial Weaviate. Ao utilizar embeddings vetoriais, ele permite resultados de busca mais precisos e relevantes em termos de contexto, quando comparado a buscas tradicionais baseadas em palavras-chave. Essa ferramenta é especialmente útil para aplicações que precisam encontrar informações a partir do significado e não apenas de correspondências exatas. |