Rýchly prehľad
V tomto príspevku sa zobrazí:
Ako pridať vlastný typ pamäte v LangChain
- Inštalácia rámcov
- Importovanie knižníc
- Budovanie vlastnej pamäte
- Konfigurácia šablóny výzvy
- Testovanie modelu
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 langchainSpustenie 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ť vyimportovať 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.