Como implementar memória de trabalho em AI agentes de IA e sistemas de Agente para aplicativos de IA em tempo AI real
Richmond Alake12 min read • Published Nov 18, 2024 • Updated Nov 18, 2024
Avalie esse Tutorial
A memória é a base sobre a qual todas as formas de inteligência surgem e evoluem. Ele cria a base para a cognição humana e sistemas artificial para construir compreensão complexa. Para os humanos, a memória é um processo biologicamente dinâmico de codificação, armazenamento e recuperação de informações por meio de redes generativas, moldando nossa capacidade de aprender, adaptar e tomar decisões.
Para sistemas computacionais no cenário moderno de AI aplicação de IA, como chatbots com LLM, AI agentes de IA e sistemas de agentes, a memória é a base para sua confiabilidade, desempenho e aplicabilidade, determinando sua capacidade de manter contexto, aprender com interações e exibir comportamento consistente e inteligente.
Neste tutorial, abordaremos:
- Memória em AI agentes de IA e sistemas de agentes.
- Como implementar memória de trabalho em sistemas de agentes.
- Como usar o Tavily e o MongoDB para implementar a memória de trabalho.
- Um caso de uso prático: implementar um AI assistente de vendas de IA com acesso em tempo real a catálogos internos de produtos e informações online, mostrando o papel da memória de trabalho em recomendações personalizadas e interações com o usuário.
- Os benefícios da memória de trabalho em AI aplicativos de IA em cenários de tempo real.
Por que você deve ler este tutorial?
Sua capacidade de entender a memória de uma perspectiva global e implementar várias funcionalidades de memória em sistemas computacionais posiciona você em uma interseção crítica entre projeto de arquitetura e AI desenvolvimento prático de IA, tornando sua experiência inestimável à medida que esses paradigmas aumentam e se tornam o fator de forma predominante da IA moderna.AI sistemas.
Já faz algum tempo que a inteligência não está limitada apenas aos humanos. O surgimento da AI IA expandiu a associação da memória, que antes era apenas um processo analítico, para incluir processos computacionais. A definição de memória deste tutorial abrangerá os paradigmas humano e computacional.
A memória em entidades inteligentes é o mecanismo que facilita o armazenamento, a recuperação e a organização das informações derivadas da interação de uma entidade inteligente com seu ambiente, outras entidades e experiências. Existem duas formas principais de memória: memória de curto e longo prazo.
- Memória de curto prazo: mantém informações por um período limitado de tempo
- Memória de longo prazo: armazena informações por um longo período de tempo
Existem várias formas de memória de curto prazo. O foco principal deste tutorial é a memória de trabalho em sistemas de agentes, principalmente como uma capacidade de um AI agente de IA. Leia mais sobre AI agentes de IA e sistemas de agentes.
A memória de trabalho em um sistema de agentes é um componente computacional central que gerencia informações transitórias e temporárias por meio de recursos integrados do sistema (bancos de dados, APIs, sistemas de gerenciamento de estado) para permitir o processamento e a tomada de decisões em tempo real. Funciona como o contexto de execução ativo onde a informação imediata é temporariamente armazenada e manipulada, suportando:
- Integração de contexto em tempo real.
- Geração de resposta dinâmica.
- Planejamento de execução adaptável.
- Processo de decisão ciente do estado.
Esta seção se concentra em uma solução para um caso de uso que é comum em todo o setor de varejo e que também pode ser adaptado para outros setores, que é a implementação de um assistente de conhecimento que está ciente dos dados específicos da empresa. O resultado da implementação de código mostrada nesta seção é uma solução que permite que um AI assistente de vendas de IA acesse um catálogo interno de produtos ( conhecimento da memória de longo prazo ) e, ao mesmo tempo, acesse informações online em tempo real ( memória de trabalho) relacionado a uma query.
Vamos definir o cenário.
No mundo dinâmico do varejo, oferecer um serviço excepcional ao cliente e uma experiência de compra personalizada é fundamental. Os assistentes de vendas com base em IA estão emergindo como uma ferramenta transformativa, permitindo que os revendedores entendam melhor as necessidades dos cliente e ofereçam recomendações de produtos personalizadas.
No entanto, a criação de assistentes de vendas conhecedores requer mais do que apenas entender a linguagem; exige a capacidade de reter e lembrar de interações passadas, recuperar informações de uma base de conhecimento existente e obter e armazenar novas informações, de forma muito semelhante à memória humana.
Aqui, apresentamos um método para implementar memória de trabalho em um AI assistente de vendas de IA usando Tavily, Cohere e MongoDB.
Aspectos principais:
- Armazenamento e recuperação de dados com MongoDB
- cliente Tavily Híbrido RAG para memória de trabalho
- Pesquisa e recuperação em tempo real
A implementação completa do código para este caso de uso pode ser encontrada Github no Github . Nesta seção, vamos nos concentrar nas etapas críticas necessárias para entender a implementação da memória de trabalho em um AI aplicação de IA , incluindo chatbots habilitados para LLM, AI agentes de IA e sistemas de agentes, mas acessaremos a implementação completa do código para uma compreensão e implementação completas.
Nesta etapa, o objetivo é criar uma base de conhecimento que consista em um produto acessível pelo assistente de pesquisa por meio de mecanismos de recuperação. O mecanismo de recuperação usado neste tutorial é a pesquisa vetorial. O MongoDB é usado como um banco de banco de dados operacional e vetorial para a base de conhecimento do assistente de vendas. Isso significa que podemos realizar uma pesquisa semântica entre as incorporações vetoriais de cada produto gerado a partir de atributos de produto existentes concatenados e uma incorporação da query de um usuário passada para o assistente.
Armazenamento de dados
O processo começa com a ingestão de dados no MongoDB. Os dados do produto, incluindo atributos como nome do produto, categoria, descrição e detalhes técnicos, são estruturados em um Pandas DataFrame.
Os dados do produto usados neste exemplo são originados da biblioteca Hugging Face Datasets usando a
load_dataset()
função. Especificamente, ele é obtido a partir do conjunto de dados "phyllshmi/amazon-product-descriptions-vlm", que contém uma ampla coleção de descrições de produtos da Amazon e informações relacionadas.1 from datasets import load_dataset 2 3 import pandas as pd 4 5 # Make sure you have an HF_TOKEN in your environment variables to access the dataset on hugging face 6 7 product_dataset = load_dataset("philschmid/amazon-product-descriptions-vlm") 8 9 # Convert product_dataset to pandas dataframe 10 11 product_dataframe = pd.DataFrame(product_dataset['train'])
Este DataFrame é então convertido em uma lista de dicionários representando um produto. O
insert_many()
método da PyMongo biblioteca PyMongo é então usado para inserir com eficiência esses documentos de produto na coleção do MongoDB , chamada products
, dentro do amazon_products
banco de banco de dados . Essa etapa crucial estabelece a base da AI base de conhecimento do assistente de vendas de IA, tornando os dados do produto acessíveis para processos de recuperação e análise downstream.1 try: 2 3 documents = product_dataframe.to_dict('records') 4 5 product_collection.insert_many(documents) 6 7 print("Data ingestion into MongoDB completed") 8 9 except Exception as e: 10 11 print(f"Error during data ingestion into MongoDB: {e}")
Incorporação de geração e armazenamento
Para facilitar os recursos de pesquisa semântica, cada documento do produto é enriquecido com incorporações. A
get_embedding()
função utiliza a API Cohere para gerar uma representação numérica do significado semântica de cada produto. Essa função aproveita o embed-english-v3.0
modelo da Cohere para incorporar as informações textuais combinadas armazenadas no product_semantics
campo de cada documento. 1 import cohere 2 3 co = cohere.ClientV2() 4 5 def get_embedding(texts, model="embed-english-v3.0", input_type="search_document"): 6 7 """Gets embeddings for a list of texts using the Cohere API. 8 9 Args: 10 11 texts: A list of texts to embed. 12 13 model: The Cohere embedding model to use. 14 15 input_type: The input type for the embedding model. 16 17 Returns: 18 19 A list of embeddings, where each embedding is a list of floats. 20 21 """ 22 23 try: 24 25 response = co.embed( 26 27 texts=[texts], 28 29 model=model, 30 31 input_type=input_type, 32 33 embedding_types=["float"], 34 35 ) 36 37 # Extract and return the embeddings 38 39 return response.embeddings.float[0] 40 41 except Exception as e: 42 43 print(f"Error generating embeddings: {e}") 44 45 print("Couldn't generate emebedding for text: ") 46 47 print(texts) 48 49 return None
As incorporações resultantes são então armazenadas dentro de um
embedding
campo dedicado em cada documento de produto. Essa etapa permite que o sistema pesquise produtos com base em sua similaridade semântica, permitindo recomendações mais sutis e relevantes.1 # Generate an embedding attribute for each data point in the dataset 2 3 # Embedding is generated from the new product semantics attribute 4 5 try: 6 7 product_dataframe['embedding'] = product_dataframe['product_semantics'].apply(get_embedding) 8 9 print("Embeddings generated successfully") 10 11 except Exception as e: 12 13 print(f"Error generating embeddings: {e}")
Recuperação e Vector Search
O MongoDB Atlas Vector Search é usado para recuperação baseada em semântica. Esse recurso permite pesquisas eficientes de similaridade usando as incorporações de produtos pré-calculadas. O sistema pode recuperar produtos que são semanticamente semelhantes à query queryndo o
embedding
campo com uma incorporação de destino. Essa abordagem melhora significativamente AI a capacidade do assistente de vendas de IA de entender a intenção do usuário e oferecer sugestões de produtos relevantes. Variáveis como
embedding_field_name
e vector_search_index_name
são usadas para configurar e interagir com o índice de pesquisa vetorial no MongoDB, garantindo a recuperação eficiente de produtos semelhantes.1 # The field containing the text embeddings on each document 2 3 embedding_field_name = "embedding" 4 5 # MongoDB Atlas Vector Search index name 6 7 vector_search_index_name = "vector_index"
Os índices vetoriais são necessários para permitir a pesquisa semântica eficiente no MongoDB. Ao criar um índice vetorial no
embedding
campo dos documentos do produto, o MongoDB pode aproveitar o algoritmo HSNW para realizar pesquisas rápidas de similaridade. Isso significa que, quando o AI assistente de vendas de IA precisa encontrar produtos semelhantes à query de um usuário, o MongoDB pode identificar e recuperar rapidamente os produtos mais relevantes com base em suas incorporações semânticas. Isso melhora significativamente a capacidade do sistema de entender a intenção do usuário e fornecer recomendações precisas em tempo real.1 def setup_vector_search_index(collection, index_definition, index_name="vector_index"): 2 3 """ 4 5 Setup a vector search index for a MongoDB collection and wait for 30 seconds. 6 7 Args: 8 9 collection: MongoDB collection object 10 11 index_definition: Dictionary containing the index definition 12 13 index_name: Name of the index (default: "vector_index") 14 15 """ 16 17 new_vector_search_index_model = SearchIndexModel( 18 19 definition=index_definition, 20 21 name=index_name, 22 23 type="vectorSearch" 24 25 ) 26 27 # Create the new index 28 29 try: 30 31 result = collection.create_search_index(model=new_vector_search_index_model) 32 33 print(f"Creating index '{index_name}'...") 34 35 # Sleep for 30 seconds 36 37 print(f"Waiting for 30 seconds to allow index '{index_name}' to be created...") 38 39 time.sleep(30) 40 41 print(f"30-second wait completed for index '{index_name}'.") 42 43 return result 44 45 except Exception as e: 46 47 print(f"Error creating new vector search index '{index_name}': {str(e)}") 48 49 return None
O cliente Tavily Hybrid RAG RAG forma o núcleo da AI memória de trabalho do assistente de vendas de IA, fazendo a ponte entre a base de conhecimento interna armazenada no MongoDB e o amplo conhecimento externo disponível online.
Ao contrário dos sistemas RAG tradicionais que dependem apenas da recuperação de documentos, adicionar Tavily em nosso sistema introduz uma abordagem híbrida, que combina informações de fontes estáticas (locais) e dinâmicas (estágios) para fornecer respostas abrangentes e sensíveis ao contexto. Esta é uma forma de HybridRAG, pois usamos duas técnicas de recuperação para complementar as informações fornecidas a um LLM.
Nesta etapa de implementação, Tavily atua como um orquestrador central, integrando-se ao MongoDB e a mecanismos de busca externos. Quando um usuário faz uma query, Tavily primeiro pesquisa a base de conhecimento local no MongoDB, aproveitando o índice vetorial para identificar produtos semanticamente semelhantes. Simultaneamente, a Tavily pode consultar fontes externas para contextos ou informações mais amplas que não são encontradas localmente. Os resultados de ambas as fontes são então combinados de forma inteligente e apresentados ao usuário, fornecendo uma resposta mais completa e perspicaz.
O trecho de código abaixo inicializa o cliente Tavily Hybrid RAG RAG, que é o componente principal responsável pela implementação de memória de trabalho em AI assistentes de vendas de IA. Ele importa as bibliotecas necessárias (
pymongo
e tavily
) e, em seguida, cria uma instância da TavilyHybridClient
classe . Durante a inicialização, ele configura o cliente com a chave API do Tavily, especifica o MongoDB como o provedor de banco de dados de dados e fornece referências à coleção MongoDB , índice de pesquisa vetorial, campo de incorporação e campo de conteúdo.
Essa configuração estabelece a conexão entre o Tavily e a base de conhecimento subjacente, permitindo que o cliente realize uma pesquisa híbrida e gerencie a memória de trabalho de forma eficaz.
1 from pymongo import MongoClient 2 3 from tavily import TavilyHybridClient 4 5 hybrid_rag = TavilyHybridClient( 6 7 api_key=os.environ.get("TAVILY_API_KEY"), 8 9 db_provider="mongodb", 10 11 collection=product_collection, 12 13 index=vector_search_index_name, 14 15 embeddings_field="embedding", 16 17 content_field="product_semantics" 18 19 )
Lembre-se de obter sua chave de API do Tavily e colocá-la em uma variável de ambiente:
TAVILY_API_KEY
.Tavily gerencia uma memória de trabalho que armazena e recupera informações pesquisadas ou geradas anteriormente de fontes estrangeiras. A memória de trabalho permite que o AI assistente de vendas de IA mantenha um estado de conversa relevante. Ao processar uma nova query, o sistema integra informações de sua base de conhecimento e de uma fonte de informações em tempo real.
1 results = hybrid_rag.search("Get me a black laptop to use in a office", max_local=5, max_foreign=2)
Este trecho de código acima inicia uma pesquisa usando o cliente Tavily Híbrido RAG. Ele chama o
search()
método do objeto híbrido_rag com a consulta do usuário ("Obtenha-me um laptop escuro para usar em um escritório") como entrada. Os parâmetros
max_local=5
e max_foreign=2
limitam o número de resultados recuperados da base de conhecimento local (MongoDB) para 5 e o número de resultados obtidos de fontes externas para 2. Os resultados da pesquisa, contendo documentos locais e estrangeiros, são armazenados na variável de resultados para processamento ou exibição posterior.Observe que os itens abaixo são originados da Internet ou de uma fonte " estrangeira ":
- "Comprar no Depot do Escritório para Computadores Portáteis Pretos..."
- "O tempo de carga real variará de acordo com a operação ."
Explicações adicionais do código:
hybrid_rag.search()
: Isto inicia uma operação de pesquisa utilizando o cliente Tavily Híbrido RAG inicializado anteriormente.- "Obtenha-me um laptop branco para usar em um escritório": essa é a consulta do usuário que o sistema tentará responder pesquisando fontes locais e estrangeiras.
max_local=5
: este parâmetro limita o número de resultados recuperados da base de conhecimento local (MongoDB) a um máximo de 5. Isso ajuda a priorizar informações relevantes armazenadas internamente.max_foreign=2
: este parâmetro limita o número de resultados obtidos de fontes externas (como sites ou mecanismos de pesquisa) a um máximo de 2. Isso controla a quantidade de informações externas incorporadas na resposta.results
: esta variável armazena os resultados da pesquisa retornados pelo cliente Tavily , que incluirá documentos locais e estrangeiros com base nas limitações especificadas.
Existem cenários em que é necessário armazenar novas informações da memória de trabalho em um componente de memória de longo prazo dentro de um sistema.
Por exemplo, suponhamos que o usuário peça "um laptop branco com bateria de longa duração para uso no escritório". O Tavily pode recuperar informações sobre um modelo de laptop específico com uma bateria de longa duração de um site externo. Ao salvar esses dados estrangeiros, da próxima vez que um usuário solicitar um "laptop com bateria de longa duração", o AI assistente de vendas de IA poderá recuperar diretamente as informações salvas anteriormente de sua base de conhecimento local, fornecendo uma resposta mais rápida e eficiente.
Abaixo estão mais alguns benefícios e lógica para salvar dados externos da memória de trabalho para a memória de longo prazo:
- Base de conhecimento enriquecida: ao salvar dados estrangeiros, a AI base de conhecimento do assistente de vendas com IA se torna mais abrangente e atualizada com informações da Web. Isso pode melhorar significativamente a relevância e a precisão de respostas futuras.
- Latência reduzida: as pesquisas subsequentes de queries semelhantes serão mais rápidas, pois as informações relevantes agora estão disponíveis localmente, eliminando a necessidade de fazer query de fontes externas novamente. Isso também reduz o custo operacional de todo o sistema.
- Acesso offline: se as fontes externas ficarem indisponíveis, o AI assistente de vendas de IA ainda poderá fornecer respostas com base nos dados externos salvos anteriormente, garantindo a continuação do serviço.
1 results = hybrid_rag.search("Get me a black laptop to use in a office", max_local=5, max_foreign=2, save_foreign=True)
Esta linha de código acima inicia uma pesquisa usando o cliente Tavily Híbrido RAG RAG , semelhante ao exemplo anterior na 3 etapa. No entanto, inclui um parâmetro adicional,
save_foreign=True
, que instrui o cliente a salvar os resultados externos recuperados (de fontes externas) na base de conhecimento local (MongoDB). Isso significa que as informações recuperadas de fontes externas serão armazenadas e se tornarão parte da AI memória de longo prazo do assistente de vendas de IA.Observe que, incluídos nos resultados de origem "local", estão resultados de pesquisa que antes eram "estágios". Os itens usados na memória de trabalho foram movidos para a memória de longo prazo sem nenhum esforço extensivo de implementação.
A memória de trabalho, habilitada por Tavily e MongoDB em sua AI pilha de aplicação de IA, oferece vários benefícios importantes para chatbots com LLM, AI agentes de IA e sistemas de agentes, incluindo AIassistentes de vendas com IA:
- Contexto e personalização aprimorados: AI os agentes de IA podem se lembrar de interações passadas e preferências do usuário, permitindo que forneçam respostas mais contextualmente relevantes e personalizadas. Isso é demonstrado no código por meio do uso do cliente Tavily Hybrid RAG RAG , que armazena e recupera informações de fontes locais e estrangeiras, permitindo que o sistema se lembre de interações passadas.
- Eficiência e velocidade aprimoradas: a memória de trabalho permite que AI os agentes de IA acessem informações recuperadas anteriormente rapidamente, reduzindo a necessidade de repetidas queries externas. Isso é aparente no código em que o
save_foreign=True
parâmetro permite salvar dados externos na base de conhecimento local, acelerando pesquisas futuras de informações semelhantes. - Maior base de conhecimento e adaptabilidade: ao salvar dados externos, osAI agentes de IA podem expandir continuamente sua base de conhecimento, aprendendo com novas interações e se adaptando às crescentes necessidades do usuário. Isso se reflete no uso do código do MongoDB como um armazenamento de memória de longo prazo, permitindo que o sistema construa uma base de conhecimento mais abrangente ao longo do tempo.
- Experiência de usuário aprimorada: a memória de trabalho permite interações mais naturais e envolventes, pois AI os agentes de IA podem entender e responder às consultas do usuário com maior contexto e personalização. Este é um benefício crucial destacado no caso de uso do AI assistente de vendas de IA, em que a memória de interações passadas leva a experiências mais satisfeitas com o cliente .
No geral, a memória de trabalho habilita AI os agentes de IA e os sistemas de agentes a se tornarem mais inteligentes, adaptáveis, confiáveis e focados no usuário, melhorando significativamente sua aprovação, eficácia e experiência geral do usuário.
Para obter mais informações sobre a memória de trabalho e outras formas de memória em sistemas de agentes, este tutorial extensivo implementa um sistema de agentes que usa Tavily e MongoDB para componentes de memória.
Saiba mais sobre o HybridRAG com o MongoDB na documentação oficial do Tavily.
A memória em AI sistemas de agentes de IA, agentes e AI IA composta refere-se aos mecanismos que permitem que essas entidades inteligentes armazenem, recuperem e organizem informações derivadas de suas interações com o ambiente, outras entidades e experiências. Essa memória é crucial para manter o contexto, aprender com interações passadas e tomar decisões inteligentes. Ela engloba a memória de curto prazo, que mantém as informações temporariamente para processamento imediato, e a memória de longo prazo, que armazena informações por períodos prolongados.
A memória de trabalho em sistemas inteligentes é uma forma de memória de curto prazo que gerencia informações transitórias e temporárias necessárias para o processamento e a tomada de decisões em tempo real. Ele funciona como o contexto de execução ativo, onde as informações imediatas são temporariamente armazenadas e manipuladas. Em AI agentes de IA, a memória de trabalho suporta integração de contexto em tempo real, geração de resposta dinâmica, planejamento de execução adaptável e tomada de decisão com reconhecimento de estado.
A implementação da memória de trabalho em AI agentes de IA envolve a integração de Tavily e MongoDB para gerenciar informações transitórias de forma eficaz. Comece criando uma base de conhecimento (memória de longo prazo) no MongoDB, armazenando dados do produto com incorporações semânticas geradas usando Cohere. Em seguida, o cliente RAG híbrido da Tavily RAG será configurado para lidar com a memória de trabalho, permitindo que o AI agente de IA acesse informações externas locais e em tempo real. Essa abordagem híbrida permite que o agente recupere, armazene e manipule informações imediatas, aprimorando o processamento em tempo real e a tomada de decisões em AI aplicativos de IA.
O cliente Tavily Hybrid RAG RAG serve como o componente principal para implementar a memória de trabalho em AI agentes de IA. Ele atua como um orquestrador que conecta a base de conhecimento interna (MongoDB) e fontes externas de informações em tempo real. Ao combinar a recuperação de dados locais e externos, a Tavily permite que AI os agentes de IA mantenham o contexto, se adaptem a novas informações e forneçam respostas dinâmicas. Esse mecanismo híbrido de recuperação aprimora a capacidade do agente de processar dados em tempo real, suportando interações mais inteligentes e sensíveis ao contexto.
A memória de trabalho aprimora os AI agentes de IA por:
- Manutenção do contexto: permite que os agentes acompanhem as interações contínuas e as preferências do usuário.
- Processo de decisão dinâmico: suporta o processamento em tempo real de novas informações para respostas adaptáveis.
- Aprender com as interações: permite que os agentes incorporem novos dados à sua base de conhecimento, melhorando com o tempo.
- Oferecer experiências personalizadas: leva a interações com o usuário mais contextualmente relevantes e satisfeitas.
- Melhoria da eficiência: Reduz a latência armazenando informações acessadas com frequência para recuperação rápida.
A memória de trabalho torna os AI agentes de IA mais inteligentes, responsivos e centralizados no usuário em aplicativos em tempo real.
Principais comentários nos fóruns
Ainda não há comentários sobre este artigo.