Bagaimana untuk Menggunakan VectorStoreRetrieverMemory dalam LangChain?

Bagaimana Untuk Menggunakan Vectorstoreretrievermemory Dalam Langchain



Model Bahasa Besar atau LLM ialah penyelesaian untuk masalah Pemprosesan Bahasa Semulajadi yang dibina menggunakan rangka kerja LangChain. Modul LangChain menyediakan semua kebergantungan atau perpustakaan yang diperlukan untuk mereka bentuk model sembang atau LLM. Pengguna juga boleh menetapkan retriever untuk mengekstrak data daripada stor vektor atau pangkalan data menggunakan model.

Panduan ini akan menggambarkan cara menggunakan VectorStoreRetrieverMemory menggunakan rangka kerja LangChain.

Bagaimana untuk Menggunakan VectorStoreRetrieverMemory dalam LangChain?

VectorStoreRetrieverMemory ialah perpustakaan LangChain yang boleh digunakan untuk mengekstrak maklumat/data daripada memori menggunakan stor vektor. Stor vektor boleh digunakan untuk menyimpan dan mengurus data untuk mengekstrak maklumat dengan cekap mengikut gesaan atau pertanyaan.







Untuk mempelajari proses menggunakan VectorStoreRetrieverMemory dalam LangChain, hanya melalui panduan berikut:



Langkah 1: Pasang Modul

Mulakan proses menggunakan retriever memori dengan memasang LangChain menggunakan arahan pip:



pip pasang langchain





Pasang modul FAISS untuk mendapatkan data menggunakan carian persamaan semantik:

pip install faiss-gpu



Pasang modul chromadb untuk menggunakan pangkalan data Chroma. Ia berfungsi sebagai kedai vektor untuk membina memori untuk retriever:

pip pasang chromadb

Satu lagi modul tiktoken diperlukan untuk memasang yang boleh digunakan untuk membuat token dengan menukar data kepada ketulan yang lebih kecil:

pip pasang tiktoken

Pasang modul OpenAI untuk menggunakan perpustakaannya untuk membina LLM atau bot sembang menggunakan persekitarannya:

pip pasang openai

Sediakan persekitaran pada IDE Python atau buku nota menggunakan kunci API daripada akaun OpenAI:

import awak

import getpass

awak . lebih kurang [ 'OPENAI_API_KEY' ] = getpass . getpass ( 'OpenAI API Key:' )

Langkah 2: Import Perpustakaan

Langkah seterusnya adalah untuk mendapatkan perpustakaan daripada modul ini untuk menggunakan pengumpul memori dalam LangChain:

daripada langchain. gesaan import PromptTemplate

daripada masa tarikh import masa tarikh

daripada langchain. llms import OpenAI

daripada langchain. benam . openai import OpenAIEmbeddings

daripada langchain. rantai import Rantaian Perbualan

daripada langchain. ingatan import VectorStoreRetrieverMemory

Langkah 3: Memulakan Kedai Vektor

Panduan ini menggunakan pangkalan data Chroma selepas mengimport perpustakaan FAISS untuk mengekstrak data menggunakan arahan input:

import faiss

daripada langchain. kedai doktor import InMemoryDocstore
#mengimport perpustakaan untuk mengkonfigurasi pangkalan data atau stor vektor
daripada langchain. kedai vektor import FAISS

#buat benam dan teks untuk menyimpannya dalam stor vektor
saiz_benam = 1536
indeks = faiss. IndexFlatL2 ( saiz_benam )
embedding_fn = OpenAIEmbeddings ( ) . embed_query
kedai vektor = FAISS ( embedding_fn , indeks , InMemoryDocstore ( { } ) , { } )

Langkah 4: Membina Retriever Disokong oleh Kedai Vektor

Bina memori untuk menyimpan mesej terbaharu dalam perbualan dan dapatkan konteks sembang:

retriever = kedai vektor. as_retriever ( search_kwargs = dict ( k = 1 ) )
ingatan = VectorStoreRetrieverMemory ( retriever = retriever )

ingatan. simpan_konteks ( { 'input' : 'Saya suka makan piza' } , { 'pengeluaran' : 'hebat' } )
ingatan. simpan_konteks ( { 'input' : 'Saya pandai bola sepak' } , { 'pengeluaran' : 'okey' } )
ingatan. simpan_konteks ( { 'input' : 'Saya tidak suka politik' } , { 'pengeluaran' : 'pasti' } )

Uji memori model menggunakan input yang disediakan oleh pengguna dengan sejarahnya:

cetak ( ingatan. load_memory_variables ( { 'segera' : 'sukan apa yang patut saya tonton?' } ) [ 'sejarah' ] )

Langkah 5: Menggunakan Retriever dalam Rantaian

Langkah seterusnya ialah penggunaan retriever memori dengan rantai dengan membina LLM menggunakan kaedah OpenAI() dan mengkonfigurasi templat segera:

llm = OpenAI ( suhu = 0 )
_DEFAULT_TEMPLATE = ''' Ini adalah interaksi antara manusia dan mesin
Sistem menghasilkan maklumat berguna dengan butiran menggunakan konteks
Jika sistem tidak mempunyai jawapan untuk anda, ia hanya mengatakan saya tidak mempunyai jawapannya

Maklumat penting daripada perbualan:
{sejarah}
(jika teks tidak berkaitan jangan gunakannya)

Sembang semasa:
Manusia: {input}
AI:'''

CEPAT = PromptTemplate (
input_variables = [ 'sejarah' , 'input' ] , templat = _DEFAULT_TEMPLATE
)
#configure ConversationChain() menggunakan nilai untuk parameternya
perbualan_dengan_ringkasan = Rantaian Perbualan (
llm = llm ,
segera = CEPAT ,
ingatan = ingatan ,
bertele-tele = betul
)
perbualan_dengan_ringkasan. menjangkakan ( input = 'Hai, nama saya Perry, ada apa?' )

Pengeluaran

Melaksanakan arahan menjalankan rantai dan memaparkan jawapan yang disediakan oleh model atau LLM:

Teruskan perbualan menggunakan gesaan berdasarkan data yang disimpan dalam stor vektor:

perbualan_dengan_ringkasan. menjangkakan ( input = 'apa sukan kegemaran saya?' )

Mesej sebelumnya disimpan dalam memori model yang boleh digunakan oleh model untuk memahami konteks mesej:

perbualan_dengan_ringkasan. menjangkakan ( input = 'Apakah makanan kegemaran saya' )

Dapatkan jawapan yang diberikan kepada model dalam salah satu daripada mesej sebelumnya untuk menyemak cara pengumpul memori berfungsi dengan model sembang:

perbualan_dengan_ringkasan. menjangkakan ( input = 'Siapa nama saya?' )

Model telah memaparkan output dengan betul menggunakan carian persamaan daripada data yang disimpan dalam ingatan:

Itu sahaja tentang menggunakan alat cari semula kedai vektor dalam LangChain.

Kesimpulan

Untuk menggunakan pengumpul memori berdasarkan kedai vektor dalam LangChain, cuma pasang modul dan rangka kerja dan sediakan persekitaran. Selepas itu, import perpustakaan daripada modul untuk membina pangkalan data menggunakan Chroma dan kemudian tetapkan templat gesaan. Uji retriever selepas menyimpan data dalam ingatan dengan memulakan perbualan dan bertanya soalan yang berkaitan dengan mesej sebelumnya. Panduan ini telah menghuraikan proses penggunaan perpustakaan VectorStoreRetrieverMemory dalam LangChain.