Kaip naudoti „VectorStoreRetrieverMemory“ „LangChain“?

Kaip Naudoti Vectorstoreretrievermemory Langchain



Dideli kalbų modeliai arba LLM yra natūralios kalbos apdorojimo problemų, sukurtų naudojant „LangChain“ sistemą, sprendimas. LangChain modulis suteikia visas reikalingas priklausomybes arba bibliotekas, skirtas kurti pokalbių modelius arba LLM. Vartotojas taip pat gali nustatyti retriverį duomenims iš vektorinių saugyklų ar duomenų bazių išgauti naudodamas modelius.

Šis vadovas parodys, kaip naudoti VectorStoreRetrieverMemory naudojant LangChain sistemą.

Kaip naudoti „VectorStoreRetrieverMemory“ „LangChain“?

„VectorStoreRetrieverMemory“ yra „LangChain“ biblioteka, kuri gali būti naudojama informacijai / duomenims iš atminties išgauti naudojant vektorių saugyklas. Vektorinės parduotuvės gali būti naudojamos duomenims saugoti ir tvarkyti, kad informacija būtų efektyviai išgaunama pagal raginimą ar užklausą.





Norėdami išmokti „VectorStoreRetrieverMemory“ naudojimo procesą „LangChain“, tiesiog peržiūrėkite šį vadovą:



1 veiksmas: įdiekite modulius

Pradėkite atminties retriverio naudojimo procesą įdiegdami LangChain naudodami pip komandą:



pip įdiegti langchain





Įdiekite FAISS modulius, kad gautumėte duomenis naudodami semantinio panašumo paiešką:

pip įdiegti faiss-gpu



Įdiekite chromadb modulį, kad galėtumėte naudoti Chroma duomenų bazę. Jis veikia kaip vektorių saugykla, skirta retriveriui sukurti atmintį:

pip įdiegti chromadb

Reikia įdiegti kitą modulį tiktoken, kurį galima panaudoti kuriant žetonus konvertuojant duomenis į mažesnius gabalus:

pip įdiegti tiktoken

Įdiekite OpenAI modulį, kad galėtumėte naudoti jo bibliotekas kurdami LLM arba pokalbių robotus naudodami jo aplinką:

pip install openai

Sutvarkykite aplinką Python IDE arba nešiojamajame kompiuteryje naudojant API raktą iš OpenAI paskyros:

importuoti tu

importuoti gauti pasą

tu . maždaug [ „OPENAI_API_KEY“ ] = gauti pasą . gauti pasą ( „OpenAI API raktas“: )

2 veiksmas: importuokite bibliotekas

Kitas žingsnis yra gauti bibliotekas iš šių modulių, kad būtų galima naudoti atminties retriverį LangChain:

langchain. raginimai importuoti PromptTemplate

data ir laikas importuoti data ir laikas

langchain. llms importuoti OpenAI

langchain. įterpimai . openai importuoti OpenAIEmbeddings

langchain. grandines importuoti Pokalbių grandinė

langchain. atmintis importuoti VectorStoreRetrieverMemory

3 veiksmas: „Vector Store“ inicijavimas

Šiame vadove naudojama Chroma duomenų bazė importavus FAISS biblioteką duomenims išgauti naudojant įvesties komandą:

importuoti faiss

langchain. daktaras importuoti „InMemoryDocstore“.
#importuoja bibliotekas duomenų bazėms arba vektorių saugykloms konfigūruoti
langchain. vektorių parduotuvės importuoti FAISS

#sukurkite įterpimus ir tekstus, kad galėtumėte juos saugoti vektorių parduotuvėse
embedding_size = 1536 m
indeksas = faiss. IndexFlatL2 ( embedding_size )
embedding_fn = OpenAIEmbeddings ( ) . embed_query
vektorių saugykla = FAISS ( embedding_fn , indeksas , „InMemoryDocstore“. ( { } ) , { } )

4 veiksmas: retriverio kūrimas, kurį palaiko vektorių parduotuvė

Sukurkite atmintį, kad išsaugotumėte naujausius pokalbio pranešimus ir gautumėte pokalbio kontekstą:

retriveris = vektorių saugykla. kaip_retriveris ( search_kwargs = diktatas ( k = 1 ) )
atmintis = VectorStoreRetrieverMemory ( retriveris = retriveris )

atmintis. save_context ( { 'įvestis' : 'Man patinka valgyti picą' } , { 'išvestis' : 'fantastinis' } )
atmintis. save_context ( { 'įvestis' : 'Aš gerai moku futbolą' } , { 'išvestis' : 'Gerai' } )
atmintis. save_context ( { 'įvestis' : 'Man nepatinka politika' } , { 'išvestis' : 'tikrai' } )

Patikrinkite modelio atmintį naudodami vartotojo pateiktą įvestį su jo istorija:

spausdinti ( atmintis. apkrovos_atminties_kintamieji ( { 'pasagauti' : 'Kokią sporto šaką turėčiau žiūrėti?' } ) [ 'istorija' ] )

5 veiksmas: retriverio naudojimas grandinėje

Kitas žingsnis yra atminties retriverio naudojimas su grandinėmis, sukuriant LLM naudojant OpenAI() metodą ir sukonfigūruojant raginimo šabloną:

llm = OpenAI ( temperatūros = 0 )
_DEFAULT_TEMPLATE = '''Tai žmogaus ir mašinos sąveika
Sistema sukuria naudingą informaciją su detalėmis, naudodama kontekstą
Jei sistema neturi atsakymo už jus, ji tiesiog sako, kad aš neturiu atsakymo

Svarbi informacija iš pokalbio:
{istorija}
(jei tekstas neaktualus, jo nenaudokite)

Dabartinis pokalbis:
Žmogus: {input}
AI: '''

PROFIT = PromptTemplate (
įvesties_kintamieji = [ 'istorija' , 'įvestis' ] , šabloną = _DEFAULT_TEMPLATE
)
#configure ConversationChain() naudojant jos parametrų reikšmes
pokalbis_su_santrauka = Pokalbių grandinė (
llm = llm ,
paraginti = PROFIT ,
atmintis = atmintis ,
žodinis = Tiesa
)
pokalbis_su_santrauka. numatyti ( įvestis = 'Sveiki, mano vardas Peris, kas vyksta?' )

Išvestis

Vykdant komandą paleidžiama grandinė ir rodomas modelio arba LLM pateiktas atsakymas:

Pradėkite pokalbį naudodami raginimą, pagrįstą vektorių saugykloje saugomais duomenimis:

pokalbis_su_santrauka. numatyti ( įvestis = 'Kokia mano mėgstamiausia sporto šaka?' )

Ankstesni pranešimai yra saugomi modelio atmintyje, kurią modelis gali naudoti, kad suprastų pranešimo kontekstą:

pokalbis_su_santrauka. numatyti ( įvestis = 'Koks mano mėgstamiausias maistas' )

Gaukite atsakymą, pateiktą modeliui viename iš ankstesnių pranešimų, kad patikrintumėte, kaip atminties retriveris veikia su pokalbio modeliu:

pokalbis_su_santrauka. numatyti ( įvestis = 'Koks mano vardas?' )

Modelis teisingai atvaizdavo išvestį naudodamas panašumo paiešką iš atmintyje saugomų duomenų:

Tai viskas apie vektorinės parduotuvės retriverio naudojimą „LangChain“.

Išvada

Norėdami naudoti atminties retriverį, pagrįstą vektorių saugykla LangChain, tiesiog įdiekite modulius ir sistemas bei nustatykite aplinką. Po to importuokite bibliotekas iš modulių, kad sukurtumėte duomenų bazę naudodami „Chroma“, tada nustatykite raginimo šabloną. Išsaugoję duomenis atmintyje, išbandykite retriverį, pradėdami pokalbį ir užduodami klausimus, susijusius su ankstesniais pranešimais. Šiame vadove išsamiai aprašytas „VectorStoreRetrieverMemory“ bibliotekos „LangChain“ naudojimo procesas.