Jak zkombinovat agenty a vektorové obchody v LangChain?

Jak Zkombinovat Agenty A Vektorove Obchody V Langchain



LangChain je framework, který navrhuje jazykové modely. Obrovské množství dat trénuje tyto modely v přirozeném jazyce. Existuje mnoho databází nebo vektorových úložišť, jako je Chroma atd. pro správu těchto datových sad. Díky kombinaci agenta a vektorových úložišť model funguje lépe s daty z různých domén. LangChain umožňuje použití mnoha vektorových obchodů k trénování jazykového modelu nebo chatbota.

Rychlý přehled

Tento příspěvek zobrazí:







Jak používat agenta k vrácení strukturovaného výstupu v LangChain



Metoda 1: Kombinace agenta s vektorovými obchody



Metoda 2: Použití agenta jako směrovače





Metoda 3: Použití agenta s Multi-Hop Vector Store

Závěr



Jak používat agenta k vrácení strukturovaného výstupu v LangChain?

Vývojář používá agenty ke směrování mezi databázemi obsahujícími trénovací data pro modely. Agent má plán celého procesu uložením všech kroků. Agent má nástroje k provedení všech těchto činností k dokončení procesu. Uživatel může také použít agenta k získání dat z různých datových úložišť, aby byl model různorodý.

Chcete-li se naučit proces kombinování agentů a vektorových obchodů v LangChain, jednoduše postupujte podle uvedených kroků:

Krok 1: Instalace frameworků

Nejprve nainstalujte modul LangChain a jeho závislosti pro kombinování agentů a vektorových úložišť:

pip install langchain

V této příručce používáme databázi Chroma, která může ukládat data do různých umístění nebo tabulek:

pip install chromadb

Chcete-li lépe porozumět datům, rozdělte velké soubory na menší části pomocí tokenizeru tiktoken:

pip nainstalovat tiktoken

OpenAI je modul, který lze použít k vytvoření velkého jazykového modelu v rámci LangChain:

pip install openai

Krok 2: Prostředí OpenAI

Dalším krokem je zde nastavit prostředí pomocí klíče API OpenAI, který lze extrahovat z oficiálního účtu OpenAI:

import vy
import getpass

vy . přibližně [ 'OPENAI_API_KEY' ] = getpass . getpass ( 'Klíč OpenAI API:' )

Nyní nahrajte data z místního systému do služby Google collaboratory, abyste je mohli v budoucnu použít:

z Google. ET AL import soubory

nahráno = soubory. nahrát ( )

Krok 3: Vytvoření obchodu Vector

Tento krok nakonfiguruje první komponentu naší úlohy, kterou je vektorové úložiště pro ukládání nahraných dat. Konfigurace úložiště vektorů vyžaduje knihovny, které lze importovat z různých závislostí LangChain:

z langchain. vložení . openai import OpenAIEmbeddings

#Vector ukládá závislost pro získání požadované databáze nebo vektoru

z langchain. vectorstores import Chroma

#Text splitter se používá k převodu velkého textu na menší kusy

z langchain. text_splitter import CharacterTextSplitter

z langchain. llms import OpenAI

z langchain. nakladače dokumentů import WebBaseLoader

z langchain. řetězy import RetrievalQA


llm = OpenAI ( teplota = 0 )

Krok 4: Nastavení cesty

Po importu knihoven jednoduše nastavte cestu pro přístup k vektorovým úložištím, než do nich uložíte data:

z pathlib import Cesta

relevantní_části = [ ]
pro p v Cesta ( '.' ) . absolutní ( ) . díly :
relevantní_části. připojit ( p )
-li relevantní_části [ - 3 : ] == [ 'langchain' , 'dokumenty' , 'moduly' ] :
přestávka
#Podmíněný příkaz uvnitř smyčky pro nastavení cesty pro každou databázi
cesta_dokumentu = str ( Cesta ( *relevantní_části ) / 'state_of_the_union.txt' )

Krok 5: Načtení a rozdělení dat

Nyní jednoduše načtěte data a rozdělte je na menší části, aby byla lepší čitelnost a srozumitelnost. Vytvořte vložení dat převodem textu na čísla, vytvořením jejich vektorových mezer a jejich uložením do databáze Chorma:

z langchain. nakladače dokumentů import TextLoader

#Načítání datové sady z její cesty a ukládání jejích menších částí do databáze

nakladač = TextLoader ( cesta_dokumentu )

dokumenty = nakladač. zatížení ( )

text_splitter = CharacterTextSplitter ( chunk_size = 2000 , chunk_overlap = 0 )

texty = text_splitter. split_documents ( dokumenty )

# Převeďte text na čísla a uložte vložení do databáze

vložení = OpenAIEmbeddings ( )

docsearch = Chroma. z_dokumentů ( texty , vložení , název_kolekce = 'svazový stát' )

Krok 6: Vytvoření retrívra

Chcete-li kombinovat úložiště agentů a vektorů, je nutné vytvořit retriever pomocí metody RetrievalQA() z rámce LangChain. Tato metoda vyhledávání se doporučuje pro získání dat z vektorových úložišť pomocí agentů jako nástroje pro práci s databázemi:

state_of_union = RetrievalQA. from_chain_type (

llm = llm , typ_řetězce = 'věci' , retriever = docsearch. jako_retrívr ( )

)

Načtěte další datovou sadu pro integraci agenta s více datovými sadami nebo vektorovými úložišti:

nakladač = WebBaseLoader ( 'https://beta.ruff.rs/docs/faq/' )

Uložte datovou sadu ruff do chromadb po vytvoření menších částí dat také s vektory pro vkládání:

docs = nakladač. zatížení ( )
ruff_texts = text_splitter. split_documents ( docs )
ruff_db = Chroma. z_dokumentů ( ruff_texts , vložení , název_kolekce = 'ruff' )
límec = RetrievalQA. from_chain_type (
llm = llm , typ_řetězce = 'věci' , retriever = ruff_db. jako_retrívr ( )
)

Metoda 1: Kombinace agenta s vektorovými obchody

První metoda kombinace agentů a vektorových úložišť pro extrakci informací je uvedena níže:

Krok 1: Nakonfigurujte nástroje

Nyní, když jsou vektorová úložiště nakonfigurována, pokračujeme k budování druhé složky našeho procesu, tj. agenta. Chcete-li vytvořit agenta pro proces, importujte knihovny pomocí závislostí, jako jsou agenti, nástroje atd.

z langchain. agenti import inicializovat_agenta
z langchain. agenti import Typ agenta
#Získání nástrojů z LangChain k sestavení agenta
z langchain. nástroje import Základní nástroj
z langchain. llms import OpenAI
#Získání LLMMathChain z řetězců pro vytvoření jazykového modelu
z langchain. řetězy import LLMMathChain
z langchain. utility import SerpAPIWrapper
z langchain. agenti import Nástroj

Nakonfigurujte nástroje pro použití s ​​agenty pomocí systému QA nebo vyhledávání nakonfigurovaného dříve s názvem a popisem nástrojů:

nástroje = [
Nástroj (
název = 'State of Union systém kontroly kvality' ,
func = state_of_union. běh ,
popis = 'Poskytuje odpovědi na otázky související s načtenou datovou sadou se vstupem jako plně vytvořená otázka' ,
) ,
Nástroj (
název = 'Ruff QA System' ,
func = límec. běh ,
popis = 'Poskytuje odpovědi na otázky o ruffovi (python linter) se vstupem jako plně vytvořenou otázkou' ,
) ,
]

Krok 2: Inicializujte agenta

Jakmile jsou nástroje nakonfigurovány, jednoduše nastavte agenta v argumentu metody initializa_agent(). Agent, kterého zde používáme, je ZERO_SHOT_REACT_DESCRIPTION spolu s nástroji, llm (jazykový model) a verbose:

činidlo = inicializovat_agenta (

nástroje , llm , činidlo = Typ agenta. ZERO_SHOT_REACT_DESCRIPTION , podrobný = Skutečný

)

Krok 3: Otestujte agenta

Jednoduše spusťte agenta pomocí metody run(), která ve svém argumentu obsahuje otázku:

činidlo. běh (

'Co řekl prezident Joe Biden o kanji brown v projevu?'

)

Následující snímek obrazovky zobrazuje odpověď extrahovanou z obou úložišť dat pomocí pozorování uloženého v paměti agenta:

Metoda 2: Použití agenta jako směrovače

Dalším způsobem, jak zkombinovat obě komponenty, je použití agenta jako routeru a následující postup vysvětluje:

Krok 1: Nakonfigurujte nástroje

Použití agenta jako směrovače znamená, že systém RetrievalQA vrátí výstup přímo, protože nástroje jsou nakonfigurovány tak, aby výstup vracely přímo:

nástroje = [
#configuring nástrojů potřebných k sestavení agenta pro získávání dat z dat
Nástroj (
název = 'State of Union systém kontroly kvality' ,
func = state_of_union. běh ,
popis = 'Poskytuje odpovědi na otázky související s načtenou datovou sadou se vstupem jako úplnou otázkou' ,
return_direct = Skutečný ,
) ,
Nástroj (
název = 'Ruff QA System' ,
func = límec. běh ,
popis = 'Poskytuje odpovědi na otázky o ruffu (python linter) se vstupem jako úplnou otázkou' ,
return_direct = Skutečný ,
) ,
]

Krok 2: Inicializujte a otestujte agenta

Po nastavení nástrojů jednoduše nastavte agenta, kterého lze použít pouze jako router pomocí metody initialize_agent():

činidlo = inicializovat_agenta (

nástroje , llm , činidlo = Typ agenta. ZERO_SHOT_REACT_DESCRIPTION , podrobný = Skutečný

)

Otestujte agenta zadáním vstupní otázky v metodě agent.run() provedením následujícího příkazu:

činidlo. běh (

'Co řekl prezident Joe Biden o kanji brown v projevu?'

)

Výstup

Výstupní snímek obrazovky ukazuje, že agent jednoduše vrátil odpověď na otázku z datové sady extrahované systémem RetrievalQA:

Metoda 3: Použití agenta s Multi-Hop Vector Store

Třetí metoda, ve které mohou vývojáři kombinovat úložiště agentů a vektorů, je pro víceskokové dotazy na vektorové úložiště. Následující část vysvětluje celý proces:

Krok 1: Nakonfigurujte nástroje

Prvním krokem je jako obvykle konfigurace nástrojů používaných pro sestavení agentů pro extrakci dat z datových úložišť:

nástroje = [
Nástroj (
název = 'State of Union systém kontroly kvality' ,
func = state_of_union. běh ,
popis = 'Poskytuje odpovědi na otázky související s načtenou datovou sadou se vstupem jako plně vytvořenou otázkou, která neodkazuje na žádná zájmena z předchozí konverzace' ,
) ,
Nástroj (
název = 'Ruff QA System' ,
func = límec. běh ,
popis = 'Poskytuje odpovědi na otázky související s načtenou datovou sadou se vstupem jako plně vytvořenou otázkou, která neodkazuje na žádná zájmena z předchozí konverzace' ,
) ,
]

Krok 2: Inicializujte a otestujte agenta

Poté vytvořte proměnnou agenta pomocí metody initialize_agent() s názvem agenta:

činidlo = inicializovat_agenta (

nástroje , llm , činidlo = Typ agenta. ZERO_SHOT_REACT_DESCRIPTION , podrobný = Skutečný

)

Spusťte agenta pomocí víceskokové otázky, která obsahuje více než jeden aspekt nebo funkci, protože takovou otázku obsahuje následující blok kódu:

činidlo. běh (

'Jaký nástroj používá ruff k běhu přes notebooky Python a zmínil někdo z řečníků tento nástroj ve své adrese?'

)

Výstup

Následující snímek obrazovky naznačuje, že agent musí projít otázkou, aby pochopil její složitost. Vrátil odpověď extrahovanou systémem QA z více datových úložišť, která jsme nahráli dříve v procesu:

To je vše o tom, jak kombinovat agenty a vektorové obchody v LangChain.

Závěr

Chcete-li kombinovat agenty s vektorovými obchody v LangChain, začněte instalací modulů pro nastavení prostředí a načtení datových sad. Nakonfigurujte vektorová úložiště pro načítání dat tak, že je nejprve rozdělíte na menší části a poté vytvoříte jazykový model pomocí metody OpenAI(). Nakonfigurujte agenta tak, aby jej integroval s vektorovým úložištěm pro extrahování dat pro různé druhy dotazů. Tento článek rozvedl proces kombinování agentů a vektorových obchodů v LangChain.