milvus-logo
LFAI
Home
  • Integraciones
    • Agentes

MemGPT con integración Milvus

MemGPT facilita la creación y el despliegue de agentes LLM con estado. Con la integración Milvus, puede construir agentes con conexiones a fuentes de datos externas (RAG).

En este ejemplo, vamos a utilizar MemGPT para chatear con una fuente de datos personalizada que está almacenada en Milvus.

Configuración

Para ejecutar MemGPT, debe asegurarse de que la versión de Python >= 3.10.

Para habilitar el backend Milvus, asegúrese de instalar las dependencias necesarias con:

$ pip install 'pymemgpt[milvus]'

Puede configurar la conexión Milvus a través del comando

$ memgpt configure
...
? Select storage backend for archival data: milvus
? Enter the Milvus connection URI (Default: ~/.memgpt/milvus.db): ~/.memgpt/milvus.db

Sólo tiene que establecer el URI a la ruta del archivo local, por ejemplo ~/.memgpt/milvus.db, que invocará automáticamente la instancia del servicio Milvus local a través de Milvus Lite.

Si tiene una gran escala de datos, como más de un millón de documentos, le recomendamos configurar un servidor Milvus más eficiente en docker o kubenetes. Y en este caso, su URI debe ser el URI del servidor, por ejemplo http://localhost:19530.

Crear una fuente de datos externa

Para introducir datos externos en un chatbot MemGPT, primero necesitamos crear una fuente de datos.

Para descargar el documento de investigación MemGPT utilizaremos curl (también puedes descargar el PDF desde tu navegador):

# we're saving the file as "memgpt_research_paper.pdf"
$ curl -L -o memgpt_research_paper.pdf https://arxiv.org/pdf/2310.08560.pdf

Ahora que tenemos el documento descargado, podemos crear una fuente de datos MemGPT utilizando memgpt load:

$ memgpt load directory --name memgpt_research_paper --input-files=memgpt_research_paper.pdf
Loading files: 100%|███████████████████████████████████| 1/1 [00:00<00:00,  3.94file/s]
Loaded 74 passages and 13 documents from memgpt_research_paper

Adjuntar el origen de datos a un agente MemGPT

Ahora que hemos creado esta fuente de datos, podemos adjuntarla a un chatbot MemGPT en cualquier momento.

Vamos a crear un nuevo chatbot utilizando la persona memgpt_doc (pero puedes utilizar cualquier persona que desees):

# reminder: `memgpt run --persona memgpt_doc` will create a new MemGPT agent using the `memgpt_doc` persona
$ memgpt run --persona memgpt_doc

Una vez que estemos chateando con el agente, podemos "adjuntar" la fuente de datos a la memoria de archivo del agente:

? Would you like to select an existing agent? No

🧬 Creating new agent...
->  🤖 Using persona profile: 'sam_pov'
->  🧑 Using human profile: 'basic'
🎉 Created new agent 'PoliteButterfly' (id=d26e1981-ff36-4095-97a0-61a1601dfb5d)

Hit enter to begin (will request first MemGPT message)

💭 Interesting, I've got a first-time user. Time to present myself and get to understand the user's needs. I wonder what brings Chad here today.
🤖 Greetings Chad! I'm MemGPT. How may I assist you today?

> Enter your message: /attach
? Select data source memgpt_research_paper
100%|███████████████████████████████████| 1/1 [00:00<00:00,  4.81it/s]

Probando nuestro nuevo chatbot

Ahora que los datos se han cargado en la memoria del chatbot, podemos empezar a hacer preguntas sobre ellos:

> Enter your message: The paper I loaded into your archival memory is called MemGPT. Can you tell me more about it?

💭 It seems Chad would like to know more about the paper titled 'MemGPT' that's stored in my archival memory. It's time to search the archival memory for details and background data to provide a comprehensive
understanding of the paper. Let's remember to page through results until I've gathered enough information to answer Chad's enquiry.
⚡🧠 [function] searching memory with archival_memory_search
💭 Based on the found results, MemGPT is an AI system designed for tasks like extended conversations and document analysis. It efficiently manages different tiers of storage to provide extended context within
the LLM’s limited cap. Also, noteworthy from my findings is that MemGPT performs impressively in deep memory retrieval (DMR) and document QA tasks. Let's prepare a comprehensive response for Chad.
🤖 Certainly, Chad. MemGPT, or MemoryGPT, is a system specially designed for tasks like extended conversations and document analysis which are traditionally hindered by the limited context windows of modern 
Large Language Models (LLMs). It uses a technique inspired by hierarchical memory systems in traditional operating systems, called virtual context management. This technique allows for an effective provision 
of extended context within an LLM’s limited context window by intelligently managing different storage tiers, much like paging between physical memory and disk. Notably, MemGPT outperforms the fixed-context 
baselines in deep memory retrieval and it's able to analyze large documents with precision.

Traducido porDeepLogo

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
Feedback

¿Fue útil esta página?