Rychlý přehled
Tento příspěvek bude demonstrovat následující:
Jak implementovat Self-Ask pomocí vyhledávacího řetězce
- Instalace frameworků
- Prostředí budovy
- Import knihoven
- Vytváření jazykových modelů
- Použití LangChain Expression Language
- Konfigurace Agent Executor
- Spuštění agenta
- Použití Self-Ask Agent
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 vyimport 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 OpenAIz 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 AgentExecutorDefinujte 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().