Hoe geheugen toevoegen aan een keten met meerdere invoer in LangChain?

Hoe Geheugen Toevoegen Aan Een Keten Met Meerdere Invoer In Langchain



Chatbots en grote taalmodellen worden door miljoenen mensen over de hele wereld gebruikt en deze modellen kunnen op commando tekst genereren. LangChain is een van de meest effectieve en efficiënte raamwerken waarmee ontwikkelaars dergelijke modellen en bots kunnen bouwen. De gebruiker geeft aanwijzingen of vragen als invoer en het model begrijpt de opdracht voordat de tekst wordt gegenereerd die het meest verwant lijkt of op de opdracht lijkt.

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 Jij
importeren 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 bestanden

geü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-inbedding

van 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_chain

van 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 mens
Stel 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.