Esboço rápido
Esta postagem mostrará:
Como adicionar um tipo de memória personalizado em LangChain
- Instalando Estruturas
- Importando Bibliotecas
- Construindo memória personalizada
- Configurando o modelo de prompt
- Testando o modelo
Como adicionar um tipo de memória personalizado no LangChain?
Adicionar um tipo de memória personalizado no LangChain permite ao usuário obter o máximo desempenho da memória. O usuário pode configurar o tipo de memória de acordo com suas necessidades. Para adicionar um tipo de memória personalizado no LangChain, basta seguir as seguintes etapas:
Etapa 1: instalação de estruturas
Primeiro, instale a estrutura LangChain para iniciar o processo de adição de um tipo de memória personalizado:
pip instalar langchainA execução do comando acima no Python Notebook instalará as dependências do LangChain conforme exibido no seguinte trecho:
Instale o módulo OpenAI para obter suas bibliotecas que podem ser usadas para configurar os LLMs:
pip instalar openai
Este guia usará a estrutura spaCy para projetar o tipo de memória personalizado no LangChain e o seguinte código será usado para instalar o módulo:
pip instalar espaçoso
O modelo spaCy usa a tabela hash para armazenar as informações como observação, como mensagens de bate-papo anteriores. O código a seguir é usado para baixar o Large Language Model ou LLM da biblioteca spaCy para construir um modelo de PNL avançado:
! python -m download espacial en_core_web_lg
Importando “ os ' e ' Obter passagem ”as bibliotecas servem para inserir a chave API da conta do OpenAI para configurar seu ambiente :
importar osimportar Obter passagem
os . aproximadamente [ 'OPENAI_API_KEY' ] = Obter passagem . Obter passagem ( 'Chave de API OpenAI:' )
Passo 2: Importando Bibliotecas
O próximo passo é importar as bibliotecas necessárias para customizar o tipo de memória de acordo com o modelo de chat:
de cadeia longa. esquema importar Memória Basede cadeia longa. correntes importar Cadeia de conversação
de pydantico importar Modelo Base
de cadeia longa. llms importar OpenAI
de digitando importar Lista , Ditado , Qualquer
Importando o “ spaCy ”biblioteca para carregar o“ en_core_web_lg ”Modelo e atribua-o ao“ PNL ”variável, pois é o modelo de Processamento de Linguagem Natural:
importar espaçosoPNL = espaçoso. carregar ( 'en_core_web_lg' )
Etapa 3: Construindo Memória Personalizada
Depois disso, basta construir a memória customizada usando os argumentos BaseMemory e BaseModel na classe Memory. Em seguida, configure entidades (coletadas/armazenadas a partir dos dados) que podem ser armazenadas na memória como informações completas ou como uma unidade única. A memória é configurada para conter todas as entidades do documento para otimizar o desempenho da memória e do modelo:
aula Memória SpacyEntity ( Memória Base , Modelo Base ) :''' Classe de memória para armazenar informações sobre entidades'''
entidades: ditar = { }
chave_de_memória: str = 'entidades'
definição claro ( auto ) :
auto . entidades = { }
@ propriedade
definição variáveis_de_memória ( auto ) - > Lista [ str ] :
''' Inicialize as variáveis fornecidas para a consulta'''
retornar [ auto . chave_de_memória ]
#define as variáveis de memória usando os argumentos
definição carregar_memória_variáveis ( auto , entradas: ditado [ str , Qualquer ] ) - > Ditado [ str , str ] :
''' Chame as variáveis para memória, ou seja, chave de entidade'''
documento = PNL ( entradas [ lista ( entradas. chaves ( ) ) [ 0 ] ] )
#configure entidades a serem armazenadas na memória de uma unidade individual
entidades = [
auto . entidades [ str ( ent ) ] para ent em doutor. entes se str ( ent ) em auto . entidades
]
retornar { auto . chave_de_memória : ' \n ' . juntar ( entidades ) }
#define o save_context() para usar a memória
definição salvar_contexto ( auto , entradas: ditado [ str , Qualquer ] , saídas: ditado [ str , str ] ) - > Nenhum :
'''Armazenar a observação deste bate-papo na memória'''
texto = entradas [ lista ( entradas. chaves ( ) ) [ 0 ] ]
documento = PNL ( texto )
para ent em doutor. entes :
ent_str = str ( ent )
se ent_str em auto . entidades :
auto . entidades [ ent_str ] + = f ' \n {texto}'
outro :
auto . entidades [ ent_str ] = texto
Etapa 4: configurar o modelo de prompt
Depois disso, basta configurar o modelo de prompt que explica a estrutura da entrada fornecida pelo usuário/humano:
de cadeia longa. Comandos . incitar importar Modelo de promptmodelo = '''O que se segue é uma interação entre uma máquina e um humano Ele diz que não sabe Se a máquina não sabe a resposta A máquina (IA) fornece detalhes de seu contexto e se não entende a resposta a qualquer pergunta, ela simplesmente pede desculpas
Informações da entidade:
{entidades}
Comunicação:
Humano: {entrada}
IA:'''
incitar = Modelo de prompt ( variáveis_de_entrada = [ 'entidades' , 'entrada' ] , modelo = modelo )
Etapa 5: Testando o Modelo
Antes de testar o modelo, basta configurar o LLM usando o método OpenAI() e configurar a função ConversationChain() com argumentos:
llm = OpenAI ( temperatura = 0 )conversação = Cadeia de conversação (
llm = llm , incitar = incitar , detalhado = Verdadeiro , memória = Memória SpacyEntity ( )
)
Forneça informações ao modelo usando o argumento de entrada enquanto chama o método predizer() com a variável de conversação:
conversação. prever ( entrada = 'Harrison gosta de aprendizado de máquina' )Saída
A modelo absorveu as informações e as armazenou na memória e também colocou a questão relacionada às informações para prosseguir a conversa:
O usuário pode responder à pergunta do modelo para adicionar mais informações à memória ou testar a memória fazendo a pergunta sobre as informações:
conversação. prever (entrada = 'Qual é a matéria favorita do Harrison'
)
O modelo fornece a saída com base nas informações anteriores e a exibe na tela como mostra o seguinte trecho:
Trata-se de adicionar um tipo de memória personalizado no LangChain.
Conclusão
Para adicionar um tipo de memória customizada no LangChain, basta instalar os módulos necessários para importar bibliotecas para construir a memória customizada. SpaCy é a importante biblioteca usada neste guia para adicionar uma memória customizada usando seu modelo de PNL. Depois disso, configure a memória customizada e o modelo de prompt para fornecer a estrutura da interface de chat. Feita a configuração, basta testar a memória do modelo solicitando informações relacionadas aos dados armazenados.