Brzi pregled
Ovaj će post pokazati sljedeće:
Kako implementirati samopitanje s lancem pretraživanja
- Instalacija Frameworks
- Građevinsko okruženje
- Uvoz knjižnica
- Izgradnja jezičnih modela
- Korištenje LangChain Expression Language
- Konfiguriranje Agent Executor
- Pokretanje agenta
- Korištenje Self-Ask Agenta
Kako implementirati samopitanje s lancem pretraživanja?
Self-Ask je proces za poboljšanje procesa ulančavanja budući da temeljito razumije naredbe. Lanci razumiju pitanje izdvajanjem podataka o svim važnim terminima iz skupa podataka. Nakon što je model obučen i razumije upit, on generira odgovor na upit koji je postavio korisnik.
Kako biste naučili postupak implementacije samopitanja s lancima pretraživanja u LangChainu, jednostavno prođite kroz sljedeći vodič:
Korak 1: Instalacija Frameworks
Prije svega, pokrenite proces instaliranjem LangChain procesa pomoću sljedećeg koda i nabavite sve ovisnosti za proces:
pip instalirati langchain
Nakon instaliranja LangChaina, instalirajte ' google-rezultati-pretrage ” da dobijete rezultate pretraživanja od Googlea koristeći OpenAI okruženje:
pip instaliraj openai google-rezultate pretraživanja
Korak 2: Izgradnja okruženja
Nakon što su moduli i okviri instalirani, postavite okruženje za OpenAI i SerpAPi pomoću njihovih API-ja pomoću sljedećeg koda. Uvezite OS i getpass biblioteke koje se mogu koristiti za unos API ključeva sa njihovih odgovarajućih računa:
uvoz vasuvoz getpass
vas . približno [ 'OPENAI_API_KEY' ] = getpass . getpass ( 'OpenAI API ključ:' )
vas . približno [ 'SERPAPI_API_KEY' ] = getpass . getpass ( 'Serpapi API ključ:' )
Korak 3: Uvoz biblioteka
Nakon postavljanja okruženja, jednostavno uvezite potrebne biblioteke iz LangChain ovisnosti kao što su pomoćni programi, agenti, llm i drugi:
iz langchain. llms uvoz OpenAIiz langchain. komunalije uvoz SerpAPIWrapper
iz langchain. agenti . izlazni_parseri uvoz SelfAskOutputParser
iz langchain. agenti . format_scratchpad uvoz format_log_u_str
iz langchain uvoz središte
iz langchain. agenti uvoz inicijalizirati_agent , Alat
iz langchain. agenti uvoz AgentType
Korak 4: Izrada jezičnih modela
Dohvaćanje gornjih biblioteka potrebno je tijekom cijelog procesa jer se OpenAI() koristi za konfiguriranje jezičnog modela. Upotrijebite metodu SerpAPIWrapper() za konfiguriranje varijable pretraživanja i postavljanje alata potrebnih agentu za obavljanje svih zadataka:
llm = OpenAI ( temperatura = 0 )traži = SerpAPIWrapper ( )
alata = [
Alat (
Ime = 'Međuodgovor' ,
funk = traži. trčanje ,
opis = 'korisno kada trebate pitati s pretraživanjem' ,
)
]
Korak 5: Korištenje LangChain Expression Language
Početak rada s konfiguriranjem agenta pomoću LangChain Expression Language (LCEL) učitavanjem modela u prompt varijabli:
potaknuti = središte. Vuci ( 'hwchase17/self-ask-with-search' )Definirajte drugu varijablu koja se može izvršiti da se zaustavi generiranje teksta i kontrolira duljina odgovora:
llm_sa_stopom = llm. vezati ( Stop = [ ' \n Srednji odgovor:' ] )Sada konfigurirajte agente pomoću Lambde koja je platforma bez poslužitelja vođena događajima za generiranje odgovora na pitanja. Također, konfigurirajte korake potrebne za obuku i testiranje modela kako biste dobili optimizirane rezultate pomoću komponenti konfiguriranih ranije:
agent = {'ulazni' : lambda x: x [ 'ulazni' ] ,
'agent_scratchpad' : lambda x: format_log_to_str (
x [ 'međukoraci' ] ,
prefiks_promatranja = ' \n Srednji odgovor: ' ,
llm_prefiks = '' ,
) ,
} | brz | llm_sa_stopom | SelfAskOutputParser ( )
Korak 6: Konfiguriranje Agent Executor
Prije testiranja metode jednostavno uvezite biblioteku AgentExecutor iz LangChaina kako bi agent reagirao:
iz langchain. agenti uvoz AgentIzvršiteljDefinirajte varijablu agent_executor pozivanjem metode AgentExecutor() i korištenjem komponenti kao njenih argumenata:
agent_izvršitelj = AgentIzvršitelj ( agent = agent , alata = alata , opširno = Pravi )Korak 7: Pokretanje agenta
Nakon što je izvršitelj agenta konfiguriran, jednostavno ga testirajte postavljanjem pitanja/upita u ulaznoj varijabli:
agent_izvršitelj. prizivati ( { 'ulazni' : 'Tko je prvak US Opena za muškarce' } )Izvršenje gornjeg koda odgovorilo je s imenom prvaka US Opena u izlazu, tj. Dominic Thiem:
Korak 8: Korištenje Self-Ask Agenta
Nakon što dobijete odgovor od agenta, upotrijebite SELF_ASK_WITH_SEARCH agent s upitom u metodi run():
samo_pitaj_pretragom = inicijalizirati_agent (alata , llm , agent = AgentType. SELF_ASK_WITH_SEARCH , opširno = Pravi
)
samo_pitaj_pretragom. trčanje (
'Koji je rodni grad Dominica Thiema, svjetskog prvaka US Opena'
)
Sljedeća snimka zaslona prikazuje da agent samopitanja izdvaja informacije o svakom važnom pojmu iz skupa podataka. Nakon što prikupi sve informacije o upitu i razumije pitanja, jednostavno generira odgovor. Pitanja koja si sam postavlja agent su:
- Tko je Dominic Thiem?
- Koji je rodni grad Dominica Thiema?
Nakon što je dobio odgovore na ova pitanja, agent je generirao odgovor na originalno pitanje koje je ' Wiener Neustadt, Austrija ”:
To je sve o procesu implementacije samopitanja s lancem pretraživanja pomoću okvira LangChain.
Zaključak
Za implementaciju samopitanja s pretraživanjem u LangChainu, jednostavno instalirajte potrebne module kao što su google-search-results da biste dobili rezultate od agenta. Nakon toga, postavite okruženje pomoću API ključeva iz OpenAI i SerpAPi računa da biste započeli s procesom. Konfigurirajte agenta i izgradite model s modelom samopitanja da biste ga testirali pomoću metode AgentExecutor().