Jak implementovat Self-Ask pomocí vyhledávacího řetězce?

Jak Implementovat Self Ask Pomoci Vyhledavaciho Retezce



LangChain je modul pro vytváření jazykových modelů a chatbotů, kteří dokážou porozumět a extrahovat text v přirozeném jazyce. Přirozené jazyky jsou pro lidi snadno srozumitelné, ale stroje se je musí naučit opakovaným procházením dat. Data/dokumenty v přirozených jazycích lze použít k trénování modelu a poté si vyžádat výzvy z dat ke kontrole výkonu modelu.

Rychlý přehled

Tento příspěvek bude demonstrovat následující:







Jak implementovat Self-Ask pomocí vyhledávacího řetězce



Závěr



Jak implementovat Self-Ask pomocí vyhledávacího řetězce?

Self-Ask je proces, který zlepšuje proces řetězení, protože dokonale rozumí příkazům. Řetězce porozumí otázce tím, že z datové sady vytěží data o všech důležitých pojmech. Jakmile je model vyškolen a rozumí dotazu, vygeneruje odpověď na dotaz položený uživatelem.





Chcete-li se naučit proces implementace vlastního dotazu pomocí vyhledávacích řetězců v LangChain, jednoduše projděte následujícího průvodce:

Krok 1: Instalace frameworků

Nejprve spusťte proces instalací procesu LangChain pomocí následujícího kódu a získejte všechny závislosti pro proces:



pip install langchain

Po instalaci LangChain nainstalujte „ google-search-results ” k získání výsledků vyhledávání od Google pomocí prostředí OpenAI:

pip install openai google-search-results

Krok 2: Prostředí budovy

Jakmile jsou moduly a frameworky nainstalovány, nastavte prostředí pro OpenAI a SerpAPi pomocí jejich API pomocí následujícího kódu. Importujte knihovny operačního systému a getpass, které lze použít k zadání klíčů API z jejich příslušných účtů:

import vy
import getpass

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

Krok 3: Import knihoven

Po nastavení prostředí jednoduše importujte požadované knihovny ze závislostí LangChain, jako jsou utility, agenti, llm a další:

z langchain. llms import OpenAI

z langchain. utility import SerpAPIWrapper

z langchain. agenti . výstupní_analyzátory import SelfAskOutputParser

z langchain. agenti . format_scratchpad import format_log_to_str

z langchain import rozbočovač

z langchain. agenti import inicializovat_agenta , Nástroj

z langchain. agenti import Typ agenta

Krok 4: Vytváření jazykových modelů

Získání výše uvedených knihoven je vyžadováno v celém procesu, protože OpenAI() se používá ke konfiguraci jazykového modelu. Pomocí metody SerpAPIWrapper() nakonfigurujte vyhledávací proměnnou a nastavte nástroje potřebné k tomu, aby agent mohl provádět všechny úkoly:

llm = OpenAI ( teplota = 0 )
Vyhledávání = SerpAPIWrapper ( )
nástroje = [
Nástroj (
název = 'Střední odpověď' ,
func = Vyhledávání. běh ,
popis = 'užitečné, když se potřebujete zeptat pomocí vyhledávání' ,
)
]

Krok 5: Použití jazyka výrazů LangChain

Začínáme s konfigurací agenta pomocí jazyka LangChain Expression Language (LCEL) načtením modelu do proměnné výzvy:

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

Definujte další proměnnou, kterou lze spustit, abyste zastavili generování textu a řídili délku odpovědí:

llm_with_stop = llm. svázat ( stop = [ ' \n Průběžná odpověď:' ] )

Nyní nakonfigurujte agenty pomocí Lambda, což je platforma bez serverů řízená událostmi, aby generovala odpovědi na otázky. Nakonfigurujte také kroky potřebné k trénování a testování modelu, abyste získali optimalizované výsledky pomocí komponent nakonfigurovaných dříve:

činidlo = {
'vstup' : lambda x: x [ 'vstup' ] ,
'agent_scratchpad' : lambda x: format_log_to_str (
X [ 'intermediate_steps' ] ,
předpona_pozorování = ' \n Průběžná odpověď: ' ,
llm_prefix = '' ,
) ,
} | výzva | llm_with_stop | SelfAskOutputParser ( )

Krok 6: Konfigurace Agent Executor

Před testováním metody jednoduše importujte knihovnu AgentExecutor z LangChain, aby agent reagoval:

z langchain. agenti import AgentExecutor

Definujte proměnnou agent_executor voláním metody AgentExecutor() a použitím komponent jako jejích argumentů:

agent_exekutor = AgentExecutor ( činidlo = činidlo , nástroje = nástroje , podrobný = Skutečný )

Krok 7: Spuštění agenta

Jakmile je exekutor agenta nakonfigurován, jednoduše jej otestujte zadáním otázky/výzvy do vstupní proměnné:

agent_exekutor. vyvolat ( { 'vstup' : „Kdo je šampionem US Open mužů“ } )

Spuštění výše uvedeného kódu reagovalo se jménem šampiona US Open ve výstupu, tj. Dominic Thiem:

Krok 8: Použití Self-Ask Agent

Po obdržení odpovědi od agenta použijte SELF_ASK_WITH_SEARCH agent s dotazem v metodě run():

self_ask_with_search = inicializovat_agenta (
nástroje , llm , činidlo = Typ agenta. SELF_ASK_WITH_SEARCH , podrobný = Skutečný
)
self_ask_with_search. běh (
„Jaké je rodné město Dominica Thiema, mistra světa US Open“
)

Následující snímek obrazovky ukazuje, že samoobslužný agent extrahuje informace o každém důležitém termínu z datové sady. Jakmile shromáždí všechny informace o dotazu a porozumí otázkám, jednoduše vygeneruje odpověď. Otázky, které si agent sám klade, jsou:

  • Kdo je Dominic Thiem?
  • Jaké je rodné město Dominica Thiema?

Po získání odpovědí na tyto otázky agent vygeneroval odpověď na původní otázku, která je „ Wiener Neustadt, Rakousko “:

To je vše o procesu implementace vlastního dotazu pomocí vyhledávacího řetězce pomocí rámce LangChain.

Závěr

Chcete-li implementovat vlastní dotaz s vyhledáváním v LangChain, jednoduše nainstalujte požadované moduly, jako je google-search-results, abyste získali výsledky od agenta. Poté nastavte prostředí pomocí klíčů API z účtů OpenAI a SerpAPi, abyste mohli začít s procesem. Nakonfigurujte agenta a vytvořte model s modelem self-ask, abyste jej otestovali pomocí metody AgentExecutor().