Então, fiz esse código para manter uma conversa com a memória usando apenas preenchimentos de chat. Não consegui fazer o mesmo em um thread com um assistente previamente configurado. Alguém sabe como? Preciso chamar o assistente, criar o thread e mantê-lo através da interação do usuário no console python.
from openai import OpenAI
from dotenv import load_dotenv
import os
load_dotenv()
cliente = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
modelo = "gpt-4o"
prompt_sistema = """Você é uma assistente..."""
def salvar_historico(mensagem):
with open("historico_conversa4.json", "a") as historico:
historico.write(mensagem + "\n")
def main(prompt_sistema, prompt_usuario):
resposta = cliente.chat.completions.create(
messages=[
{
"role": "system",
"content": prompt_sistema
},
{
"role": "user",
"content": prompt_usuario
}
],
model=modelo,
temperature=0.95
)
return resposta
def recycle(prompt_sistema, resposta):
while True:
prompt_usuario = input('Me atualize com detalhes sobre o caso atual ou digite "sair" para encerrar: ')
if prompt_usuario.lower() == "sair":
print("Conversa encerrada.")
break
# Salva a entrada do usuário no histórico
salvar_historico("Usuário: " + prompt_usuario)
prompt_sistema = f"resposta anterior: {resposta.choices[0].message.content}\n\n" + prompt_sistema
resposta = main(prompt_sistema, prompt_usuario)
# Salva a resposta do sistema no histórico
salvar_historico("Eva: " + resposta.choices[0].message.content)
print(resposta.choices[0].message.content)
return prompt_sistema, resposta
# Executa a primeira interação
prompt_usuario = input('Digite o caso clínico com detalhes.')
resposta = main(prompt_sistema, prompt_usuario)
# Salva a entrada inicial do usuário no histórico
salvar_historico("Usuário: " + prompt_usuario)
# Salva a primeira resposta no histórico
salvar_historico("Eva: " + resposta.choices[0].message.content)
print(resposta.choices[0].message.content)
# Executa o ciclo de reciclagem em loop
prompt_sistema, resposta = recycle(prompt_sistema, resposta)