Kako implementirati samopitanje s lancem pretraživanja?

Kako Implementirati Samopitanje S Lancem Pretrazivanja



LangChain je modul za izgradnju jezičnih modela i chatbota koji mogu razumjeti i izdvojiti tekst na prirodnom jeziku. Ljudima su prirodni jezici lako razumljivi, ali ih strojevi moraju naučiti neprestano provjeravajući podatke. Podaci/dokumenti na prirodnim jezicima mogu se koristiti za obuku modela, a zatim tražiti upite iz podataka za provjeru izvedbe modela.

Brzi pregled

Ovaj će post pokazati sljedeće:







Kako implementirati samopitanje s lancem pretraživanja



Zaključak



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 vas
uvoz 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 OpenAI

iz 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šitelj

Definirajte 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().