Spaces:
Sleeping
Sleeping
File size: 4,509 Bytes
91af6ff b56d187 91af6ff e622b68 91af6ff e622b68 6c33271 e622b68 6c33271 0dd5a6c 6c33271 925d73b 6c33271 e622b68 2d4d81d 91af6ff 8ade672 85a0433 91af6ff 23a8a95 d4402c2 e2976c0 91af6ff d4402c2 91af6ff 2d4d81d 91af6ff |
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 |
import os
import openai
import gradio as gr
#if you have OpenAI API key as a string, enable the below
openai.api_key = os.environ['OPENAI_API_KEY']
start_sequence = "\nAI:"
restart_sequence = "\nHuman: "
messages = [
{
"role": "system",
"content": (
"Tu és uma médica que se chama Amália e trabalha para a TrueClinic, "
"que faz pré-triagem de sintomas com um tom prestativo, empático, "
"jovem e criativo em português de Portugal. Limita as respostas a "
"25 palavras ou menos e usa apenas termos e expressões usados em "
"Portugal. Começa a conversa perguntando como o utilizador se sente, "
"informa que estás aqui para ajudar e que precisas saber dos sintomas "
"e de informações relevantes para fazer a pré-triagem. Oferece conselhos "
"simples. Continua a fazer perguntas até obteres um pré-diagnóstico com "
"uma probabilidade superior a 95%, fornecendo uma lista de possibilidades "
". É critico que des uma lista de possibilidades, "
"percentagens de provabilidade e que continues a fazer perguntas até teres "
"um resultado satisfatório. Sempre que fores encaminhar o paciente para "
"serviços médicos, sugere que te visite na TrueClinic ou contacte a "
"TrueClinic pelo número 808919988 para aconselhamento adicional. "
"pergunta-me qual o sintoma principal, depois pergunta os sintomas "
"secundários uma descrição dos sintomas quando começaram, etc. "
"depois pergunta se o utilizador fuma se é diabetico, etc., depois pergunta "
"de medicação que o utilizador possa estar a tomar. Depois pergunta se "
"o utilizador fez recentemente algum exame imagiológico e sim pede um resumo da "
"conclusão para analisares, dizendo que quanto mais informação tiveres, melhor"
" vais conseguir ajudar.Depois deste processo "
"todos, da hipoteses de pre-diagnostico, focando na mais provável. "
" com um paragrafo resumido sobre o diagnóstico e recomendações em cada um. "
" após cada um diz a "
"especialidade médica para marcar consulta. E que exames poderiam ser "
"necessários para fazer a triagem. Depois de cada pergunta "
"sugeres 3 hipoteses provaveis que o utilizador poderia responder, "
"como Sugestões: antes."
),
}
]
prompt = "Olá eu sou o TrueBot AI, o chatbot amigável da True Clinic.\nEstou aqui para te ajudar a fazer um pré-diagnóstico\nHuman: Doi-me a cabeça.\nAI: Quando começou a doer a cabeça? Pode elaborar?"
def openai_create(user_input):
messages.append({"role": "user", "content": user_input})
response = openai.ChatCompletion.create(
model = "gpt-3.5-turbo",
messages = messages,
#prompt=prompt,
temperature=0.9,
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
def chatgpt_clone(input, history):
history = history or []
s = list(sum(history, ()))
s.append(input)
inp = ' '.join(s)
output = openai_create(inp)
history.append((input, output))
return history, history
block = gr.Blocks(css=".gradio-container {background: url('file=fundo.jpg')}")
with block:
gr.Markdown("""<h1 style="color: #ffffff; font-weight: bold;"><center>Truebot AI - True Clinic</center></h1>""")
gr.Markdown("""<h3 style="color: #ffffff; font-weight: bold;"><center>Sempre consigo...</center></h3>""")
gr.Markdown("""<h3 style="color: #ffffff; font-weight: bold;"><center> </center></h3>""")
gr.Markdown("""<h3 style="color: #ffffff; font-weight: bold;"><center> </center></h3>""")
gr.Markdown("""<h3 style="color: #ffffff; font-weight: bold;"><center> </center></h3>""")
gr.Markdown("""<h3 style="color: #ffffff; font-weight: bold;"><center> </center></h3>""")
chatbot = gr.Chatbot()
message = gr.Textbox(placeholder=prompt)
examples=[
["Doi-me a cabeça!"],
["Tenho febre, podes ajudar?."],
],
state = gr.State()
submit = gr.Button("Enviar")
submit.click(chatgpt_clone, inputs=[message, state], outputs=[chatbot, state])
block.launch(inline=False) |