Ako pridať vlastný typ pamäte v LangChain?

Ako Pridat Vlastny Typ Pamate V Langchain



LangChain sa používa na konfiguráciu/návrh jazykových modelov alebo chatbotov, ktoré môžu komunikovať s ľuďmi ako chat. Tieto chatové správy sú prepojené cez reťazce, ako naznačuje názov LangChain a používateľ si ich môže uložiť aj do pamäte. LangChain umožňuje vývojárom používať pamäťové knižnice, ktoré poskytujú použitie vstavaných tried alebo prispôsobenie ich vlastnej pamäte.

Rýchly prehľad

V tomto príspevku sa zobrazí:







Ako pridať vlastný typ pamäte v LangChain



Záver



Ako pridať vlastný typ pamäte v LangChain?

Pridanie prispôsobeného typu pamäte do LangChain umožňuje používateľovi získať maximálny výkon ako pamäť. Užívateľ si môže nakonfigurovať typ pamäte podľa svojich požiadaviek. Ak chcete pridať vlastný typ pamäte v LangChain, jednoducho postupujte podľa nasledujúcich krokov:





Krok 1: Inštalácia rámcov

Najprv nainštalujte rámec LangChain, aby ste mohli začať s procesom pridávania vlastného typu pamäte:

pip install langchain

Spustenie vyššie uvedeného príkazu v Python Notebook nainštaluje závislosti pre LangChain, ako je zobrazené v nasledujúcom úryvku:



Nainštalujte modul OpenAI, aby ste získali jeho knižnice, ktoré možno použiť na konfiguráciu LLM:

pip install openai

Táto príručka použije rámec spaCy na návrh vlastného typu pamäte v LangChain a na inštaláciu modulu sa použije nasledujúci kód:

pip install space

Model spaCy používa hašovaciu tabuľku na ukladanie informácií ako pozorovanie ako predchádzajúce chatové správy. Nasledujúci kód sa používa na stiahnutie modelu veľkého jazyka alebo LLM z knižnice spaCy na vytvorenie pokročilého modelu NLP:

! python -m spacy na stiahnutie en_core_web_lg

Importuje sa “ vy “ a „ getpass ” knižnice slúžia na zadávanie kľúča API z účtu OpenAI do nastaviť svoje prostredie :

importovať vy
importovať getpass

vy . približne [ 'OPENAI_API_KEY' ] = getpass . getpass ( 'OpenAI API Key:' )

Krok 2: Importovanie knižníc

Ďalším krokom je import požadovaných knižníc na prispôsobenie typu pamäte podľa modelu chatu:

od langchain. schému importovať Základná pamäť

od langchain. reťaze importovať ConversationChain

od pydantický importovať BaseModel

od langchain. llms importovať OpenAI

od písanie na stroji importovať Zoznam , Dikt , akýkoľvek

Importuje sa „ spaCy ” knižnica na načítanie “ en_core_web_lg “ model a priraďte ho k “ nlp ” premenná, keďže ide o model spracovania prirodzeného jazyka:

importovať priestorový

nlp = priestorový. naložiť ( 'en_core_web_lg' )

Krok 3: Vytvorenie vlastnej pamäte

Potom jednoducho vytvorte vlastnú pamäť pomocou argumentov BaseMemory a BaseModel v triede Memory. Potom nakonfigurujte entity (zhromaždené/uložené z údajov), ktoré môžu byť uložené v pamäti ako úplné informácie alebo ako jedna jednotka. Pamäť je nakonfigurovaná tak, aby obsahovala všetky entity z dokumentu, aby sa optimalizoval výkon pamäte a modelu:

trieda SpaceEntityMemory ( Základná pamäť , BaseModel ) :
''' Trieda pamäte na ukladanie informácií o entitách'''
entity: diktát = { }
pamäťový_kľúč: str = 'entity'
def jasný ( seba ) :
seba . subjektov = { }
@ nehnuteľnosť
def pamäťové_premenné ( seba ) - > Zoznam [ str ] :
''' Inicializujte premenné poskytnuté pre dotaz'''
vrátiť [ seba . pamäťový_kľúč ]
#definujte pamäťové premenné pomocou argumentov
def load_memory_variables ( seba , vstupy: Dict [ str , akýkoľvek ] ) - > Dikt [ str , str ] :
''' Volanie premenných pre pamäť, t. j. kľúč entity'''
doc = nlp ( vstupy [ zoznam ( vstupy. kľúče ( ) ) [ 0 ] ] )
#configure entity, ktoré sa majú uložiť do pamäte pre individuálnu jednotku
subjektov = [
seba . subjektov [ str ( ent ) ] pre ent v doc. entov ak str ( ent ) v seba . subjektov
]
vrátiť { seba . pamäťový_kľúč : ' \n ' . pripojiť sa ( subjektov ) }
#define save_context() na použitie pamäte
def save_context ( seba , vstupy: Dict [ str , akýkoľvek ] , výstupy: Dict [ str , str ] ) - > žiadne :
'''Uložiť pozorovanie z tohto rozhovoru do pamäte'''
text = vstupy [ zoznam ( vstupy. kľúče ( ) ) [ 0 ] ]
doc = nlp ( text )
pre ent v doc. entov :
ent_str = str ( ent )
ak ent_str v seba . subjektov :
seba . subjektov [ ent_str ] + = f ' \n {text}'
inak :
seba . subjektov [ ent_str ] = text

Krok 4: Konfigurácia šablóny výzvy

Potom jednoducho nakonfigurujte šablónu výzvy, ktorá vysvetľuje štruktúru vstupu poskytnutého používateľom/človekom:

od langchain. výzvy . výzva importovať PromptTemplate

šablóna = '''Nasleduje interakcia medzi strojom a človekom Hovorí, že nevie Ak stroj nepozná odpoveď Stroj (AI) poskytuje podrobnosti zo svojho kontextu a ak nerozumie odpovedi na akúkoľvek otázku, povie len prepáč

Informácie o entite:

{entities}

komunikácia:

Človek: {input}

AI:'''


výzva = PromptTemplate ( vstupné_premenné = [ 'entity' , 'vstup' ] , šablóna = šablóna )

Krok 5: Testovanie modelu

Pred testovaním modelu jednoducho nakonfigurujte LLM pomocou metódy OpenAI() a nastavte funkciu ConversationChain() s argumentmi:

llm = OpenAI ( teplota = 0 )

rozhovor = ConversationChain (

llm = llm , výzva = výzva , podrobný = Pravda , Pamäť = SpaceEntityMemory ( )

)

Poskytnite informácie modelu pomocou vstupného argumentu pri volaní metódy forecast() s premennou konverzácie:

rozhovor. predpovedať ( vstup = „Harrison má rád strojové učenie“ )

Výkon

Model absorboval informácie a uložil ich do pamäte a tiež položil otázku súvisiacu s informáciami, aby mohol pokračovať v konverzácii:

Používateľ môže odpovedať na otázku z modelu a pridať do pamäte ďalšie informácie alebo otestovať pamäť položením otázky týkajúcej sa informácií:

rozhovor. predpovedať (

vstup = 'Aký je Harrisonov obľúbený predmet?'

)

Model poskytuje výstup na základe predchádzajúcich informácií a zobrazuje ho na obrazovke, ako ukazuje nasledujúci úryvok:

To je všetko o pridaní vlastného typu pamäte v LangChain.

Záver

Ak chcete do LangChain pridať vlastný typ pamäte, jednoducho nainštalujte požadované moduly na importovanie knižníc na vytvorenie vlastnej pamäte. SpaCy je dôležitá knižnica, ktorá sa v tejto príručke používa na pridanie vlastnej pamäte pomocou modelu NLP. Potom nakonfigurujte vlastnú pamäť a šablónu výzvy, aby ste získali štruktúru rozhrania chatu. Po dokončení konfigurácie jednoducho otestujte pamäť modelu požiadaním o informácie týkajúce sa uložených údajov.