""" 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