Como adicionar memória ao agente OpenAI Functions em LangChain?

Como Adicionar Memoria Ao Agente Openai Functions Em Langchain



LangChain é a estrutura que contém dependências para a construção de Large Language Models ou LLMs. Ele também fornece as ferramentas para construir os agentes para executar todas as etapas intermediárias, desde obter a consulta do usuário até obter sua resposta. OpenAI é um ambiente que fornece resultados legíveis e estruturados da Internet usando o “resultados de pesquisa do Google” módulo.

Esboço rápido

Esta postagem irá demonstrar o seguinte:

Como adicionar memória ao agente OpenAI Functions em LangChain?

OpenAI é uma organização de Inteligência Artificial (IA) formada em 2015 e no início era uma organização sem fins lucrativos. A Microsoft tem investido muita fortuna desde 2020, à medida que o Processamento de Linguagem Natural (PNL) com IA vem crescendo com chatbots e modelos de linguagem.







A construção de agentes OpenAI permite que os desenvolvedores obtenham resultados mais legíveis e diretos da Internet. Adicionar memória aos agentes permite que eles entendam melhor o contexto do chat e também armazenem as conversas anteriores em sua memória. Para aprender o processo de adição de memória ao agente de funções OpenAI em LangChain, basta seguir as seguintes etapas:



Etapa 1: instalação de estruturas

Primeiro de tudo, instale as dependências LangChain do “Langchain-experimental” framework usando o seguinte código:



pip instalar langchain - experimental





Instale o “resultados de pesquisa do Google” módulo para obter os resultados da pesquisa do servidor do Google:

pip instalar google - procurar - resultados



Além disso, instale o módulo OpenAI que pode ser usado para construir os modelos de linguagem no LangChain:

pip instalar openai

Passo 2: Configurando Ambientes

Depois de obter os módulos, configure os ambientes usando as chaves API do OpenAI e SerpAPI contas:

importar os
importar Obter passagem

os. aproximadamente [ 'OPENAI_API_KEY' ] = Obter passagem. Obter passagem ( 'Chave de API OpenAI:' )
os. aproximadamente [ 'SERPAPI_API_KEY' ] = Obter passagem. Obter passagem ( 'Chave de API Serpapi:' )

Execute o código acima para inserir as chaves API para acessar o ambiente e pressione Enter para confirmar:

Passo 3: Importando Bibliotecas

Agora que a configuração foi concluída, use as dependências instaladas do LangChain para importar as bibliotecas necessárias para construir a memória e os agentes:

de langchain. correntes importar LMMathChain
de langchain. llms importar OpenAI
#get biblioteca para pesquisar no Google pela internet
de langchain. Serviços de utilidade pública importar SerpAPIWrapper
de langchain. Serviços de utilidade pública importar Banco de dados SQL
de langchain_experimental. SQL importar SQLDatabaseChain
#get biblioteca para construir ferramentas para inicializando o agente
de langchain. agentes importar Tipo de agente , Ferramenta , agente_de_inicialização
de langchain. chat_models importar ChatOpenAI

Etapa 4: Construindo Banco de Dados

Para prosseguir com este guia, precisamos construir o banco de dados e conectar-nos ao agente para extrair respostas dele. Para construir o banco de dados, é necessário baixar o SQLite usando este guia e confirme a instalação usando o seguinte comando:

sqlite3

Executando o comando acima no Terminal do Windows exibe a versão instalada do SQLite (3.43.2):

Depois disso, basta acessar o diretório do seu computador onde o banco de dados será construído e armazenado:

CD Área de trabalho
cd meudb
sqlite3 Chinook. banco de dados

O usuário pode simplesmente baixar o conteúdo do banco de dados deste link no diretório e execute o seguinte comando para construir o banco de dados:

. ler Chinook_Sqlite. SQL
SELECIONAR * DO LIMITE DO Artista 10 ;

O banco de dados foi construído com sucesso e o usuário pode pesquisar dados dele usando diferentes consultas:

Etapa 5: upload do banco de dados

Depois que o banco de dados for construído com sucesso, carregue o “.db” arquivo para o Google Collaboratory usando o seguinte código:

do Google. ET AL importar arquivos
carregado = arquivos. carregar ( )

Escolha o arquivo do sistema local clicando no botão 'Escolher os arquivos' botão após executar o código acima:

Após o upload do arquivo, basta copiar o caminho do arquivo que será utilizado na próxima etapa:

Etapa 6: configurando o modelo de linguagem

Construa o modelo de linguagem, cadeias, ferramentas e cadeias usando o seguinte código:

llm = ChatOpenAI ( temperatura = 0 , modelo = 'gpt-3.5-turbo-0613' )
procurar = SerpAPIWrapper ( )
llm_math_chain = LMMathChain. de_llm ( llm = llm , detalhado = Verdadeiro )
banco de dados = Banco de dados SQL. de_uri ( 'sqlite:///../../../../../content/Chinook.db' )
db_chain = SQLDatabaseChain. de_llm ( llm , banco de dados , detalhado = Verdadeiro )
ferramentas = [
Ferramenta (
nome = 'Procurar' ,
função = procurar. correr ,
descrição = 'Faça perguntas direcionadas para obter respostas às perguntas sobre assuntos recentes' ,
) ,
Ferramenta (
nome = 'Calculadora' ,
função = llm_math_chain. correr ,
descrição = 'útil para responder/resolver problemas matemáticos' ,
) ,
Ferramenta (
nome = 'FooBar-DB' ,
função = db_chain. correr ,
descrição = 'útil para responder perguntas sobre FooBar e a entrada deve ser na forma de uma pergunta contendo contexto completo' ,
) ,
]
  • O llm variável contém as configurações do modelo de linguagem usando o método ChatOpenAI() com o nome do modelo.
  • A pesquisa variável contém o método SerpAPIWrapper() para construir as ferramentas para o agente.
  • Construa o llm_math_chain para obter as respostas relacionadas ao domínio Matemática usando o método LLMMathChain().
  • A variável db contém o caminho do arquivo que contém o conteúdo do banco de dados. O usuário precisa alterar apenas a última parte que é “conteúdo/Chinook.db” do caminho mantendo o “sqlite:///../../../../../” o mesmo.
  • Construa outra cadeia para responder consultas do banco de dados usando o db_chain variável.
  • Configurar ferramentas como procurar , calculadora , e FooBar-DB para pesquisar a resposta, responder questões matemáticas e consultas do banco de dados, respectivamente:

Passo 7: Adicionando Memória

Após configurar as funções OpenAI, basta construir e adicionar a memória ao agente:

de langchain. Comandos importar MensagensPlaceholder
de langchain. memória importar ConversationBufferMemory

agente_kwargs = {
'mensagens_prompt_extra' : [ MensagensPlaceholder ( nome variável = 'memória' ) ] ,
}
memória = ConversationBufferMemory ( chave_de_memória = 'memória' , mensagens_retornadas = Verdadeiro )

Etapa 8: inicializando o agente

O último componente a construir e inicializar é o agente, contendo todos os componentes como llm , ferramenta , OPENAI_FUNCTIONS , e outros a serem usados ​​neste processo:

agente = agente_de_inicialização (
ferramentas ,
llm ,
agente = Tipo de agente. OPENAI_FUNCTIONS ,
detalhado = Verdadeiro ,
agente_kwargs = agente_kwargs ,
memória = memória ,
)

Etapa 9: Testando o Agente

Por fim, teste o agente iniciando o chat usando o botão “ oi ' mensagem:

agente. correr ( 'oi' )

Adicione algumas informações à memória executando o agente com ela:

agente. correr ( 'meu nome é John Snow' )

Agora, teste a memória fazendo a pergunta sobre o chat anterior:

agente. correr ( 'qual é o meu nome' )

O agente respondeu com o nome obtido da memória, então a memória está funcionando com sucesso com o agente:

É tudo por agora.

Conclusão

Para adicionar memória ao agente de funções OpenAI em LangChain, instale os módulos para obter as dependências para importação das bibliotecas. Depois disso, basta construir o banco de dados e carregá-lo no notebook Python para que possa ser usado com o modelo. Configure o modelo, as ferramentas, as cadeias e o banco de dados antes de adicioná-los ao agente e inicializá-lo. Antes de testar a memória, crie-a usando ConversationalBufferMemory() e adicione-a ao agente antes de testá-la. Este guia elaborou como adicionar memória ao agente de funções OpenAI em LangChain.