Rychlý přehled
Tento příspěvek bude demonstrovat následující:
- Jak přidat paměť do OpenAI Functions Agent v LangChain
- Krok 1: Instalace frameworků
- Krok 2: Nastavení prostředí
- Krok 3: Import knihoven
- Krok 4: Vytvoření databáze
- Krok 5: Nahrání databáze
- Krok 6: Konfigurace jazykového modelu
- Krok 7: Přidání paměti
- Krok 8: Inicializace agenta
- Krok 9: Testování agenta
- Závěr
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 vyimport 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 LLMMathChainz 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:
sqlite3Spuš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 Desktopcd 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. sqlVYBRAT * 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 souborynahrá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ávz 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.