milvus-logo
LFAI
Casa
  • Integrazioni
    • Agenti

MemGPT con integrazione Milvus

MemGPT semplifica la creazione e la distribuzione di agenti LLM stateful. Con l'integrazione di Milvus, è possibile creare agenti con connessioni a fonti di dati esterne (RAG).

In questo esempio, utilizzeremo MemGPT per chattare con un'origine dati personalizzata memorizzata in Milvus.

Configurazione

Per eseguire MemGPT, occorre assicurarsi che la versione di Python sia >= 3.10.

Per abilitare il backend Milvus, assicurarsi di installare le dipendenze necessarie:

$ pip install 'pymemgpt[milvus]'

È possibile configurare la connessione a Milvus tramite il comando

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

È sufficiente impostare l'URI al percorso del file locale, ad esempio ~/.memgpt/milvus.db, che richiamerà automaticamente l'istanza del servizio Milvus locale attraverso Milvus Lite.

Se si dispone di una grande quantità di dati, ad esempio più di un milione di documenti, si consiglia di impostare un server Milvus più performante su docker o kubenetes. In questo caso, l'URI dovrebbe essere l'URI del server, ad esempio http://localhost:19530.

Creare una fonte di dati esterna

Per alimentare un chatbot MemGPT con dati esterni, è necessario creare una fonte di dati.

Per scaricare il documento di ricerca di MemGPT utilizzeremo curl (si può anche scaricare semplicemente il PDF dal browser):

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

Ora che abbiamo scaricato il documento, possiamo creare una fonte di dati MemGPT utilizzando 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

Collegare l'origine dati a un agente MemGPT

Ora che abbiamo creato questa fonte di dati, possiamo collegarla a un chatbot MemGPT in qualsiasi momento.

Creiamo un nuovo chatbot utilizzando la persona memgpt_doc (ma è possibile utilizzare qualsiasi persona):

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

Una volta che abbiamo chattato con l'agente, possiamo "attaccare" l'origine dati alla memoria di archiviazione dell'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]

Prova del nostro nuovo chatbot

Ora che i dati sono stati caricati nella memoria del chatbot, possiamo iniziare a fare domande su di essi:

> 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.

Tradotto daDeepLogo

Try Managed Milvus for Free

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

Get Started
Feedback

Questa pagina è stata utile?