Hvordan replikeres MRKL-systemet ved hjælp af agenter i LangChain?

Hvordan Replikeres Mrkl Systemet Ved Hjaelp Af Agenter I Langchain



Modular Reasoning, Knowledge, and Language-systemet (MRKL) er en arkitektur, der kan udtrække svar med årsagerne til dens verifikation. Det integrerer sprogmodeller, diskret ræsonnement og eksterne videnkilder. Sprogmodeller producerer teksten på menneskelige sprog i henhold til de forespørgsler, brugeren har stillet. MRKL (udtales: mirakel) tilføjer ræsonnementer, mens de producerer svarene for at gøre svaret nøjagtigt og gyldigt.

Hurtig disposition

Dette indlæg vil demonstrere følgende:







Sådan replikeres MRKL-systemet ved hjælp af agenter i LangChain



Konklusion



Hvordan replikeres MRKL-systemet ved hjælp af agenter i LangChain?

LangChain giver brugeren mulighed for at bygge agenter, der kan bruges til at udføre flere opgaver for sprogmodellerne eller chatbots. Agenter gemmer deres arbejde med alle trinene i hukommelsen knyttet til sprogmodellen. Ved at bruge disse skabeloner kan agenten replikere funktionen af ​​ethvert system som MRKL for at få de optimerede resultater uden at skulle bygge dem igen.





For at lære processen med at replikere MRKL-systemet ved hjælp af agenter i LangChain, skal du blot gennemgå de anførte trin:

Trin 1: Installation af Frameworks

Først og fremmest skal du installere LangChain eksperimentelle moduler ved hjælp af pip'en med langchain-experimental kommandoen:



pip installer langkæde-eksperimentel

Installer OpenAI-modulet for at bygge sprogmodellen til MRKL-systemet:

pip installer openai

Trin 2: Indstilling af OpenAI-miljø

Importer OS- og getpass-bibliotekerne for at få adgang til driften for at bede brugeren om at angive API-nøglerne til OpenAI- og SerpAPi-konti:

importere du

importere getpass

du . rundt regnet [ 'OPENAI_API_KEY' ] = getpass . getpass ( 'OpenAI API-nøgle:' )

du . rundt regnet [ 'SERPAPI_API_KEY' ] = getpass . getpass ( 'Serpapi API-nøgle:' )

Trin 3: Import af biblioteker

Brug afhængighederne fra LangChain til at importere de nødvendige biblioteker til opbygning af sprogmodellen, værktøjerne og agenterne:

fra langkæde. kæder importere LLMMathChain

fra langkæde. llms importere OpenAI

fra langkæde. forsyningsselskaber importere SerpAPIWrapper

fra langkæde. forsyningsselskaber importere SQLDatabase

fra langkæde_eksperimentel. sql importere SQLDatabaseChain

fra langkæde. agenter importere initialize_agent , Værktøj

fra langkæde. agenter importere AgentType

Trin 4: Opbygning af database

MRKL bruger eksterne videnkilder til at udtrække information fra data. Dette indlæg bruger SQLite, som kan downloades ved hjælp af dette guide at bygge databasen. Følgende kommando bekræfter processen med at downloade SQLite ved at vise dens installerede version:

sqlite3

Brug følgende kommandohoved inde i en mappe til at oprette databasen ved hjælp af kommandoprompten:

cd Desktop

cd mydb

sqlite3 Chinook. db

Download Database fil og gem den i mappen for at bruge følgende kommando til at oprette ' .db ' fil:

. Læs Chinook_Sqlite. sql

VÆLG * FRA Artist LIMIT 10 ;

Trin 5: Upload af database

Når databasen er oprettet, skal du uploade filen i Google-samarbejdet:

fra google. ET AL importere filer

uploadet = filer. upload ( )

Brugeren kan få adgang til den uploadede fil på notesbogen for at kopiere dens sti fra dens rullemenu:

Trin 6: Konfiguration af værktøjer

Efter opbygning af databasen skal du konfigurere sprogmodellen, værktøjerne og kæderne for agenterne:

Søg = SerpAPIWrapper ( )
llm = OpenAI ( temperatur = 0 )
llm_math_chain = LLMMathChain ( llm = llm , ordrig = Rigtigt )
db = SQLDatabase. fra_uri ( 'sqlite:///../../../../../content/Chinook.db' )
db_kæde = SQLDatabaseChain. fra_llm ( llm , db , ordrig = Rigtigt )
værktøjer = [
Værktøj (
navn = 'Søg' ,
func = Søg. løb ,
beskrivelse = 'Spørg de målrettede prompter for at få svar om de seneste anliggender'
) ,
Værktøj (
navn = 'Lommeregner' ,
func = llm_math_chain. løb ,
beskrivelse = 'nyttigt til at besvare/løse matematiske problemer'
) ,
Værktøj (
navn = 'FooBar DB' ,
func = db_kæde. løb ,
beskrivelse = 'nyttigt til at besvare forespørgsler fra en database og inputspørgsmål skal have den komplette kontekst'
)
]
  • Definer llm variabel ved hjælp af OpenAI() metode til at få sprogmodellen.
  • Det Søg er værktøjet, der kalder SerpAPIWrapper() metode til at få adgang til sit miljø.
  • Det LLMMathChain() metode bruges til at få svarene relateret til matematiske problemer.
  • Definer db variabel med stien til filen inde i SQLDatabase() metode.
  • Det SQLDatabaseChain() metode kan bruges til at få informationen fra databasen.
  • Definer værktøjer som Søg , lommeregner , og FooBar DB til at bygge agenten til at udtrække data fra forskellige kilder:

Trin 7: Opbygning og test af agenten

Initialiser MRKL-systemet ved hjælp af værktøjerne, llm og agent for at få svar på de spørgsmål, brugeren stillede:

mrkl = initialize_agent ( værktøjer , llm , agent = AgentType. ZERO_SHOT_REACT_DESCRIPTION , ordrig = Rigtigt )

Udfør MRKL-systemet ved hjælp af run()-metoden med spørgsmålet som argument:

mrkl. løb ( 'Hvad er Leo DiCaprios og hans kærestes nuværende alder fortæller også deres aldersforskel' )

Produktion

Agenten har produceret det endelige svar med den komplette sti, der bruges af systemet til at udtrække det endelige svar:

Trin 8: Repliker MRKL-systemet

Nu skal du blot bruge mrkl søgeord med run()-metoden for at få svar fra forskellige kilder såsom databaser:

mrkl. løb ( 'Hvad er det fulde navn på kunstneren, hvis album kaldet 'The Storm Before the Calm' udgivet for nylig, og er de i FooBar-databasen også, hvilke af deres albums er i databasen' )

Agenten har automatisk transformeret spørgsmålet til SQL-forespørgslen for at hente svaret fra databasen. Agenten søger efter den korrekte kilde for at få svaret og samler derefter forespørgslen for at udtrække oplysningerne:

Trin 9: Brug af ChatModel

Brugeren kan simpelthen ændre sprogmodellen ved at bruge ChatOpenAI()-metoden for at gøre den til en ChatModel og bruge MRKL-systemet med det:

fra langkæde. chat_modeller importere ChatOpenAI

Søg = SerpAPIWrapper ( )
llm = ChatOpenAI ( temperatur = 0 )
llm1 = OpenAI ( temperatur = 0 )
llm_math_chain = LLMMathChain ( llm = llm1 , ordrig = Rigtigt )
db = SQLDatabase. fra_uri ( 'sqlite:///../../../../../content/Chinook.db' )
db_kæde = SQLDatabaseChain. fra_llm ( llm1 , db , ordrig = Rigtigt )
værktøjer = [
Værktøj (
navn = 'Søg' ,
func = Søg. løb ,
beskrivelse = 'Spørg de målrettede prompter for at få svar om de seneste anliggender'
) ,
Værktøj (
navn = 'Lommeregner' ,
func = llm_math_chain. løb ,
beskrivelse = 'nyttigt til at besvare/løse matematiske problemer'
) ,
Værktøj (
navn = 'FooBar DB' ,
func = db_kæde. løb ,
beskrivelse = 'nyttigt til at besvare forespørgsler fra en database og inputspørgsmål skal have den komplette kontekst'
)
]

Trin 10: Test MRKL Agent

Byg derefter agenten og initialiser den i mrkl-variablen ved hjælp af initialize_agent()-metoden. Tilføj parameteren for metoden for at integrere komponenter som værktøjer, llm, agent og verbose for at få hele processen i outputtet:

mrkl = initialize_agent ( værktøjer , llm , agent = AgentType. CHAT_ZERO_SHOT_REACT_DESCRIPTION , ordrig = Rigtigt )

Udfør spørgsmålet ved at køre mrkl-systemet som vist på følgende skærmbillede:

mrkl. løb ( 'Hvem er Leo DiCaprios kæreste? Hvad er deres nuværende alder' )

Produktion

Følgende uddrag viser det endelige svar udtrukket af agenten:

Trin 11: Repliker MRKL-systemet

Brug MRKL-systemet ved at kalde run()-metoden med spørgsmålet på det naturlige sprog for at udtrække information fra databasen:

mrkl. løb ( 'Hvad er det fulde navn på kunstneren, hvis album kaldet 'The Storm Before the Calm' udgivet for nylig, og er de i FooBar-databasen også, hvilke af deres albums er i databasen' )

Produktion

Agenten har vist det endelige svar udtrukket fra databasen som vist på følgende skærmbillede:

Det handler om processen med at replikere MRKL-systemet ved hjælp af agenter i LangChain:

Konklusion

For at replikere MRKL-systemet ved hjælp af agenter i LangChain, skal du installere modulerne for at få afhængighederne til at importere bibliotekerne. Bibliotekerne er forpligtet til at bygge sprogmodellen eller chatmodellen for at få svarene fra flere kilder ved hjælp af værktøjerne. Agenterne er konfigureret til at bruge værktøjerne til at udtrække output fra forskellige kilder som internettet, databaser osv. Denne guide har uddybet processen med at replikere MRKL-systemet ved hjælp af agenter i LangChain.