Šī rokasgrāmata ilustrēs, kā izmantot VectorStoreRetrieverMemory, izmantojot LangChain sistēmu.
Kā lietot VectorStoreRetrieverMemory programmā LangChain?
VectorStoreRetrieverMemory ir LangChain bibliotēka, ko var izmantot, lai iegūtu informāciju/datus no atmiņas, izmantojot vektoru krātuves. Vektoru veikalus var izmantot datu glabāšanai un pārvaldībai, lai efektīvi iegūtu informāciju atbilstoši uzvednei vai vaicājumam.
Lai uzzinātu VectorStoreRetrieverMemory lietošanas procesu programmā LangChain, vienkārši izpildiet šo rokasgrāmatu:
1. darbība: instalējiet moduļus
Sāciet atmiņas retrīvera lietošanas procesu, instalējot LangChain, izmantojot komandu pip:
pip instalēt langchain
Instalējiet FAISS moduļus, lai iegūtu datus, izmantojot semantiskās līdzības meklēšanu:
pip instalēt faiss-gpu
Instalējiet chromadb moduli, lai izmantotu Chroma datubāzi. Tas darbojas kā vektoru krātuve, lai izveidotu retrīvera atmiņu:
pip instalēt chromadb
Ir nepieciešams instalēt vēl vienu moduli tiktoken, ko var izmantot, lai izveidotu marķierus, pārvēršot datus mazākos gabalos:
pip instalēt tiktoken
Instalējiet OpenAI moduli, lai izmantotu tā bibliotēkas LLM vai tērzēšanas robotu veidošanai, izmantojot tā vidi:
pip install openai
Iestatiet vidi Python IDE vai piezīmjdatorā, izmantojot API atslēgu no OpenAI konta:
imports tuimports getpass
tu . aptuveni [ 'OPENAI_API_KEY' ] = getpass . getpass ( 'OpenAI API atslēga:' )
2. darbība. Importējiet bibliotēkas
Nākamais solis ir iegūt bibliotēkas no šiem moduļiem, lai izmantotu atmiņas retrīveru programmā LangChain:
no langchain. uzvednes imports PromptTemplateno datums Laiks imports datums Laiks
no langchain. llms imports OpenAI
no langchain. iegulšanas . openai imports OpenAIEmbeddings
no langchain. ķēdes imports Sarunu ķēde
no langchain. atmiņa imports VectorStoreRetrieverMemory
3. darbība. Vector Store inicializēšana
Šajā rokasgrāmatā pēc FAISS bibliotēkas importēšanas tiek izmantota Chroma datu bāze, lai iegūtu datus, izmantojot ievades komandu:
imports faissno langchain. doktora veikals imports InMemoryDocstore
#bibliotēku importēšana datu bāzu vai vektoru veikalu konfigurēšanai
no langchain. vektoru veikali imports FAISS
#izveidojiet iegulumus un tekstus, lai saglabātu tos vektoru veikalos
iegulšanas_izmērs = 1536. gads
rādītājs = faiss. IndexFlatL2 ( iegulšanas_izmērs )
embedding_fn = OpenAIEmbeddings ( ) . embed_query
vektoru veikals = FAISS ( embedding_fn , rādītājs , InMemoryDocstore ( { } ) , { } )
4. darbība: izveidojiet retrīveri, ko nodrošina vektoru veikals
Veidojiet atmiņu, lai saglabātu jaunākos sarunas ziņojumus un iegūtu tērzēšanas kontekstu:
retrīvers = vektoru veikals. kā_retrīvers ( search_kwargs = dikt ( k = 1 ) )atmiņa = VectorStoreRetrieverMemory ( retrīvers = retrīvers )
atmiņa. save_context ( { 'ievade' : 'Man patīk ēst picu' } , { 'izeja' : 'fantastisks' } )
atmiņa. save_context ( { 'ievade' : 'Man padodas futbols' } , { 'izeja' : 'labi' } )
atmiņa. save_context ( { 'ievade' : 'Man nepatīk politika' } , { 'izeja' : 'protams' } )
Pārbaudiet modeļa atmiņu, izmantojot lietotāja sniegto ievadi ar tā vēsturi:
drukāt ( atmiņa. load_memory_variables ( { 'pamudināt' : 'Kādu sporta veidu man vajadzētu skatīties?' } ) [ 'vēsture' ] )
5. darbība: retrīvera izmantošana ķēdē
Nākamais solis ir atmiņas retrīvera izmantošana ar ķēdēm, izveidojot LLM, izmantojot OpenAI() metodi, un konfigurējot uzvednes veidni:
llm = OpenAI ( temperatūra = 0 )_DEFAULT_TEMPLATE = '''Tā ir mijiedarbība starp cilvēku un mašīnu
Sistēma rada noderīgu informāciju ar detaļām, izmantojot kontekstu
Ja sistēmai nav atbildes, tā vienkārši saka, ka man nav atbildes
Svarīga informācija no sarunas:
{vēsture}
(ja teksts nav būtisks, nelietojiet to)
Pašreizējā tērzēšana:
Cilvēks: {input}
AI: '''
PAMUDINĀT = PromptTemplate (
ievades_mainīgie = [ 'vēsture' , 'ievade' ] , veidne = _DEFAULT_TEMPLATE
)
#configure ConversationChain(), izmantojot tās parametru vērtības
saruna_ar_kopsavilkumu = Sarunu ķēde (
llm = llm ,
pamudināt = PAMUDINĀT ,
atmiņa = atmiņa ,
runīgs = Taisnība
)
saruna_ar_kopsavilkumu. prognozēt ( ievade = 'Sveiki, mani sauc Perijs, kas notiek?' )
Izvade
Komandas izpilde palaiž ķēdi un parāda modeļa vai LLM sniegto atbildi:
Turpiniet sarunu, izmantojot uzvedni, kuras pamatā ir vektoru veikalā saglabātie dati:
saruna_ar_kopsavilkumu. prognozēt ( ievade = 'Kāds ir mans mīļākais sporta veids?' )
Iepriekšējie ziņojumi tiek saglabāti modeļa atmiņā, ko modelis var izmantot, lai izprastu ziņojuma kontekstu:
saruna_ar_kopsavilkumu. prognozēt ( ievade = 'Kāds ir mans mīļākais ēdiens' )
Saņemiet modelim sniegto atbildi vienā no iepriekšējiem ziņojumiem, lai pārbaudītu, kā atmiņas retrīvers darbojas ar tērzēšanas modeli:
saruna_ar_kopsavilkumu. prognozēt ( ievade = 'Kāds ir mans vārds?' )Modelis ir pareizi parādījis izvadi, izmantojot līdzības meklēšanu no atmiņā saglabātajiem datiem:
Tas viss attiecas uz vektoru krātuves retrīvera izmantošanu programmā LangChain.
Secinājums
Lai izmantotu atmiņas retrīveri, kura pamatā ir vektoru veikals LangChain, vienkārši instalējiet moduļus un ietvarus un iestatiet vidi. Pēc tam importējiet bibliotēkas no moduļiem, lai izveidotu datubāzi, izmantojot Chroma, un pēc tam iestatiet uzvednes veidni. Pēc datu saglabāšanas atmiņā pārbaudiet retrīveri, uzsākot sarunu un uzdodot jautājumus saistībā ar iepriekšējiem ziņojumiem. Šajā rokasgrāmatā ir detalizēti aprakstīts VectorStoreRetrieverMemory bibliotēkas izmantošanas process programmā LangChain.