Bagaimana Cara Menambahkan Memori ke Rantai Dengan Banyak Input di LangChain?

Bagaimana Cara Menambahkan Memori Ke Rantai Dengan Banyak Input Di Langchain



Chatbots dan Model Bahasa Besar digunakan oleh jutaan orang di seluruh dunia dan model ini dapat menghasilkan teks sesuai perintah. LangChain adalah salah satu kerangka kerja paling efektif dan efisien yang memungkinkan pengembang membangun model dan bot tersebut. Pengguna memberikan perintah atau pertanyaan sebagai masukan dan model memahami perintah sebelum menghasilkan teks yang tampaknya paling terkait atau menyukai perintah tersebut.

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 Anda
impor 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 file

diunggah = file. mengunggah ( )

Langkah 3: Impor Perpustakaan

Setelah dokumen berhasil diunggah, cukup impor perpustakaan yang diperlukan dari modul Langchain:

dari rantailang. penyematan . terbuka impor OpenAIEmbeddings

dari 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_chain

dari 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 manusia
Mengingat 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.