Š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 tuimportuoti 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:
iš langchain. raginimai importuoti PromptTemplateiš data ir laikas importuoti data ir laikas
iš langchain. llms importuoti OpenAI
iš langchain. įterpimai . openai importuoti OpenAIEmbeddings
iš langchain. grandines importuoti Pokalbių grandinė
iš 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 faissiš langchain. daktaras importuoti „InMemoryDocstore“.
#importuoja bibliotekas duomenų bazėms arba vektorių saugykloms konfigūruoti
iš 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.