Hogyan valósítsuk meg az önkérdést a keresőláncban?

Hogyan Valositsuk Meg Az Onkerdest A Keresolancban



A LangChain a nyelvi modellek és chatbotok felépítésére szolgáló modul, amely képes megérteni és természetes nyelven kivonatolni a szöveget. A természetes nyelvek könnyen érthetők az emberek számára, de a gépeknek meg kell tanulniuk őket az adatok ismételt átnézésével. A természetes nyelvű adatok/dokumentumok felhasználhatók a modell betanításához, majd kérhetik az adatokból érkező promptokat a modell teljesítményének ellenőrzésére.

Gyors vázlat

Ez a bejegyzés a következőket mutatja be:







Hogyan valósítsuk meg az önkérdést keresőlánccal



Következtetés



Hogyan valósítsuk meg az önkérdést a keresőláncban?

A Self-Ask az a folyamat, amely javítja a láncolási folyamatot, mivel alaposan megérti a parancsokat. A láncok úgy értelmezik a kérdést, hogy az összes fontos kifejezésre vonatkozó adatokat kinyerik az adatkészletből. Miután a modellt betanították és megértette a lekérdezést, akkor generálja a választ a felhasználó által feltett lekérdezésre.





Az önkérdés LangChain keresőláncaival való megvalósításának folyamatának megismeréséhez egyszerűen kövesse az alábbi útmutatót:

1. lépés: Keretrendszerek telepítése

Először is indítsa el a folyamatot a LangChain folyamat telepítésével a következő kóddal, és szerezze be a folyamat összes függőségét:



pip install langchain

A LangChain telepítése után telepítse a „ google-search-results ” a keresési eredmények lekéréséhez a Google-tól az OpenAI környezet használatával:

pip install openai google-search-results

2. lépés: Építési környezet

A modulok és keretrendszerek telepítése után állítsa be a környezetet a OpenAI és SerpAPi az API-jaikat a következő kód használatával. Importálja az API-kulcsok megadására használható operációs rendszer és getpass könyvtárakat a megfelelő fiókokból:

import te
import getpass

te . hozzávetőlegesen, körülbelül [ 'OPENAI_API_KEY' ] = getpass . getpass ( 'OpenAI API kulcs:' )
te . hozzávetőlegesen, körülbelül [ 'SERPAPI_API_KEY' ] = getpass . getpass ( 'Serpapi API kulcs:' )

3. lépés: Könyvtárak importálása

A környezet beállítása után egyszerűen importálja a szükséges könyvtárakat a LangChain függőségekből, például segédprogramokból, ügynökökből, llm-ből és egyebekből:

tól től langchain. llms import OpenAI

tól től langchain. segédprogramok import SerpAPIWrapper

tól től langchain. ügynökök . output_parsers import SelfAskOutputParser

tól től langchain. ügynökök . format_scratchpad import format_log_to_str

tól től langchain import kerékagy

tól től langchain. ügynökök import inicializálás_ügynök , Eszköz

tól től langchain. ügynökök import AgentType

4. lépés: Nyelvi modellek készítése

A fenti könyvtárak beszerzése a folyamat során szükséges, mivel az OpenAI()-t használják a nyelvi modell konfigurálásához. A SerpAPIWrapper() metódus használatával konfigurálja a keresési változót, és állítsa be az ügynökhöz szükséges eszközöket az összes feladat elvégzéséhez:

llm = OpenAI ( hőfok = 0 )
keresés = SerpAPIWrapper ( )
eszközöket = [
Eszköz (
név = 'Köztes válasz' ,
func = keresés. fuss ,
leírás = 'hasznos, ha kérdezni kell a keresés során' ,
)
]

5. lépés: LangChain Expression Language használata

Az ügynök konfigurálásának megkezdése a LangChain Expression Language (LCEL) használatával a modell prompt változóba való betöltésével:

gyors = kerékagy. Húzni ( 'hwchase17/self-ask-with-search' )

Határozzon meg egy másik változót, amely végrehajtható a szöveg generálásának leállítására és a válaszok hosszának szabályozására:

llm_with_stop = llm. kötni ( állj meg = [ ' \n Köztes válasz:' ] )

Most állítsa be az ügynököket a Lambda használatával, amely egy eseményvezérelt kiszolgáló nélküli platform a kérdésekre adott válaszok generálásához. Ezenkívül konfigurálja a modell betanításához és teszteléséhez szükséges lépéseket az optimalizált eredmények eléréséhez a korábban konfigurált összetevők használatával:

ügynök = {
'bemenet' : lambda x: x [ 'bemenet' ] ,
'agent_scratchpad' : lambda x: format_log_to_str (
x [ 'intermediate_steps' ] ,
megfigyelési_előtag = ' \n Köztes válasz: ' ,
llm_prefix = '' ,
) ,
} | felszólítás | llm_with_stop | SelfAskOutputParser ( )

6. lépés: Az Agent Executor konfigurálása

A módszer tesztelése előtt egyszerűen importálja az AgentExecutor könyvtárat a LangChainből, hogy az ügynök reagálni fog:

tól től langchain. ügynökök import AgentExecutor

Határozza meg az agent_executor változót az AgentExecutor() metódus meghívásával és a komponensek argumentumaként:

ügynök_végrehajtó = AgentExecutor ( ügynök = ügynök , eszközöket = eszközöket , bőbeszédű = Igaz )

7. lépés: Az ügynök futtatása

Miután beállította az ügynök végrehajtóját, egyszerűen tesztelje a kérdést/prompt megadásával a bemeneti változóban:

ügynök_végrehajtó. hivatkozni ( { 'bemenet' : 'Ki a férfi US Open bajnoka?' } )

A fenti kód végrehajtása a US Open Champion nevével válaszolt a kimenetben, azaz Dominic Thiem:

8. lépés: Az Self-Ask Agent használata

Miután megkapta a választ az ügynöktől, használja a SELF_ASK_WITH_SEARCH ügynök a lekérdezéssel a run() metódusban:

self_sk_a_search = inicializálás_ügynök (
eszközöket , llm , ügynök = AgentType. SELF_ASK_WITH_SEARCH , bőbeszédű = Igaz
)
self_sk_a_search. fuss (
'Mi a szülővárosa Dominic Thiemnek, a US Open világbajnoknak?'
)

A következő képernyőkép azt mutatja, hogy az önkérő ügynök az egyes fontos kifejezésekre vonatkozó információkat kinyeri az adatkészletből. Miután összegyűjti a lekérdezéssel kapcsolatos összes információt, és megérti a kérdéseket, egyszerűen létrehozza a választ. Az ügynök által feltett kérdések a következők:

  • Ki az a Dominic Thiem?
  • Mi Dominic Thiem szülővárosa?

Miután megkapta a választ ezekre a kérdésekre, az ügynök létrehozta a választ az eredeti kérdésre, amely a következő: Wiener Neustadt, Ausztria ”:

Ennyi az önkérdés megvalósításának folyamata egy keresési lánccal a LangChain keretrendszer használatával.

Következtetés

Az önkérdés megvalósításához a kereséssel a LangChainben egyszerűen telepítse a szükséges modulokat, például a google-search-results, hogy megkapja az eredményeket az ügynöktől. Ezt követően állítsa be a környezetet az OpenAI- és SerpAPi-fiókok API-kulcsaival a folyamat megkezdéséhez. Konfigurálja az ügynököt, és állítsa össze a modellt az önkérő modellel, hogy tesztelje az AgentExecutor() metódussal.