Jak přidat vlastní typ paměti v LangChain?

Jak Pridat Vlastni Typ Pameti V Langchain



LangChain se používá ke konfiguraci/návrhu jazykových modelů nebo chatbotů, které mohou komunikovat s lidmi jako chat. Tyto chatové zprávy jsou propojeny pomocí řetězců, jak název LangChain napovídá, a uživatel je může také uložit do paměti. LangChain umožňuje vývojářům používat paměťové knihovny, které poskytují použití vestavěných tříd nebo přizpůsobení vlastní paměti.

Rychlý přehled

Tento příspěvek zobrazí:







Jak přidat vlastní typ paměti v LangChain



Závěr



Jak přidat vlastní typ paměti v LangChain?

Přidání přizpůsobeného typu paměti v LangChain umožňuje uživateli získat maximální výkon jako paměť. Uživatel si může nakonfigurovat typ paměti podle svých požadavků. Chcete-li přidat vlastní typ paměti v LangChain, jednoduše proveďte následující kroky:





Krok 1: Instalace frameworků

Nejprve nainstalujte framework LangChain, abyste mohli začít s procesem přidávání vlastního typu paměti:

pip install langchain

Spuštěním výše uvedeného příkazu v Python Notebooku se nainstalují závislosti pro LangChain, jak je zobrazeno v následujícím úryvku:



Nainstalujte modul OpenAI, abyste získali jeho knihovny, které lze použít ke konfiguraci LLM:

pip install openai

Tato příručka použije rámec spaCy k návrhu vlastního typu paměti v LangChain a k instalaci modulu se použije následující kód:

pip install space

Model spaCy používá hashovací tabulku k ukládání informací jako pozorování jako předchozí chatové zprávy. Následující kód se používá ke stažení velkého jazykového modelu nebo LLM z knihovny spaCy za účelem vytvoření pokročilého modelu NLP:

! python -m spacy ke stažení en_core_web_lg

Import “ vy ' a ' getpass ” knihovny jsou pro zadávání klíče API z účtu OpenAI do nastavit své prostředí :

import vy
import getpass

vy . přibližně [ 'OPENAI_API_KEY' ] = getpass . getpass ( 'Klíč OpenAI API:' )

Krok 2: Import knihoven

Dalším krokem je import požadovaných knihoven pro přizpůsobení typu paměti podle modelu chatu:

z langchain. schéma import Základní paměť

z langchain. řetězy import ConversationChain

z pydantický import Základní Model

z langchain. llms import OpenAI

z psaní na stroji import Seznam , Dict , Žádný

Import souboru „ prostorovost ” knihovna pro načtení “ en_core_web_lg „modelu a přiřaďte jej k „ nlp ” proměnná, protože se jedná o model zpracování přirozeného jazyka:

import prostorný

nlp = prostorný. zatížení ( 'en_core_web_lg' )

Krok 3: Vytvoření vlastní paměti

Poté jednoduše vytvořte vlastní paměť pomocí argumentů BaseMemory a BaseModel ve třídě Memory. Poté nakonfigurujte entity (shromážděné/uložené z dat), které lze uložit do paměti jako úplné informace nebo jako jednu jednotku. Paměť je nakonfigurována tak, aby obsahovala všechny entity z dokumentu, aby se optimalizoval výkon paměti a modelu:

třída SpacyEntityMemory ( Základní paměť , Základní Model ) :
''' Třída paměti pro ukládání informací o entitách'''
entity: diktát = { }
paměťový_klíč: str = 'entity'
def Průhledná ( ) :
. entity = { }
@ vlastnictví
def paměťové_proměnné ( ) - > Seznam [ str ] :
''' Inicializovat proměnné poskytnuté dotazu'''
vrátit se [ . paměťový_klíč ]
#definujte paměťové proměnné pomocí argumentů
def load_memory_variables ( , vstupy: Dict [ str , Žádný ] ) - > Dict [ str , str ] :
''' Volání proměnných pro paměť, tj. klíč entity'''
doc = nlp ( vstupy [ seznam ( vstupy. klíče ( ) ) [ 0 ] ] )
#configure entity pro uložení do paměti pro jednotlivou jednotku
entity = [
. entity [ str ( ent ) ] pro ent v doc. entů -li str ( ent ) v . entity
]
vrátit se { . paměťový_klíč : ' \n ' . připojit ( entity ) }
#define save_context() pro použití paměti
def uložit_kontext ( , vstupy: Dict [ str , Žádný ] , výstupy: Dict [ str , str ] ) - > Žádný :
'''Uložit pozorování z tohoto chatu do paměti'''
text = vstupy [ seznam ( vstupy. klíče ( ) ) [ 0 ] ]
doc = nlp ( text )
pro ent v doc. entů :
ent_str = str ( ent )
-li ent_str v . entity :
. entity [ ent_str ] + = F ' \n {text}'
jiný :
. entity [ ent_str ] = text

Krok 4: Konfigurace šablony výzvy

Poté jednoduše nakonfigurujte šablonu výzvy, která vysvětluje strukturu vstupu poskytnutého uživatelem/člověkem:

z langchain. vyzve . výzva import PromptTemplate

šablona = '''Následuje interakce mezi strojem a člověkem Říká, že neví Pokud stroj nezná odpověď Stroj (AI) poskytuje podrobnosti ze svého kontextu a pokud nerozumí odpovědi na jakoukoli otázku, prostě řekne promiň

Informace o entitě:

{entities}

Sdělení:

Člověk: {input}

AI:'''


výzva = PromptTemplate ( vstupní_proměnné = [ 'entity' , 'vstup' ] , šablona = šablona )

Krok 5: Testování modelu

Před testováním modelu jednoduše nakonfigurujte LLM pomocí metody OpenAI() a nastavte funkci ConversationChain() s argumenty:

llm = OpenAI ( teplota = 0 )

konverzace = ConversationChain (

llm = llm , výzva = výzva , podrobný = Skutečný , Paměť = SpacyEntityMemory ( )

)

Dejte modelu informace pomocí vstupního argumentu při volání metody forecast() s proměnnou konverzace:

konverzace. předpovědět ( vstup = „Harrison má rád strojové učení“ )

Výstup

Model absorboval informace a uložil je do paměti a také položil otázku související s informacemi pro pokračování v konverzaci:

Uživatel může odpovědět na otázku z modelu a přidat do paměti další informace nebo otestovat paměť položením otázky ohledně informací:

konverzace. předpovědět (

vstup = „Jaký je Harrisonův oblíbený předmět“

)

Model poskytuje výstup na základě předchozích informací a zobrazuje jej na obrazovce, jak ukazuje následující úryvek:

To je vše o přidání vlastního typu paměti v LangChain.

Závěr

Chcete-li přidat vlastní typ paměti v LangChain, jednoduše nainstalujte požadované moduly pro import knihoven pro vytvoření vlastní paměti. SpaCy je důležitá knihovna, která se v této příručce používá k přidání vlastní paměti pomocí svého modelu NLP. Poté nakonfigurujte vlastní paměť a šablonu výzvy, abyste získali strukturu rozhraní chatu. Jakmile je konfigurace hotová, jednoduše otestujte paměť modelu dotazem na informace týkající se uložených dat.