Jak replikować system MRKL za pomocą agentów w LangChain?

Jak Replikowac System Mrkl Za Pomoca Agentow W Langchain



System modułowego rozumowania, wiedzy i języka (MRKL) to architektura, która potrafi wyodrębniać odpowiedzi wraz z uzasadnieniem ich weryfikacji. Integruje modele językowe, rozumowanie dyskretne i zewnętrzne źródła wiedzy. Modele językowe tworzą tekst w językach ludzkich zgodnie z zapytaniami zadanymi przez użytkownika. MRKL (wymawiane: cud) dodaje uzasadnienie podczas tworzenia odpowiedzi, aby odpowiedź była dokładna i ważna.

Szybki zarys

Ten post pokaże, co następuje:







Jak replikować system MRKL przy użyciu agentów w LangChain



Wniosek



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 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

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 LLMMathChain

z ł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 Pulpit

pł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. mkw

WYBIERZ * 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 akta

zał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 CzatOpenAI

szukaj = 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.