pedromsfaria commited on
Commit
ac37ef3
·
1 Parent(s): 795de97

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +37 -36
app.py CHANGED
@@ -1,20 +1,13 @@
1
  import os
2
  import openai
3
  import gradio as gr
4
- import pandas as pd
5
 
6
- # Load embeddings from a CSV file
7
- def load_embeddings_from_csv(filename):
8
- data = pd.read_csv(filename)
9
- return data
10
 
11
- # Set up OpenAI API key
12
  openai.api_key = os.environ['OPENAI_API_KEY']
13
 
14
- # Load embeddings from the MSD.csv file
15
- embeddings = load_embeddings_from_csv("MSD.csv")
16
-
17
- # Messages configuration
18
  messages = [
19
  {
20
  "role": "system",
@@ -28,7 +21,7 @@ messages = [
28
  "e de informações relevantes para fazer a pré-triagem. Oferece conselhos "
29
  "simples. Continua a fazer perguntas até obteres um pré-diagnóstico com "
30
  "uma probabilidade superior a 95%, fornecendo uma lista de possibilidades "
31
- "e suas percentagens. É critico que des uma lista de possibilidades, "
32
  "percentagens de provabilidade e que continues a fazer perguntas até teres "
33
  "um resultado satisfatório. Sempre que fores encaminhar o paciente para "
34
  "serviços médicos, sugere que te visite na TrueClinic ou contacte a "
@@ -36,9 +29,13 @@ messages = [
36
  "pergunta-me qual o sintoma principal, depois pergunta os sintomas "
37
  "secundários uma descrição dos sintomas quando começaram, etc. "
38
  "depois pergunta se o utilizador fuma se é diabetico, etc., depois pergunta "
39
- "de medicação que o utilizador possa estar a tomar. Depois deste processo "
40
- "todos, da 6 hipotese de pre-diagnostico, com um paragrafo resumido sobre "
41
- "o diagnóstico e recomendações em cada um. após cada um diz a "
 
 
 
 
42
  "especialidade médica para marcar consulta. E que exames poderiam ser "
43
  "necessários para fazer a triagem. Depois de cada pergunta "
44
  "sugeres 3 hipoteses provaveis que o utilizador poderia responder, "
@@ -46,50 +43,54 @@ messages = [
46
  ),
47
  }
48
  ]
 
49
 
50
- # Function to create responses using OpenAI API
51
- def openai_create(user_input_with_embeddings):
52
- messages.append({"role": "user", "content": user_input_with_embeddings})
53
  response = openai.ChatCompletion.create(
54
- model="gpt-4",
55
- messages=messages,
56
- temperature=0.0,
57
- top_p=1,
58
- frequency_penalty=0,
59
- presence_penalty=0.6,
60
- stop=[" Human:", " AI:"]
 
61
  )
62
  ChatGPT_reply = response["choices"][0]["message"]["content"]
63
  messages.append({"role": "assistant", "content": ChatGPT_reply})
64
  return ChatGPT_reply
65
 
66
- # Function to combine embeddings with user input
 
67
  def chatgpt_clone(input, history):
68
  history = history or []
69
  s = list(sum(history, ()))
70
  s.append(input)
71
-
72
- # Combine embeddings with user input
73
- user_input_with_embeddings = ' '.join(s) + ' ' + ' '.join(map(str, embeddings.values))
74
-
75
- # Get response
76
- output = openai_create(user_input_with_embeddings)
77
-
78
  history.append((input, output))
79
  return history, history
80
 
81
- # Create Gradio interface
 
 
82
  block = gr.Blocks(css=".gradio-container {background: url('file=fundo.jpg'); background-size: contain;}")
83
 
 
84
  with block:
85
  gr.Markdown("""<h1 style="color: #ffffff; font-weight: bold;"><center>Truebot AI - True Clinic</center></h1>""")
86
  gr.Markdown("""<h3 style="color: #ffffff; font-weight: bold;"><center>Sempre consigo...</center></h3>""")
87
  gr.Markdown("""<h3 style="color: #ffffff; font-weight: bold;"><center> </center></h3>""")
88
-
89
  chatbot = gr.Chatbot()
90
- message = gr.Textbox(placeholder="Olá, como posso ajudar?")
 
 
 
 
91
  state = gr.State()
92
  submit = gr.Button("Enviar")
93
  submit.click(chatgpt_clone, inputs=[message, state], outputs=[chatbot, state])
94
 
95
- block.launch(inline=False)
 
1
  import os
2
  import openai
3
  import gradio as gr
 
4
 
 
 
 
 
5
 
6
+ #if you have OpenAI API key as a string, enable the below
7
  openai.api_key = os.environ['OPENAI_API_KEY']
8
 
9
+ start_sequence = "\nAI:"
10
+ restart_sequence = "\nHuman: "
 
 
11
  messages = [
12
  {
13
  "role": "system",
 
21
  "e de informações relevantes para fazer a pré-triagem. Oferece conselhos "
22
  "simples. Continua a fazer perguntas até obteres um pré-diagnóstico com "
23
  "uma probabilidade superior a 95%, fornecendo uma lista de possibilidades "
24
+ ". É critico que des uma lista de possibilidades, "
25
  "percentagens de provabilidade e que continues a fazer perguntas até teres "
26
  "um resultado satisfatório. Sempre que fores encaminhar o paciente para "
27
  "serviços médicos, sugere que te visite na TrueClinic ou contacte a "
 
29
  "pergunta-me qual o sintoma principal, depois pergunta os sintomas "
30
  "secundários uma descrição dos sintomas quando começaram, etc. "
31
  "depois pergunta se o utilizador fuma se é diabetico, etc., depois pergunta "
32
+ "de medicação que o utilizador possa estar a tomar. Depois pergunta se "
33
+ "o utilizador fez recentemente algum exame imagiológico e sim pede um resumo da "
34
+ "conclusão para analisares, dizendo que quanto mais informação tiveres, melhor"
35
+ " vais conseguir ajudar.Depois deste processo "
36
+ "todos, da hipoteses de pre-diagnostico, focando na mais provável. "
37
+ " com um paragrafo resumido sobre o diagnóstico e recomendações em cada um. "
38
+ " após cada um diz a "
39
  "especialidade médica para marcar consulta. E que exames poderiam ser "
40
  "necessários para fazer a triagem. Depois de cada pergunta "
41
  "sugeres 3 hipoteses provaveis que o utilizador poderia responder, "
 
43
  ),
44
  }
45
  ]
46
+ 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?"
47
 
48
+ def openai_create(user_input):
49
+ messages.append({"role": "user", "content": user_input})
 
50
  response = openai.ChatCompletion.create(
51
+ model = "gpt-3.5-turbo",
52
+ messages = messages,
53
+ #prompt=prompt,
54
+ temperature=0.9,
55
+ top_p=1,
56
+ frequency_penalty=0,
57
+ presence_penalty=0.6,
58
+ stop=[" Human:", " AI:"]
59
  )
60
  ChatGPT_reply = response["choices"][0]["message"]["content"]
61
  messages.append({"role": "assistant", "content": ChatGPT_reply})
62
  return ChatGPT_reply
63
 
64
+
65
+
66
  def chatgpt_clone(input, history):
67
  history = history or []
68
  s = list(sum(history, ()))
69
  s.append(input)
70
+ inp = ' '.join(s)
71
+ output = openai_create(inp)
 
 
 
 
 
72
  history.append((input, output))
73
  return history, history
74
 
75
+
76
+
77
+
78
  block = gr.Blocks(css=".gradio-container {background: url('file=fundo.jpg'); background-size: contain;}")
79
 
80
+
81
  with block:
82
  gr.Markdown("""<h1 style="color: #ffffff; font-weight: bold;"><center>Truebot AI - True Clinic</center></h1>""")
83
  gr.Markdown("""<h3 style="color: #ffffff; font-weight: bold;"><center>Sempre consigo...</center></h3>""")
84
  gr.Markdown("""<h3 style="color: #ffffff; font-weight: bold;"><center> </center></h3>""")
85
+
86
  chatbot = gr.Chatbot()
87
+ message = gr.Textbox(placeholder=prompt)
88
+ examples=[
89
+ ["Doi-me a cabeça!"],
90
+ ["Tenho febre, podes ajudar?."],
91
+ ],
92
  state = gr.State()
93
  submit = gr.Button("Enviar")
94
  submit.click(chatgpt_clone, inputs=[message, state], outputs=[chatbot, state])
95
 
96
+ block.launch(inline=False)