Com afegir memòria a una cadena amb diverses entrades a LangChain?

Com Afegir Memoria A Una Cadena Amb Diverses Entrades A Langchain



Els chatbots i els grans models de llenguatge estan sent utilitzats per milions a tot el món i aquests models poden generar text sota comanda. LangChain és un dels marcs més efectius i eficients que permeten als desenvolupadors crear aquests models i robots. L'usuari dóna sol·licituds o consultes com a entrada i el model entén l'ordre abans de generar el text que sembla més relacionat o com l'ordre.

Aquesta guia il·lustrarà el procés d'afegir memòria a una cadena amb múltiples entrades a LangChain.

Com afegir memòria a una cadena amb diverses entrades a LangChain?

La memòria es pot afegir als LLM o chatbots per emmagatzemar els missatges o dades més recents perquè el model pugui entendre el context de l'ordre. Per aprendre el procés d'afegir memòria a una cadena amb múltiples entrades a LangChain, simplement seguiu els passos següents:







Pas 1: instal·leu els mòduls

Primer, instal·leu el marc LangChain, ja que té una varietat de dependències per construir models de llenguatge:



pip install langchain



Instal·leu el chromadb per emmagatzemar les dades utilitzades per la memòria a la botiga de vectors Chroma:





pip instal·lar chromadb

Tiktoken és el tokenitzador utilitzat per crear petits trossos de documents grans perquè es puguin gestionar fàcilment:



pip install tiktoken

OpenAI és el mòdul que es pot utilitzar per construir cadenes i LLM mitjançant el mètode OpenAI():

pip install openai

Pas 2: Configura l'entorn i puja les dades

El següent pas després d'instal·lar tots els mòduls necessaris per a aquest procés és configurant l'entorn utilitzant la clau API del compte OpenAI:

importar vostè
importar getpass

vostè . aproximadament [ 'OPENAI_API_KEY' ] = getpass . getpass ( 'Clau de l'API OpenAI:' )

Carregueu els documents mitjançant la biblioteca de fitxers per construir les cadenes al marc LangChain:

des de Google. ET AL importar Fitxers

carregat = Fitxers. carregar ( )

Pas 3: importa les biblioteques

Un cop el document s'hagi carregat correctament, simplement importeu les biblioteques necessàries des del mòdul Langchain:

des de langchain. incrustacions . oberta importar OpenAIEmbeddings

des de langchain. incrustacions . cohereix importar CohereEmbeddings

des de langchain. divisor_text importar CharacterTextSplitter

des de langchain. botigues de vectors . cerca_vector_elastic importar ElasticVectorSearch

des de langchain. botigues de vectors importar Croma

des de langchain. docstore . document importar Document

Pas 4: Creació de memòria amb la base de dades Chroma

Ara, comenceu a construir l'espai vectorial per emmagatzemar les incrustacions i els testimonis del document penjat anteriorment:

amb obert ( 'estat_de_la_unió.txt' ) com f:
estat_de_la_unió = f. llegir ( )
divisor_text = CharacterTextSplitter ( mida_part = 1000 , chunk_overlap = 0 )
textos = divisor_text. dividir_text ( estat_de_la_unió )

incrustacions = OpenAIEmbeddings ( )

Configureu la base de dades Chroma per emmagatzemar el text i les incrustacions del document:

docsearch = Croma. de_textos (

textos , incrustacions , metadades = [ { 'font' : i } per i en rang ( només ( textos ) ) ]

)

Proveu la memòria demanant l'ordre a la variable de consulta i, a continuació, executeu el mètode similarity_search():

consulta = 'Quan es va formar l'OTAN'

docs = docsearch. cerca de similitud ( consulta )

Pas 5: Configuració de la plantilla de sol·licitud

Aquest pas explica el procés de configuració de la plantilla per a les sol·licituds important les biblioteques següents:

des de langchain. cadenes . preguntes_respostes importar load_qa_chain

des de langchain. llms importar OpenAI

des de langchain. indicacions importar PromptTemplate

des de langchain. memòria importar ConversationBufferMemory

Després d'això, simplement configureu la plantilla o l'estructura per a la consulta i executeu la cadena un cop s'afegeixi la memòria al model:

plantilla = '''Ets un model parlant amb un humà
Tenint en compte els fragments extrets d'un document llarg i d'una pregunta, creeu una resposta final

{context}

{hist}
Humà: {entrada}
Chatbot:'''


prompte = PromptTemplate (
variables_entrada = [ 'hist' , 'entrada' , 'context' ] , plantilla = plantilla
)
memòria = ConversationBufferMemory ( clau_memoria = 'hist' , clau_entrada = 'entrada' )
cadena = load_qa_chain (
OpenAI ( temperatura = 0 ) , tipus_cadena = 'coses' , memòria = memòria , prompte = prompte
)

Pas 6: prova de la memòria

Aquí és el moment de provar el model fent la pregunta mitjançant la variable de consulta i després executant el mètode chain() amb els seus paràmetres:

consulta = 'Quan es va formar l'OTAN'

cadena ( { 'documents_entrada' : docs , 'entrada' : consulta } , retorn_només_sortides = És cert )

Imprimiu les dades emmagatzemades a la memòria buffer a mesura que la resposta donada pel model s'emmagatzema recentment a la memòria:

imprimir ( cadena. memòria . tampó )

Es tracta d'afegir memòria a una cadena amb múltiples entrades a LangChain.

Conclusió

Per afegir memòria a una cadena amb múltiples entrades a LangChain, només cal que instal·leu els mòduls i la botiga de vectors per emmagatzemar el text i les incrustacions. Després d'això, carregueu les dades/documents des del sistema local i, a continuació, importeu les biblioteques necessàries per emmagatzemar les dades per crear la memòria per al LLM. Configureu la plantilla de sol·licitud per emmagatzemar els missatges més recents a la memòria intermèdia i, a continuació, envieu un missatge de text a la cadena. Aquesta guia ha elaborat el procés d'afegir memòria a una cadena amb múltiples entrades a LangChain.