File size: 3,674 Bytes
91af6ff
 
 
b56d187
ed22e00
c8141bc
 
16298a0
 
c8141bc
6596303
8da47e3
16298a0
 
1b87e36
16298a0
 
 
 
c8141bc
 
 
16298a0
 
 
a9f20b0
16298a0
 
 
 
 
 
2850984
16298a0
 
 
 
 
 
 
8849996
ed22e00
16298a0
c8141bc
91af6ff
77ccaac
3912644
efca52e
193d549
 
 
ed22e00
91af6ff
ed22e00
8a9f359
 
82b2f12
ed22e00
16298a0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
82b2f12
ed22e00
bf41d8e
 
 
 
f118c07
16298a0
 
 
 
 
1fa9027
 
 
 
 
 
44aab5f
1fa9027
 
 
 
 
 
44aab5f
1fa9027
 
 
 
 
 
44aab5f
1fa9027
 
 
 
 
 
44aab5f
efa5180
16298a0
 
9b9da5e
16298a0
 
3912644
9ce8424
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
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)