Jak wdrożyć funkcję Self-Ask w łańcuchu wyszukiwania?

Jak Wdrozyc Funkcje Self Ask W Lancuchu Wyszukiwania



LangChain to moduł do budowy modeli językowych i chatbotów, które potrafią zrozumieć i wyodrębnić tekst w języku naturalnym. Języki naturalne są łatwo zrozumiałe dla ludzi, ale maszyny muszą się ich uczyć, wielokrotnie przeglądając dane. Dane/dokumenty w językach naturalnych można wykorzystać do uczenia modelu, a następnie zadawać pytania z danych w celu sprawdzenia wydajności modelu.

Szybki zarys

Ten post pokaże, co następuje:







Jak wdrożyć funkcję Self-Ask w łańcuchu wyszukiwania



Wniosek



Jak wdrożyć funkcję Self-Ask w łańcuchu wyszukiwania?

Self-Ask to proces mający na celu ulepszenie procesu łączenia w łańcuch, ponieważ dokładnie rozumie polecenia. Łańcuchy rozumieją pytanie, wyodrębniając dane o wszystkich ważnych terminach ze zbioru danych. Gdy model zostanie przeszkolony i zrozumie zapytanie, generuje odpowiedź na zapytanie zadane przez użytkownika.





Aby poznać proces wdrażania samodzielnego pytania w łańcuchach wyszukiwania w LangChain, wystarczy zapoznać się z następującym przewodnikiem:

Krok 1: Instalowanie frameworków

Przede wszystkim rozpocznij proces, instalując proces LangChain przy użyciu poniższego kodu i uzyskaj wszystkie zależności dla procesu:



pip zainstaluj langchain

Po zainstalowaniu LangChain zainstaluj „ wyniki-wyszukiwania google ”, aby uzyskać wyniki wyszukiwania z Google przy użyciu środowiska OpenAI:

pip zainstaluj openai google-search-results

Krok 2: Budowanie środowiska

Po zainstalowaniu modułów i frameworków skonfiguruj środowisko dla OpenAI I SerpAPi korzystając ze swoich interfejsów API, korzystając z poniższego kodu. Zaimportuj biblioteki os i getpass, których można użyć do wprowadzenia kluczy API z odpowiednich kont:

import Ty
import przejść dalej

Ty . około [ „OPENAI_API_KEY” ] = przejść dalej . przejść dalej ( „Klucz API OpenAI:” )
Ty . około [ „KLUCZ_SERPAPI_API” ] = przejść dalej . przejść dalej ( „Klucz API Serpapi:” )

Krok 3: Importowanie bibliotek

Po skonfigurowaniu środowiska po prostu zaimportuj wymagane biblioteki z zależności LangChain, takie jak narzędzia, agenci, llm i inne:

z łańcuch językowy. llms import OpenAI

z łańcuch językowy. narzędzia import SerpAPIWrapper

z łańcuch językowy. agenci . parsery_wyjściowe import SelfAskOutputParser

z łańcuch językowy. agenci . format_scratchpad import format_log_to_str

z łańcuch językowy import centrum

z łańcuch językowy. agenci import zainicjuj_agent , Narzędzie

z łańcuch językowy. agenci import Typ agenta

Krok 4: Budowanie modeli językowych

Pobranie powyższych bibliotek jest wymagane w całym procesie, ponieważ OpenAI() służy do konfigurowania modelu języka. Użyj metody SerpAPIWrapper() do skonfigurowania zmiennej wyszukiwania i ustawienia narzędzi wymaganych dla agenta do wykonania wszystkich zadań:

llm = OpenAI ( temperatura = 0 )
szukaj = SerpAPIWrapper ( )
narzędzia = [
Narzędzie (
nazwa = „Odpowiedź pośrednia” ,
funk = szukaj. uruchomić ,
opis = „przydatne, gdy musisz zapytać za pomocą wyszukiwania” ,
)
]

Krok 5: Używanie języka wyrażeń LangChain

Rozpocznij konfigurowanie agenta przy użyciu języka LangChain Expression Language (LCEL) poprzez załadowanie modelu do zmiennej zachęty:

podpowiedź = centrum. ciągnąć ( „hwchase17/samodzielne pytanie z wyszukiwaniem” )

Zdefiniuj kolejną zmienną, którą można uruchomić, aby zatrzymać generowanie tekstu i kontrolować długość odpowiedzi:

llm_z_stopem = llm. wiązać ( zatrzymywać się = [ ' \N Odpowiedź pośrednia:” ] )

Teraz skonfiguruj agentów przy użyciu Lambda, która jest sterowaną zdarzeniami platformą bezserwerową do generowania odpowiedzi na pytania. Skonfiguruj także kroki potrzebne do uczenia i testowania modelu, aby uzyskać zoptymalizowane wyniki przy użyciu wcześniej skonfigurowanych komponentów:

agent = {
'wejście' : lambda x: x [ 'wejście' ] ,
'agent_zdrapek' : lambda x: format_log_to_str (
X [ „kroki_pośrednie” ] ,
przedrostek_obserwacji = ' \N Odpowiedź pośrednia: „ ,
llm_prefix = „” ,
) ,
} | podpowiedź | llm_with_stop | SelfAskOutputParser ( )

Krok 6: Konfigurowanie modułu wykonującego agenta

Przed przetestowaniem metody po prostu zaimportuj bibliotekę AgentExecutor z LangChain, aby agent zaczął reagować:

z łańcuch językowy. agenci import Wykonawca agenta

Zdefiniuj zmienną agent_executor, wywołując metodę AgentExecutor() i używając komponentów jako jej argumentów:

agent_wykonawca = Wykonawca agenta ( agent = agent , narzędzia = narzędzia , gadatliwy = PRAWDA )

Krok 7: Uruchomienie agenta

Po skonfigurowaniu modułu wykonującego agenta po prostu go przetestuj, wprowadzając pytanie/podpowiedź w zmiennej wejściowej:

agent_wykonawca. odwołać się ( { 'wejście' : „Kto jest mistrzem mężczyzn w US Open” } )

Wykonanie powyższego kodu spowodowało wyświetlenie na wyjściu nazwiska mistrza US Open, tj. Dominica Thiema:

Krok 8: Korzystanie z agenta Self-Ask

Po otrzymaniu odpowiedzi od agenta użyj przycisku SELF_ASK_WITH_SEARCH agenta z zapytaniem w metodzie run():

self_ask_with_search = zainicjuj_agent (
narzędzia , llm , agent = Typ agenta. SELF_ASK_WITH_SEARCH , gadatliwy = PRAWDA
)
self_ask_with_search. uruchomić (
„Jakie jest rodzinne miasto Dominica Thiema, mistrza świata US Open”
)

Poniższy zrzut ekranu pokazuje, że agent samodzielnego zapytania wyodrębnia informacje o każdym ważnym terminie ze zbioru danych. Gdy zbierze wszystkie informacje na temat zapytania i zrozumie pytania, po prostu generuje odpowiedź. Pytania, które sam sobie zadaje agent to:

  • Kim jest Dominic Thiem?
  • Jakie jest rodzinne miasto Dominica Thiema?

Po uzyskaniu odpowiedzi na te pytania agent wygenerował odpowiedź na pierwotne pytanie, czyli „ Wiener Neustadt w Austrii ”:

To wszystko, jeśli chodzi o proces wdrażania pytania samodzielnego w łańcuchu wyszukiwania przy użyciu frameworka LangChain.

Wniosek

Aby wdrożyć funkcję samodzielnego zapytania z wyszukiwaniem w LangChain, po prostu zainstaluj wymagane moduły, takie jak google-search-results, aby uzyskać wyniki od agenta. Następnie skonfiguruj środowisko za pomocą kluczy API z kont OpenAI i SerpAPi, aby rozpocząć proces. Skonfiguruj agenta i zbuduj model za pomocą modelu samodzielnego żądania, aby przetestować go przy użyciu metody AgentExecutor().