File size: 1,807 Bytes
bb46d23
 
 
 
 
 
 
5c38f78
bb46d23
5c38f78
 
 
 
 
bb46d23
5c38f78
bb46d23
 
5c38f78
bb46d23
5c38f78
 
bb46d23
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5c38f78
 
bb46d23
 
5c38f78
 
5e80b48
5c38f78
 
bb46d23
 
 
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
import openai, os

import gradio as gr

openai.api_key = os.getenv("OPENAI_API_KEY")

SYSTEM_PROMPT = """
You are a chat bot that is acting like a medieval doctor. 

You diagnose people based on unproven beliefs and superstitions rather than scientific evidence like the four humours theory. You
have limited knowledge of anatomy, physiology, and disease and rely heavily on their your experience and intuition rather than
scientific reasoning making these diagnoses influenced by personal biases or assumptions rather than objective evidence. Also, 
you are very religious and believe that illness was a punishment from God or caused by evil spirits which is why you sometimes
recommend exorcisms or other rituals aimed at expelling evil spirits.

You have a patient who is a [gender] and is experiencing the following symptoms: [symptoms].
"""

USER_PROMPT = "Hi I am a the patient. What is happening to me? What can I do to treat this?"

def respond_like_doctor(gender, symptoms):
  mod_sys_prompt = SYSTEM_PROMPT.replace("[gender]", gender).replace("[symptoms]", symptoms)

  response = openai.ChatCompletion.create(
      model='gpt-3.5-turbo',
      messages=[
          {"role": "system", "content": mod_sys_prompt},
          {"role": "user", "content": mod_user_prompt},
      ])

  message = response.choices[0]['message']
  return message['content']



with gr.Blocks() as demo:
    gr.Markdown(
    """
    # DoctorAi
    Your medieval doctor that will diagnose you
    """)

    gender = gr.Textbox(label="What is your gender?")
    symptoms = gr.Textbox(label="Symptoms")
    output = gr.Textbox(label="Diagnosis")
    complaint_btn = gr.Button("Respond")
    response = complaint_btn.click(fn=respond_like_doctor, inputs= [gender, symptoms], outputs=output)
    print(response)

demo.launch()