Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

Comece com a integração do MongoDB Agno

Você pode integrar o MongoDB ao Agno para configurar uma base de conhecimento pesquisável e um histórico de conversas persistente para seus agentes de IA. Este tutorial demonstra como configurar um agente Agno para usar o MongoDB para recuperação de conhecimento e armazenamento de sessões e, em seguida, usar essa configuração para criar um assistente de preparação. Especificamente, você executa as seguintes tarefas:

  1. Configure seu ambiente.

  2. Configure o MongoDB como uma base de conhecimento Agno.

  3. Crie um assistente que responda às perguntas de seus documentos e se lembre das mudanças anteriores na conversa.

  4. Execute o arquivo e revise a saída.

Agno é um framework Python de código aberto para construir agentes de IA multimodais. Um agente Agno é composto por componentes modulares, incluindo uma base de conhecimento opcional e um banco de dados opcional , que você configura independentemente e passa para o mesmo objetoAgent .

O MongoDB fornece dois desses componentes, que você pode usar importando as seguintes classes:

  1. MongoVectorDb classe: implementa a interface do banco de dados vetorial Agno com o MongoDB Vector Search, permitindo que um agente recupere documentos relevantes de uma coleção MongoDB

  2. MongoDb classe: Implementa a interface de banco de dados do Agno, sessões de agente persistentes, memória e métricas como documentos nas coleções do MongoDB

Dica

O Agno nomeia ambas as classes do MongoDB MongoDb, então ele exporta a classe do banco de dados vetorial como MongoVectorDb para evitar uma colisão. Para saber mais, consulte Integrar MongoDB com o Framework Agno.

Este tutorial utiliza ambos os componentes e armazena seus dados no mesmo sistema MongoDB .

Para concluir este tutorial, você deve ter os seguintes recursos:

  • Um dos seguintes tipos de cluster MongoDB :

    • Um cluster do Atlas executando a versão 6.0.11 do MongoDB, 7.0.2, ou posterior. Certifique-se de que seu endereço IP esteja incluído na lista de acesso do seu projeto Atlas.

    • Um sistema local do Atlas criado usando Python e Docker. Instale atlas-local-lib-py opip install atlas-local-lib-py () para criar e gerenciar implantações locais programaticamente. Para saber mais, consulte o repositório atlas-local-lib-py .

    • Um cluster da MongoDB Community com o Search e o Vector Search instalados.

  • Uma chave de API da OpenAI. Você deve ter uma conta da OpenAI com créditos disponíveis para solicitações de API. Para saber mais sobre como registrar uma conta OpenAI, consulte o site da API OpenAI.

  • Python v3.9 ou posterior.

1

Execute os seguintes comandos no seu terminal para criar um novo diretório denominado agno-mongodb-project e instalar as dependências necessárias:

mkdir agno-mongodb-project
cd agno-mongodb-project
pip install agno pymongo openai python-dotenv pypdf
2

No seu diretório agno-mongodb-project, crie um arquivo .env e adicione o seguinte código:

OPENAI_API_KEY="<openai-api-key>"
MONGODB_URI="<connection-string>"

Substitua <connection-string> pela string de conexão do seu cluster do Atlas ou da implantação local do Atlas.

Sua string de conexão deve usar o seguinte formato:

mongodb+srv://<db_username>:<db_password>@<clusterName>.<hostname>.mongodb.net

Para saber mais, consulte Conectar-se a um cluster por meio de bibliotecas de clientes.

Sua string de conexão deve usar o seguinte formato:

mongodb://localhost:<port-number>/?directConnection=true

Para saber mais, consulte Connection strings.

3

No seu diretório agno-mongodb-project, crie um arquivo denominado main.py. Adicione o seguinte código a este arquivo para carregar suas variáveis de ambiente:

import os
from dotenv import load_dotenv
from agno.agent import Agent
from agno.db.mongo import MongoDb
from agno.knowledge.knowledge import Knowledge
from agno.models.openai import OpenAIChat
from agno.vectordb.mongodb import MongoVectorDb
load_dotenv()

Em etapas futuras, você adicionará código a este arquivo para construir sua base de conhecimento e assistente.

Nesta seção, você configura o MongoDB como o armazenamento de vetor para uma base de conhecimento Agno, armazena dados nele e executa uma query de pesquisa semântica nele.

1

Adicione o seguinte código para configurar um armazenamento de vetores apoiado MongoDB para sua base de conhecimento:

vector_db = MongoVectorDb(
collection_name="agent_knowledge",
db_url=os.environ["MONGODB_URI"],
database="agno",
)
knowledge = Knowledge(vector_db=vector_db)

O código anterior cria uma instância MongoVectorDb e a passa para o parâmetro vector_db de um objetoKnowledge. Como esta é a primeira vez que você usa a collection agent_knowledge, o Agno a cria junto com um índice do MongoDB Vector Search chamado vector_index_1.

O índice deve levar cerca de um minuto para ser criado. Enquanto constrói, o índice está em um estado de sincronização inicial . Quando terminar de ser criado, você poderá começar a consultar os dados em sua coleção.

2

Adicione o seguinte código ao seu arquivo main.py para carregar um arquivo PDF contendo receitas tailandesas em sua base de conhecimento:

knowledge.insert(
name="Recipes",
url="https://agno-public.s3.amazonaws.com/recipes/ThaiRecipes.pdf",
)

Agno baixa o arquivo, divide-o em blocos, gera uma incorporação para cada bloco com o incorporador OpenAI padrão e grava os resultados em sua coleção.

Dica

Para inspecionar os documentos armazenados, navegue pela coleção agno.agent_knowledge na UI do Atlas . Cada documento tem um campo content com um bloco do texto da receita e um campo embedding que contém o vetor gerado. Para saber mais, consulte Visualizar collections.

3

Adicione o código a seguir ao arquivo main.py para consultar o banco de dados de vetores da sua base de conhecimento diretamente, antes de conectá-lo a um agente. Este exemplo procura os três chunks mais relevantes para uma pergunta sobre caril verde:

results = vector_db.search(query="How do I make a green curry?", limit=3)
for doc in results:
print(f"[{doc.name}] {doc.content[:80]}")

Os resultados incluem os chunks de receita que são mais semanticamente relevantes para a query, classificados por pontuação de similaridade.

Nesta seção, você combina sua base de conhecimento com um banco de dados MongoDB para construir um assistente completo. O agente recupera documentos relevantes de sua base de conhecimento para responder a perguntas e persiste seu histórico de conversas no MongoDB para que ele possa consultar voltas anteriores.

1

Adicione o seguinte código ao seu arquivo main.py para configurar uma instância MongoDb para armazenamento de sessão e, em seguida, crie um agente que use esse armazenamento de sessão e a base de conhecimento configurada na seção anterior:

db = MongoDb(
db_url=os.environ["MONGODB_URI"],
db_name="agno",
)
agent = Agent(
model=OpenAIChat(id="gpt-4o"),
knowledge=knowledge,
db=db,
search_knowledge=True,
add_history_to_context=True,
num_history_runs=5,
instructions=[
"You are a helpful cooking assistant.",
"Answer questions using only the recipes in your knowledge base.",
"If the knowledge base does not contain a relevant answer, say so clearly.",
],
)
2

Adicione o seguinte código ao seu arquivo main.py para enviar duas mensagens ao agente:

SESSION_ID = "cooking-session-001"
# First turn
agent.print_response(
"My favorite Thai dish is massaman curry.",
session_id=SESSION_ID,
)
# Second turn
agent.print_response(
"How do I make my favorite dish?",
session_id=SESSION_ID,
)

O agente recupera os chunks de receita mais relevantes da sua base de conhecimento a cada passo. Como ambas as chamadas usam o mesmo valor de session_id, o Agno também recupera dados da resposta anterior. O Agno recupera os metadados da sessão da coleção agno_sessions e o conteúdo da mensagem da coleção agno_runs. Se você omitir session_id ou passar um valor diferente na segunda chamada, o Agno iniciará uma nova sessão e o agente não terá registro da primeira vez.

Para executar o arquivo main.py, execute o seguinte comando a partir do seu diretório agno-mongodb-project:

python main.py

Se o comando for executado com sucesso, a saída será semelhante ao seguinte:

INFO Connected to MongoDB successfully.
INFO Creating collection 'agent_knowledge'.
INFO Creating search index 'vector_index_1'.
INFO Search index 'vector_index_1' is ready.
INFO Search index 'vector_index_1' created successfully.
INFO Adding content from URL https://agno-public.s3.amazonaws.com/recipes/ThaiRecipes.pdf
INFO Upserting 14 documents
# Output from the vector_db.search() call
[Recipes] INGREDIENTS (One serving) 150 grams chicken, cut into bite-size pieces 50 grams
[Recipes] Thai SELECT Exotic, Healthy, Delicious Dining-Thai Style Thai food has rapidly g
[Recipes] Directions: 1. Roughly pound the garlic with bird's eye chilies in a mortar. Add
# Output from the agent.print_response() calls
┏━ Message ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ My favorite Thai dish is massaman curry. ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━ Response (gpt-4o) ────────────────────────────────────────────┓
┃ Great choice — I found a recipe in the knowledge base for ┃
┃ Massaman Gai (Massaman Curry with Chicken and Potatoes). ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━ Message ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ How do I make my favorite dish? ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━ Response (gpt-4o) ────────────────────────────────────────────┓
┃ Here's how to make Massaman Gai (Massaman Curry with Chicken ┃
┃ and Potatoes) from the knowledge base: ┃
┃ **Ingredients** ┃
┃ - 300 grams chicken rump ┃
┃ - 80 grams Massaman curry paste ┃
┃ - 100 grams coconut cream ┃
┃ - 300 grams coconut milk ┃
┃ - 250 grams chicken stock ┃
┃ - 50 grams roasted peanuts ┃
┃ - 200 grams potatoes, chopped into large chunks ┃
┃ - 100 grams onion, chopped into large chunks ┃
┃ ... ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

Para saber mais sobre as classes MongoVectorDb e MongoDb, incluindo seu parâmetro completo e referência de método, consulte Integrar MongoDB com o Framework Agno.

Para saber mais sobre o índice de Vector Search do MongoDB que o Agno cria em sua coleção, consulte Criar um índice de Vector Search do MongoDB .