Garis Besar Singkat
Posting ini akan menunjukkan:
Cara Menambahkan Tipe Memori Khusus di LangChain
- Menginstal Kerangka
- Mengimpor Perpustakaan
- Membangun Memori Khusus
- Mengonfigurasi Templat Prompt
- Menguji Model
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 langchainMenjalankan 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 Andaimpor 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 Dasardari 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 spacynlp = 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 Prompttemplat = '''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.