Deze handleiding illustreert het proces van het toevoegen van geheugen aan een keten met meerdere invoer in LangChain.
Hoe geheugen toevoegen aan een keten met meerdere invoer in LangChain?
Het geheugen kan worden toegevoegd aan de LLM's of chatbots om de meest recente berichten of gegevens op te slaan, zodat het model de context van de opdracht kan begrijpen. Om het proces van het toevoegen van geheugen aan een keten met meerdere invoer in LangChain te leren, doorloopt u eenvoudigweg de volgende stappen:
Stap 1: Modules installeren
Installeer eerst het LangChain-framework, omdat het verschillende afhankelijkheden heeft om taalmodellen te bouwen:
pip installeer langchain
Installeer de chromadb om de gegevens die door het geheugen worden gebruikt op te slaan in de Chroma-vectoropslag:
pip installeer chromadb
Tiktoken is de tokenizer die wordt gebruikt om kleine stukjes van grote documenten te maken, zodat ze gemakkelijk kunnen worden beheerd:
pip installeer tiktoken
OpenAI is de module die kan worden gebruikt om ketens en LLM's te bouwen met behulp van de OpenAI()-methode:
pip installeer openai
Stap 2: Omgeving instellen en gegevens uploaden
De volgende stap na het installeren van alle benodigde modules voor dit proces is het opzetten van de omgeving met behulp van de API-sleutel van het OpenAI-account:
importeren Jijimporteren Krijg een pas
Jij . ongeveer [ 'OPENAI_API_KEY' ] = Krijg een pas . Krijg een pas ( 'OpenAI API-sleutel:' )
Upload de documenten met behulp van de bestandsbibliotheek om de ketens in het LangChain-framework te bouwen:
van googlen. EN AL importeren bestandengeüpload = bestanden. uploaden ( )
Stap 3: Bibliotheken importeren
Zodra het document succesvol is geüpload, importeert u eenvoudig de vereiste bibliotheken uit de Langchain-module:
van langketen. inbedding . openai importeren OpenAIE-inbeddingvan langketen. inbedding . samenhangen importeren Cohere-inbedding
van langketen. tekst_splitter importeren CharacterTextSplitter
van langketen. vectorwinkels . elastische_vector_search importeren ElasticVectorSearch
van langketen. vectorwinkels importeren Chroma
van langketen. docstore . document importeren Document
Stap 4: Geheugen opbouwen met behulp van de Chroma-database
Begin nu met het bouwen van de vectorruimte om de insluitingen en tokens van het eerder geüploade document op te slaan:
met open ( 'staat_van_de_union.txt' ) als F:staat_van_de_unie = F. lezen ( )
tekst_splitter = CharacterTextSplitter ( formaat van een blokje = 1000 , chunk_overlap = 0 )
teksten = tekst_splitter. gesplitste_tekst ( staat_van_de_unie )
inbedding = OpenAIE-inbedding ( )
Configureer de Chroma-database voor het opslaan van de tekst en insluitingen uit het document:
doczoeken = Chroma. uit_teksten (teksten , inbedding , metagegevens = [ { 'bron' : i } voor i in bereik ( alleen ( teksten ) ) ]
)
Test het geheugen door de opdracht in de queryvariabele te vragen en voer vervolgens de methode gelijkenis_search() uit:
vraag = 'Wanneer werd de NAVO gevormd'documenten = doczoeken. gelijkenis_zoeken ( vraag )
Stap 5: Promptsjabloon configureren
In deze stap wordt het proces uitgelegd van het configureren van de sjabloon voor de aanwijzingen door de volgende bibliotheken te importeren:
van langketen. kettingen . vraag_antwoord importeren laad_qa_chainvan langketen. llms importeren Open AI
van langketen. aanwijzingen importeren Promptsjabloon
van langketen. geheugen importeren ConversatieBufferGeheugen
Configureer daarna eenvoudigweg de sjabloon of structuur voor de query en voer de keten uit zodra het geheugen aan het model is toegevoegd:
sjabloon = '''Je bent een model en praat met een mensStel een definitief antwoord op basis van de stukjes die uit een lang document zijn gehaald en een vraag
{context}
{geschiedenis}
Mens: {invoer}
Chatbot:'''
snel = Promptsjabloon (
invoervariabelen = [ 'geschiedenis' , 'invoer' , 'context' ] , sjabloon = sjabloon
)
geheugen = ConversatieBufferGeheugen ( geheugen_sleutel = 'geschiedenis' , invoer_sleutel = 'invoer' )
ketting = laad_qa_chain (
OpenAI ( temperatuur = 0 ) , kettingtype = 'spullen' , geheugen = geheugen , snel = snel
)
Stap 6: Het geheugen testen
Dit is het moment om het model te testen door de vraag te stellen met behulp van de queryvariabele en vervolgens de chain() -methode met zijn parameters uit te voeren:
vraag = 'Wanneer werd de NAVO gevormd'ketting ( { 'invoerdocumenten' : documenten , 'invoer' : vraag } , return_only_outputs = WAAR )
Druk de gegevens af die zijn opgeslagen in het buffergeheugen, aangezien het antwoord van het model recentelijk in het geheugen is opgeslagen:
afdrukken ( ketting. geheugen . buffer )
Dat gaat allemaal over het toevoegen van geheugen aan een keten met meerdere ingangen in LangChain.
Conclusie
Om geheugen toe te voegen aan een keten met meerdere ingangen in LangChain, installeert u eenvoudigweg de modules en de vectoropslag om de tekst en insluitingen op te slaan. Upload daarna de gegevens/documenten vanaf het lokale systeem en importeer vervolgens de vereiste bibliotheken voor het opslaan van de gegevens om het geheugen voor de LLM op te bouwen. Configureer de promptsjabloon om de meest recente berichten in het buffergeheugen op te slaan en stuur vervolgens een sms naar de keten. In deze handleiding wordt dieper ingegaan op het proces van het toevoegen van geheugen aan een keten met meerdere inputs in LangChain.