Schiță rapidă
Această postare va demonstra următoarele:
Cum să implementați auto-întrebarea cu lanțul de căutare
- Instalarea cadrelor
- Mediul clădirii
- Import de biblioteci
- Construirea modelelor de limbaj
- Utilizarea LangChain Expression Language
- Configurarea Agent Executor
- Rularea agentului
- Utilizarea agentului Self-Ask
Cum să implementați auto-întrebarea cu lanțul de căutare?
Self-Ask este procesul de îmbunătățire a procesului de înlănțuire, deoarece înțelege bine comenzile. Lanțurile înțeleg întrebarea extragând datele despre toți termenii importanți din setul de date. Odată ce modelul este antrenat și înțelege interogarea, acesta generează răspunsul la interogarea solicitată de utilizator.
Pentru a învăța procesul de implementare a auto-cererii cu lanțurile de căutare în LangChain, parcurgeți următorul ghid:
Pasul 1: Instalarea cadrelor
Mai întâi de toate, începeți procesul instalând procesul LangChain folosind următorul cod și obțineți toate dependențele pentru proces:
pip install langchain
După instalarea LangChain, instalați „ Google-search-results ” pentru a obține rezultatele căutării de la Google folosind mediul OpenAI:
pip install openai google-search-results
Pasul 2: Mediul de construcție
Odată ce modulele și cadrele sunt instalate, configurați mediul pentru OpenAI și SerpAPi folosind API-urile lor folosind următorul cod. Importați bibliotecile OS și getpass care pot fi folosite pentru a introduce cheile API din conturile lor respective:
import tuimport getpass
tu . aproximativ [ „OPENAI_API_KEY” ] = getpass . getpass ( „Cheie API OpenAI:” )
tu . aproximativ [ „SERPAPI_API_KEY” ] = getpass . getpass ( „Cheia API Serpapi:” )
Pasul 3: Importarea bibliotecilor
După configurarea mediului, pur și simplu importați bibliotecile necesare din dependențele LangChain, cum ar fi utilități, agenți, llm și altele:
din langchain. llms import OpenAIdin langchain. utilitati import SerpAPIWrapper
din langchain. agenţi . analizoare_ieșire import SelfAskOutputParser
din langchain. agenţi . format_scratchpad import format_log_to_str
din langchain import hub
din langchain. agenţi import initialize_agent , Instrument
din langchain. agenţi import AgentType
Pasul 4: Construirea modelelor lingvistice
Obținerea bibliotecilor de mai sus este necesară pe tot parcursul procesului, deoarece OpenAI() este utilizat pentru a configura modelul de limbă. Utilizați metoda SerpAPIWrapper() pentru a configura variabila de căutare și a seta instrumentele necesare agentului pentru a efectua toate sarcinile:
llm = OpenAI ( temperatura = 0 )căutare = SerpAPIWrapper ( )
unelte = [
Instrument (
Nume = „Răspuns intermediar” ,
func = căutare. alerga ,
Descriere = „util pentru când trebuie să întrebi cu căutarea” ,
)
]
Pasul 5: Utilizarea LangChain Expression Language
Începeți cu configurarea agentului folosind LangChain Expression Language (LCEL) prin încărcarea modelului în variabila prompt:
prompt = hub. Trage ( „hwchase17/self-ask-with-search” )Definiți o altă variabilă care poate fi executată pentru a opri generarea de text și pentru a controla lungimea răspunsurilor:
llm_cu_stop = llm. lega ( Stop = [ ' \n Răspuns intermediar:' ] )Acum, configurați agenții folosind Lambda, care este o platformă fără server bazată pe evenimente, pentru a genera răspunsurile la întrebări. De asemenea, configurați pașii necesari pentru a antrena și testa modelul pentru a obține rezultate optimizate folosind componentele configurate mai devreme:
agent = {'intrare' : lambda x: x [ 'intrare' ] ,
'agent_scratchpad' : lambda x: format_log_to_str (
X [ „pași_intermediari” ] ,
prefix_observare = ' \n Răspuns intermediar: „ ,
llm_prefix = '' ,
) ,
} | prompt | llm_cu_stop | SelfAskOutputParser ( )
Pasul 6: Configurarea Agent Executor
Înainte de a testa metoda, pur și simplu importați biblioteca AgentExecutor din LangChain pentru a face agentul să răspundă:
din langchain. agenţi import Agent ExecutorDefiniți variabila agent_executor apelând metoda AgentExecutor() și folosind componentele ca argumente:
agent_executor = Agent Executor ( agent = agent , unelte = unelte , verboroasă = Adevărat )Pasul 7: Rularea agentului
Odată ce executorul agentului este configurat, pur și simplu testați-l furnizând întrebarea/promptul în variabila de intrare:
agent_executor. invoca ( { 'intrare' : „Cine este campionul masculin la US Open” } )Executarea codului de mai sus a răspuns cu numele campionului US Open în ieșire, adică Dominic Thiem:
Pasul 8: Utilizarea agentului Self-Ask
După ce ați primit răspunsul de la agent, utilizați SELF_ASK_WITH_SEARCH agent cu interogarea în metoda run():
self_ask_with_search = initialize_agent (unelte , llm , agent = AgentType. SELF_ASK_WITH_SEARCH , verboroasă = Adevărat
)
self_ask_with_search. alerga (
„Care este orașul natal al lui Dominic Thiem, campion mondial la US Open”
)
Următoarea captură de ecran arată că agentul de auto-cerere extrage informații despre fiecare termen important din setul de date. Odată ce adună toate informațiile despre interogare și înțelege întrebările, pur și simplu generează răspunsul. Întrebările puse de către agent sunt:
- Cine este Dominic Thiem?
- Care este orașul natal al lui Dominic Thiem?
După ce a primit răspunsurile la aceste întrebări, agentul a generat răspunsul la întrebarea inițială care este „ Wiener Neustadt, Austria ”:
Acesta este totul despre procesul de implementare a auto-cererii cu un lanț de căutare folosind cadrul LangChain.
Concluzie
Pentru a implementa auto-cererea cu căutare în LangChain, instalați pur și simplu modulele necesare, cum ar fi google-search-results, pentru a obține rezultatele de la agent. După aceea, configurați mediul folosind cheile API din conturile OpenAI și SerpAPi pentru a începe procesul. Configurați agentul și construiți modelul cu modelul de auto-cerere pentru a-l testa folosind metoda AgentExecutor().