Jak dodać pamięć do agenta funkcji OpenAI w LangChain?

Jak Dodac Pamiec Do Agenta Funkcji Openai W Langchain



LangChain to framework zawierający zależności do budowania dużych modeli językowych lub LLM. Zapewnia także narzędzia do tworzenia agentów wykonujących wszystkie etapy pośrednie, od otrzymania zapytania od użytkownika do pobrania odpowiedzi. OpenAI to środowisko, które zapewnia czytelne i uporządkowane dane wyjściowe z Internetu za pomocą „wyniki-wyszukiwania Google” moduł.

Szybki zarys

Ten post pokaże, co następuje:

Jak dodać pamięć do agenta funkcji OpenAI w LangChain?

OpenAI to organizacja zajmująca się sztuczną inteligencją (AI), która powstała w 2015 roku i na początku była organizacją non-profit. Od 2020 r. Microsoft zainwestował mnóstwo fortun, ponieważ przetwarzanie języka naturalnego (NLP) za pomocą sztucznej inteligencji kwitnie dzięki chatbotom i modelom językowym.







Budowanie agentów OpenAI umożliwia programistom uzyskanie bardziej czytelnych i konkretnych wyników z Internetu. Dodanie pamięci agentom pozwala im lepiej zrozumieć kontekst czatu i zapisać w pamięci również poprzednie rozmowy. Aby poznać proces dodawania pamięci do agenta funkcji OpenAI w LangChain, wystarczy wykonać następujące kroki:



Krok 1: Instalowanie frameworków

Przede wszystkim zainstaluj zależności LangChain z pliku „langchain-eksperymentalny” framework przy użyciu następującego kodu:



pip zainstaluj langchain - eksperymentalny





Zainstaluj „wyniki-wyszukiwania Google” moduł do pobierania wyników wyszukiwania z serwera Google:

pip zainstaluj Google - szukaj - wyniki



Zainstaluj także moduł OpenAI, którego można używać do budowania modeli językowych w LangChain:

pip zainstaluj openai

Krok 2: Konfigurowanie środowisk

Po pobraniu modułów skonfiguruj środowiska przy użyciu kluczy API z pliku OpenAI I SerpAPi konta:

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:” )

Wykonaj powyższy kod, aby wprowadzić klucze API umożliwiające dostęp do środowiska i naciśnij klawisz Enter, aby potwierdzić:

Krok 3: Importowanie bibliotek

Po zakończeniu konfiguracji użyj zależności zainstalowanych z LangChain, aby zaimportować wymagane biblioteki do zbudowania pamięci i agentów:

z Langchaina. więzy import LLMMathChain
z Langchaina. llms import OpenAI
#get biblioteka do wyszukiwania w Google przez Internet
z Langchaina. narzędzia import SerpAPIWrapper
z Langchaina. narzędzia import Baza danych SQL
z langchain_experimental. sql import Łańcuch bazy danych SQL
#get biblioteka do tworzenia narzędzi Do inicjowanie agenta
z Langchaina. agenci import Typ agenta , Narzędzie , zainicjuj_agent
z Langchaina. chat_models import CzatOpenAI

Krok 4: Budowa bazy danych

Aby kontynuować pracę z tym przewodnikiem, musimy zbudować bazę danych i połączyć się z agentem, aby wyodrębnić z niej odpowiedzi. Aby zbudować bazę danych, wymagane jest pobranie SQLite za jej pomocą przewodnik i potwierdź instalację za pomocą następującego polecenia:

sqlite3

Uruchomienie powyższego polecenia w pliku Terminal Windowsowy wyświetla zainstalowaną wersję SQLite (3.43.2):

Następnie po prostu przejdź do katalogu na swoim komputerze, w którym zostanie zbudowana i przechowywana baza danych:

Pulpit CD
cd mydb
sqlite3 Chinook. pierś

Użytkownik może po prostu pobrać z tego zawartość bazy danych połączyć w katalogu i wykonaj następujące polecenie, aby zbudować bazę danych:

. Czytać Chinook_Sqlite. sql
WYBIERAĆ * Z LIMITÓW Artystycznych 10 ;

Baza danych została pomyślnie zbudowana i użytkownik może wyszukiwać w niej dane za pomocą różnych zapytań:

Krok 5: Przesyłanie bazy danych

Po pomyślnym zbudowaniu bazy danych prześlij plik „.db” plik do Google Collaboratory, używając następującego kodu:

z Google'a. i wsp import akta
załadowany = akta. wgrywać ( )

Wybierz plik z systemu lokalnego klikając na 'Wybierz pliki' przycisk po wykonaniu powyższego kodu:

Po przesłaniu pliku po prostu skopiuj ścieżkę pliku, która zostanie wykorzystana w następnym kroku:

Krok 6: Konfigurowanie modelu języka

Zbuduj model języka, łańcuchy, narzędzia i łańcuchy, używając następującego kodu:

llm = CzatOpenAI ( temperatura = 0 , Model = „gpt-3.5-turbo-0613” )
szukaj = SerpAPIWrapper ( )
llm_math_chain = LLMMathChain. od_llm ( 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 ukierunkowane pytania, aby uzyskać odpowiedzi na pytania dotyczące 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 pytania dotyczące FooBar, a dane wejściowe powinny mieć formę pytania zawierającego pełny kontekst” ,
) ,
]
  • The llm zmienna zawiera konfiguracje modelu językowego przy użyciu metody ChatOpenAI() z nazwą modelu.
  • Poszukiwanie zmienna zawiera metodę SerpAPIWrapper() służącą do budowania narzędzi dla agenta.
  • Zbuduj llm_math_chain aby uzyskać odpowiedzi związane z dziedziną Matematyka za pomocą metody LLMMathChain().
  • Zmienna db zawiera ścieżkę do pliku zawierającego zawartość bazy danych. Użytkownik musi zmienić tylko ostatnią część, która jest „treść/Chinook.db” ścieżki prowadzącej „sqlite:///../../../../../” ten sam.
  • Zbuduj kolejny łańcuch do odpowiadania na zapytania z bazy danych za pomocą łańcuch_db zmienny.
  • Skonfiguruj narzędzia takie jak szukaj , kalkulator , I FooBar-DB do wyszukiwania odpowiedzi, odpowiadania na pytania matematyczne i zapytania z bazy danych:

Krok 7: Dodawanie pamięci

Po skonfigurowaniu funkcji OpenAI wystarczy zbudować i dodać pamięć do agenta:

z Langchaina. monity import Symbol zastępczy Wiadomości
z Langchaina. pamięć import Pamięć bufora konwersacji

agent_kwargs = {
„dodatkowe_wiadomości_promptowe” : [ Symbol zastępczy Wiadomości ( nazwa_zmiennej = 'pamięć' ) ] ,
}
pamięć = Pamięć bufora konwersacji ( klucz_pamięci = 'pamięć' , wiadomości_powrotne = PRAWDA )

Krok 8: Inicjowanie agenta

Ostatnim komponentem do zbudowania i zainicjowania jest agent zawierający wszystkie komponenty takie jak llm , narzędzie , OPENAI_FUNKCJE i inne, które można wykorzystać w tym procesie:

agent = zainicjuj_agent (
narzędzia ,
llm ,
agent = Typ agenta. OPENAI_FUNKCJE ,
gadatliwy = PRAWDA ,
agent_kwargs = agent_kwargs ,
pamięć = pamięć ,
)

Krok 9: Testowanie agenta

Na koniec przetestuj agenta, inicjując czat za pomocą przycisku „ Cześć ' wiadomość:

agent. uruchomić ( 'Cześć' )

Dodaj trochę informacji do pamięci, uruchamiając z nią agenta:

agent. uruchomić ( „nazywam się John Snow” )

Teraz przetestuj pamięć, zadając pytanie dotyczące poprzedniego czatu:

agent. uruchomić ( 'jak mam na imię' )

Agent odpowiedział, podając nazwę pobraną z pamięci, więc pamięć działa pomyślnie z agentem:

To wszystko na teraz.

Wniosek

Aby dodać pamięć do agenta funkcji OpenAI w LangChain, zainstaluj moduły, aby uzyskać zależności do importowania bibliotek. Następnie po prostu zbuduj bazę danych i prześlij ją do notatnika Pythona, aby można było jej używać z modelem. Skonfiguruj model, narzędzia, łańcuchy i bazę danych przed dodaniem ich do agenta i zainicjuj go. Przed przetestowaniem pamięci zbuduj pamięć za pomocą metody ConversationalBufferMemory() i dodaj ją do agenta przed przetestowaniem. W tym przewodniku szczegółowo opisano, jak dodać pamięć do agenta funkcji OpenAI w LangChain.