Hvordan legge til minne til OpenAI Functions Agent i LangChain?

Hvordan Legge Til Minne Til Openai Functions Agent I Langchain



LangChain er rammeverket som inneholder avhengigheter for å bygge de store språkmodellene eller LLM-ene. Den gir også verktøyene for å bygge agentene for å utføre alle mellomtrinnene fra å få spørringen fra brukeren til å hente svaret. OpenAI er et miljø som gir lesbare og strukturerte utdata fra internett ved hjelp av «google-søkeresultater» modul.

Rask oversikt

Dette innlegget vil demonstrere følgende:

Hvordan legge til minne til OpenAI Functions Agent i LangChain?

OpenAI er en Artificial Intelligence (AI) organisasjon som ble dannet i 2015 og var en ideell organisasjon i begynnelsen. Microsoft har investert mye formue siden 2020 ettersom Natural Language Processing (NLP) med AI har blomstret med chatbots og språkmodeller.







Å bygge OpenAI-agenter gjør det mulig for utviklerne å få mer lesbare og konkrete resultater fra internett. Ved å legge til minne til agentene kan de forstå konteksten til chatten bedre og lagre de tidligere samtalene i minnet også. For å lære prosessen med å legge til minne til OpenAI-funksjonsagenten i LangChain, gå ganske enkelt gjennom følgende trinn:



Trinn 1: Installere Frameworks

Først av alt, installer LangChain-avhengighetene fra 'langkjede-eksperimentell' rammeverk ved hjelp av følgende kode:



pip installer langkjede - eksperimentell





Installer «google-søkeresultater» modul for å hente søkeresultatene fra Google-serveren:

pip installer google - Søk - resultater



Installer også OpenAI-modulen som kan brukes til å bygge språkmodellene i LangChain:

pip installer openai

Trinn 2: Sette opp miljøer

Etter å ha fått modulene, sett opp miljøene ved å bruke API-nøklene fra OpenAI og SerpAPi kontoer:

import du
import få pass

du. omtrent [ 'OPENAI_API_KEY' ] = få pass. få pass ( 'OpenAI API Key:' )
du. omtrent [ 'SERPAPI_API_KEY' ] = få pass. få pass ( 'Serpapi API-nøkkel:' )

Utfør koden ovenfor for å angi API-nøklene for tilgang til både miljøet og trykk enter for å bekrefte:

Trinn 3: Importere biblioteker

Nå som oppsettet er fullført, bruk avhengighetene installert fra LangChain for å importere de nødvendige bibliotekene for å bygge minnet og agentene:

fra langchain. kjeder import LLMMathChain
fra langchain. llms import OpenAI
#get bibliotek for å søke fra Google over internett
fra langchain. verktøy import SerpAPIWrapper
fra langchain. verktøy import SQLDatabase
fra langchain_experimental. sql import SQLDatabaseChain
#få bibliotek for å bygge verktøy til initialisering av agenten
fra langchain. agenter import AgentType , Verktøy , initialize_agent
fra langchain. chat_modeller import ChatOpenAI

Trinn 4: Bygg database

For å komme videre med denne veiledningen må vi bygge databasen og koble til agenten for å trekke ut svar fra den. For å bygge databasen kreves det å laste ned SQLite ved hjelp av denne guide og bekreft installasjonen med følgende kommando:

sqlite3

Kjører kommandoen ovenfor i Windows-terminal viser den installerte versjonen av SQLite (3.43.2):

Deretter går du ganske enkelt til katalogen på datamaskinen din der databasen skal bygges og lagres:

cd skrivebord
cd mydb
sqlite3 Chinook. db

Brukeren kan enkelt laste ned innholdet i databasen fra denne link i katalogen og kjør følgende kommando for å bygge databasen:

. lese Chinook_Sqlite. sql
PLUKKE UT * FRA Artist LIMIT 10 ;

Databasen er vellykket bygget og brukeren kan søke etter data fra den ved å bruke forskjellige spørringer:

Trinn 5: Last opp database

Når databasen er bygget, laster du opp '.db' fil til Google Collaboratory med følgende kode:

fra google. ET AL import filer
lastet opp = filer. laste opp ( )

Velg filen fra det lokale systemet ved å klikke på 'Velg filer' knappen etter å ha utført koden ovenfor:

Når filen er lastet opp, kopierer du bare banen til filen som skal brukes i neste trinn:

Trinn 6: Konfigurering av språkmodell

Bygg språkmodellen, kjeder, verktøy og kjeder ved å bruke følgende kode:

llm = ChatOpenAI ( temperatur = 0 , modell = 'gpt-3.5-turbo-0613' )
Søk = SerpAPIWrapper ( )
llm_math_chain = LLMMathChain. fra_llm ( llm = llm , ordrik = ekte )
db = SQLDatabase. fra_uri ( 'sqlite:///../../../../../content/Chinook.db' )
db_chain = SQLDatabaseChain. fra_llm ( llm , db , ordrik = ekte )
verktøy = [
Verktøy (
Navn = 'Søk' ,
func = Søk. løpe ,
beskrivelse = 'Still de målrettede spørsmålene for å få svar på spørsmålene om nyere saker' ,
) ,
Verktøy (
Navn = 'Kalkulator' ,
func = llm_math_chain. løpe ,
beskrivelse = 'nyttig for å svare på/løse matematiske problemer' ,
) ,
Verktøy (
Navn = 'FooBar-DB' ,
func = db_chain. løpe ,
beskrivelse = 'nyttig for å svare på spørsmål om FooBar og input bør være i form av et spørsmål som inneholder full kontekst' ,
) ,
]
  • De llm variabelen inneholder konfigurasjonene til språkmodellen ved hjelp av ChatOpenAI()-metoden med navnet på modellen.
  • Søket variabelen inneholder SerpAPIWrapper()-metoden for å bygge verktøyene for agenten.
  • Bygg llm_math_chain for å få svarene relatert til matematikk-domenet ved å bruke LLMMathChain()-metoden.
  • db-variabelen inneholder banen til filen som har innholdet i databasen. Brukeren trenger å endre bare den siste delen som er 'content/Chinook.db' av banen holde “sqlite:///../../../../../” det samme.
  • Bygg en annen kjede for å svare på spørsmål fra databasen ved å bruke db_chain variabel.
  • Konfigurer verktøy som Søk , kalkulator , og FooBar-DB for å søke etter svar, svare på matematiske spørsmål og spørsmål fra databasen henholdsvis:

Trinn 7: Legge til minne

Etter å ha konfigurert OpenAI-funksjonene, bygg og legg til minnet til agenten:

fra langchain. spør import MeldingerPlassholder
fra langchain. hukommelse import ConversationBufferMemory

agent_kwargs = {
'extra_prompt_meldinger' : [ MeldingerPlassholder ( variabelnavn = 'hukommelse' ) ] ,
}
hukommelse = ConversationBufferMemory ( minnenøkkel = 'hukommelse' , return_messages = ekte )

Trinn 8: Initialisering av agenten

Den siste komponenten som skal bygges og initialiseres er agenten, som inneholder alle komponentene som llm , verktøy , OPENAI_FUNCTIONS , og andre som skal brukes i denne prosessen:

middel = initialize_agent (
verktøy ,
llm ,
middel = AgentType. OPENAI_FUNCTIONS ,
ordrik = ekte ,
agent_kwargs = agent_kwargs ,
hukommelse = hukommelse ,
)

Trinn 9: Testing av agenten

Til slutt, test agenten ved å starte chatten ved å bruke ' hei ' beskjed:

middel. løpe ( 'hei' )

Legg til litt informasjon til minnet ved å kjøre agenten med den:

middel. løpe ( 'Jeg heter John snow' )

Nå, test minnet ved å stille spørsmålet om forrige chat:

middel. løpe ( 'hva er mitt navn' )

Agenten har svart med navnet hentet fra minnet, slik at minnet kjører med agenten:

Det er alt for nå.

Konklusjon

For å legge til minnet til OpenAI-funksjonsagenten i LangChain, installer modulene for å få avhengighetene for å importere bibliotekene. Deretter bygger du bare databasen og laster den opp til Python-notisboken slik at den kan brukes med modellen. Konfigurer modellen, verktøyene, kjedene og databasen før du legger dem til agenten og initialiser den. Før du tester minnet, bygg minnet ved å bruke ConversationalBufferMemory() og legg det til agenten før du tester det. Denne veiledningen har utdypet hvordan du legger til minne til OpenAI-funksjonsagenten i LangChain.