MemGPT dengan Integrasi Milvus
MemGPT memudahkan untuk membangun dan menggunakan agen LLM yang stateful. Dengan integrasi Milvus, Anda dapat membuat agen dengan koneksi ke sumber data eksternal (RAG).
Dalam contoh ini, kita akan menggunakan MemGPT untuk mengobrol dengan sumber data khusus yang disimpan di Milvus.
Konfigurasi
Untuk menjalankan MemGPT, Anda harus memastikan versi Python >= 3.10.
Untuk mengaktifkan backend Milvus, pastikan Anda telah menginstal dependensi yang diperlukan:
$ pip install 'pymemgpt[milvus]'
Anda dapat mengonfigurasi koneksi Milvus melalui perintah
$ memgpt configure
...
? Select storage backend for archival data: milvus
? Enter the Milvus connection URI (Default: ~/.memgpt/milvus.db): ~/.memgpt/milvus.db
Anda cukup mengatur URI ke jalur file lokal, misalnya ~/.memgpt/milvus.db
, yang secara otomatis akan memanggil instance layanan Milvus lokal melalui Milvus Lite.
Jika Anda memiliki data berskala besar, seperti lebih dari satu juta dokumen, kami sarankan untuk menyiapkan server Milvus yang lebih berkinerja baik di docker atau kubenetes. Dalam hal ini, URI Anda haruslah URI server, misalnya http://localhost:19530
.
Membuat sumber data eksternal
Untuk memasukkan data eksternal ke dalam chatbot MemGPT, pertama-tama kita perlu membuat sumber data.
Untuk mengunduh makalah penelitian MemGPT, kami akan menggunakan curl
(Anda juga dapat mengunduh PDF dari browser Anda):
# we're saving the file as "memgpt_research_paper.pdf"
$ curl -L -o memgpt_research_paper.pdf https://arxiv.org/pdf/2310.08560.pdf
Sekarang setelah kita mengunduh makalahnya, kita dapat membuat sumber data MemGPT menggunakan 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
Melampirkan sumber data ke agen MemGPT
Sekarang setelah kita membuat sumber data ini, kita dapat melampirkannya ke chatbot MemGPT kapan saja.
Mari kita buat chatbot baru menggunakan persona memgpt_doc
(tetapi Anda dapat menggunakan persona apa pun yang Anda inginkan):
# reminder: `memgpt run --persona memgpt_doc` will create a new MemGPT agent using the `memgpt_doc` persona
$ memgpt run --persona memgpt_doc
Setelah kita mengobrol dengan agen, kita dapat "melampirkan" sumber data ke memori arsip agen:
? 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]
Menguji chatbot baru kami
Sekarang setelah data dimuat ke dalam memori chatbot, kita dapat mulai mengajukan pertanyaan tentang data tersebut:
> 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.