Hoe het MRKL-systeem te repliceren met behulp van agenten in LangChain?

Hoe Het Mrkl Systeem Te Repliceren Met Behulp Van Agenten In Langchain



Het Modulair Redeneren, Kennis en Taal (MRKL) -systeem is een architectuur die antwoorden kan extraheren met de redenen voor de verificatie ervan. Het integreert taalmodellen, discreet redeneren en externe kennisbronnen. Taalmodellen produceren de tekst in menselijke talen op basis van de vragen van de gebruiker. MRKL (uitgesproken als: wonder) voegt redenering toe terwijl de antwoorden worden geproduceerd om het antwoord accuraat en geldig te maken.

Snel overzicht

Dit bericht zal het volgende aantonen:







Hoe het MRKL-systeem te repliceren met behulp van agenten in LangChain



Conclusie



Hoe het MRKL-systeem te repliceren met behulp van agenten in LangChain?

Met LangChain kan de gebruiker agenten bouwen die kunnen worden gebruikt om meerdere taken uit te voeren voor de taalmodellen of chatbots. Agenten slaan hun werk op met alle stappen in het geheugen dat aan het taalmodel is gekoppeld. Met behulp van deze sjablonen kan de agent de werking van elk systeem zoals MRKL repliceren om de geoptimaliseerde resultaten te verkrijgen zonder deze opnieuw te hoeven bouwen.





Om het proces van het repliceren van het MRKL-systeem met behulp van agenten in LangChain te leren, doorloopt u eenvoudigweg de vermelde stappen:

Stap 1: Frameworks installeren

Installeer eerst de experimentele modules van LangChain met behulp van de pip met het langchain-experimentele commando:



pip installeer langchain-experimenteel

Installeer de OpenAI-module om het taalmodel voor het MRKL-systeem te bouwen:

pip installeer openai

Stap 2: OpenAI-omgeving instellen

Importeer de os- en getpass-bibliotheken om toegang te krijgen tot het besturingssysteem en de gebruiker te vragen de API-sleutels voor de OpenAI- en SerpAPi-accounts op te geven:

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:' )

Stap 3: Bibliotheken importeren

Gebruik de afhankelijkheden van de LangChain om de vereiste bibliotheken te importeren voor het bouwen van het taalmodel, de tools en agenten:

van langketen. kettingen importeren LLMMathChain

van langketen. llms importeren Open AI

van langketen. nutsvoorzieningen importeren SerpAPIWrapper

van langketen. nutsvoorzieningen importeren SQLDatabase

van langketen_experimenteel. sql importeren SQLDatabaseChain

van langketen. agenten importeren initialiseer_agent , Hulpmiddel

van langketen. agenten importeren Agenttype

Stap 4: Database bouwen

De MRKL maakt gebruik van externe kennisbronnen om informatie uit data te halen. Dit bericht maakt gebruik van SQLite, dat hiermee kan worden gedownload gids om de database op te bouwen. De volgende opdracht bevestigt het proces van het downloaden van SQLite door de geïnstalleerde versie weer te geven:

sqlite3

Gebruik de volgende opdrachten om in een map te gaan om de database te maken met behulp van de opdrachtprompt:

CD Bureaublad

CD mijndb

sqlite3 Chinook. db

Download de Database bestand en sla het op in de map om de volgende opdracht te gebruiken voor het maken van de “ .db ' bestand:

. lezen Chinook_Sqlite. sql

SELECTEER * VAN Artiest LIMIET 10 ;

Stap 5: Database uploaden

Zodra de database met succes is gemaakt, uploadt u het bestand naar de Google Collaboratory:

van googlen. EN AL importeren bestanden

geüpload = bestanden. uploaden ( )

De gebruiker heeft toegang tot het geüploade bestand op de notebook en kan het pad vanuit het vervolgkeuzemenu kopiëren:

Stap 6: Hulpmiddelen configureren

Nadat u de database heeft gebouwd, configureert u het taalmodel, de hulpmiddelen en de ketens voor de agenten:

zoekopdracht = SerpAPIWrapper ( )
llm = Open AI ( temperatuur = 0 )
llm_math_chain = LLMMathChain ( 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 = 'Vraag de gerichte aanwijzingen om antwoorden te krijgen 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 uit een database en de invoervraag moet de volledige context hebben'
)
]
  • Definieer de llm variabele met behulp van de OpenAI() methode om het taalmodel te verkrijgen.
  • De zoekopdracht is de tool die de SerpAPIWrapper() manier om toegang te krijgen tot zijn omgeving.
  • De LLMMathChain() methode wordt gebruikt om de antwoorden te krijgen die verband houden met wiskundige problemen.
  • Definieer de db variabele met het pad van het bestand binnen de SQLDatabase() methode.
  • De SQLDatabaseChain() methode kan worden gebruikt om de informatie uit de database te halen.
  • Definieer hulpmiddelen zoals zoekopdracht , rekenmachine , En FooBar DB voor het bouwen van de agent om gegevens uit verschillende bronnen te extraheren:

Stap 7: De agent bouwen en testen

Initialiseer het MRKL-systeem met behulp van de tools, llm en agent om antwoorden te krijgen op de vragen van de gebruiker:

mrkl = initialiseer_agent ( hulpmiddelen , llm , tussenpersoon = AgentType. ZERO_SHOT_REACT_DESCRIPTION , uitgebreid = WAAR )

Voer het MRKL-systeem uit met behulp van de run()-methode met de vraag als argument:

mrkl. loop ( 'Wat is de huidige leeftijd van Leo DiCaprio en zijn vriendin, vertel ook hun leeftijdsverschil' )

Uitvoer

De agent heeft het definitieve antwoord geproduceerd met het volledige pad dat door het systeem wordt gebruikt om het definitieve antwoord te extraheren:

Stap 8: Repliceer het MRKL-systeem

Gebruik nu gewoon de mrkl trefwoord met de run() methode om antwoorden te krijgen uit verschillende bronnen, zoals databases:

mrkl. loop ( 'Wat is de volledige naam van de artiest wiens album 'The Storm Before the Calm' onlangs is uitgebracht en staan ​​ze in de FooBar-database en welke van hun albums zich in de database bevinden? )

De agent heeft de vraag automatisch omgezet in de SQL-query om het antwoord uit de database op te halen. De agent zoekt naar de juiste bron om het antwoord te krijgen en stelt vervolgens de query samen om de informatie te extraheren:

Stap 9: ChatModel gebruiken

De gebruiker kan eenvoudig het taalmodel wijzigen door de ChatOpenAI()-methode te gebruiken om er een ChatModel van te maken en er het MRKL-systeem mee te gebruiken:

van langketen. chat_modellen importeren ChatOpenAI

zoekopdracht = SerpAPIWrapper ( )
llm = ChatOpenAI ( temperatuur = 0 )
llm1 = OpenAI ( temperatuur = 0 )
llm_math_chain = LLMMathChain ( llm = llm1 , uitgebreid = WAAR )
db = SQLDatabase. van_uri ( 'sqlite:///../../../../../content/Chinook.db' )
db_keten = SQLDatabaseChain. van_llm ( llm1 , db , uitgebreid = WAAR )
hulpmiddelen = [
Hulpmiddel (
naam = 'Zoekopdracht' ,
func = zoekopdracht. loop ,
beschrijving = 'Vraag de gerichte aanwijzingen om antwoorden te krijgen 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 uit een database en de invoervraag moet de volledige context hebben'
)
]

Stap 10: Test de MRKL-agent

Bouw daarna de agent en initialiseer deze in de mrkl-variabele met behulp van de initialize_agent() -methode. Voeg de parameter van de methode toe om de componenten zoals tools, llm, agent en verbose te integreren om het volledige proces in de uitvoer te krijgen:

mrkl = initialiseer_agent ( hulpmiddelen , llm , tussenpersoon = AgentType. CHAT_ZERO_SHOT_REACT_DESCRIPTION , uitgebreid = WAAR )

Voer de vraag uit door het mrkl-systeem uit te voeren, zoals weergegeven in de volgende schermafbeelding:

mrkl. loop ( 'Wie is de vriendin van Leo DiCaprio? Wat is hun huidige leeftijd' )

Uitvoer

In het volgende fragment wordt het uiteindelijke antwoord weergegeven dat door de agent is geëxtraheerd:

Stap 11: Repliceer het MRKL-systeem

Gebruik het MRKL-systeem door de methode run() aan te roepen met de vraag in de natuurlijke taal om informatie uit de database te extraheren:

mrkl. loop ( 'Wat is de volledige naam van de artiest wiens album 'The Storm Before the Calm' onlangs is uitgebracht en staan ​​ze in de FooBar-database en welke van hun albums zich in de database bevinden? )

Uitvoer

De agent heeft het definitieve antwoord uit de database weergegeven, zoals weergegeven in de volgende schermafbeelding:

Dat gaat allemaal over het proces van het repliceren van het MRKL-systeem met behulp van agenten in LangChain:

Conclusie

Om het MRKL-systeem te repliceren met behulp van agenten in LangChain, installeert u de modules om de afhankelijkheden voor het importeren van de bibliotheken op te halen. De bibliotheken moeten het taalmodel of chatmodel bouwen om de antwoorden uit meerdere bronnen te krijgen met behulp van de tools. De agenten zijn geconfigureerd om de tools te gebruiken voor het extraheren van uitvoer uit verschillende bronnen, zoals internet, databases, enz. In deze handleiding wordt dieper ingegaan op het proces van het repliceren van het MRKL-systeem met behulp van agenten in LangChain.