File size: 2,385 Bytes
df72f93
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
"""
Data Scientist.: Dr.Eddy Giusepe Chirinos Isidro

Objetivo: Estudar o uso de Memória no LangChain,
          para ter ChatBots mais inteligentes.
          Especificaente estudamos a memória "ConversationBufferWindowMemory", 
          a qual é apropriado para manter uma janela deslizante das interações mais
          recentes e para que o buffer não fique  muito grande 🤗.

"""
import os
import openai
from dotenv import find_dotenv, load_dotenv
_ = load_dotenv(find_dotenv()) # read local .env file
openai.api_key  = os.getenv('OPENAI_API_KEY')


from langchain.chat_models import ChatOpenAI
from langchain.chains import ConversationChain
from langchain.memory import ConversationBufferWindowMemory


llm = ChatOpenAI(temperature=0.0)

memory = ConversationBufferWindowMemory(k=10, return_messages=True, memory_key="history")

memory.save_context({"input": "Olá, me chamo Eddy!"}, {"output": "Olá Eddy! prazer, em que posso ajudar?"})
memory.save_context({"input": "Quero saber que especialidades há na Clínica Peruana Machu Picchu?"},
{"output": "Tem atendimento de emergência e urgência nas seguintes especialidades: \
Cirurgia Geral, Clínica Médica, Odontologia, Ginecologia e Obstetrícia, \
Oftalmologia, Pediatria, Queimados e Cirurgia Plástica."})
memory.save_context({"input": "Ótimo! E qual é o horário de atendimento na Clínica Peruana Machu Picchu?"}, {"output": "O atendimento é de 9am até 4pm"})
memory.save_context({"input": "E atendem também no final de semama?"}, {"output": "Não, o atendimento na Asa Norte é de segunda-feira a sexta-feira"})
memory.save_context({"input": "Entendi. E como posso marcar o atendimento?"}, {"output": "Para agendar o atendimento você pode ligar ao 021-32002435"})
memory.save_context({"input": "Obrigado! Vou agendar o mais rápido possível"}, {"output": "Se precisa de mais detalhe só falar."})


memory.load_memory_variables({})

conversation = ConversationChain(llm=llm,
                                 memory = memory,
                                 verbose=False
                                )

#conversation.predict(input="Olá, meu nome é Andrew")
print("Digite a sua pergunta para conversar com a AI: ")
while True:
    query = input("\033[033mHuman: \033[m")
    result = conversation({"input": query})
    print("AI: " + result['response'])
        
    if not query:
        break