Hoe geheugen toevoegen aan OpenAI Functions Agent in LangChain?

Hoe Geheugen Toevoegen Aan Openai Functions Agent In Langchain



LangChain is het raamwerk dat afhankelijkheden bevat voor het bouwen van de Large Language Models of LLM's. Het biedt ook de hulpmiddelen voor het bouwen van agenten die alle tussenstappen kunnen uitvoeren, van het verkrijgen van de vraag van de gebruiker tot het ophalen van het antwoord. OpenAI is een omgeving die leesbare en gestructureerde uitvoer van internet biedt met behulp van de “google-zoekresultaten” module.

Snel overzicht

Dit bericht zal het volgende aantonen:

Hoe geheugen toevoegen aan OpenAI Functions Agent in LangChain?

OpenAI is een kunstmatige intelligentie (AI)-organisatie die in 2015 werd opgericht en in het begin een non-profitorganisatie was. Microsoft heeft sinds 2020 veel fortuin geïnvesteerd, aangezien Natural Language Processing (NLP) met AI een hoge vlucht neemt met chatbots en taalmodellen.







Door OpenAI-agents te bouwen, kunnen ontwikkelaars beter leesbare en to-the-point resultaten van internet verkrijgen. Door geheugen aan de agenten toe te voegen, kunnen ze de context van de chat beter begrijpen en eerdere gesprekken ook in hun geheugen opslaan. Om het proces van het toevoegen van geheugen aan de OpenAI-functiesagent in LangChain te leren, volgt u eenvoudigweg de volgende stappen:



Stap 1: Frameworks installeren

Installeer eerst de LangChain-afhankelijkheden vanuit de “langketen-experimenteel” raamwerk met behulp van de volgende code:



pip installeer langchain - experimenteel





Installeer de “google-zoekresultaten” module om de zoekresultaten van de Google-server te krijgen:

pip installeer google - zoekopdracht - resultaten



Installeer ook de OpenAI-module die kan worden gebruikt om de taalmodellen in LangChain te bouwen:

pip installeer openai

Stap 2: Omgevingen instellen

Nadat u de modules heeft ontvangen, stelt u de omgevingen in met behulp van de API-sleutels uit de OpenAI En SerpAPi rekeningen:

importeren Jij
importeren Krijg een pas

Jij. ongeveer [ 'OPENAI_API_KEY' ] = Krijg een pas. Krijg een pas ( 'OpenAI API-sleutel:' )
Jij. ongeveer [ 'SERPAPI_API_KEY' ] = Krijg een pas. Krijg een pas ( 'Serpapi API-sleutel:' )

Voer de bovenstaande code uit om de API-sleutels in te voeren voor toegang tot zowel de omgeving als druk op enter om te bevestigen:

Stap 3: Bibliotheken importeren

Nu de installatie voltooid is, gebruikt u de afhankelijkheden die vanuit de LangChain zijn geïnstalleerd om de vereiste bibliotheken voor het bouwen van het geheugen en de agenten te importeren:

van langketen. kettingen importeren LLMMathChain
van langketen. llms importeren OpenAI
#get bibliotheek om via Google via internet te zoeken
van langketen. nutsvoorzieningen importeren SerpAPIWrapper
van langketen. nutsvoorzieningen importeren SQLDatabase
van langchain_experimenteel. sql importeren SQLDatabaseChain
#get bibliotheek om tools te bouwen voor het initialiseren van de agent
van langketen. agenten importeren Agenttype , Hulpmiddel , initialiseer_agent
van langketen. chat_modellen importeren ChatOpenAI

Stap 4: Database bouwen

Om verder te gaan met deze handleiding, moeten we de database bouwen en verbinding maken met de agent om er antwoorden uit te halen. Om de database te bouwen, is het vereist om SQLite hiermee te downloaden gids en bevestig de installatie met de volgende opdracht:

sqlite3

Voer de bovenstaande opdracht uit in het Windows-terminal geeft de geïnstalleerde versie van SQLite weer (3.43.2):

Ga daarna eenvoudigweg naar de map op uw computer waar de database zal worden gebouwd en opgeslagen:

cd-bureaublad
cd mijndb
sqlite3 Chinook. db

Hieruit kan de gebruiker eenvoudig de inhoud van de database downloaden koppeling in de map en voer de volgende opdracht uit om de database te bouwen:

. lezen Chinook_Sqlite. sql
SELECTEER * VAN Artist LIMIT 10 ;

De database is met succes gebouwd en de gebruiker kan er gegevens uit zoeken met behulp van verschillende zoekopdrachten:

Stap 5: Database uploaden

Zodra de database met succes is gebouwd, uploadt u het “.db” bestand naar Google Collaboratory met behulp van de volgende code:

van Google. EN AL importeren bestanden
geüpload = bestanden. uploaden ( )

Kies het bestand van het lokale systeem door op te klikken 'Kies documenten' knop na het uitvoeren van de bovenstaande code:

Zodra het bestand is geüpload, kopieert u eenvoudigweg het pad van het bestand dat in de volgende stap zal worden gebruikt:

Stap 6: Taalmodel configureren

Bouw het taalmodel, de ketens, de tools en de ketens met behulp van de volgende code:

llm = ChatOpenAI ( temperatuur = 0 , model = 'gpt-3.5-turbo-0613' )
zoekopdracht = SerpAPIWrapper ( )
llm_math_chain = LLMMathChain. van_llm ( llm = llm , uitgebreid = WAAR )
db = SQLDatabase. van_uri ( 'sqlite:///../../../../../content/Chinook.db' )
db_keten = SQLDatabaseChain. van_llm ( llm , db , uitgebreid = WAAR )
hulpmiddelen = [
Hulpmiddel (
naam = 'Zoekopdracht' ,
func = zoekopdracht. loop ,
beschrijving = 'Stel de gerichte vragen om antwoorden te krijgen op de vragen over recente zaken' ,
) ,
Hulpmiddel (
naam = 'Rekenmachine' ,
func = llm_math_chain. loop ,
beschrijving = 'handig voor het beantwoorden/oplossen van wiskundige problemen' ,
) ,
Hulpmiddel (
naam = 'FooBar-DB' ,
func = db_keten. loop ,
beschrijving = 'handig voor het beantwoorden van vragen over FooBar en invoer moet de vorm hebben van een vraag die de volledige context bevat' ,
) ,
]
  • De llm variabele bevat de configuraties van het taalmodel met behulp van de ChatOpenAI()-methode met de naam van het model.
  • De zoektocht variabele bevat de methode SerpAPIWrapper() om de tools voor de agent te bouwen.
  • Bouw de llm_math_chain om de antwoorden te krijgen die verband houden met het wiskundedomein met behulp van de LLMMathChain() -methode.
  • De db-variabele bevat het pad van het bestand dat de inhoud van de database bevat. De gebruiker hoeft alleen het laatste onderdeel te wijzigen “inhoud/Chinook.db” van het pad dat de “sqlite:///../../../../../” hetzelfde.
  • Bouw een andere keten voor het beantwoorden van vragen uit de database met behulp van de db_keten variabel.
  • Configureer tools zoals zoekopdracht , rekenmachine , En FooBar-DB voor het zoeken naar antwoorden, het beantwoorden van wiskundevragen en zoekopdrachten uit de database:

Stap 7: Geheugen toevoegen

Na het configureren van de OpenAI-functies kunt u eenvoudigweg het geheugen bouwen en toevoegen aan de agent:

van langketen. aanwijzingen importeren BerichtenPlaceholder
van langketen. geheugen importeren ConversatieBufferGeheugen

agent_kwargs = {
'extra_prompt_berichten' : [ BerichtenPlaceholder ( variabele_naam = 'geheugen' ) ] ,
}
geheugen = ConversatieBufferGeheugen ( geheugen_sleutel = 'geheugen' , return_messages = WAAR )

Stap 8: Initialiseren van de agent

Het laatste onderdeel dat moet worden gebouwd en geïnitialiseerd, is de agent, die alle componenten bevat, zoals llm , hulpmiddel , OPENAI_FUNCTIONS en andere die in dit proces moeten worden gebruikt:

tussenpersoon = initialiseer_agent (
hulpmiddelen ,
llm ,
tussenpersoon = Agenttype. OPENAI_FUNCTIONS ,
uitgebreid = WAAR ,
agent_kwargs = agent_kwargs ,
geheugen = geheugen ,
)

Stap 9: De agent testen

Test ten slotte de agent door de chat te starten met behulp van de “ Hoi ' bericht:

tussenpersoon. loop ( 'Hoi' )

Voeg wat informatie toe aan het geheugen door de agent ermee uit te voeren:

tussenpersoon. loop ( 'Mijn naam is John Sneeuw' )

Test nu het geheugen door de vraag te stellen over de vorige chat:

tussenpersoon. loop ( 'wat is mijn naam' )

De agent heeft gereageerd met de naam uit het geheugen opgehaald, zodat het geheugen met succes met de agent wordt uitgevoerd:

Dat is het voor nu.

Conclusie

Om het geheugen toe te voegen aan de OpenAI-functiesagent in LangChain, installeert u de modules om de afhankelijkheden voor het importeren van de bibliotheken op te halen. Bouw daarna eenvoudigweg de database en upload deze naar het Python-notebook, zodat deze met het model kan worden gebruikt. Configureer het model, de tools, de ketens en de database voordat u ze aan de agent toevoegt en initialiseert. Voordat u het geheugen test, bouwt u het geheugen op met ConversationalBufferMemory() en voegt u het toe aan de agent voordat u het test. In deze handleiding wordt uitgebreid uitgelegd hoe u geheugen kunt toevoegen aan de OpenAI-functiesagent in LangChain.