Rýchly prehľad
V tomto príspevku sa zobrazí:
Ako používať agenta na vrátenie štruktúrovaného výstupu v LangChain
- Inštalácia rámcov
- Prostredie OpenAI
- Vytvorenie vektorového obchodu
- Nastavenie cesty
- Načítanie a rozdelenie údajov
- Vytvorenie retrievera
Metóda 1: Kombinácia agenta s vektorovými obchodmi
Metóda 2: Použitie agenta ako smerovača
Metóda 3: Použitie agenta s Multi-Hop Vector Store
Ako použiť agenta na vrátenie štruktúrovaného výstupu v LangChain?
Vývojár používa agentov na smerovanie medzi databázami obsahujúcimi tréningové údaje pre modely. Agent má plán celého procesu tým, že si ukladá všetky kroky. Agent má nástroje na vykonanie všetkých týchto činností na dokončenie procesu. Používateľ môže tiež použiť agenta na získanie údajov z rôznych úložísk údajov, aby bol model rôznorodý.
Ak sa chcete naučiť proces kombinovania agentov a vektorových obchodov v LangChain, jednoducho postupujte podľa uvedených krokov:
Krok 1: Inštalácia rámcov
Najprv nainštalujte modul LangChain a jeho závislosti na kombinovanie agentov a vektorových úložísk:
pip install langchain
V tejto príručke používame databázu Chroma, ktorá môže ukladať údaje na rôzne miesta alebo tabuľky:
pip install chromadb
Ak chcete lepšie porozumieť údajom, rozdeľte veľké súbory na menšie časti pomocou tokenizéra tiktoken:
pip nainštalovať tiktoken
OpenAI je modul, ktorý možno použiť na zostavenie veľkého jazykového modelu v rámci LangChain:
pip install openai
Krok 2: Prostredie OpenAI
Ďalším krokom je tu nastaviť prostredie pomocou kľúča API OpenAI, ktorý možno extrahovať z oficiálneho účtu OpenAI:
importovať vyimportovať getpass
vy . približne [ 'OPENAI_API_KEY' ] = getpass . getpass ( 'OpenAI API Key:' )
Teraz odovzdajte údaje z miestneho systému do laboratória Google, aby ste ich mohli použiť v budúcnosti:
od google. ET AL importovať súborynahrané = súbory. nahrať ( )
Krok 3: Vytvorenie vektorového obchodu
Tento krok nakonfiguruje prvý komponent našej úlohy, ktorým je vektorové úložisko na ukladanie nahraných údajov. Konfigurácia vektorových úložísk vyžaduje knižnice, ktoré je možné importovať z rôznych závislostí LangChain:
od langchain. vsadenia . openai importovať OpenAIEmbeddings#Vector ukladá závislosť na získanie požadovanej databázy alebo vektora
od langchain. vectorstores importovať Chroma
#Text splitter sa používa na konverziu veľkého textu na menšie časti
od langchain. text_splitter importovať CharacterTextSplitter
od langchain. llms importovať OpenAI
od langchain. nakladače dokumentov importovať WebBaseLoader
od langchain. reťaze importovať RetrievalQA
llm = OpenAI ( teplota = 0 )
Krok 4: Nastavenie cesty
Po importovaní knižníc jednoducho nastavte cestu pre prístup k vektorovým skladom pred uložením údajov do nich:
od pathlib importovať Cestarelevantné_časti = [ ]
pre p v Cesta ( '.' ) . absolútne ( ) . časti :
relevantné_časti. priložiť ( p )
ak relevantné_časti [ - 3 : ] == [ 'langchain' , 'dokumenty' , 'moduly' ] :
prestávka
#Podmienený príkaz vo vnútri slučky na nastavenie cesty pre každú databázu
cesta_k_dokumentu = str ( Cesta ( *relevantné_časti ) / 'state_of_the_union.txt' )
Krok 5: Načítanie a rozdelenie údajov
Teraz jednoducho načítajte údaje a rozdeľte ich na menšie časti, aby boli lepšie čitateľné a zrozumiteľné. Vytvorte vloženie údajov prevedením textu na čísla, vytvorením ich vektorových medzier a ich uložením do databázy Chorma:
od langchain. nakladače dokumentov importovať TextLoader#Načítava sa množina údajov z jej cesty a jej menšie časti sa ukladajú do databázy
nakladač = TextLoader ( cesta_k_dokumentu )
Dokumenty = nakladač. naložiť ( )
text_splitter = CharacterTextSplitter ( chunk_size = 2000 , chunk_overlap = 0 )
texty = text_splitter. rozdeliť_dokumenty ( Dokumenty )
# Preveďte text na čísla a uložte vloženie do databázy
vsadenia = OpenAIEmbeddings ( )
docsearch = Chroma. z_dokumentov ( texty , vsadenia , názov_kolekcie = 'štát únie' )
Krok 6: Vytvorenie retrievera
Ak chcete skombinovať úložiská agentov a vektorov, je potrebné vytvoriť retriever pomocou metódy RetrievalQA() z rámca LangChain. Táto metóda vyhľadávania sa odporúča na získanie údajov z vektorových skladov pomocou agentov ako nástroja na prácu s databázami:
state_of_union = RetrievalQA. from_chain_type (llm = llm , chain_type = 'veci' , retriever = docsearch. ako_retriever ( )
)
Načítajte ďalšiu množinu údajov na integráciu agenta s viacerými množinami údajov alebo vektorovými skladmi:
nakladač = WebBaseLoader ( 'https://beta.ruff.rs/docs/faq/' )Uložte súbor údajov ruff v chromadb po vytvorení menších častí údajov aj s vektormi na vkladanie:
dokumenty = nakladač. naložiť ( )ruff_texts = text_splitter. rozdeliť_dokumenty ( dokumenty )
ruff_db = Chroma. z_dokumentov ( ruff_texts , vsadenia , názov_kolekcie = 'ruch' )
ruff = RetrievalQA. from_chain_type (
llm = llm , chain_type = 'veci' , retriever = ruff_db. ako_retriever ( )
)
Metóda 1: Kombinácia agenta s vektorovými obchodmi
Prvý spôsob kombinovania agentov a vektorových úložísk na extrahovanie informácií je uvedený nižšie:
Krok 1: Nakonfigurujte nástroje
Teraz, keď sú vektorové úložiská nakonfigurované, pokračujeme v budovaní druhej zložky nášho procesu, tj agenta. Ak chcete vytvoriť agenta pre proces, importujte knižnice pomocou závislostí, ako sú agenti, nástroje atď.
od langchain. agentov importovať initialize_agentod langchain. agentov importovať Typ agenta
#Získanie nástrojov z LangChain na zostavenie agenta
od langchain. nástrojov importovať BaseTool
od langchain. llms importovať OpenAI
#Získanie LLMMathChain z reťazcov na vytvorenie jazykového modelu
od langchain. reťaze importovať LLMMathChain
od langchain. komunálne služby importovať SerpAPIWrapper
od langchain. agentov importovať Nástroj
Nakonfigurujte nástroje, ktoré sa majú používať s agentmi, pomocou systému kontroly kvality alebo skôr nakonfigurovaného vyhľadávania s názvom a popisom nástrojov:
nástrojov = [Nástroj (
názov = 'Systém kontroly kvality štátu Únie' ,
func = state_of_union. behať ,
popis = 'Poskytuje odpovede na otázky súvisiace s načítaným súborom údajov so vstupom ako plne vytvorenou otázkou' ,
) ,
Nástroj (
názov = 'Ruff QA systém' ,
func = ruff. behať ,
popis = 'Poskytuje odpovede na otázky o ruffovi (python linter) so vstupom ako plne vytvorenou otázkou' ,
) ,
]
Krok 2: Inicializujte agenta
Keď sú nástroje nakonfigurované, jednoducho nastavte agenta v argumente metódy initializa_agent(). Agent, ktorého tu používame, je ZERO_SHOT_REACT_DESCRIPTION spolu s nástrojmi, llm (jazykový model) a podrobný:
agent = initialize_agent (nástrojov , llm , agent = Typ agenta. ZERO_SHOT_REACT_DESCRIPTION , podrobný = Pravda
)
Krok 3: Otestujte agenta
Jednoducho spustite agenta pomocou metódy run(), ktorá obsahuje otázku vo svojom argumente:
agent. behať ('Čo povedal prezident Joe Biden o kanji brown v príhovore?'
)
Nasledujúca snímka obrazovky zobrazuje odpoveď extrahovanú z oboch dátových úložísk pomocou pozorovaní uložených v pamäti agenta:
Metóda 2: Použitie agenta ako smerovača
Ďalším spôsobom, ako skombinovať obe zložky, je použitie agenta ako smerovača a nasledujúci postup vysvetľuje:
Krok 1: Nakonfigurujte nástroje
Použitie agenta ako smerovača znamená, že systém RetrievalQA vráti výstup priamo, pretože nástroje sú nakonfigurované na priame vrátenie výstupu:
nástrojov = [#konfigurácia nástrojov potrebných na zostavenie agenta na získavanie údajov z údajov
Nástroj (
názov = 'Systém kontroly kvality štátu Únie' ,
func = state_of_union. behať ,
popis = 'Poskytuje odpovede na otázky súvisiace s načítaným súborom údajov so vstupom ako úplnou otázkou' ,
return_direct = Pravda ,
) ,
Nástroj (
názov = 'Ruff QA systém' ,
func = ruff. behať ,
popis = 'Poskytuje odpovede na otázky o ruffovi (python linter) so vstupom ako úplnou otázkou' ,
return_direct = Pravda ,
) ,
]
Krok 2: Inicializujte a otestujte agenta
Po nastavení nástrojov jednoducho nastavte agenta, ktorý môže byť použitý iba ako smerovač pomocou metódy initialize_agent():
agent = initialize_agent (nástrojov , llm , agent = Typ agenta. ZERO_SHOT_REACT_DESCRIPTION , podrobný = Pravda
)
Otestujte agenta zadaním vstupnej otázky v metóde agent.run() vykonaním nasledujúceho príkazu:
agent. behať ('Čo povedal prezident Joe Biden o kanji brown v príhovore?'
)
Výkon
Výstupná snímka obrazovky zobrazuje, že agent jednoducho vrátil odpoveď na otázku zo súboru údajov extrahovaného systémom RetrievalQA:
Metóda 3: Použitie agenta s Multi-Hop Vector Store
Tretia metóda, v ktorej môžu vývojári kombinovať agentské aj vektorové obchody, je pre multi-hop vektorové dopyty. Nasledujúca časť vysvetľuje celý proces:
Krok 1: Nakonfigurujte nástroje
Prvým krokom je, ako obvykle, konfigurácia nástrojov používaných na zostavenie agentov na extrahovanie údajov z dátových úložísk:
nástrojov = [Nástroj (
názov = 'Systém kontroly kvality štátu Únie' ,
func = state_of_union. behať ,
popis = 'Poskytuje odpovede na otázky súvisiace s načítaným súborom údajov so vstupom ako úplne vytvorenou otázkou, ktorá neodkazuje na žiadne zámená z predchádzajúcej konverzácie' ,
) ,
Nástroj (
názov = 'Ruff QA systém' ,
func = ruff. behať ,
popis = 'Poskytuje odpovede na otázky súvisiace s načítaným súborom údajov so vstupom ako úplne vytvorenou otázkou, ktorá neodkazuje na žiadne zámená z predchádzajúcej konverzácie' ,
) ,
]
Krok 2: Inicializujte a otestujte agenta
Potom vytvorte premennú agenta pomocou metódy initialize_agent() s názvom agenta:
agent = initialize_agent (nástrojov , llm , agent = Typ agenta. ZERO_SHOT_REACT_DESCRIPTION , podrobný = Pravda
)
Spustite agenta pomocou otázky s viacerými skokmi, ktorá obsahuje viac ako jeden aspekt alebo funkciu, pretože takúto otázku obsahuje nasledujúci blok kódu:
agent. behať („Aký nástroj používa ruff na spustenie notebookov Python a spomenul niekto z rečníkov tento nástroj vo svojej adrese“
)
Výkon
Nasledujúca snímka obrazovky naznačuje, že agent musí prejsť otázkou, aby pochopil jej zložitosť. Vrátila odpoveď extrahovanú systémom kontroly kvality z viacerých dátových úložísk, ktoré sme nahrali skôr v procese:
To je všetko o tom, ako skombinovať agentov a vektorové obchody v LangChain.
Záver
Ak chcete skombinovať agentov s vektorovými skladmi v LangChain, začnite inštaláciou modulov na nastavenie prostredia a načítanie množín údajov. Nakonfigurujte vektorové úložiská na načítanie údajov tak, že ich najskôr rozdelíte na menšie časti a potom vytvoríte jazykový model pomocou metódy OpenAI(). Nakonfigurujte agenta tak, aby ho integroval s vektorovým úložiskom na extrahovanie údajov pre rôzne druhy dopytov. Tento článok rozpracoval proces kombinovania agentov a vektorových obchodov v LangChain.