See juhend illustreerib, kuidas kasutada VectorStoreRetrieverMemoryt LangChaini raamistiku abil.
Kuidas kasutada VectorStoreRetrieverMemoryt LangChainis?
VectorStoreRetrieverMemory on LangChaini teek, mida saab kasutada mälust teabe/andmete eraldamiseks vektorisalvede abil. Vektorpoode saab kasutada andmete salvestamiseks ja haldamiseks, et teavet tõhusalt välja võtta vastavalt viipale või päringule.
VectorStoreRetrieverMemory LangChainis kasutamise protsessi õppimiseks lugege lihtsalt läbi järgmine juhend:
1. samm: installige moodulid
Käivitage mäluretriiveri kasutamise protsess, installides LangChaini, kasutades käsku pip:
pip install langchain
Semantilise sarnasuse otsingu abil andmete hankimiseks installige FAISS-i moodulid:
pip installi faiss-gpu
Installige chromadb-moodul Chroma andmebaasi kasutamiseks. See töötab vektormäluna, et luua retriiveri mälu:
pip install chromadb
Installimiseks on vaja veel ühte moodulit tiktoken, mida saab kasutada žetoonide loomiseks, teisendades andmed väiksemateks tükkideks:
pip install tiktoken
Installige OpenAI moodul, et kasutada selle teeke LLM-ide või vestlusrobotite loomiseks selle keskkonna abil:
pip install openai
Seadistage keskkond Pythoni IDE-s või sülearvutis, kasutades OpenAI konto API-võtit:
importida sinaimportida saada pass
sina . umbes [ 'OPENAI_API_KEY' ] = saada pass . saada pass ( 'OpenAI API võti:' )
2. samm: importige teegid
Järgmine samm on saada nendest moodulitest teegid, et kasutada LangChainis mäluretriiverit:
alates langchain. viipasid importida PromptMallalates kuupäev Kellaaeg importida kuupäev Kellaaeg
alates langchain. llms importida OpenAI
alates langchain. manused . openai importida OpenAIEembeddings
alates langchain. ketid importida Vestlusahel
alates langchain. mälu importida VectorStoreRetrieverMemory
3. samm: Vector Store'i lähtestamine
See juhend kasutab pärast FAISS-i teegi importimist Chroma andmebaasi andmete ekstraheerimiseks sisendkäsuga:
importida faissalates langchain. arstipood importida InMemoryDocstore
#teekide importimine andmebaaside või vektorisalvede konfigureerimiseks
alates langchain. vektorpoed importida FAISS
#loo manuseid ja tekste, et neid vektorpoodidesse salvestada
manustamise_suurus = 1536
indeks = faiss. IndeksFlatL2 ( manustamise_suurus )
embedding_fn = OpenAIEembeddings ( ) . embed_query
vektorpood = FAISS ( embedding_fn , indeks , InMemoryDocstore ( { } ) , { } )
4. samm: ehitage retriiver, mida toetab vektorpood
Looge mälu, et salvestada vestluse uusimad sõnumid ja saada vestluse kontekst.
retriiver = vektorpood. retriiverina ( search_kwargs = dikt ( k = 1 ) )mälu = VectorStoreRetrieverMemory ( retriiver = retriiver )
mälu. salvesta_kontekst ( { 'sisend' : 'Mulle meeldib pitsat süüa' } , { 'väljund' : 'fantastiline' } )
mälu. salvesta_kontekst ( { 'sisend' : 'Ma olen jalgpallis hea' } , { 'väljund' : 'Okei' } )
mälu. salvesta_kontekst ( { 'sisend' : 'Mulle ei meeldi poliitika' } , { 'väljund' : 'kindlasti' } )
Testige mudeli mälu, kasutades kasutaja antud sisendit koos selle ajalooga:
printida ( mälu. load_memory_variables ( { 'viip' : 'Mis sporti ma peaksin vaatama?' } ) [ 'ajalugu' ] )
5. samm: retriiveri kasutamine ahelas
Järgmine samm on mäluretriiveri kasutamine kettidega, luues OpenAI() meetodi abil LLM-i ja konfigureerides viipamalli:
llm = OpenAI ( temperatuuri = 0 )_DEFAULT_MPLATE = '''See on inimese ja masina vaheline suhtlus
Süsteem toodab konteksti kasutades kasulikku teavet koos üksikasjadega
Kui süsteemil pole teie jaoks vastust, ütleb ta lihtsalt, et mul pole vastust
Oluline teave vestlusest:
{ajalugu}
(kui tekst pole asjakohane, ärge seda kasutage)
Praegune vestlus:
Inimene: {input}
AI:'''
KIIRE = PromptMall (
sisend_muutujad = [ 'ajalugu' , 'sisend' ] , malli = _DEFAULT_MPLATE
)
#konfigureerige ConversationChain(), kasutades selle parameetrite väärtusi
vestlus_kokkuvõttega = Vestlusahel (
llm = llm ,
viip = KIIRE ,
mälu = mälu ,
paljusõnaline = Tõsi
)
vestlus_kokkuvõttega. ennustada ( sisend = 'Tere, minu nimi on Perry, mis toimub?' )
Väljund
Käsu täitmine käivitab ahela ja kuvab mudeli või LLM-i vastuse:
Jätkake vestlust, kasutades vektorpoodi salvestatud andmetel põhinevat viipa:
vestlus_kokkuvõttega. ennustada ( sisend = 'mis on mu lemmik spordiala?' )
Eelmised sõnumid salvestatakse mudeli mällu, mida mudel saab kasutada sõnumi konteksti mõistmiseks:
vestlus_kokkuvõttega. ennustada ( sisend = 'Mis on mu lemmiktoit' )
Hankige ühes eelmises sõnumis mudelile antud vastus, et kontrollida, kuidas mäluretriiver töötab vestlusmudeliga.
vestlus_kokkuvõttega. ennustada ( sisend = 'Mis mu nimi on?' )Mudel on mällu salvestatud andmete sarnasuse otsingu abil väljundi õigesti kuvanud:
See kõik puudutab vektorpoe retriiveri kasutamist LangChainis.
Järeldus
LangChainis vektorsalongil põhineva mäluretriiveri kasutamiseks installige lihtsalt moodulid ja raamistikud ning seadistage keskkond. Pärast seda importige moodulitest teegid, et luua andmebaas Chroma abil ja seejärel määrake viipamall. Testige retriiverit pärast andmete mällu salvestamist, alustades vestlust ja esitades eelmiste sõnumitega seotud küsimusi. Selles juhendis on kirjeldatud LangChainis VectorStoreRetrieverMemory teegi kasutamise protsessi.