Spaces:
Sleeping
Sleeping
Update app.py
Browse files
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 |
-
|
| 33 |
-
|
| 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 |
-
---
|
| 149 |
{CONTEXTO_EPICTETO}
|
| 150 |
-
---
|
| 151 |
|
| 152 |
-
Agora,
|
| 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="🤖
|
| 206 |
-
description="
|
| 207 |
chatbot=gr.Chatbot(height=600, label="Diálogo"),
|
| 208 |
-
textbox=gr.Textbox(placeholder="
|
| 209 |
additional_inputs=[
|
| 210 |
-
gr.Checkbox(label="🧘 Ativar Modo Sábio
|
| 211 |
-
gr.Checkbox(label="🔍 Ativar Modo Supervisor (Verificação de Fatos)", value=
|
| 212 |
],
|
| 213 |
theme="soft",
|
| 214 |
examples=[
|
| 215 |
-
["
|
| 216 |
-
["
|
| 217 |
-
["
|
| 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 ---
|