Hitri oris
Ta objava bo prikazala:
Kako uporabiti agenta za vrnitev strukturiranega izhoda v LangChain
- Namestitev okvirjev
- Okolje OpenAI
- Ustvarjanje vektorske trgovine
- Nastavitev poti
- Nalaganje in razdelitev podatkov
- Ustvarjanje prinašalca
1. način: Kombinacija agenta z vektorskimi trgovinami
2. način: uporaba agenta kot usmerjevalnika
3. način: Uporaba posrednika z vektorsko shrambo z več skoki
Kako uporabiti agenta za vrnitev strukturiranega izhoda v LangChain?
Razvijalec uporablja agente za usmerjanje med zbirkami podatkov, ki vsebujejo podatke o usposabljanju za modele. Agent ima načrt celotnega procesa, tako da shrani vse korake. Agent ima orodja za izvajanje vseh teh dejavnosti za dokončanje postopka. Uporabnik lahko uporabi tudi agenta za pridobivanje podatkov iz različnih shramb podatkov, da bo model raznolik.
Če se želite naučiti postopka združevanja agentov in vektorskih shramb v LangChain, preprosto sledite navedenim korakom:
1. korak: Namestitev ogrodij
Najprej namestite modul LangChain in njegove odvisnosti za združevanje agentov in vektorskih shramb:
pip namestite langchain
V tem priročniku uporabljamo bazo podatkov Chroma, ki lahko shranjuje podatke na različnih lokacijah ali v tabelah:
pip namestite chromadb
Če želite bolje razumeti podatke, razdelite velike datoteke na manjše dele z uporabo tiktoken tokenizerja:
pip namestite tiktoken
OpenAI je modul, ki ga je mogoče uporabiti za izdelavo velikega jezikovnega modela v ogrodju LangChain:
pip namestite openai
2. korak: okolje OpenAI
Naslednji korak tukaj je nastavite okolje z uporabo ključa API OpenAI, ki ga je mogoče ekstrahirati iz uradnega računa OpenAI:
uvoz tiuvoz getpass
ti . približno [ 'OPENAI_API_KEY' ] = getpass . getpass ( 'Ključ API OpenAI:' )
Zdaj naložite podatke iz lokalnega sistema v Googlovo sodelovanje, da jih boste lahko uporabili v prihodnje:
od google. ET AL uvoz datotekenaloženo = datoteke. nalaganje ( )
3. korak: Ustvarjanje vektorske trgovine
Ta korak konfigurira prvo komponento naše naloge, ki je vektorska shramba za shranjevanje naloženih podatkov. Konfiguriranje vektorskih shramb zahteva knjižnice, ki jih je mogoče uvoziti iz različnih odvisnosti LangChaina:
od Langchain. vdelave . openai uvoz OpenAIEmbeddings#Vector shrani odvisnost za pridobitev zahtevane baze podatkov ali vektorja
od Langchain. vektorske trgovine uvoz Chroma
#Text splitter se uporablja za pretvorbo velikega besedila v manjše dele
od Langchain. razdelilnik besedila uvoz CharacterTextSplitter
od Langchain. llms uvoz OpenAI
od Langchain. nalagalci_dokumentov uvoz WebBaseLoader
od Langchain. verige uvoz RetrievalQA
llm = OpenAI ( temperaturo = 0 )
4. korak: Nastavitev poti
Po uvozu knjižnic preprosto nastavite pot za dostop do vektorskih shramb, preden vanjo shranite podatke:
od pathlib uvoz Potustrezni_deli = [ ]
za str v Pot ( '.' ) . absolutno ( ) . deli :
ustrezni_deli. priložiti ( str )
če ustrezni_deli [ - 3 : ] == [ 'langchain' , 'dokumenti' , 'moduli' ] :
odmor
#Pogojni stavek znotraj zanke za nastavitev poti za vsako bazo podatkov
doc_path = str ( Pot ( *relevantni_deli ) / 'state_of_the_union.txt' )
5. korak: Nalaganje in razdelitev podatkov
Zdaj preprosto naložite podatke in jih razdelite na manjše dele, da bosta boljša berljivost in razumljivost. Ustvarite vdelave podatkov tako, da pretvorite besedilo v številke, naredite njihove vektorske prostore in jih shranite v zbirko podatkov Chorma:
od Langchain. nalagalci_dokumentov uvoz TextLoader#Nalaganje nabora podatkov z njegove poti in shranjevanje njegovih manjših kosov v bazo podatkov
nakladalec = TextLoader ( doc_path )
dokumenti = nakladalec. obremenitev ( )
razdelilnik besedila = CharacterTextSplitter ( velikost_kosa = 2000 , chunk_overlap = 0 )
besedila = razdelilnik besedila. split_documents ( dokumenti )
#Pretvorite besedilo v številke in shranite vdelave v zbirko podatkov
vdelave = OpenAIEmbeddings ( )
docsearch = Chroma. iz_dokumentov ( besedila , vdelave , ime_zbirke = 'stanje-unije' )
6. korak: Ustvarjanje Retrieverja
Če želite združiti agentske in vektorske shrambe, je potrebno ustvariti retriever z uporabo metode RetrievalQA() iz ogrodja LangChain. Ta način pridobivanja je priporočljiv za pridobivanje podatkov iz vektorskih shramb z uporabo agentov kot orodja za delo z bazami podatkov:
država_unije = RetrievalQA. iz_vrste_verige (llm = llm , vrsta_verige = 'stvari' , prinašalec = docsearch. kot_prinašalec ( )
)
Naložite drug nabor podatkov, da agenta integrirate z več nabori podatkov ali vektorskimi shrambami:
nakladalec = WebBaseLoader ( 'https://beta.ruff.rs/docs/faq/' )Shranite nabor podatkov ruff v chromadb, potem ko ustvarite manjše dele podatkov tudi z vdelanimi vektorji:
dokumenti = nakladalec. obremenitev ( )ruff_texts = razdelilnik besedila. split_documents ( dokumenti )
ruff_db = Chroma. iz_dokumentov ( ruff_texts , vdelave , ime_zbirke = 'ruff' )
ruff = RetrievalQA. iz_vrste_verige (
llm = llm , vrsta_verige = 'stvari' , prinašalec = ruff_db. kot_prinašalec ( )
)
1. način: Kombinacija agenta z vektorskimi trgovinami
Prva metoda združevanja agentov in vektorskih shramb za pridobivanje informacij je omenjena spodaj:
1. korak: Konfigurirajte orodja
Zdaj, ko so vektorske shrambe konfigurirane, nadaljujemo z gradnjo druge komponente našega procesa, tj. Če želite ustvariti agenta za proces, uvozite knjižnice z uporabo odvisnosti, kot so agenti, orodja itd.
od Langchain. zastopniki uvoz inicializiraj_agentod Langchain. zastopniki uvoz AgentType
#Pridobivanje orodij iz LangChaina za izdelavo agenta
od Langchain. orodja uvoz BaseTool
od Langchain. llms uvoz OpenAI
#Pridobivanje LLMMathChain iz verig za izdelavo jezikovnega modela
od Langchain. verige uvoz LLMMathChain
od Langchain. pripomočki uvoz SerpAPIWrapper
od Langchain. zastopniki uvoz Orodje
Konfigurirajte orodja, ki jih boste uporabljali z agenti, ki uporabljajo sistem za zagotavljanje kakovosti ali predhodno konfigurirano iskanje z imenom in opisom orodij:
orodja = [Orodje (
ime = 'State of Union QA System' ,
funk = država_unije. teči ,
opis = »Zagotavlja odgovore na vprašanja v zvezi z naloženim naborom podatkov z vnosom kot popolnoma oblikovano vprašanje« ,
) ,
Orodje (
ime = 'Ruff QA sistem' ,
funk = ruff. teči ,
opis = 'Zagotavlja odgovore na vprašanja o ruffu (python linter) z vnosom kot popolnoma oblikovanim vprašanjem' ,
) ,
]
2. korak: Inicializirajte agenta
Ko so orodja konfigurirana, preprosto nastavite agenta v argumentu metode initializa_agent(). Agent, ki ga tukaj uporabljamo, je ZERO_SHOT_REACT_DESCRIPTION skupaj z orodji, llm (jezikovni model) in verbose:
agent = inicializiraj_agent (orodja , llm , agent = AgentType. ZERO_SHOT_REACT_DESCRIPTION , verbose = Prav
)
3. korak: preizkusite agenta
Preprosto izvedite agenta z uporabo metode run(), ki vsebuje vprašanje v argumentu:
agent. teči ('Kaj je predsednik Joe Biden rekel o kanji brown v nagovoru'
)
Naslednji posnetek zaslona prikazuje odgovor, pridobljen iz obeh podatkovnih shramb z uporabo opazovanja, shranjenega v pomnilniku agenta:
2. način: uporaba agenta kot usmerjevalnika
Drug način združevanja obeh komponent je uporaba posrednika kot usmerjevalnika, postopek pa je razložen v nadaljevanju:
1. korak: Konfigurirajte orodja
Uporaba agenta kot usmerjevalnika pomeni, da bo sistem RetrievalQA neposredno vrnil izhod, saj so orodja konfigurirana za neposredno vračanje izhoda:
orodja = [#konfiguriranje orodij, potrebnih za izdelavo agenta za pridobivanje podatkov iz podatkov
Orodje (
ime = 'State of Union QA System' ,
funk = država_unije. teči ,
opis = »Zagotavlja odgovore na vprašanja v zvezi z naloženim naborom podatkov z vnosom kot popolnim vprašanjem« ,
return_direct = Prav ,
) ,
Orodje (
ime = 'Ruff QA sistem' ,
funk = ruff. teči ,
opis = 'Zagotavlja odgovore na vprašanja o ruffu (python linter) z vnosom kot popolnim vprašanjem' ,
return_direct = Prav ,
) ,
]
2. korak: Inicializirajte in preizkusite agenta
Po nastavitvi orodij preprosto nastavite agenta, ki se lahko uporablja izključno kot usmerjevalnik z uporabo metode initialize_agent():
agent = inicializiraj_agent (orodja , llm , agent = AgentType. ZERO_SHOT_REACT_DESCRIPTION , verbose = Prav
)
Preizkusite agenta tako, da podate vhodno vprašanje v metodi agent.run(), tako da izvedete naslednji ukaz:
agent. teči ('Kaj je predsednik Joe Biden rekel o kanji brown v nagovoru'
)
Izhod
Izhodni posnetek zaslona prikazuje, da je agent preprosto vrnil odgovor na vprašanje iz nabora podatkov, ki ga je pridobil sistem RetrievalQA:
3. način: Uporaba posrednika z vektorsko shrambo z več skoki
Tretja metoda, pri kateri lahko razvijalci združijo agentsko in vektorsko shrambo, je za poizvedbe v vektorski shrambi z več skoki. Naslednji razdelek pojasnjuje celoten postopek:
1. korak: Konfigurirajte orodja
Prvi korak je, kot običajno, konfiguracija orodij, ki se uporabljajo za izdelavo agentov za pridobivanje podatkov iz podatkovnih shramb:
orodja = [Orodje (
ime = 'State of Union QA System' ,
funk = država_unije. teči ,
opis = »Zagotavlja odgovore na vprašanja v zvezi z naloženim naborom podatkov z vnosom kot popolnoma oblikovanim vprašanjem, ki se ne nanaša na zaimke iz prejšnjega pogovora« ,
) ,
Orodje (
ime = 'Ruff QA sistem' ,
funk = ruff. teči ,
opis = »Zagotavlja odgovore na vprašanja v zvezi z naloženim naborom podatkov z vnosom kot popolnoma oblikovanim vprašanjem, ki se ne nanaša na zaimke iz prejšnjega pogovora« ,
) ,
]
2. korak: Inicializirajte in preizkusite agenta
Po tem zgradite spremenljivko agenta z uporabo metode initialize_agent() z imenom agenta:
agent = inicializiraj_agent (orodja , llm , agent = AgentType. ZERO_SHOT_REACT_DESCRIPTION , verbose = Prav
)
Zaženite agenta z uporabo vprašanja z več skoki, ki vsebuje več kot en vidik ali funkcijo, saj naslednji blok kode vsebuje takšno vprašanje:
agent. teči ('Katero orodje uporablja ruff za poganjanje prenosnikov Python in ali je kdo od govornikov omenil orodje v svojem nagovoru'
)
Izhod
Naslednji posnetek zaslona nakazuje, da mora agent preučiti vprašanje, da bi razumel njegovo kompleksnost. Vrnil je odgovor, ki ga je sistem za zagotavljanje kakovosti pridobil iz več shramb podatkov, ki smo jih naložili prej med postopkom:
To je vse o tem, kako združiti agente in vektorske trgovine v LangChain.
Zaključek
Če želite združiti agente z vektorskimi shrambami v LangChainu, začnite z namestitvijo modulov za nastavitev okolja in nalaganje naborov podatkov. Konfigurirajte vektorske shrambe za nalaganje podatkov tako, da jih najprej razdelite na manjše dele in nato zgradite jezikovni model z uporabo metode OpenAI(). Konfigurirajte agenta, da ga integrirate z vektorsko shrambo za ekstrahiranje podatkov za različne vrste poizvedb. Ta članek je podrobneje razložil postopek združevanja agentov in vektorskih shramb v LangChain.