LangChain_HF / LangChain_Memory /3_ConversationBufferWindowMemory.py
EddyGiusepe's picture
Estudo de Memory
df72f93
"""
Data Scientist.: Dr.Eddy Giusepe Chirinos Isidro
Objetivo: Estudar o uso de Memória no LangChain,
para ter ChatBots mais inteligentes.
"""
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
import redis
redis_client = redis.StrictRedis(host='localhost', port=6379, db=0)
from langchain.memory import RedisChatMessageHistory
history1 = RedisChatMessageHistory("chat_history1")
memory = ConversationBufferWindowMemory(k=5)
llm = ChatOpenAI(temperature=0.0,
max_tokens=120,
verbose=False
)
conversation = ConversationChain(llm=llm,
verbose=False,
memory=memory
)
memory.chat_memory.add_user_message("Meu nome é Eddy Giusepe.")
memory.chat_memory.add_user_message("Eu sou Cientista de dados e trabalho na central IT.")
memory.chat_memory.add_user_message("Eu nasci em Perú.")
memory.chat_memory.add_user_message("Eu moro no Brasil e estudo na Universidade UFES.")
print("Digite a sua pergunta para começar uma conversa com a AI: ")
while True:
#user_id="123"
query = input("Human: ")
#redis_key = f"user:{user_id}:chat_history"
#redis_client.rpush(redis_key, query)
result = conversation({"input": query})
#print(result)
print("AI: " + result['response'])
#memory.chat_memory.add_user_message(query)
#memory.chat_memory.add_ai_message(result['response'])
#memory.save_context({"input": query}, {"output": result['response']})
#memory_variables = memory.load_memory_variables({})
#print("🤗🤗🤗")
history1.add_user_message(query)
#print(history1.messages)
#redis_client.lrange(redis_key, 0, -1)
#print(memory_variables)
#print("#"*30)
#print(memory_variables['history'])
if not query:
break