Szybki zarys
Ten post pokaże, co następuje:
Jak replikować system MRKL przy użyciu agentów w LangChain
- Krok 1: Instalowanie frameworków
- Krok 2: Konfiguracja środowiska OpenAI
- Krok 3: Importowanie bibliotek
- Krok 4: Budowa bazy danych
- Krok 5: Przesyłanie bazy danych
- Krok 6: Konfigurowanie narzędzi
- Krok 7: Budowanie i testowanie agenta
- Krok 8: Replikuj system MRKL
- Krok 9: Korzystanie z ChatModelu
- Krok 10: Przetestuj agenta MRKL
- Krok 11: Replikuj system MRKL
Jak replikować system MRKL za pomocą agentów w LangChain?
LangChain umożliwia użytkownikowi budowanie agentów, których można używać do wykonywania wielu zadań dla modeli językowych lub chatbotów. Agenci przechowują swoją pracę wraz ze wszystkimi krokami w pamięci dołączonej do modelu językowego. Korzystając z tych szablonów, agent może replikować działanie dowolnego systemu, takiego jak MRKL, aby uzyskać zoptymalizowane wyniki bez konieczności ich ponownego budowania.
Aby poznać proces replikacji systemu MRKL przy użyciu agentów w LangChain, wystarczy wykonać poniższe kroki:
Krok 1: Instalowanie frameworków
Przede wszystkim zainstaluj moduły eksperymentalne LangChain za pomocą pip z poleceniem langchain-experimental:
pip zainstaluj langchain-eksperymentalny
Zainstaluj moduł OpenAI, aby zbudować model językowy dla systemu MRKL:
pip zainstaluj openai
Krok 2: Konfiguracja środowiska OpenAI
Zaimportuj biblioteki os i getpass, aby uzyskać dostęp do operacji monitujących użytkownika o podanie kluczy API dla kont OpenAI i SerpAPi:
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
Użyj zależności z LangChain, aby zaimportować biblioteki wymagane do zbudowania modelu języka, narzędzi i agentów:
z łańcuch językowy. więzy import LLMMathChainz łańcuch językowy. llms import OpenAI
z łańcuch językowy. narzędzia import SerpAPIWrapper
z łańcuch językowy. narzędzia import Baza danych SQL
z langchain_eksperymentalny. mkw import Łańcuch bazy danych SQL
z łańcuch językowy. agenci import zainicjuj_agent , Narzędzie
z łańcuch językowy. agenci import Typ agenta
Krok 4: Budowa bazy danych
MRKL korzysta z zewnętrznych źródeł wiedzy w celu wyodrębnienia informacji z danych. W tym poście użyto SQLite, który można pobrać za pomocą tego przewodnik do zbudowania bazy danych. Poniższe polecenie potwierdza proces pobierania SQLite poprzez wyświetlenie jego zainstalowanej wersji:
sqlite3
Użyj następujących poleceń znajdujących się w katalogu, aby utworzyć bazę danych za pomocą wiersza poleceń:
płyta CD Pulpitpłyta CD mydb
sqlite3 Chinook. pierś
Pobierz Baza danych plik i zapisz go w katalogu, aby użyć następującego polecenia do utworzenia „ .db ' plik:
. Czytać Chinook_Sqlite. mkwWYBIERZ * Z LIMITÓW WYKONAWCÓW 10 ;
Krok 5: Przesyłanie bazy danych
Po pomyślnym utworzeniu bazy danych prześlij plik do współpracy Google:
z Google. i wsp import aktazaładowany = akta. wgrywać ( )
Użytkownik może uzyskać dostęp do przesłanego pliku w notatniku i skopiować jego ścieżkę z menu rozwijanego:
Krok 6: Konfigurowanie narzędzi
Po zbudowaniu bazy danych skonfiguruj model języka, narzędzia i łańcuchy dla agentów:
szukaj = SerpAPIWrapper ( )llm = OpenAI ( temperatura = 0 )
llm_math_chain = LLMMathChain ( llm = llm , gadatliwy = PRAWDA )
pierś = Baza danych SQL. z_uri ( „sqlite:///../../../../../content/Chinook.db” )
łańcuch_db = Łańcuch bazy danych SQL. od_llm ( llm , pierś , gadatliwy = PRAWDA )
narzędzia = [
Narzędzie (
nazwa = 'Szukaj' ,
funk = szukaj. uruchomić ,
opis = „Zadawaj pytania ukierunkowane, aby uzyskać odpowiedzi na temat ostatnich spraw”
) ,
Narzędzie (
nazwa = 'Kalkulator' ,
funk = llm_math_chain. uruchomić ,
opis = „przydatny do odpowiadania/rozwiązywania problemów matematycznych”
) ,
Narzędzie (
nazwa = „FooBar DB” ,
funk = łańcuch_db. uruchomić ,
opis = „przydatne przy odpowiadaniu na zapytania z bazy danych, a pytanie wejściowe musi mieć pełny kontekst”
)
]
- Zdefiniuj llm zmienną za pomocą OpenAI() metoda uzyskania modelu języka.
- The szukaj to narzędzie wywołujące metodę SerpAPIWrapper() sposób na dostęp do swojego otoczenia.
- The LLMMathChain() metoda służy do uzyskiwania odpowiedzi związanych z problemami matematycznymi.
- Zdefiniuj pierś zmienna zawierająca ścieżkę pliku wewnątrz Baza danych SQL() metoda.
- The Łańcuch bazy danych SQL() Metoda ta pozwala na uzyskanie informacji z bazy danych.
- Zdefiniuj narzędzia takie jak szukaj , kalkulator , I FooBar DB do zbudowania agenta do wydobywania danych z różnych źródeł:
Krok 7: Budowanie i testowanie agenta
Zainicjuj system MRKL za pomocą narzędzi, llm i agenta, aby uzyskać odpowiedzi na pytania zadawane przez użytkownika:
mrkl = zainicjuj_agent ( narzędzia , llm , agent = Typ agenta. ZERO_SHOT_REACT_DESCRIPTION , gadatliwy = PRAWDA )Wykonaj system MRKL za pomocą metody run() z pytaniem jako argumentem:
mrkl. uruchomić ( „Jaki jest obecny wiek Leo DiCaprio i jego dziewczyny, powiedz także, jaka jest między nimi różnica wieku” )Wyjście
Agent stworzył ostateczną odpowiedź z pełną ścieżką używaną przez system do wyodrębnienia ostatecznej odpowiedzi:
Krok 8: Replikuj system MRKL
Teraz po prostu użyj mrkl słowo kluczowe z metodą run(), aby uzyskać odpowiedzi z różnych źródeł, takich jak bazy danych:
mrkl. uruchomić ( „Jak brzmi pełne imię i nazwisko artysty, którego album zatytułowany „The Storm Before the Calm” został niedawno wydany i czy są oni w bazie FooBar oraz które z ich albumów znajdują się w bazie?” )Agent automatycznie przekształcił pytanie w zapytanie SQL w celu pobrania odpowiedzi z bazy danych. Agent wyszukuje właściwe źródło odpowiedzi, a następnie tworzy zapytanie w celu wydobycia informacji:
Krok 9: Korzystanie z ChatModelu
Użytkownik może po prostu zmienić model języka za pomocą metody ChatOpenAI(), aby uczynić go ChatModel i używać z nim systemu MRKL:
z łańcuch językowy. chat_models import CzatOpenAIszukaj = SerpAPIWrapper ( )
llm = CzatOpenAI ( temperatura = 0 )
llm1 = OpenAI ( temperatura = 0 )
llm_math_chain = LLMMathChain ( llm = llm1 , gadatliwy = PRAWDA )
pierś = Baza danych SQL. z_uri ( „sqlite:///../../../../../content/Chinook.db” )
łańcuch_db = Łańcuch bazy danych SQL. od_llm ( llm1 , pierś , gadatliwy = PRAWDA )
narzędzia = [
Narzędzie (
nazwa = 'Szukaj' ,
funk = szukaj. uruchomić ,
opis = „Zadawaj pytania ukierunkowane, aby uzyskać odpowiedzi na temat ostatnich spraw”
) ,
Narzędzie (
nazwa = 'Kalkulator' ,
funk = llm_math_chain. uruchomić ,
opis = „przydatny do odpowiadania/rozwiązywania problemów matematycznych”
) ,
Narzędzie (
nazwa = „FooBar DB” ,
funk = łańcuch_db. uruchomić ,
opis = „przydatne przy odpowiadaniu na zapytania z bazy danych, a pytanie wejściowe musi mieć pełny kontekst”
)
]
Krok 10: Przetestuj agenta MRKL
Następnie zbuduj agenta i zainicjuj go w zmiennej mrkl za pomocą metody inicjalizacji_agent(). Dodaj parametr metody, aby zintegrować komponenty, takie jak narzędzia, llm, agent i verbose, aby uzyskać pełny proces na wyjściu:
mrkl = zainicjuj_agent ( narzędzia , llm , agent = Typ agenta. CHAT_ZERO_SHOT_REACT_DESCRIPTION , gadatliwy = PRAWDA )Wykonaj pytanie, uruchamiając system mrkl, jak pokazano na poniższym zrzucie ekranu:
mrkl. uruchomić ( „Kim jest dziewczyna Leo DiCaprio? Jaki jest ich obecny wiek” )
Wyjście
Poniższy fragment przedstawia ostateczną odpowiedź wyodrębnioną przez agenta:
Krok 11: Replikuj system MRKL
Wykorzystaj system MRKL wywołując metodę run() z pytaniem w języku naturalnym w celu wydobycia informacji z bazy danych:
mrkl. uruchomić ( „Jak brzmi pełne imię i nazwisko artysty, którego album zatytułowany „The Storm Before the Calm” został niedawno wydany i czy są oni w bazie FooBar oraz które z ich albumów znajdują się w bazie?” )Wyjście
Agent wyświetlił ostateczną odpowiedź pobraną z bazy danych, jak pokazano na poniższym zrzucie ekranu:
To tyle, jeśli chodzi o proces replikacji systemu MRKL przy użyciu agentów w LangChain:
Wniosek
Aby zreplikować system MRKL przy użyciu agentów w LangChain, zainstaluj moduły, aby uzyskać zależności do importowania bibliotek. Biblioteki są wymagane do zbudowania modelu języka lub modelu czatu, aby uzyskać odpowiedzi z wielu źródeł za pomocą tych narzędzi. Agenci są skonfigurowani do korzystania z narzędzi do wyodrębniania wyników z różnych źródeł, takich jak Internet, bazy danych itp. W tym przewodniku szczegółowo opisano proces replikacji systemu MRKL przy użyciu agentów w LangChain.