Hitri oris
Ta objava bo pokazala naslednje:
Kako uvesti samospraševanje z iskalno verigo
- Namestitev okvirjev
- Gradbeno okolje
- Uvažanje knjižnic
- Gradnja jezikovnih modelov
- Uporaba izraznega jezika LangChain
- Konfiguriranje Agent Executor
- Izvajanje agenta
- Uporaba Self-Ask Agent
Kako uvesti samospraševanje z iskalno verigo?
Self-Ask je postopek za izboljšanje procesa veriženja, saj natančno razume ukaze. Verige razumejo vprašanje tako, da iz nabora podatkov izvlečejo podatke o vseh pomembnih izrazih. Ko je model izurjen in razume poizvedbo, ustvari odgovor na poizvedbo, ki jo postavi uporabnik.
Če se želite naučiti postopka izvajanja samospraševanja z iskalnimi verigami v LangChainu, preprosto preglejte ta vodnik:
1. korak: Namestitev ogrodij
Najprej začnite postopek z namestitvijo procesa LangChain z naslednjo kodo in pridobite vse odvisnosti za postopek:
pip namestite langchain
Po namestitvi LangChaina namestite » google-rezultati iskanja ”, da dobite rezultate iskanja od Googla z uporabo okolja OpenAI:
pip namestite openai google-search-results
2. korak: Gradnja okolja
Ko so moduli in ogrodja nameščeni, nastavite okolje za OpenAI in SerpAPi z uporabo njihovih API-jev z naslednjo kodo. Uvozite knjižnici os in getpass, ki ju je mogoče uporabiti za vnos ključev API iz ustreznih računov:
uvoz tiuvoz getpass
ti . približno [ 'OPENAI_API_KEY' ] = getpass . getpass ( 'Ključ API OpenAI:' )
ti . približno [ 'SERPAPI_API_KEY' ] = getpass . getpass ( 'Ključ API Serpapi:' )
3. korak: Uvoz knjižnic
Ko nastavite okolje, preprosto uvozite zahtevane knjižnice iz odvisnosti LangChain, kot so pripomočki, agenti, llm in druge:
od Langchain. llms uvoz OpenAIod Langchain. pripomočki uvoz SerpAPIWrapper
od Langchain. zastopniki . izhodni_razčlenjevalniki uvoz SelfAskOutputParser
od Langchain. zastopniki . format_scratchpad uvoz format_log_to_str
od Langchain uvoz vozlišče
od Langchain. zastopniki uvoz inicializiraj_agent , Orodje
od Langchain. zastopniki uvoz AgentType
4. korak: Gradnja jezikovnih modelov
Pridobivanje zgornjih knjižnic je potrebno v celotnem procesu, saj se OpenAI() uporablja za konfiguracijo jezikovnega modela. Uporabite metodo SerpAPIWrapper(), da konfigurirate iskalno spremenljivko in nastavite orodja, ki jih agent potrebuje za izvajanje vseh nalog:
llm = OpenAI ( temperaturo = 0 )Iskanje = SerpAPIWrapper ( )
orodja = [
Orodje (
ime = 'Vmesni odgovor' ,
funk = Iskanje. teči ,
opis = 'uporabno, ko morate vprašati z iskanjem' ,
)
]
5. korak: Uporaba izraznega jezika LangChain
Začetek konfiguracije agenta z uporabo jezika LangChain Expression Language (LCEL) z nalaganjem modela v spremenljivko poziva:
poziv = vozlišče. potegni ( 'hwchase17/self-ask-with-search' )Definirajte drugo spremenljivko, ki jo je mogoče izvesti, da ustavite generiranje besedila in nadzorujete dolžino odgovorov:
llm_with_stop = llm. vezati ( stop = [ ' \n Vmesni odgovor:' ] )Zdaj konfigurirajte agente z uporabo Lambda, ki je brezstrežniška platforma, ki temelji na dogodkih, za ustvarjanje odgovorov na vprašanja. Prav tako konfigurirajte korake, potrebne za usposabljanje in testiranje modela, da dobite optimizirane rezultate z uporabo komponent, konfiguriranih prej:
agent = {'vnos' : lambda x: x [ 'vnos' ] ,
'agent_scratchpad' : lambda x: format_log_to_str (
x [ 'vmesni_koraki' ] ,
predpona_opazovanja = ' \n Vmesni odgovor: ' ,
llm_predpona = '' ,
) ,
} | hitro | llm_z_ustavitvijo | SelfAskOutputParser ( )
6. korak: Konfiguracija Agent Executor
Preden preskusite metodo, preprosto uvozite knjižnico AgentExecutor iz LangChaina, da bo agent odziven:
od Langchain. zastopniki uvoz AgentExecutorDefinirajte spremenljivko agent_executor tako, da pokličete metodo AgentExecutor() in uporabite komponente kot njene argumente:
agent_izvršitelj = AgentExecutor ( agent = agent , orodja = orodja , verbose = Prav )7. korak: Zagon agenta
Ko je izvajalec agenta konfiguriran, ga preprosto preizkusite tako, da vnesete vprašanje/poziv v vhodni spremenljivki:
agent_izvršitelj. priklicati ( { 'vnos' : 'Kdo je prvak OP ZDA za moške' } )Izvajanje zgornje kode se je odzvalo z imenom prvaka US Open v izhodu, tj. Dominic Thiem:
8. korak: Uporaba agenta Self-Ask
Ko dobite odgovor od agenta, uporabite SELF_ASK_WITH_SEARCH agent s poizvedbo v metodi run():
self_ask_with_search = inicializiraj_agent (orodja , llm , agent = AgentType. SELF_ASK_WITH_SEARCH , verbose = Prav
)
self_ask_with_search. teči (
'Katero je domače mesto Dominica Thiema, svetovnega prvaka US Open'
)
Naslednji posnetek zaslona prikazuje, da agent za samospraševanje iz nabora podatkov izvleče informacije o vsakem pomembnem izrazu. Ko zbere vse informacije o poizvedbi in razume vprašanja, preprosto ustvari odgovor. Vprašanja, ki si jih zastavlja agent, so:
- Kdo je Dominic Thiem?
- Katero je rojstno mesto Dominica Thiema?
Po prejemu odgovorov na ta vprašanja je agent ustvaril odgovor na prvotno vprašanje, ki je ' Wiener Neustadt, Avstrija ”:
To je vse o procesu izvajanja samospraševanja z iskalno verigo z uporabo ogrodja LangChain.
Zaključek
Če želite implementirati samospraševanje z iskanjem v LangChain, preprosto namestite zahtevane module, kot je google-search-results, da dobite rezultate od posrednika. Nato nastavite okolje s ključi API iz računov OpenAI in SerpAPi, da začnete s postopkom. Konfigurirajte agenta in zgradite model z modelom samospraševanja, da ga preizkusite z metodo AgentExecutor().