Hvordan replikere MRKL-systemet ved å bruke agenter i LangChain?

Hvordan Replikere Mrkl Systemet Ved A Bruke Agenter I Langchain



Modular Reasoning, Knowledge, and Language (MRKL)-systemet er en arkitektur som kan trekke ut svar med årsakene til verifiseringen. Den integrerer språkmodeller, diskret resonnement og eksterne kunnskapskilder. Språkmodeller produserer teksten på menneskelige språk i henhold til spørsmål fra brukeren. MRKL (uttales: mirakel) legger til resonnement mens den produserer svarene for å gjøre svaret nøyaktig og gyldig.

Rask oversikt

Dette innlegget vil demonstrere følgende:







Hvordan replikere MRKL-systemet ved å bruke agenter i LangChain



Konklusjon



Hvordan replikere MRKL-systemet ved å bruke agenter i LangChain?

LangChain lar brukeren bygge agenter som kan brukes til å utføre flere oppgaver for språkmodellene eller chatbotene. Agenter lagrer arbeidet sitt med alle trinnene i minnet knyttet til språkmodellen. Ved å bruke disse malene kan agenten replikere arbeidet til ethvert system som MRKL for å få de optimaliserte resultatene uten å måtte bygge dem på nytt.





For å lære prosessen med å replikere MRKL-systemet ved å bruke agenter i LangChain, gå ganske enkelt gjennom de oppførte trinnene:

Trinn 1: Installere Frameworks

Først av alt, installer LangChain eksperimentelle moduler ved å bruke pip med langchain-experimental kommandoen:



pip installer langkjede-eksperimentell

Installer OpenAI-modulen for å bygge språkmodellen for MRKL-systemet:

pip installer openai

Trinn 2: Innstilling av OpenAI-miljø

Importer OS- og getpass-bibliotekene for å få tilgang til operasjonen for å be brukeren om å oppgi API-nøklene for OpenAI- og SerpAPi-kontoene:

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

Trinn 3: Importere biblioteker

Bruk avhengighetene fra LangChain til å importere de nødvendige bibliotekene for å bygge språkmodellen, verktøyene og agentene:

fra langkjede. kjeder import LLMMathChain

fra langkjede. llms import OpenAI

fra langkjede. verktøy import SerpAPIWrapper

fra langkjede. verktøy import SQLDatabase

fra langkjede_eksperimentell. sql import SQLDatabaseChain

fra langkjede. agenter import initialize_agent , Verktøy

fra langkjede. agenter import AgentType

Trinn 4: Bygg database

MRKL bruker eksterne kunnskapskilder for å hente ut informasjon fra data. Dette innlegget bruker SQLite som kan lastes ned ved hjelp av dette guide å bygge databasen. Følgende kommando bekrefter prosessen med å laste ned SQLite ved å vise den installerte versjonen:

sqlite3

Bruk følgende kommandohode i en katalog for å lage databasen ved å bruke ledeteksten:

cd Skrivebord

cd mydb

sqlite3 Chinook. db

Last ned Database fil og lagre den i katalogen for å bruke følgende kommando for å lage ' .db ' fil:

. lese Chinook_Sqlite. sql

VELG * FRA Artist LIMIT 10 ;

Trinn 5: Last opp database

Når databasen er opprettet, laster du opp filen i Google-samarbeidet:

fra Google. ET AL import filer

lastet opp = filer. laste opp ( )

Brukeren kan få tilgang til den opplastede filen på notatboken for å kopiere banen fra rullegardinmenyen:

Trinn 6: Konfigurere verktøy

Etter å ha bygget databasen, konfigurer språkmodellen, verktøyene og kjedene for agentene:

Søk = SerpAPIWrapper ( )
llm = OpenAI ( temperatur = 0 )
llm_math_chain = LLMMathChain ( 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 = 'Spør de målrettede spørsmålene for å få svar om nylige 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 fra en database og inndataspørsmål må ha den fullstendige konteksten'
)
]
  • Definer llm variabel ved å bruke OpenAI() metode for å få språkmodellen.
  • De Søk er verktøyet som kaller SerpAPIWrapper() metode for å få tilgang til miljøet.
  • De LLMMathChain() metode brukes for å få svarene knyttet til matematiske problemer.
  • Definer db variabel med banen til filen inne i SQLDatabase() metode.
  • De SQLDatabaseChain() metode kan brukes for å hente informasjonen fra databasen.
  • Definer verktøy som Søk , kalkulator , og FooBar DB for å bygge agenten for å trekke ut data fra forskjellige kilder:

Trinn 7: Bygg og testing av agenten

Initialiser MRKL-systemet ved å bruke verktøyene, llm og agent for å få svar på spørsmålene som stilles av brukeren:

mrkl = initialize_agent ( verktøy , llm , middel = AgentType. ZERO_SHOT_REACT_DESCRIPTION , ordrik = ekte )

Kjør MRKL-systemet ved å bruke run()-metoden med spørsmålet som argument:

mrkl. løpe ( 'Hva er Leo DiCaprios og kjæresten hans nåværende alder forteller også deres aldersforskjell' )

Produksjon

Agenten har produsert det endelige svaret med den fullstendige banen som brukes av systemet for å trekke ut det endelige svaret:

Trinn 8: Repliker MRKL-systemet

Nå er det bare å bruke mrkl nøkkelord med run()-metoden for å få svar fra forskjellige kilder som databaser:

mrkl. løpe ( 'Hva er det fulle navnet på artisten hvis album kalt 'The Storm Before the Calm' nylig ble utgitt, og er de i FooBar-databasen også hvilke av albumene deres er i databasen' )

Agenten har automatisk transformert spørsmålet til SQL-spørringen for å hente svaret fra databasen. Agenten søker etter riktig kilde for å få svaret og setter deretter sammen spørringen for å trekke ut informasjonen:

Trinn 9: Bruke ChatModel

Brukeren kan ganske enkelt endre språkmodellen ved å bruke ChatOpenAI()-metoden for å gjøre den til en ChatModel og bruke MRKL-systemet med det:

fra langkjede. chat_modeller import ChatOpenAI

Søk = SerpAPIWrapper ( )
llm = ChatOpenAI ( temperatur = 0 )
llm1 = OpenAI ( temperatur = 0 )
llm_math_chain = LLMMathChain ( llm = llm1 , ordrik = ekte )
db = SQLDatabase. fra_uri ( 'sqlite:///../../../../../content/Chinook.db' )
db_chain = SQLDatabaseChain. fra_llm ( llm1 , db , ordrik = ekte )
verktøy = [
Verktøy (
Navn = 'Søk' ,
func = Søk. løpe ,
beskrivelse = 'Spør de målrettede spørsmålene for å få svar om nylige 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 fra en database og inndataspørsmål må ha den fullstendige konteksten'
)
]

Trinn 10: Test MRKL-agenten

Deretter bygger du agenten og initialiserer den i mrkl-variabelen ved å bruke initialize_agent()-metoden. Legg til parameteren til metoden for å integrere komponentene som verktøy, llm, agent og verbose for å få hele prosessen i utdataene:

mrkl = initialize_agent ( verktøy , llm , middel = AgentType. CHAT_ZERO_SHOT_REACT_DESCRIPTION , ordrik = ekte )

Utfør spørsmålet ved å kjøre mrkl-systemet som vist i følgende skjermbilde:

mrkl. løpe ( 'Hvem er Leo DiCaprios kjæreste? Hva er deres nåværende alder' )

Produksjon

Følgende utdrag viser det endelige svaret hentet ut av agenten:

Trinn 11: Repliker MRKL-systemet

Bruk MRKL-systemet ved å kalle run()-metoden med spørsmålet på det naturlige språket for å trekke ut informasjon fra databasen:

mrkl. løpe ( 'Hva er det fulle navnet på artisten hvis album kalt 'The Storm Before the Calm' nylig ble utgitt, og er de i FooBar-databasen også hvilke av albumene deres er i databasen' )

Produksjon

Agenten har vist det endelige svaret hentet fra databasen som vist i følgende skjermbilde:

Det handler om prosessen med å replikere MRKL-systemet ved å bruke agenter i LangChain:

Konklusjon

For å replikere MRKL-systemet ved å bruke agenter i LangChain, installer modulene for å få avhengighetene for å importere bibliotekene. Bibliotekene er pålagt å bygge språkmodellen eller chat-modellen for å få svar fra flere kilder ved å bruke verktøyene. Agentene er konfigurert til å bruke verktøyene for å trekke ut utdata fra forskjellige kilder som internett, databaser osv. Denne guiden har utdypet prosessen med å replikere MRKL-systemet ved å bruke agenter i LangChain.