Brzi pregled
Ovaj će post pokazati:
Kako koristiti agenta za vraćanje strukturiranog izlaza u LangChainu
- Instalacija Frameworks
- OpenAI okruženje
- Stvaranje vektorske trgovine
- Postavljanje puta
- Učitavanje i dijeljenje podataka
- Stvaranje retrivera
Metoda 1: Kombiniranje agenta s vektorskim pohranama
Metoda 2: Korištenje agenta kao usmjerivača
Metoda 3: Korištenje agenta s Multi-Hop Vector Store
Kako koristiti agenta za vraćanje strukturiranog izlaza u LangChainu?
Razvojni programer koristi agente za usmjeravanje između baza podataka koje sadrže podatke o obuci za modele. Agent ima nacrt cijelog procesa pohranjujući sve korake. Agent ima alate za obavljanje svih ovih aktivnosti kako bi dovršio proces. Korisnik također može koristiti agenta za dobivanje podataka iz različitih pohrana podataka kako bi model bio raznolik.
Kako biste naučili proces kombiniranja agenata i vektorskih pohrana u LangChainu, jednostavno slijedite navedene korake:
Korak 1: Instalacija Frameworks
Najprije instalirajte modul LangChain i njegove ovisnosti za kombiniranje agenata i vektorskih pohrana:
pip instalirati langchain
U ovom vodiču koristimo Chroma bazu podataka koja može pohraniti podatke na različitim mjestima ili u tablicama:
pip instaliraj chromadb
Da biste bolje razumjeli podatke, podijelite velike datoteke u manje dijelove pomoću tiktoken tokenizera:
pip instaliraj tiktoken
OpenAI je modul koji se može koristiti za izgradnju velikog jezičnog modela u okviru LangChain:
pip instaliraj openai
Korak 2: OpenAI okruženje
Sljedeći korak ovdje je da postaviti okruženje koristeći OpenAI API ključ koji se može ekstrahirati sa službenog OpenAI računa:
uvoz vasuvoz getpass
vas . približno [ 'OPENAI_API_KEY' ] = getpass . getpass ( 'OpenAI API ključ:' )
Sada prenesite podatke iz lokalnog sustava u Googleovu suradnju kako biste ih mogli koristiti u budućnosti:
iz google. ET AL uvoz datotekeučitano = datoteke. Učitaj ( )
Korak 3: Stvaranje vektorske trgovine
Ovaj korak konfigurira prvu komponentu našeg zadatka, a to je vektorska pohrana za pohranu učitanih podataka. Konfiguriranje vektorskih pohrana zahtijeva biblioteke koje se mogu uvesti iz različitih ovisnosti LangChaina:
iz langchain. ugradnje . openai uvoz OpenAIEembeddings#Vector pohranjuje ovisnost za dobivanje potrebne baze podataka ili vektora
iz langchain. vektorske trgovine uvoz Chroma
#Razdjelnik teksta koristi se za pretvaranje velikog teksta u manje dijelove
iz langchain. razdjelnik_teksta uvoz CharacterTextSplitter
iz langchain. llms uvoz OpenAI
iz langchain. učitavači dokumenata uvoz WebBaseLoader
iz langchain. lanci uvoz RetrievalQA
llm = OpenAI ( temperatura = 0 )
Korak 4: Postavljanje staze
Nakon uvoza knjižnica jednostavno postavite put za pristup vektorskim pohranama prije pohranjivanja podataka u njih:
iz pathlib uvoz Stazarelevantni_dijelovi = [ ]
za str u Staza ( '.' ) . apsolutni ( ) . dijelovi :
relevantni_dijelovi. dodati ( str )
ako relevantni_dijelovi [ - 3 : ] == [ 'langchain' , 'dokumenti' , 'moduli' ] :
pauza
#Uvjetna izjava unutar petlje za postavljanje staze za svaku bazu podataka
doc_path = str ( Staza ( *relevantni_dijelovi ) / 'state_of_the_union.txt' )
Korak 5: Učitavanje i dijeljenje podataka
Sada jednostavno učitajte podatke i podijelite ih na manje dijelove kako biste poboljšali njihovu čitljivost i razumljivost. Stvorite ugradnje podataka pretvaranjem teksta u brojeve čineći njihove vektorske prostore i pohranjujući ih u bazu podataka Chorma:
iz langchain. učitavači dokumenata uvoz TextLoader#Učitavanje skupa podataka s njegovog puta i pohranjivanje njegovih manjih dijelova u bazu podataka
utovarivač = TextLoader ( doc_path )
dokumenata = utovarivač. opterećenje ( )
razdjelnik_teksta = CharacterTextSplitter ( veličina_komadka = 2000. godine , komad_preklapanja = 0 )
tekstovi = razdjelnik_teksta. split_documents ( dokumenata )
#Pretvorite tekst u brojeve i pohranite umetnute podatke u bazu podataka
ugradnje = OpenAIEembeddings ( )
docsearch = Chroma. iz_dokumenata ( tekstovi , ugradnje , naziv_zbirke = 'stanje-unije' )
Korak 6: Stvaranje retrivera
Za kombiniranje agentskih i vektorskih pohrana, potrebno je kreirati retriver koristeći RetrievalQA() metodu iz okvira LangChain. Ova metoda dohvaćanja preporučuje se za dobivanje podataka iz vektorskih pohrana pomoću agenata kao alata za rad s bazama podataka:
državna_zajednica = RetrievalQA. iz_vrste_lanca (llm = llm , vrsta_lanca = 'stvari' , retriver = docsearch. kao_retriver ( )
)
Učitajte drugi skup podataka za integraciju agenta s više skupova podataka ili vektorskih pohrana:
utovarivač = WebBaseLoader ( 'https://beta.ruff.rs/docs/faq/' )Pohranite ruff skup podataka u chromadb nakon stvaranja manjih dijelova podataka također s vektorima za ugrađivanje:
dokumenti = utovarivač. opterećenje ( )ruff_texts = razdjelnik_teksta. split_documents ( dokumenti )
ruff_db = Chroma. iz_dokumenata ( ruff_texts , ugradnje , naziv_zbirke = 'grgeč' )
grgeč = RetrievalQA. iz_vrste_lanca (
llm = llm , vrsta_lanca = 'stvari' , retriver = ruff_db. kao_retriver ( )
)
Metoda 1: Kombiniranje agenta s vektorskim pohranama
Prva metoda kombiniranja agenata i vektorskih pohrana za izdvajanje informacija navedena je u nastavku:
Korak 1: Konfigurirajte alate
Sada kada su vektorske pohrane konfigurirane, krećemo prema izgradnji druge komponente našeg procesa, tj. agenta. Da biste stvorili agenta za proces, uvezite biblioteke pomoću ovisnosti kao što su agenti, alati itd.
iz langchain. agenti uvoz inicijalizirati_agentiz langchain. agenti uvoz AgentType
#Dobijanje alata od LangChaina za izradu agenta
iz langchain. alata uvoz Osnovni alat
iz langchain. llms uvoz OpenAI
#Dobijanje LLMMathChaina iz lanaca za izgradnju jezičnog modela
iz langchain. lanci uvoz LLMMathChain
iz langchain. komunalije uvoz SerpAPIWrapper
iz langchain. agenti uvoz Alat
Konfigurirajte alate koji će se koristiti s agentima koji koriste QA sustav ili prethodno konfigurirano dohvaćanje s nazivom i opisom alata:
alata = [Alat (
Ime = 'State of Union QA System' ,
funk = državna_zajednica. trčanje ,
opis = 'Pruža odgovore na pitanja koja se odnose na učitani skup podataka s unosom kao potpuno oblikovanim pitanjem' ,
) ,
Alat (
Ime = 'Ruff QA sustav' ,
funk = grgeč. trčanje ,
opis = 'Pruža odgovore na pitanja o ruffu (python linter) s unosom kao potpuno oblikovanim pitanjem' ,
) ,
]
Korak 2: Inicijalizirajte agenta
Nakon što su alati konfigurirani, jednostavno postavite agenta u argumentu metode initializa_agent(). Agent koji ovdje koristimo je ZERO_SHOT_REACT_DESCRIPTION zajedno s alatima, llm (model jezika) i verbose:
agent = inicijalizirati_agent (alata , llm , agent = AgentType. ZERO_SHOT_REACT_DESCRIPTION , opširno = Pravi
)
Korak 3: Testirajte agenta
Jednostavno pokrenite agenta pomoću metode run() koja sadrži pitanje u svom argumentu:
agent. trčanje ('Što je predsjednik Joe Biden rekao o kanji brownu u obraćanju'
)
Sljedeća snimka zaslona prikazuje odgovor izvađen iz obje pohrane podataka korištenjem opažanja pohranjenih u memoriji agenta:
Metoda 2: Korištenje agenta kao usmjerivača
Drugi način kombiniranja obje komponente je korištenje agenta kao usmjerivača, a sljedeće objašnjava postupak:
Korak 1: Konfigurirajte alate
Korištenje agenta kao usmjerivača znači da će sustav RetrievalQA izravno vratiti izlaz jer su alati konfigurirani za izravno vraćanje izlaza:
alata = [#konfiguriranje alata potrebnih za izradu agenta za dobivanje podataka iz podataka
Alat (
Ime = 'State of Union QA System' ,
funk = državna_zajednica. trčanje ,
opis = 'Pruža odgovore na pitanja koja se odnose na učitani skup podataka s unosom kao potpuno pitanje' ,
return_direct = Pravi ,
) ,
Alat (
Ime = 'Ruff QA sustav' ,
funk = grgeč. trčanje ,
opis = 'Pruža odgovore na pitanja o ruffu (python linter) s unosom kao cjelovitim pitanjem' ,
return_direct = Pravi ,
) ,
]
Korak 2: Inicijalizirajte i testirajte agenta
Nakon postavljanja alata jednostavno postavite agenta koji se može koristiti isključivo kao usmjerivač pomoću metode initialize_agent():
agent = inicijalizirati_agent (alata , llm , agent = AgentType. ZERO_SHOT_REACT_DESCRIPTION , opširno = Pravi
)
Testirajte agenta zadavanjem ulaznog pitanja u metodi agent.run() izvršavanjem sljedeće naredbe:
agent. trčanje ('Što je predsjednik Joe Biden rekao o kanji brownu u obraćanju'
)
Izlaz
Izlazna snimka zaslona prikazuje da je agent jednostavno vratio odgovor na pitanje iz skupa podataka koje je izdvojio sustav RetrievalQA:
Metoda 3: Korištenje agenta s Multi-Hop Vector Store
Treća metoda u kojoj programeri mogu kombinirati agentske i vektorske pohrane odnosi se na upite za pohranu vektora s više skokova. Sljedeći odjeljak objašnjava cijeli postupak:
Korak 1: Konfigurirajte alate
Prvi korak je, kao i obično, konfiguracija alata koji se koriste za izgradnju agenata za izdvajanje podataka iz pohrane podataka:
alata = [Alat (
Ime = 'State of Union QA System' ,
funk = državna_zajednica. trčanje ,
opis = 'Pruža odgovore na pitanja koja se odnose na učitani skup podataka s unosom kao potpuno oblikovanim pitanjem, ne pozivajući se na zamjenice iz prethodnog razgovora' ,
) ,
Alat (
Ime = 'Ruff QA sustav' ,
funk = grgeč. trčanje ,
opis = 'Pruža odgovore na pitanja koja se odnose na učitani skup podataka s unosom kao potpuno oblikovanim pitanjem, ne pozivajući se na zamjenice iz prethodnog razgovora' ,
) ,
]
Korak 2: Inicijalizirajte i testirajte agenta
Nakon toga izgradite varijablu agenta pomoću metode initialize_agent() s imenom agenta:
agent = inicijalizirati_agent (alata , llm , agent = AgentType. ZERO_SHOT_REACT_DESCRIPTION , opširno = Pravi
)
Pokrenite agenta pomoću pitanja s više skokova koje sadrži više od jednog aspekta ili značajke budući da sljedeći blok koda sadrži takvo pitanje:
agent. trčanje ('Koji alat koristi Ruff za prelazak preko Python prijenosnih računala i je li itko od govornika spomenuo alat u svom obraćanju'
)
Izlaz
Sljedeća snimka zaslona sugerira da agent mora proći kroz pitanje kako bi razumio njegovu složenost. Vratio je odgovor koji je izdvojio QA sustav iz više pohrana podataka koje smo učitali ranije u procesu:
To je sve o tome kako kombinirati agente i vektorske trgovine u LangChainu.
Zaključak
Za kombiniranje agenata s vektorskim pohranama u LangChainu, počnite s instalacijom modula za postavljanje okruženja i učitavanje skupova podataka. Konfigurirajte vektorske pohrane za učitavanje podataka tako da ih prvo podijelite na manje dijelove, a zatim izgradite jezični model pomoću metode OpenAI(). Konfigurirajte agenta da ga integrira s vektorskom pohranom za izdvajanje podataka za različite vrste upita. Ovaj članak razradio je proces kombiniranja agenata i vektorskih pohrana u LangChainu.