Hvordan bruke VectorStoreRetrieverMemory i LangChain?

Hvordan Bruke Vectorstoreretrievermemory I Langchain



Store språkmodeller eller LLM-er er løsningen for Natural Language Processing-problemer som er bygget ved hjelp av LangChain-rammeverket. LangChain-modulen gir alle nødvendige avhengigheter eller biblioteker for å designe chat-modellene eller LLM-ene. Brukeren kan også stille inn retrieveren for å trekke ut data fra vektorlagrene eller databasene ved hjelp av modellene.

Denne veiledningen vil illustrere hvordan du bruker VectorStoreRetrieverMemory ved å bruke LangChain-rammeverket.

Hvordan bruke VectorStoreRetrieverMemory i LangChain?

VectorStoreRetrieverMemory er biblioteket til LangChain som kan brukes til å trekke ut informasjon/data fra minnet ved hjelp av vektorlagrene. Vektorlagre kan brukes til å lagre og administrere data for å effektivt trekke ut informasjonen i henhold til forespørselen eller spørringen.







For å lære prosessen med å bruke VectorStoreRetrieverMemory i LangChain, gå ganske enkelt gjennom følgende veiledning:



Trinn 1: Installer moduler

Start prosessen med å bruke memory retriever ved å installere LangChain ved å bruke pip-kommandoen:



pip installer langkjede





Installer FAISS-modulene for å få dataene ved å bruke det semantiske likhetssøket:

pip installer faiss-gpu



Installer chromadb-modulen for bruk av Chroma-databasen. Det fungerer som vektorlageret for å bygge minnet for retrieveren:

pip installer chromadb

En annen modul tiktoken er nødvendig for å installere som kan brukes til å lage tokens ved å konvertere data til mindre biter:

pip installer tiktoken

Installer OpenAI-modulen for å bruke bibliotekene for å bygge LLM-er eller chatboter ved å bruke miljøet:

pip installer openai

Sett opp miljøet på Python IDE eller notatbok ved å bruke API-nøkkelen fra OpenAI-kontoen:

import du

import få pass

du . omtrent [ 'OPENAI_API_KEY' ] = få pass . få pass ( 'OpenAI API Key:' )

Trinn 2: Importer biblioteker

Det neste trinnet er å hente bibliotekene fra disse modulene for å bruke minnehenteren i LangChain:

fra langkjede. spør import PromptTemplate

fra dato tid import dato tid

fra langkjede. llms import OpenAI

fra langkjede. innebygginger . openai import ÅpneAIEbeddings

fra langkjede. kjeder import Samtalekjede

fra langkjede. hukommelse import VectorStoreRetrieverMemory

Trinn 3: Initialisering av Vector Store

Denne veiledningen bruker Chroma-databasen etter import av FAISS-biblioteket for å trekke ut dataene ved å bruke inndatakommandoen:

import faiss

fra langkjede. lege import InMemoryDocstore
#importing biblioteker for å konfigurere databaser eller vektorlagre
fra langkjede. vektorbutikker import FAISS

#lag innbygginger og tekster for å lagre dem i vektorlagrene
embedding_size = 1536
indeks = faiss. IndexFlatL2 ( embedding_size )
embedding_fn = ÅpneAIEbeddings ( ) . embed_query
vectorstore = FAISS ( embedding_fn , indeks , InMemoryDocstore ( { } ) , { } )

Trinn 4: Building Retriever støttet av en Vector Store

Bygg opp minnet for å lagre de siste meldingene i samtalen og få konteksten til chatten:

retriever = vectorstore. as_retriever ( search_kwargs = dikt ( k = 1 ) )
hukommelse = VectorStoreRetrieverMemory ( retriever = retriever )

hukommelse. lagre_kontekst ( { 'inngang' : 'Jeg liker å spise pizza' } , { 'produksjon' : 'Fantastisk' } )
hukommelse. lagre_kontekst ( { 'inngang' : 'Jeg er god i fotball' } , { 'produksjon' : 'ok' } )
hukommelse. lagre_kontekst ( { 'inngang' : 'Jeg liker ikke politikken' } , { 'produksjon' : 'sikker' } )

Test minnet til modellen ved å bruke input fra brukeren med historikken:

skrive ut ( hukommelse. load_memory_variables ( { 'spørre' : 'hvilken sport bør jeg se?' } ) [ 'historie' ] )

Trinn 5: Bruk av retriever i en kjede

Det neste trinnet er bruken av en minnehenter med kjedene ved å bygge LLM ved å bruke OpenAI()-metoden og konfigurere ledetekstmalen:

llm = OpenAI ( temperatur = 0 )
_DEFAULT_MAL = '''Det er et samspill mellom et menneske og en maskin
Systemet produserer nyttig informasjon med detaljer ved hjelp av kontekst
Hvis systemet ikke har svaret for deg, sier det ganske enkelt at jeg ikke har svaret

Viktig informasjon fra samtalen:
{historie}
(hvis teksten ikke er relevant, ikke bruk den)

Nåværende chat:
Menneske: {input}
AI:'''

SPILL = PromptTemplate (
input_variables = [ 'historie' , 'inngang' ] , mal = _DEFAULT_MAL
)
#configure ConversationChain() ved å bruke verdiene for parameterne
samtale_med_sammendrag = Samtalekjede (
llm = llm ,
ledetekst = SPILL ,
hukommelse = hukommelse ,
ordrik = ekte
)
samtale_med_sammendrag. forutsi ( input = 'Hei, jeg heter Perry, hva skjer?' )

Produksjon

Utførelse av kommandoen kjører kjeden og viser svaret gitt av modellen eller LLM:

Kom i gang med samtalen ved å bruke ledeteksten basert på dataene som er lagret i vektorlageret:

samtale_med_sammendrag. forutsi ( input = 'hva er favorittsporten min?' )

De forrige meldingene er lagret i modellens minne som kan brukes av modellen for å forstå konteksten til meldingen:

samtale_med_sammendrag. forutsi ( input = 'Hva er favorittmaten min' )

Få svaret gitt til modellen i en av de forrige meldingene for å sjekke hvordan minnehenteren fungerer med chat-modellen:

samtale_med_sammendrag. forutsi ( input = 'Hva er mitt navn?' )

Modellen har vist utdataene riktig ved å bruke likhetssøket fra dataene som er lagret i minnet:

Det handler om å bruke vektorbutikk-retrieveren i LangChain.

Konklusjon

For å bruke minnegjenvinneren basert på et vektorlager i LangChain, installerer du bare modulene og rammeverkene og setter opp miljøet. Deretter importerer du bibliotekene fra modulene for å bygge databasen ved hjelp av Chroma og setter deretter ledetekstmalen. Test retrieveren etter å ha lagret data i minnet ved å starte samtalen og stille spørsmål knyttet til de forrige meldingene. Denne veiledningen har utdypet prosessen med å bruke VectorStoreRetrieverMemory-biblioteket i LangChain.