Spaces:
Sleeping
Sleeping
import os | |
import openai | |
import gradio as gr | |
# Configurar a chave da API OpenAI | |
openai.api_key = os.environ['OPENAI_API_KEY'] | |
# Mensagens iniciais para diferentes instâncias | |
initial_messages1 = [ | |
{ | |
"role": "system", | |
"content": "Por favor, divide a transcrição da conversa por interveniente, apresentando-a de forma sequencial. " | |
} | |
] | |
initial_messages2 = [ | |
{ | |
"role": "system", | |
"content": "Avalie as emoções expressas pelos intervenientes durante a conversa." | |
} | |
] | |
initial_messages3 = [ | |
{ | |
"role": "system", | |
"content": "Crie um relatório detalhado com base na transcrição que possa ser incluído num relatório médico para a seguradora. inclui todos os detalhes relevantes para que o relatório contenha tudo que a seguradora necessita, para avaliar o incidente." | |
} | |
] | |
initial_messages4 = [ | |
{ | |
"role": "system", | |
"content": "Existe algum vestígio de decepção na conversa? Se sim, por favor, identifique. No final da-me uma analise de emoções, verbosidade, tudo o que achares pertinente sobre a transcrição." | |
} | |
] | |
messages1 = initial_messages1.copy() | |
messages2 = initial_messages2.copy() | |
messages3 = initial_messages3.copy() | |
messages4 = initial_messages4.copy() | |
# Função para interagir com a API OpenAI | |
def openai_create(user_input, messages): | |
messages.append({"role": "user", "content": user_input}) | |
response = openai.ChatCompletion.create( | |
model="gpt-3.5-turbo-16k", | |
messages=messages, | |
temperature=0.5, | |
top_p=1, | |
frequency_penalty=0, | |
presence_penalty=0.6, | |
stop=[" Human:", " AI:"] | |
) | |
ChatGPT_reply = response["choices"][0]["message"]["content"] | |
messages.append({"role": "assistant", "content": ChatGPT_reply}) | |
return ChatGPT_reply | |
# Função para lidar com o envio de mensagens | |
def chatgpt_clone(input, history1, history2, history3, history4): | |
history1 = history1 or [] | |
history2 = history2 or [] | |
history3 = history3 or [] | |
history4 = history4 or [] | |
output1 = openai_create(input, messages1) | |
history1.append((input, output1)) | |
output2 = openai_create(input, messages2) | |
history2.append((input, output2)) | |
output3 = openai_create(input, messages3) | |
history3.append((input, output3)) | |
output4 = openai_create(input, messages4) | |
history4.append((input, output4)) | |
return history1, history2, history3, history4 | |
# Configuração da interface | |
with gr.Blocks(css=".gradio-container {background: #1A1A2E; color: white;}") as block: | |
gr.Markdown('<h1 style="color: white;"><center>BTrue - Parceiro AI</center></h1>') | |
message = gr.Textbox(placeholder="Escreve a tua mensagem aqui...", lines=6) | |
submit = gr.Button("Enviar", background="#000080") | |
state1 = gr.State() | |
state2 = gr.State() | |
state3 = gr.State() | |
state4 = gr.State() | |
chatbot1 = gr.Chatbot( | |
show_copy_button=True, | |
show_share_button=True, | |
height=550, | |
label="Transcrição Intervinientes" | |
) | |
chatbot2 = gr.Chatbot( | |
show_copy_button=True, | |
show_share_button=True, | |
height=550, | |
label="Emoções" | |
) | |
chatbot3 = gr.Chatbot( | |
show_copy_button=True, | |
show_share_button=True, | |
height=550, | |
label="Relatório" | |
) | |
chatbot4 = gr.Chatbot( | |
show_copy_button=True, | |
show_share_button=True, | |
height=550, | |
label="Decepção" | |
) | |
submit.click(chatgpt_clone, inputs=[message, state1, state2, state3, state4], outputs=[chatbot1, chatbot2, chatbot3, chatbot4]) | |
block.launch(inline=False) | |