Snel overzicht
Dit bericht zal het volgende aantonen:
Hoe het MRKL-systeem te repliceren met behulp van agenten in LangChain
- Stap 1: Frameworks installeren
- Stap 2: OpenAI-omgeving instellen
- Stap 3: Bibliotheken importeren
- Stap 4: Database bouwen
- Stap 5: Database uploaden
- Stap 6: Hulpmiddelen configureren
- Stap 7: De agent bouwen en testen
- Stap 8: Repliceer het MRKL-systeem
- Stap 9: ChatModel gebruiken
- Stap 10: Test de MRKL-agent
- Stap 11: Repliceer het MRKL-systeem
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 Jijimporteren 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 LLMMathChainvan 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 BureaubladCD 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. sqlSELECTEER * 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 bestandengeü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 ChatOpenAIzoekopdracht = 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.