Spaces:
Sleeping
Sleeping
File size: 4,714 Bytes
91af6ff 1696e91 91af6ff b56d187 286b124 5048716 286b124 5048716 286b124 91af6ff ac37ef3 e622b68 91af6ff ac37ef3 e622b68 ac37ef3 515c8bd e622b68 2193f0d ac37ef3 e622b68 3878caf e622b68 515c8bd 91af6ff ac37ef3 fea7b49 91af6ff 82ec653 ac37ef3 5048716 ac37ef3 91af6ff ac37ef3 537be5e ac37ef3 286b124 91af6ff ac37ef3 91af6ff 23a8a95 d4402c2 ac37ef3 91af6ff 515c8bd ac37ef3 2ea9003 537be5e 2b9a1ea 2ea9003 537be5e 2ea9003 537be5e 91af6ff b6a6530 e2d31fe fb9db04 515c8bd 0041579 e2d31fe 69edcd6 |
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 |
import os
import openai
import time
import random
import gradio as gr
theme = gr.themes.Base(
neutral_hue="slate",
).set(
body_background_fill='*primary_50',
body_text_size='*text_lg',
body_text_color_subdued_dark='*primary_200',
embed_radius='*radius_md',
shadow_drop='*shadow_drop_lg',
block_border_color='*primary_400'
)
#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. responde só como se falar em portugal"
),
}
]
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.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
block = gr.Blocks(theme=theme, css=".gradio-container {background: url('file=fundo.jpg'); background-size: contain;}")
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>""")
chatbot = gr.Chatbot()
message = gr.Textbox(placeholder=prompt)
examples=[
["Doi-me a cabeça!"],
["Tenho febre, podes ajudar?."],
]
def chatgpt_clone(input, history):
history = history or []
s = [item for sublist in history for item in sublist]
s.append(input)
inp = ' '.join(s)
output = openai_create(inp)
history.append((input, output))
time.sleep(2)
return "", history
state = gr.State()
clear = gr.ClearButton([message, chatbot])
message.submit(chatgpt_clone, inputs=[message, chatbot], outputs=[message, chatbot])
block.launch() |