Bagaimana Cara Menambahkan Tipe Memori Khusus di LangChain?

Bagaimana Cara Menambahkan Tipe Memori Khusus Di Langchain



LangChain digunakan untuk mengkonfigurasi/merancang Model Bahasa atau Chatbots yang dapat berinteraksi dengan manusia seperti obrolan. Pesan obrolan ini dihubungkan melalui rantai seperti yang disarankan oleh nama LangChain dan pengguna juga dapat menyimpannya dalam memori. LangChain memungkinkan pengembang untuk menggunakan perpustakaan memori yang menyediakan penggunaan kelas bawaan atau penyesuaian memori mereka sendiri.

Garis Besar Singkat

Posting ini akan menunjukkan:







Cara Menambahkan Tipe Memori Khusus di LangChain



Kesimpulan



Bagaimana Cara Menambahkan Tipe Memori Khusus di LangChain?

Menambahkan jenis memori yang disesuaikan di LangChain memungkinkan pengguna mendapatkan kinerja maksimal sebagai memori. Pengguna dapat mengkonfigurasi jenis memori sesuai dengan kebutuhannya. Untuk menambahkan tipe memori khusus di LangChain, cukup lakukan langkah-langkah berikut:





Langkah 1: Menginstal Kerangka

Pertama, instal kerangka LangChain untuk memulai proses penambahan jenis memori khusus:

pip instal langchain

Menjalankan perintah di atas di Notebook Python akan menginstal dependensi untuk LangChain seperti yang ditampilkan dalam cuplikan berikut:



Instal modul OpenAI untuk mendapatkan perpustakaannya yang dapat digunakan untuk mengonfigurasi LLM:

pip instal openai

Panduan ini akan menggunakan kerangka spaCy untuk merancang jenis memori khusus di LangChain dan kode berikut digunakan untuk menginstal modul:

pip instal spacy

Model spaCy menggunakan tabel hash untuk menyimpan informasi sebagai observasi seperti pesan chat sebelumnya. Kode berikut digunakan untuk mengunduh Model Bahasa Besar atau LLM dari perpustakaan spaCy untuk membangun model NLP tingkat lanjut:

! python -m unduhan spacy en_core_web_lg

Mengimpor “ Anda ' Dan ' dapatkan pass ” perpustakaan untuk memasukkan kunci API dari akun OpenAI ke mengatur lingkungannya :

impor Anda
impor dapatkan pass

Anda . sekitar [ 'OPENAI_API_KEY' ] = dapatkan pass . dapatkan pass ( 'Kunci API OpenAI:' )

Langkah 2: Mengimpor Perpustakaan

Langkah selanjutnya adalah mengimpor perpustakaan yang diperlukan untuk menyesuaikan jenis memori sesuai dengan model obrolan:

dari rantailang. skema impor Memori Dasar

dari rantailang. rantai impor Rantai Percakapan

dari gila-gilaan impor Model Dasar

dari rantailang. llms impor OpenAI

dari mengetik impor Daftar , Dikte , Setiap

Mengimpor “ spaCy ” perpustakaan untuk memuat “ en_core_web_lg ” modelkan dan tetapkan ke “ nlp ” variabel karena merupakan model Pemrosesan Bahasa Alami:

impor spacy

nlp = spacy. memuat ( 'en_core_web_lg' )

Langkah 3: Membangun Memori Khusus

Setelah itu, cukup buat memori khusus menggunakan argumen BaseMemory dan BaseModel di kelas Memory. Kemudian, konfigurasikan entitas (dikumpulkan/disimpan dari data) yang dapat disimpan dalam memori sebagai informasi lengkap atau sebagai satu unit. Memori dikonfigurasi untuk memuat semua entitas dari dokumen untuk mengoptimalkan kinerja memori dan model:

kelas SpacyEntityMemory ( Memori Dasar , Model Dasar ) :
''' Kelas memori untuk menyimpan informasi tentang entitas'''
entitas: dikte = { }
kunci_memori: str = 'entitas'
def jernih ( diri sendiri ) :
diri sendiri . entitas = { }
@ Properti
def memori_variabel ( diri sendiri ) - > Daftar [ str ] :
''' Inisialisasi variabel yang disediakan untuk kueri'''
kembali [ diri sendiri . kunci_memori ]
#tentukan variabel memori menggunakan argumen
def memuat_memori_variabel ( diri sendiri , masukan: Dikt [ str , Setiap ] ) - > Dikte [ str , str ] :
''' Panggil variabel untuk memori yaitu kunci entitas'''
dokter = nlp ( masukan [ daftar ( masukan. kunci ( ) ) [ 0 ] ] )
#konfigurasi entitas untuk disimpan dalam memori untuk unit individual
entitas = [
diri sendiri . entitas [ str ( masuk ) ] untuk masuk di dalam dokter. masuk jika str ( masuk ) di dalam diri sendiri . entitas
]
kembali { diri sendiri . kunci_memori : ' \N ' . bergabung ( entitas ) }
#tentukan save_context() untuk menggunakan memori
def simpan_konteks ( diri sendiri , masukan: Dikt [ str , Setiap ] , keluaran: Dikt [ str , str ] ) - > Tidak ada :
'''Simpan pengamatan dari obrolan ini ke memori'''
teks = masukan [ daftar ( masukan. kunci ( ) ) [ 0 ] ]
dokter = nlp ( teks )
untuk masuk di dalam dokter. masuk :
ent_str = str ( masuk )
jika ent_str di dalam diri sendiri . entitas :
diri sendiri . entitas [ ent_str ] + = F ' \N {teks}'
kalau tidak :
diri sendiri . entitas [ ent_str ] = teks

Langkah 4: Mengonfigurasi Templat Prompt

Setelah itu, cukup konfigurasikan template prompt yang menjelaskan struktur input yang diberikan oleh pengguna/manusia:

dari rantailang. petunjuknya . mengingatkan impor Templat Prompt

templat = '''Berikut ini adalah interaksi antara mesin dan manusia Dikatakan tidak tahu Jika mesin tidak mengetahui jawabannya Mesin (AI) memberikan detail dari konteksnya dan jika tidak memahami jawaban atas pertanyaan apa pun, maka itu adalah hanya mengatakan maaf

Informasi entitas:

{entitas}

Komunikasi:

Manusia: {masukan}

AI:'''


mengingatkan = Templat Prompt ( masukan_variabel = [ 'entitas' , 'memasukkan' ] , templat = templat )

Langkah 5: Menguji Model

Sebelum menguji model, cukup konfigurasikan LLM menggunakan metode OpenAI() dan siapkan fungsi ConversationChain() dengan argumen:

llm = OpenAI ( suhu = 0 )

percakapan = Rantai Percakapan (

llm = llm , mengingatkan = mengingatkan , bertele-tele = BENAR , Penyimpanan = SpacyEntityMemory ( )

)

Berikan informasi ke model menggunakan argumen input sambil memanggil metode prediksi() dengan variabel percakapan:

percakapan. meramalkan ( memasukkan = 'Harrison menyukai pembelajaran mesin' )

Keluaran

Model telah menyerap informasi dan menyimpannya dalam memori dan juga mengajukan pertanyaan terkait informasi untuk melanjutkan percakapan:

Pengguna dapat menanggapi pertanyaan dari model untuk menambahkan lebih banyak informasi ke memori atau menguji memori dengan mengajukan pertanyaan tentang informasi tersebut:

percakapan. meramalkan (

memasukkan = 'Apa subjek favorit Harrison'

)

Model memberikan keluaran berdasarkan informasi sebelumnya dan menampilkannya di layar seperti yang ditunjukkan cuplikan berikut:

Sekian tentang menambahkan tipe memori khusus di LangChain.

Kesimpulan

Untuk menambahkan tipe memori khusus di LangChain, cukup instal modul yang diperlukan untuk mengimpor perpustakaan guna membangun memori khusus. SpaCy adalah perpustakaan penting yang digunakan dalam panduan ini untuk menambahkan memori khusus menggunakan model NLP-nya. Setelah itu, konfigurasikan memori khusus dan templat prompt untuk memberikan struktur antarmuka obrolan. Setelah konfigurasi selesai, cukup uji memori model dengan menanyakan informasi terkait data yang disimpan.