Ako implementovať Self-Ask s vyhľadávacím reťazcom?

Ako Implementovat Self Ask S Vyhladavacim Retazcom



LangChain je modul na vytváranie jazykových modelov a chatbotov, ktoré dokážu porozumieť a extrahovať text v prirodzenom jazyku. Prirodzené jazyky sú pre ľudí ľahko zrozumiteľné, ale stroje sa ich musia naučiť opakovaným prechádzaním údajov. Údaje/dokumenty v prirodzených jazykoch možno použiť na trénovanie modelu a potom požiadať o výzvy z údajov na kontrolu výkonu modelu.

Rýchly prehľad

Tento príspevok bude demonštrovať nasledovné:







Ako implementovať Self-Ask pomocou vyhľadávacieho reťazca



Záver



Ako implementovať Self-Ask s vyhľadávacím reťazcom?

Self-Ask je proces na zlepšenie procesu reťazenia, pretože dôkladne rozumie príkazom. Reťazce pochopia otázku extrahovaním údajov o všetkých dôležitých pojmoch zo súboru údajov. Keď je model vyškolený a rozumie dopytu, vygeneruje odpoveď na dopyt položený používateľom.





Ak sa chcete naučiť proces implementácie vlastného dopytovania pomocou vyhľadávacích reťazcov v LangChain, jednoducho si prejdite nasledujúcu príručku:

Krok 1: Inštalácia rámcov

Najprv spustite proces inštaláciou procesu LangChain pomocou nasledujúceho kódu a získajte všetky závislosti pre proces:



pip install langchain

Po inštalácii LangChain nainštalujte „ google-search-results ” a získajte výsledky vyhľadávania od Google pomocou prostredia OpenAI:

pip install openai google-search-results

Krok 2: Prostredie budovy

Po nainštalovaní modulov a rámcov nastavte prostredie pre OpenAI a SerpAPi pomocou ich API pomocou nasledujúceho kódu. Importujte knižnice operačného systému a getpass, ktoré možno použiť na zadanie kľúčov API z ich príslušných účtov:

importovať vy
importovať getpass

vy . približne [ 'OPENAI_API_KEY' ] = getpass . getpass ( 'OpenAI API Key:' )
vy . približne [ 'SERPAPI_API_KEY' ] = getpass . getpass ( 'Serpapi API Key:' )

Krok 3: Importovanie knižníc

Po nastavení prostredia jednoducho importujte požadované knižnice zo závislostí LangChain, ako sú utility, agenti, llm a iné:

od langchain. llms importovať OpenAI

od langchain. komunálne služby importovať SerpAPIWrapper

od langchain. agentov . výstupné_analyzátory importovať SelfAskOutputParser

od langchain. agentov . format_scratchpad importovať format_log_to_str

od langchain importovať stredisko

od langchain. agentov importovať initialize_agent , Nástroj

od langchain. agentov importovať Typ agenta

Krok 4: Vytváranie jazykových modelov

Získanie vyššie uvedených knižníc je potrebné počas celého procesu, pretože OpenAI() sa používa na konfiguráciu jazykového modelu. Pomocou metódy SerpAPIWrapper() nakonfigurujte premennú vyhľadávania a nastavte nástroje potrebné na to, aby agent vykonával všetky úlohy:

llm = OpenAI ( teplota = 0 )
Vyhľadávanie = SerpAPIWrapper ( )
nástrojov = [
Nástroj (
názov = 'stredná odpoveď' ,
func = Vyhľadávanie. behať ,
popis = 'užitočné, keď sa potrebujete opýtať pomocou vyhľadávania' ,
)
]

Krok 5: Používanie jazyka LangChain Expression Language

Začíname s konfiguráciou agenta pomocou jazyka LangChain Expression Language (LCEL) načítaním modelu do premennej výzvy:

výzva = stredisko. SEM ( 'hwchase17/self-ask-with-search' )

Definujte ďalšiu premennú, ktorá môže byť vykonaná na zastavenie generovania textu a ovládanie dĺžky odpovedí:

llm_with_stop = llm. viazať ( zastaviť = [ ' \n Stredná odpoveď:' ] )

Teraz nakonfigurujte agentov pomocou Lambda, čo je platforma bez servera riadená udalosťami na generovanie odpovedí na otázky. Nakonfigurujte tiež kroky potrebné na trénovanie a testovanie modelu, aby ste získali optimalizované výsledky pomocou komponentov nakonfigurovaných skôr:

agent = {
'vstup' : lambda x: x [ 'vstup' ] ,
'agent_scratchpad' : lambda x: format_log_to_str (
X [ 'intermediate_steps' ] ,
predpona_pozorovania = ' \n Stredná odpoveď: ' ,
llm_prefix = '' ,
) ,
} | výzva | llm_with_stop | SelfAskOutputParser ( )

Krok 6: Konfigurácia Agent Executor

Pred testovaním metódy jednoducho importujte knižnicu AgentExecutor z LangChain, aby agent reagoval:

od langchain. agentov importovať AgentExecutor

Definujte premennú agent_executor volaním metódy AgentExecutor() a použitím komponentov ako jej argumentov:

agent_exekútor = AgentExecutor ( agent = agent , nástrojov = nástrojov , podrobný = Pravda )

Krok 7: Spustenie agenta

Po nakonfigurovaní vykonávateľa agenta ho jednoducho otestujte zadaním otázky/výzvy do vstupnej premennej:

agent_exekútor. vzývať ( { 'vstup' : 'Kto je mužský šampión US Open' } )

Spustenie vyššie uvedeného kódu odpovedalo menom šampióna US Open vo výstupe, t.j. Dominic Thiem:

Krok 8: Použitie Self-Ask Agent

Po získaní odpovede od agenta použite SELF_ASK_WITH_SEARCH agent s dotazom v metóde run():

seba_pýtať sa_s_vyhľadávaním = initialize_agent (
nástrojov , llm , agent = Typ agenta. SELF_ASK_WITH_SEARCH , podrobný = Pravda
)
seba_pýtať sa_s_vyhľadávaním. behať (
'Aké je rodné mesto Dominica Thiema, majstra sveta US Open'
)

Nasledujúca snímka obrazovky zobrazuje, že samočinný agent extrahuje informácie o každom dôležitom výraze z množiny údajov. Keď zhromaždí všetky informácie o dopyte a porozumie otázkam, jednoducho vygeneruje odpoveď. Otázky, ktoré si agent kladie, sú:

  • Kto je Dominic Thiem?
  • Aké je rodné mesto Dominica Thiema?

Po získaní odpovedí na tieto otázky agent vygeneroval odpoveď na pôvodnú otázku, ktorá je „ Wiener Neustadt, Rakúsko “:

To je všetko o procese implementácie vlastnej otázky pomocou vyhľadávacieho reťazca pomocou rámca LangChain.

Záver

Ak chcete implementovať samočinnú otázku s vyhľadávaním v LangChain, jednoducho nainštalujte požadované moduly, ako je google-search-results, aby ste získali výsledky od agenta. Potom nastavte prostredie pomocou kľúčov API z účtov OpenAI a SerpAPi, aby ste mohli začať s procesom. Nakonfigurujte agenta a zostavte model s modelom self-ask, aby ste ho otestovali pomocou metódy AgentExecutor().