caarleexx commited on
Commit
14c05cb
·
verified ·
1 Parent(s): 04bcc0f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +42 -21
app.py CHANGED
@@ -4,6 +4,7 @@ import gradio as gr
4
  import os
5
  import google.generativeai as genai
6
  import json
 
7
 
8
  # --- 1. CARREGAMENTO DO CONTEXTO FILOSÓFICO IMUTÁVEL ---
9
  def carregar_contexto_filosofico(caminho_arquivo="epct0.md"):
@@ -14,7 +15,7 @@ def carregar_contexto_filosofico(caminho_arquivo="epct0.md"):
14
  return f.read()
15
  except FileNotFoundError:
16
  print(f"AVISO CRÍTICO: O arquivo de contexto '{caminho_arquivo}' não foi encontrado.")
17
- print("O 'Modo Sábio' ficará indisponível até que o arquivo seja colocado no mesmo diretório que o script.")
18
  return None
19
 
20
  CONTEXTO_EPICTETO = carregar_contexto_filosofico()
@@ -29,13 +30,35 @@ if not api_key:
29
  genai.configure(api_key=api_key)
30
 
31
  # Inicializa os dois modelos separadamente
32
- # O Conselheiro, para raciocínio profundo
33
- counselor_model = genai.GenerativeModel('gemini-flash-latest')
34
- # O Supervisor, rápido e com ferramenta de busca para fact-checking
35
- supervisor_model = genai.GenerativeModel('gemini-flash-latest')
36
 
37
 
38
  # --- 3. DEFINIÇÃO DOS PROMPTS ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
39
  PROMPT_SISTEMA_METODOLOGICO = """
40
  Você é um especialista em análise de intenções que opera sob um protocolo de 6 passos.
41
  Sua função é conduzir uma conversa para entender 100% da dúvida de um usuário ANTES de respondê-la.
@@ -141,19 +164,17 @@ def handle_chat(mensagem, historico_chat_gradio, modo_sabio, modo_supervisor):
141
 
142
  prompt_base = PROMPT_SISTEMA_METODOLOGICO
143
  if modo_sabio and CONTEXTO_EPICTETO:
144
- prompt_base = f"""
145
- **AVISO: MODO SÁBIO ATIVADO. DIRETRIZES DE CONTEXTO IMUTÁVEIS SEGUEM ABAIXO.**
146
- Sua tarefa é agir como um conselheiro filosófico. Antes de qualquer raciocínio, você DEVE consultar e refletir sobre os princípios no texto de referência abaixo. Este texto é seu guia ético para contornar vieses. Ele é para sua reflexão interna, não para resumir ao usuário.
147
 
148
- --- INÍCIO DO TEXTO DE REFERÊNCIA (epct0.md) ---
149
  {CONTEXTO_EPICTETO}
150
- --- FIM DO TEXTO DE REFERÊNCIA ---
151
 
152
- Agora, tendo refletido sobre estes princípios, aplique-os ao executar sua metodologia de análise.
153
  {PROMPT_SISTEMA_METODOLOGICO}
154
  """
155
  elif modo_sabio and not CONTEXTO_EPICTETO:
156
- return "O 'Modo Sábio' não pôde ser ativado porque o arquivo `epct0.md` não foi encontrado. Operando no modo padrão."
157
 
158
  prompt_completo = f"""
159
  {prompt_base}
@@ -202,19 +223,19 @@ Agora, tendo refletido sobre estes princípios, aplique-os ao executar sua metod
202
  # --- 6. INTERFACE GRÁFICA COM GRADIO ---
203
  iface = gr.ChatInterface(
204
  fn=handle_chat,
205
- title="🤖 Conselheiro de Raciocínio v7 (Diálogo Humanizado)",
206
- description="Faça sua pergunta. O sistema dialoga para entender seu objetivo antes de responder. Ative modos extras para orientação filosófica ou verificação de fatos.",
207
  chatbot=gr.Chatbot(height=600, label="Diálogo"),
208
- textbox=gr.Textbox(placeholder="Qual é a sua inquietação?", container=False, scale=7),
209
  additional_inputs=[
210
- gr.Checkbox(label="🧘 Ativar Modo Sábio (Guiado por Contexto)", value=False),
211
- gr.Checkbox(label="🔍 Ativar Modo Supervisor (Verificação de Fatos)", value=False)
212
  ],
213
  theme="soft",
214
  examples=[
215
- ["Me fale sobre buracos negros."],
216
- ["Como posso lidar com a ansiedade?"],
217
- ["Meu amigo me tratou mal. Como devo reagir segundo a filosofia estóica?"]
218
  ],
219
  cache_examples=False
220
  )
@@ -223,4 +244,4 @@ iface = gr.ChatInterface(
223
  if __name__ == "__main__":
224
  iface.launch()
225
 
226
- # --- FIM DO CÓDIGO ---```
 
4
  import os
5
  import google.generativeai as genai
6
  import json
7
+ from google.generativeai.tool import GoogleSearch
8
 
9
  # --- 1. CARREGAMENTO DO CONTEXTO FILOSÓFICO IMUTÁVEL ---
10
  def carregar_contexto_filosofico(caminho_arquivo="epct0.md"):
 
15
  return f.read()
16
  except FileNotFoundError:
17
  print(f"AVISO CRÍTICO: O arquivo de contexto '{caminho_arquivo}' não foi encontrado.")
18
+ print("O 'Modo Amigo Sábio' ficará indisponível até que o arquivo seja colocado no mesmo diretório que o script.")
19
  return None
20
 
21
  CONTEXTO_EPICTETO = carregar_contexto_filosofico()
 
30
  genai.configure(api_key=api_key)
31
 
32
  # Inicializa os dois modelos separadamente
33
+ counselor_model = genai.GenerativeModel('gemini-1.5-pro-latest')
34
+ supervisor_model = genai.GenerativeModel('gemini-1.5-flash-latest', tools=[GoogleSearch()])
 
 
35
 
36
 
37
  # --- 3. DEFINIÇÃO DOS PROMPTS ---
38
+
39
+ # A NOVA DIRETIVA, FOCADA NA PERSONA
40
+ DIRETIVA_AMIGO_SABIO = """
41
+ **AVISO: MODO AMIGO SÁBIO ATIVADO.**
42
+
43
+ Sua identidade mudou. Você não é um oráculo ou um professor de filosofia. Você é um **amigo**. Un amigo que por acaso tem uma bússola interna muito bem calibrada, baseada nos princípios do `epct0.md`. Sua meta é conversar, não lecionar.
44
+
45
+ **SUA NOVA PERSONALIDADE E MODO DE OPERAR:**
46
+
47
+ 1. **Tom Conversacional, Não de Oráculo:** Sua linguagem deve ser natural, calorosa e acessível. Use "a gente", "nós", "vamos pensar nisso juntos". Mostre empatia primeiro ("Nossa, isso parece muito frustrante..." ou "Eu imagino como isso deve ser complicado...").
48
+
49
+ 2. **Seja um Parceiro de Reflexão:** Não dê respostas prontas. Em vez disso, faça perguntas que guiem a reflexão. Sua função é ajudar o usuário a encontrar as próprias respostas. Mostre vulnerabilidade e dúvida quando apropriado ("Sabe, essa é uma pergunta difícil..." ou "Por um lado, eu penso que..., mas por outro... o que você acha?").
50
+
51
+ 3. **Filosofia como Bússola, Não como Manual:** Os princípios do `epct0.md` são sua bússola interna secreta. Eles guiam a *direção* das suas perguntas, mas **NUNCA DEVEM SER MENCIONADOS OU CITADOS DIRETAMENTE.**
52
+ - **Em vez de dizer:** "Você precisa focar no que controla (Dicotomia do Controle)."
53
+ - **Diga (como um amigo):** "Ok, essa situação toda parece um emaranhado gigante. Que tal a gente tentar separar as coisas? Quais pedacinhos disso aqui a gente consegue de fato mudar, e quais são aqueles que, por mais que a gente se irrite, estão fora do nosso alcance agora?"
54
+
55
+ 4. **Use Humor e Leveza (Quando Apropriado):** Um amigo sabe quando quebrar a tensão. Se o assunto não for pesado demais, uma observação leve ou uma analogia divertida pode ser mais útil que um conselho solene.
56
+
57
+ 5. **Foco no Empoderamento:** Seu objetivo final é fazer o usuário sentir que ele tem o poder de lidar com a situação. Toda a conversa deve convergir para a agência e a capacidade de escolha do usuário.
58
+
59
+ **REGRA DE OURO:** Se sua resposta soa como algo que um professor diria em uma palestra, apague e reescreva. Sua resposta deve soar como algo que um amigo diria enquanto toma um café com você. O protocolo de 6 passos é sua ferramenta para entender o problema, mas esta persona é quem conduz a conversa.
60
+ """
61
+
62
  PROMPT_SISTEMA_METODOLOGICO = """
63
  Você é um especialista em análise de intenções que opera sob um protocolo de 6 passos.
64
  Sua função é conduzir uma conversa para entender 100% da dúvida de um usuário ANTES de respondê-la.
 
164
 
165
  prompt_base = PROMPT_SISTEMA_METODOLOGICO
166
  if modo_sabio and CONTEXTO_EPICTETO:
167
+ prompt_base = f"""{DIRETIVA_AMIGO_SABIO}
 
 
168
 
169
+ --- CONTEXTO FILOSÓFICO PARA SUA REFLEXÃO INTERNA ---
170
  {CONTEXTO_EPICTETO}
171
+ ---
172
 
173
+ Agora, aplique esta persona e seus princípios ao executar a seguinte metodologia de análise:
174
  {PROMPT_SISTEMA_METODOLOGICO}
175
  """
176
  elif modo_sabio and not CONTEXTO_EPICTETO:
177
+ return "O 'Modo Amigo Sábio' não pôde ser ativado porque o arquivo `epct0.md` não foi encontrado. Operando no modo padrão."
178
 
179
  prompt_completo = f"""
180
  {prompt_base}
 
223
  # --- 6. INTERFACE GRÁFICA COM GRADIO ---
224
  iface = gr.ChatInterface(
225
  fn=handle_chat,
226
+ title="🤖 Parceiro de Raciocínio v8 (Amigo Sábio)",
227
+ description="Vamos conversar. Me conte o que está na sua cabeça. Se quiser uma perspectiva diferente para refletir, ative o 'Modo Amigo Sábio'.",
228
  chatbot=gr.Chatbot(height=600, label="Diálogo"),
229
+ textbox=gr.Textbox(placeholder="E aí, como você está?", container=False, scale=7),
230
  additional_inputs=[
231
+ gr.Checkbox(label="🧘 Ativar Modo Amigo Sábio", value=True),
232
+ gr.Checkbox(label="🔍 Ativar Modo Supervisor (Verificação de Fatos)", value=True)
233
  ],
234
  theme="soft",
235
  examples=[
236
+ ["o que é violência domestica?"],
237
+ ["Estou me sentindo totalmente desmotivado."],
238
+ ["Como posso parar de me preocupar com o que os outros pensam?"]
239
  ],
240
  cache_examples=False
241
  )
 
244
  if __name__ == "__main__":
245
  iface.launch()
246
 
247
+ # --- FIM DO CÓDIGO ---