Jak přidat paměť do OpenAI Functions Agent v LangChain?

Jak Pridat Pamet Do Openai Functions Agent V Langchain



LangChain je rámec obsahující závislosti pro vytváření velkých jazykových modelů neboli LLM. Poskytuje také nástroje pro sestavení agentů pro provádění všech mezikroků od získání dotazu od uživatele až po načtení jeho odpovědi. OpenAI je prostředí, které poskytuje čitelný a strukturovaný výstup z internetu pomocí 'google-search-results' modul.

Rychlý přehled

Tento příspěvek bude demonstrovat následující:

Jak přidat paměť do OpenAI Functions Agent v LangChain?

OpenAI je organizace umělé inteligence (AI), která vznikla v roce 2015 a na začátku byla neziskovou organizací. Microsoft od roku 2020 investuje hodně peněz, protože zpracování přirozeného jazyka (NLP) s umělou inteligencí zažívá boom s chatboty a jazykovými modely.







Vytváření agentů OpenAI umožňuje vývojářům získat z internetu čitelnější a věcnější výsledky. Přidání paměti agentům umožňuje lépe porozumět kontextu chatu a uložit si do paměti i předchozí konverzace. Chcete-li se naučit proces přidávání paměti do agenta funkcí OpenAI v LangChain, jednoduše projděte následující kroky:



Krok 1: Instalace frameworků

Nejprve nainstalujte závislosti LangChain z “langchain-experimentální” framework pomocí následujícího kódu:



pip install langchain - experimentální





Nainstalujte 'google-search-results' modul pro získání výsledků vyhledávání ze serveru Google:

pip nainstalovat google - Vyhledávání - Výsledek



Nainstalujte také modul OpenAI, který lze použít k sestavení jazykových modelů v LangChain:

pip install openai

Krok 2: Nastavení prostředí

Po získání modulů nastavte prostředí pomocí klíčů API z OpenAI a SerpAPi účty:

import vy
import getpass

vy. přibližně [ 'OPENAI_API_KEY' ] = getpass. getpass ( 'Klíč OpenAI API:' )
vy. přibližně [ 'SERPAPI_API_KEY' ] = getpass. getpass ( 'Serpapi API Key:' )

Spuštěním výše uvedeného kódu zadejte klíče API pro přístup k prostředí a potvrďte stisknutím klávesy Enter:

Krok 3: Import knihoven

Nyní, když je nastavení dokončeno, použijte závislosti nainstalované z LangChain k importu požadovaných knihoven pro vytvoření paměti a agentů:

z langchainu. řetězy import LLMMathChain
z langchainu. llms import OpenAI
#získejte knihovnu pro vyhledávání od Googlu přes internet
z langchainu. utility import SerpAPIWrapper
z langchainu. utility import SQLDatabase
z langchain_experimental. sql import SQLDatabaseChain
#získej knihovnu pro vytváření nástrojů pro inicializaci agenta
z langchainu. agenti import Typ agenta , Nástroj , inicializovat_agenta
z langchainu. chat_models import ChatOpenAI

Krok 4: Vytvoření databáze

Abychom mohli pokračovat v této příručce, musíme sestavit databázi a připojit se k agentovi, abychom z ní získali odpovědi. Pro sestavení databáze je nutné stáhnout SQLite pomocí tohoto průvodce a potvrďte instalaci pomocí následujícího příkazu:

sqlite3

Spuštěním výše uvedeného příkazu v Terminál Windows zobrazí nainstalovanou verzi SQLite (3.43.2):

Poté jednoduše přejděte do adresáře v počítači, kde bude databáze vytvořena a uložena:

cd Desktop
cd mydb
sqlite3 Chinook. db

Uživatel si z něj může jednoduše stáhnout obsah databáze odkaz v adresáři a spusťte následující příkaz pro vytvoření databáze:

. číst Chinook_Sqlite. sql
VYBRAT * FROM Artist LIMIT 10 ;

Databáze byla úspěšně vytvořena a uživatel v ní může vyhledávat data pomocí různých dotazů:

Krok 5: Nahrání databáze

Jakmile je databáze úspěšně sestavena, nahrajte soubor „.db“ soubor do služby Google Collaboratory pomocí následujícího kódu:

z google. ET AL import soubory
nahráno = soubory. nahrát ( )

Vyberte soubor z místního systému kliknutím na 'Vybrat soubory' tlačítko po provedení výše uvedeného kódu:

Jakmile je soubor nahrán, jednoduše zkopírujte cestu k souboru, která bude použita v dalším kroku:

Krok 6: Konfigurace jazykového modelu

Sestavte jazykový model, řetězce, nástroje a řetězce pomocí následujícího kódu:

llm = ChatOpenAI ( teplota = 0 , Modelka = 'gpt-3.5-turbo-0613' )
Vyhledávání = SerpAPIWrapper ( )
llm_math_chain = LLMMathChain. from_llm ( llm = llm , podrobný = Skutečný )
db = SQLDatabase. from_uri ( 'sqlite:///../../../../../content/Chinook.db' )
db_chain = SQLDatabaseChain. from_llm ( llm , db , podrobný = Skutečný )
nástroje = [
Nástroj (
název = 'Vyhledávání' ,
func = Vyhledávání. běh ,
popis = 'Pokládejte cílené otázky, abyste získali odpovědi na otázky týkající se nedávných záležitostí' ,
) ,
Nástroj (
název = 'Kalkulačka' ,
func = llm_math_chain. běh ,
popis = 'užitečné pro zodpovězení/řešení matematických problémů' ,
) ,
Nástroj (
název = 'FooBar-DB' ,
func = db_chain. běh ,
popis = 'užitečné pro zodpovězení otázek o FooBar a vstup by měl být ve formě otázky obsahující úplný kontext' ,
) ,
]
  • The llm proměnná obsahuje konfigurace jazykového modelu pomocí metody ChatOpenAI() s názvem modelu.
  • Výzkum obsahuje metodu SerpAPIWrapper() pro vytvoření nástrojů pro agenta.
  • Sestavte si llm_math_chain k získání odpovědí souvisejících s doménou matematiky pomocí metody LLMMathChain().
  • Proměnná db obsahuje cestu k souboru, který má obsah databáze. Uživatel musí změnit pouze poslední část, která je “content/Chinook.db” cesty, která udržuje 'sqlite:///../../../../../' stejný.
  • Vytvořte další řetězec pro odpovídání na dotazy z databáze pomocí db_chain variabilní.
  • Nakonfigurujte nástroje jako Vyhledávání , kalkulačka , a FooBar-DB pro vyhledávání odpovědí, odpovídání na matematické otázky a dotazy z databáze:

Krok 7: Přidání paměti

Po konfiguraci funkcí OpenAI jednoduše sestavte a přidejte paměť do agenta:

z langchainu. vyzve import Zástupný symbol zpráv
z langchainu. Paměť import ConversationBufferMemory

agent_kwargs = {
'extra_prompt_messages' : [ Zástupný symbol zpráv ( název_proměnné = 'Paměť' ) ] ,
}
Paměť = ConversationBufferMemory ( paměťový_klíč = 'Paměť' , návratové_zprávy = Skutečný )

Krok 8: Inicializace agenta

Poslední komponentou, kterou je třeba sestavit a inicializovat, je agent, obsahující všechny komponenty jako llm , nástroj , OPENAI_FUNCTIONS a další, které se mají v tomto procesu použít:

činidlo = inicializovat_agenta (
nástroje ,
llm ,
činidlo = Typ agenta. OPENAI_FUNCTIONS ,
podrobný = Skutečný ,
agent_kwargs = agent_kwargs ,
Paměť = Paměť ,
)

Krok 9: Testování agenta

Nakonec otestujte agenta zahájením chatu pomocí „ Ahoj ” zpráva:

činidlo. běh ( 'Ahoj' )

Přidejte do paměti nějaké informace spuštěním agenta:

činidlo. běh ( 'jmenuji se John Snow' )

Nyní otestujte paměť položením otázky o předchozím chatu:

činidlo. běh ( 'jak se jmenuji' )

Agent odpověděl jménem načteným z paměti, takže paměť s agentem úspěšně běží:

To je prozatím vše.

Závěr

Chcete-li přidat paměť do agenta funkcí OpenAI v LangChain, nainstalujte moduly, abyste získali závislosti pro import knihoven. Poté jednoduše sestavte databázi a nahrajte ji do notebooku Python, aby ji bylo možné použít s modelem. Před přidáním do agenta a jeho inicializací nakonfigurujte model, nástroje, řetězce a databázi. Před testováním paměti vytvořte paměť pomocí ConversationalBufferMemory() a před testováním ji přidejte do agenta. Tato příručka podrobně popisuje, jak přidat paměť do agenta funkcí OpenAI v LangChain.