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("""

Truebot AI - True Clinic

""") gr.Markdown("""

Sempre consigo...

""") gr.Markdown("""

""") gr.Markdown("""

""") gr.Markdown("""

""") gr.Markdown("""

""") 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)