Gyors vázlat
Ez a bejegyzés a következőket fogja mutatni:
Egyéni memóriatípus hozzáadása a LangChainben
- Keretrendszerek telepítése
- Könyvtárak importálása
- Egyedi memória építése
- Prompt sablon konfigurálása
- A modell tesztelése
Hogyan lehet egyéni memóriatípust hozzáadni a LangChainhez?
Egy testreszabott memóriatípus hozzáadása a LangChain-hez lehetővé teszi a felhasználó számára, hogy memóriaként a legnagyobb teljesítményt érje el. A felhasználó saját igényei szerint konfigurálhatja a memória típusát. Egyéni memóriatípus hozzáadásához a LangChainben, egyszerűen hajtsa végre a következő lépéseket:
1. lépés: Keretrendszerek telepítése
Először telepítse a LangChain keretrendszert az egyéni memóriatípus hozzáadásának megkezdéséhez:
pip install langchainA fenti parancs futtatása a Python-jegyzetfüzetben telepíti a LangChain függőségeit a következő részletben látható módon:
Telepítse az OpenAI modult, hogy megkapja az LLM-ek konfigurálására használható könyvtárait:
pip install openai
Ez az útmutató a spaCy keretrendszert fogja használni a LangChain egyéni memóriatípusának megtervezéséhez, és a következő kódot használják a modul telepítéséhez:
pip install space
A spaCy modell a hash táblát használja az információk megfigyelésként történő tárolására, mint a korábbi chat üzeneteknél. A következő kóddal tölthető le a Large Language Model vagy az LLM a spaCy könyvtárból egy fejlett NLP-modell létrehozásához:
! python -m spacy letöltés en_core_web_lg
Importálás te ” és „ getpass ” könyvtárak az API-kulcs bevitelére szolgálnak az OpenAI fiókjából kialakítani a környezetét :
import teimport getpass
te . hozzávetőlegesen, körülbelül [ 'OPENAI_API_KEY' ] = getpass . getpass ( 'OpenAI API kulcs:' )
2. lépés: Könyvtárak importálása
A következő lépés a szükséges könyvtárak importálása a memóriatípus csevegési modell szerinti testreszabásához:
tól től langchain. séma import BaseMemorytól től langchain. láncok import Beszélgetési lánc
tól től pydantikus import BaseModel
tól től langchain. llms import OpenAI
tól től gépelés import Lista , Dict , Bármi
A ' borsos ' könyvtár a ' en_core_web_lg ” modellt, és rendelje hozzá a „ nlp ” változó, mivel ez a Natural Language Processing modell:
import borsosnlp = borsos. Betöltés ( 'en_core_web_lg' )
3. lépés: Egyéni memória létrehozása
Ezt követően egyszerűen építse fel az egyéni memóriát a Memory osztály BaseMemory és BaseModel argumentumainak használatával. Ezután konfigurálja az entitásokat (az adatokból gyűjtve/tárolva), amelyek teljes információként vagy egyetlen egységként tárolhatók a memóriában. A memória úgy van beállítva, hogy a dokumentum összes entitását tartalmazza a memória és a modell teljesítményének optimalizálása érdekében:
osztály SpaceEntityMemory ( BaseMemory , BaseModel ) :''' Memóriaosztály az entitásokkal kapcsolatos információk tárolására'''
entitások: diktálja = { }
memória_kulcs: str = 'entitások'
def egyértelmű ( maga ) :
maga . entitások = { }
@ ingatlan
def memória_változók ( maga ) - > Lista [ str ] :
''' Inicializálja a lekérdezéshez megadott változókat'''
Visszatérés [ maga . memória_kulcs ]
#definiálja a memóriaváltozókat az argumentumok segítségével
def load_memory_variables ( maga , bemenetek: Dict [ str , Bármi ] ) - > Dict [ str , str ] :
''' Hívja meg a memória változóit, azaz az entitáskulcsot'''
doc = nlp ( bemenetek [ lista ( bemenetek. kulcsok ( ) ) [ 0 ] ] )
#konfigurálja a memóriában tárolandó entitásokat az egyes egységekhez
entitások = [
maga . entitások [ str ( ent ) ] számára ent ban ben doc. ent ha str ( ent ) ban ben maga . entitások
]
Visszatérés { maga . memória_kulcs : ' \n ' . csatlakozik ( entitások ) }
#define a save_context() a memória használatához
def save_context ( maga , bemenetek: Dict [ str , Bármi ] , kimenetek: Dict [ str , str ] ) - > Egyik sem :
'''A csevegés áruházi megfigyelése a memóriába'''
szöveg = bemenetek [ lista ( bemenetek. kulcsok ( ) ) [ 0 ] ]
doc = nlp ( szöveg )
számára ent ban ben doc. ent :
ent_str = str ( ent )
ha ent_str ban ben maga . entitások :
maga . entitások [ ent_str ] + = f ' \n {szöveg}'
más :
maga . entitások [ ent_str ] = szöveg
4. lépés: A prompt sablon konfigurálása
Ezután egyszerűen állítsa be a prompt sablont, amely elmagyarázza a felhasználó/ember által megadott bemenet szerkezetét:
tól től langchain. felszólítja . gyors import PromptTemplatesablon = '''A következő interakció egy gép és egy ember között Azt mondja, hogy nem tudja Ha a gép nem tudja a választ A gép (AI) részleteket közöl a kontextusából, és ha nem érti a választ bármely kérdésre csak annyit mond, hogy elnézést
Az entitás adatai:
{entities}
Kommunikáció:
Ember: {input}
AI: '''
gyors = PromptTemplate ( bemeneti_változók = [ 'entitások' , 'bemenet' ] , sablon = sablon )
5. lépés: A modell tesztelése
A modell tesztelése előtt egyszerűen konfigurálja az LLM-et az OpenAI() metódussal, és állítsa be a ConversationChain() függvényt argumentumokkal:
llm = OpenAI ( hőfok = 0 )beszélgetés = Beszélgetési lánc (
llm = llm , gyors = gyors , bőbeszédű = Igaz , memória = SpaceEntityMemory ( )
)
Adjon információt a modellnek a bemeneti argumentum használatával, miközben meghívja a ennusta() metódust a beszélgetési változóval:
beszélgetés. megjósolni ( bemenet = 'Harrison szereti a gépi tanulást' )Kimenet
A modell az információt magába szívta és eltárolta a memóriában, valamint feltette az információval kapcsolatos kérdést a beszélgetés folytatásához:
A felhasználó válaszolhat a modell kérdésére, hogy további információkat adjon a memóriához, vagy tesztelheti a memóriát az információra vonatkozó kérdés feltevésével:
beszélgetés. megjósolni (bemenet = 'Mi Harrison kedvenc témája'
)
A modell az előző információk alapján adja meg a kimenetet, és megjeleníti a képernyőn, ahogy az alábbi részlet mutatja:
Ez minden arról szól, hogy egyéni memóriatípust adjunk hozzá a LangChainhez.
Következtetés
Egyéni memóriatípus hozzáadásához a LangChainben egyszerűen telepítse a szükséges modulokat a könyvtárak importálásához az egyéni memória felépítéséhez. A spaCy az a fontos könyvtár, amelyet ebben az útmutatóban használunk egyéni memória hozzáadásához az NLP-modell használatával. Ezt követően konfigurálja az egyéni memóriát és a prompt sablont, hogy megadja a csevegési felület szerkezetét. A konfiguráció befejezése után egyszerűen tesztelje a modell memóriáját a tárolt adatokkal kapcsolatos információk kérésével.