Rask oversikt
Dette innlegget vil demonstrere følgende:
Hvordan replikere MRKL-systemet ved å bruke agenter i LangChain
- Trinn 1: Installere Frameworks
- Trinn 2: Innstilling av OpenAI-miljø
- Trinn 3: Importere biblioteker
- Trinn 4: Bygg database
- Trinn 5: Last opp database
- Trinn 6: Konfigurere verktøy
- Trinn 7: Bygg og testing av agenten
- Trinn 8: Repliker MRKL-systemet
- Trinn 9: Bruke ChatModel
- Trinn 10: Test MRKL-agenten
- Trinn 11: Repliker MRKL-systemet
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 duimport 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 LLMMathChainfra 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 Skrivebordcd 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. sqlVELG * 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 filerlastet 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 ChatOpenAISø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.