Szybki zarys
Ten post pokaże, co następuje:
Jak wdrożyć funkcję Self-Ask w łańcuchu wyszukiwania
- Instalowanie frameworków
- Środowisko Budowlane
- Importowanie bibliotek
- Budowanie modeli językowych
- Używanie języka wyrażeń LangChain
- Konfigurowanie modułu wykonującego agenta
- Uruchamianie agenta
- Korzystanie z agenta Self-Ask
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 Tyimport 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 OpenAIz ł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 agentaZdefiniuj 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().