Rychlý přehled
Tento příspěvek zobrazí:
Jak přidat vlastní typ paměti v LangChain
- Instalace frameworků
- Import knihoven
- Vytváření vlastní paměti
- Konfigurace šablony výzvy
- Testování modelu
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 langchainSpuš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 vyimport 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á ( já ) :
já . entity = { }
@ vlastnictví
def paměťové_proměnné ( já ) - > Seznam [ str ] :
''' Inicializovat proměnné poskytnuté dotazu'''
vrátit se [ já . paměťový_klíč ]
#definujte paměťové proměnné pomocí argumentů
def load_memory_variables ( já , 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 = [
já . entity [ str ( ent ) ] pro ent v doc. entů -li str ( ent ) v já . entity
]
vrátit se { já . paměťový_klíč : ' \n ' . připojit ( entity ) }
#define save_context() pro použití paměti
def uložit_kontext ( já , 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 já . entity :
já . entity [ ent_str ] + = F ' \n {text}'
jiný :
já . 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.