Panduan ini akan mengilustrasikan proses penambahan memori ke rantai dengan banyak input di LangChain.
Bagaimana Cara Menambahkan Memori ke Rantai Dengan Banyak Input di LangChain?
Memori dapat ditambahkan ke LLM atau chatbots untuk menyimpan pesan atau data terbaru sehingga model dapat memahami konteks perintah. Untuk mempelajari proses menambahkan memori ke rantai dengan banyak masukan di LangChain, cukup lakukan langkah-langkah berikut:
Langkah 1: Instal Modul
Pertama, instal kerangka LangChain karena memiliki beragam dependensi untuk membangun model bahasa:
pip instal langchain
Instal chromedb untuk menyimpan data yang digunakan oleh memori di penyimpanan vektor Chroma:
pip instal chromedb
Tiktoken adalah tokenizer yang digunakan untuk membuat potongan kecil dari dokumen besar sehingga dapat dikelola dengan mudah:
pip instal tiktoken
OpenAI adalah modul yang dapat digunakan untuk membangun rantai dan LLM menggunakan metode OpenAI():
pip instal openai
Langkah 2: Atur Lingkungan dan Unggah Data
Langkah selanjutnya setelah menginstal semua modul yang diperlukan untuk proses ini adalah menyiapkan lingkungan menggunakan kunci API dari akun OpenAI:
impor Andaimpor dapatkan pass
Anda . sekitar [ 'OPENAI_API_KEY' ] = dapatkan pass . dapatkan pass ( 'Kunci API OpenAI:' )
Unggah dokumen menggunakan pustaka file untuk membangun rantai dalam kerangka LangChain:
dari google. DAN AL impor filediunggah = file. mengunggah ( )
Langkah 3: Impor Perpustakaan
Setelah dokumen berhasil diunggah, cukup impor perpustakaan yang diperlukan dari modul Langchain:
dari rantailang. penyematan . terbuka impor OpenAIEmbeddingsdari rantailang. penyematan . berpadu impor Kohere Embeddings
dari rantailang. pemisah_teks impor Pemisah Teks Karakter
dari rantailang. toko vektor . elastic_vector_search impor Pencarian ElasticVector
dari rantailang. toko vektor impor Kroma
dari rantailang. toko dokumen . dokumen impor Dokumen
Langkah 4: Membangun Memori Menggunakan Chroma Database
Sekarang, mulailah membangun ruang vektor untuk menyimpan embeddings dan token dari dokumen yang diunggah sebelumnya:
dengan membuka ( 'state_of_the_union.txt' ) sebagai F:negara dari Persatuan = F. membaca ( )
pemisah_teks = Pemisah Teks Karakter ( potongan_ukuran = 1000 , potongan_tumpang tindih = 0 )
teks = pemisah_teks. split_teks ( negara dari Persatuan )
penyematan = OpenAIEmbeddings ( )
Konfigurasikan database Chroma untuk menyimpan teks dan penyematan dari dokumen:
pencarian dokumen = Kroma. dari_teks (teks , penyematan , metadata = [ { 'sumber' : Saya } untuk Saya di dalam jangkauan ( hanya ( teks ) ) ]
)
Uji memori dengan menanyakan perintah pada variabel kueri lalu jalankan metode kesamaan_pencarian():
pertanyaan = 'Kapan NATO dibentuk'dokumen = pencarian dokumen. kesamaan_pencarian ( pertanyaan )
Langkah 5: Mengonfigurasi Templat Prompt
Langkah ini menjelaskan proses mengonfigurasi templat untuk perintah dengan mengimpor pustaka berikut:
dari rantailang. rantai . pertanyaan_menjawab impor memuat_qa_chaindari rantailang. llms impor OpenAI
dari rantailang. petunjuknya impor Templat Prompt
dari rantailang. Penyimpanan impor PercakapanBufferMemory
Setelah itu, cukup konfigurasikan templat atau struktur untuk kueri dan jalankan rantai setelah memori ditambahkan ke model:
templat = '''Kamu adalah seorang model yang sedang ngobrol dengan manusiaMengingat potongan yang diambil dari dokumen panjang dan sebuah pertanyaan, buatlah jawaban akhir
{konteks}
{hist}
Manusia: {masukan}
Bot Obrolan:'''
mengingatkan = Templat Prompt (
masukan_variabel = [ 'sejarah' , 'memasukkan' , 'konteks' ] , templat = templat
)
Penyimpanan = PercakapanBufferMemory ( kunci_memori = 'sejarah' , kunci_masukan = 'memasukkan' )
rantai = memuat_qa_chain (
OpenAI ( suhu = 0 ) , tipe_rantai = 'hal-hal' , Penyimpanan = Penyimpanan , mengingatkan = mengingatkan
)
Langkah 6: Menguji Memori
Inilah saatnya untuk menguji model dengan mengajukan pertanyaan menggunakan variabel query dan kemudian mengeksekusi metode chain() dengan parameternya:
pertanyaan = 'Kapan NATO dibentuk'rantai ( { 'masukan_dokumen' : dokumen , 'memasukkan' : pertanyaan } , return_only_outputs = BENAR )
Cetak data yang disimpan dalam memori buffer sebagai jawaban yang diberikan oleh model yang disimpan baru-baru ini di memori:
mencetak ( rantai. Penyimpanan . penyangga )
Itu semua tentang menambahkan memori ke rantai dengan banyak input di LangChain.
Kesimpulan
Untuk menambahkan memori ke rantai dengan banyak input di LangChain, cukup instal modul dan penyimpanan vektor untuk menyimpan teks dan penyematan. Setelah itu, unggah data/dokumen dari sistem lokal dan kemudian impor perpustakaan yang diperlukan untuk menyimpan data guna membangun memori untuk LLM. Konfigurasikan template prompt untuk menyimpan pesan terbaru di memori buffer dan kemudian kirim pesan teks berantai. Panduan ini telah menguraikan proses penambahan memori ke rantai dengan banyak masukan di LangChain.