See postitus demonstreerib retriiverite kasutamise protsessi LangChainis.
Kuidas LangChainis retriivereid kasutada?
Retriiverid toimivad liidesena mudelite ja inimeste vahel, et nad saaksid seda kasutada soovitud väljundi saamiseks, kasutades loomulikes keeltes pakutavat sisendit. Vektorpoode kasutatakse andmete salvestamiseks, mida saab kasutada teabe/andmete hankimiseks/väljavõtmiseks.
Retriiverid on aga üldisemad kui need andmebaasid. Need ei salvesta andmeid ja neid kasutatakse ainult kasutajate andmete hankimiseks või toomiseks. Retriiverite loomise ja kasutamise õppimiseks LangChaini kaudu vaadake järgmisi samme.
1. samm: installige moodulid
Esmalt installige vajalikud moodulid, nagu LangChain, et selle teegid ja sõltuvused protsessiga jätkata:
pip installida langchain
Installige chromadb vektorpood, mida saab kasutada andmete andmebaasi andmiseks, et retriiver saaks poest andmeid tuua:
pip installida chromadb
Nüüd installige OpenAI raamistik, et hankida selle teegid teksti manustamise kasutamiseks enne retriiveri loomist:
pip installida openai
Pärast kõigi vajalike moodulite installimist seadistage lihtsalt keskkond OpenAI API võtmega:
importida meidimpordi getpass
os.environ [ 'OPENAI_API_KEY' ] = getpass.getpass ( 'OpenAI API võti:' )
2. toiming: laadige üles andmestik
Nüüd käivitage klõpsamiseks järgmine kood 'Vali failid' nuppu ja laadige dokument või fail kohalikust süsteemist üles:
üles laaditud = failid.üleslaadimine ( )
3. samm: importige teegid
Importige LangChainis retriiverite loomiseks ja kasutamiseks vajalikud teegid, näiteks ' Nimekiri ', ' Tagasihelistamised ', ja paljud teised:
tippimisest import Any, List
langchain.schema impordi dokumendist
langchain.callbacks.managerist importige tagasihelistamised
4. samm: looge ühe rea indeksi loomine
See samm loob retriiveri indeksi, mida saab kasutada vajalike teekide importimise teel vektormälu moodustamiseks vajalike andmete saamiseks:
langchain.llms-ist importige OpenAI
Siin laadige andmed, kasutades TextLoader() meetod sammus 2 üles laaditud faili teega:
importige TextLoader saidilt langchain.document_loadersloader = TextLoader ( 'liit_riik.txt' , kodeering = 'utf8' )
Impordi raamatukogu VectorstoreIndexCreator LangChainist andmebaasi indeksi loomiseks:
importida VectorstoreIndexCreator saidilt langchain.indexesMääratlege indeks muutuja, kasutades meetodit VectorstoreIndexCreator() kasutades laadur muutuja:
indeks = VectorstoreIndexCreator ( ) .from_loaders ( [ laadur ] )Rakendage päring indeksi testimiseks, hankides dokumendist andmed:
päring = 'Mida ütles president Zelenskyy oma kõnes'index.query ( päring )
Hankige indeksi üksikasjad selle kohta, millises andmebaasis see on indeks kasutades järgmist koodi:
index.vectorstoreJärgmine kood selgitab kõiki üksikasju indeksi, selle tüübi ja andmebaasi kohta:
index.vectorstore.as_retriever ( )
Kasutage indeksit koos query() meetodiga, mis küsib dokumendi kokkuvõtet, kasutades lähteargumenti, et kasutada dokumendi nime:
index.query ( 'Üldine kokkuvõte selle dokumendi andmetest' , retriiver_kwargs = { 'search_kwargs' : { 'filter' : { 'allikas' : 'liit_riik.txt' } } } )
5. samm: looge manustused
Laadige dokument selle manustamise loomiseks ja salvestage tekst numbrilisel kujul, kasutades vektormälu:
Alustage manustamisprotsessi kasutades text_splitter koos tükkide suuruse ja kattumise argumentidega:
langchain.text_splitter importida CharacterTextSplitter#using text_splitter, et luua retriiveri kasutamiseks väikesed dokumendijupid
text_splitter = CharacterTextSplitter ( tüki_suurus = 1000 , chunk_overlap = 0 )
tekstid = text_splitter.split_documents ( dokumente )
Rakendage OpenAIEMbeddings() meetodit, mida saab importida LangChainist:
saidilt langchain.embeddings importige OpenAIEMbeddingsembeddings = OpenAIEembeddings ( )
Kasutage chromadb poodi, et salvestada dokumendist loodud manuseid:
saidilt langchain.vectorstores impordivad Chromadb = Chroma.from_documents ( tekstid, manused )
6. samm: testige retriiverit
Kui manustused on loodud ja andmebaasi salvestatud, määrake lihtsalt retriiveri muutuja:
Kutsuge ahelaid kasutades meetodit RetrievalQA() funktsiooni OpenAI() ja retriiveri argumentidega:
qa = RetrievalQA.from_chain_type ( llm =OpenAI ( ) , ahela_tüüp = 'kraam' , retriiver =retriiver )Sisestage sisend retriiveri testimiseks, kasutades päring muutuja qa.run() meetodi sees:
päring = 'Mida ütles president Zelenskyy oma kõnes'qa.run ( päring )
Lihtsalt kohandage VectorstoreIndexCreator () kasutades oma argumente erinevate väärtuste määramiseks:
index_creator = VectorstoreIndexCreator (vektorpood_cls =Chroma,
kinnistamine =Avage AIE manused ( ) ,
teksti_jagaja =Märgiteksti jagaja ( tüki_suurus = 1000 , chunk_overlap = 0 )
)
See kõik puudutab LangChainis retriiveritega alustamise protsessi.
Järeldus
Retriiverite kasutamiseks LangChainis installige lihtsalt OpenAI keskkonna seadistamiseks vajalikud sõltuvused ja seejärel laadige retriiverite testimiseks dokument üles. Pärast seda looge retriiver abstraktse baasklassi või ABC teegi abil ja seejärel looge andmete toomiseks andmebaasi register. Andmebaasist võrreldavate tulemuste saamiseks konfigureerige dokumendi manustused ja käivitage retriiver. Selles postituses on käsitletud LangChainis retriiverite kasutamise protsessi.