Kako uporabljati Retrieverje v LangChainu?

Kako Uporabljati Retrieverje V Langchainu



LangChain je ogrodje, ki razvijalcem omogoča izdelavo velikih jezikovnih modelov (LLM), ki se lahko uporabljajo za interakcijo z ljudmi. Stroji se morajo naučiti človeških jezikov za interakcijo z njimi z uporabo LangChain, saj ponuja vse potrebne knjižnice in odvisnosti za izdelavo teh modelov.

Ta objava bo prikazala postopek uporabe prinašalcev v LangChain.

Kako uporabljati Retrieverje v LangChainu?

Prinašalci delujejo kot vmesnik med modeli in ljudmi, tako da jih lahko uporabijo za pridobitev želenega rezultata z uporabo vnosa v naravnih jezikih. Vektorske shrambe se uporabljajo za shranjevanje podatkov, ki jih je mogoče uporabiti za pridobivanje/izvlekanje informacij/podatkov.







Vendar pa so prinašalci bolj splošni od teh baz podatkov. Ne shranjujejo nobenih podatkov in se uporabljajo samo za pridobivanje ali pridobivanje podatkov za uporabnike. Če se želite naučiti postopka izdelave in uporabe prinašalcev prek LangChaina, si oglejte naslednje korake:



1. korak: Namestite module
Najprej namestite potrebne module, kot je LangChain, da zagotovite njegove knjižnice in odvisnosti za nadaljevanje postopka:



pip namestite Langchain





Namestite vektorsko shrambo chromadb, ki se lahko uporablja za podatkovno bazo podatkov za pridobivalnik za pridobivanje podatkov iz shrambe:

pip namestite chromadb



Zdaj namestite ogrodje OpenAI, da pridobite njegove knjižnice za uporabo vdelave besedila, preden zgradite retriever:

pip namestite openai

Po namestitvi vseh zahtevanih modulov preprosto nastavite okolje s ključem OpenAI API:

uvažajte nas
uvoz getpass

os.okolje [ 'OPENAI_API_KEY' ] = getpass.getpass ( 'Ključ API OpenAI:' )

2. korak: naložite nabor podatkov
Zdaj izvedite naslednjo kodo, da kliknete na 'Izberi datoteke' in naložite dokument ali datoteko iz lokalnega sistema:

iz uvoznih datotek google.colab
naloženo = datoteke.naloži ( )

3. korak: Uvozite knjižnice
Uvozite zahtevane knjižnice za gradnjo in uporabo prinašalcev v LangChain, kot je ' Seznam ', ' Povratni klici ', in še veliko več:

iz abc import ABC, abstractmethod
od tipkanja import Any, List
iz uvoznega dokumenta langchain.schema
iz langchain.callbacks.manager uvozi povratne klice

4. korak: Ustvarite ustvarjanje enovrstičnega indeksa
Ta korak ustvari indeks za retriever, ki ga je mogoče uporabiti za pridobitev podatkov za oblikovanje vektorske shrambe z uvozom zahtevanih knjižnic:

iz langchain.chains uvozi RetrievalQA
iz langchain.llms uvozi OpenAI

Tukaj naložite podatke z uporabo TextLoader() s potjo do datoteke, naložene v 2. koraku:

uvozite TextLoader iz langchain.document_loaders
nalagalnik = TextLoader ( 'state_of_the_union.txt' , kodiranje = 'utf8' )

Uvoz knjižnice VectorstoreIndexCreator iz LangChaina za izdelavo indeksa za bazo podatkov:

uvozi VectorstoreIndexCreator iz langchain.indexes

Določite kazalo spremenljivka z uporabo metode VectorstoreIndexCreator() z uporabo nakladalec spremenljivka:

index = VectorstoreIndexCreator ( ) .from_loaders ( [ nakladalec ] )

Uporabite poizvedbo za testiranje indeksa s pridobivanjem podatkov iz dokumenta:

poizvedba = 'Kaj je predsednik Zelenskyy povedal v svojem govoru'
index.query ( poizvedbo )

Pridobite podrobnosti indeksa o tem, katera zbirka podatkov ima kazalo z naslednjo kodo:

index.vectorstore

Naslednja koda bo razložila vse podrobnosti o indeksu, njegovi vrsti in bazi podatkov:

index.vectorstore.as_retriever ( )

Uporabite indeks z metodo query(), ki zahteva povzetek dokumenta z uporabo izvornega argumenta za uporabo imena dokumenta:

index.query ( 'Splošni povzetek podatkov iz tega dokumenta' , retriever_kwargs = { 'search_kwargs' : { 'filter' : { 'vir' : 'state_of_the_union.txt' } } } )

5. korak: Ustvarite vdelave
Naložite dokument za ustvarjanje njegove vdelave in shranite besedilo v numerični obliki z uporabo vektorske shrambe:

dokumenti = loader.load ( )

Začnite postopek vdelave z uporabo razdelilnik besedila z argumenti o velikosti kosov in prekrivanju:

iz langchain.text_splitter uvozite CharacterTextSplitter
#using text_splitter za ustvarjanje majhnih kosov dokumenta za uporabo retrieverja
text_splitter = CharacterTextSplitter ( velikost_kosa = 1000 , chunk_overlap = 0 )
besedila = text_splitter.split_documents ( dokumenti )

Uporabite metodo OpenAIEmbeddings(), ki jo je mogoče uvoziti iz LangChaina:

iz langchain.embeddings uvozi OpenAIEmbeddings
vdelave = OpenAIEembeddings ( )

Uporabite trgovino chromadb za shranjevanje vdelav, ustvarjenih iz dokumenta:

iz langchain.vectorstores uvoz Chroma
db = Chroma.from_documents ( besedila, vdelave )

6. korak: preizkusite Retriever
Ko so vdelave ustvarjene in shranjene v bazi podatkov, preprosto definirajte spremenljivko retriever:

retriever = db.as_retriever ( )

Pokličite verige z uporabo metode RetrievalQA() s funkcijo OpenAI() in retriever kot argumentoma:

qa = RetrievalQA.from_chain_type ( llm =OpenAI ( ) , vrsta_verige = 'stvari' , prinašalec = prinašalec )

Podajte vnos za testiranje retriverja z uporabo poizvedbo spremenljivka znotraj metode qa.run():

poizvedba = 'Kaj je predsednik Zelenskyy povedal v svojem govoru'
qa.run ( poizvedbo )

Preprosto prilagodite VectorstoreIndexCreator () z uporabo svojih argumentov za nastavitev različnih vrednosti:

index_creator = VectorstoreIndexCreator (
vectorstore_cls =barvnost,
vdelava =OpenAIEmbeddings ( ) ,
razdelilnik besedila =CharacterTextSplitter ( velikost_kosa = 1000 , chunk_overlap = 0 )
)

To je vse o procesu začetka uporabe prinašalcev v LangChainu.

Zaključek

Če želite uporabljati prenosnike v LangChain, preprosto namestite odvisnosti, ki so potrebne za nastavitev okolja OpenAI, in nato naložite dokument, da preizkusite prinašalnike. Po tem zgradite retriever z uporabo abstraktnega osnovnega razreda ali knjižnice ABC in nato ustvarite indeks za bazo podatkov za pridobivanje podatkov. Konfigurirajte vdelave za dokument in zaženite retriever, da dobite primerljive rezultate iz baze podatkov. Ta objava je podrobneje opisala postopek uporabe prinašalcev v LangChain.