Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -130,6 +130,17 @@ class HuggingFaceAPIClient:
|
|
130 |
# Inicializar cliente da API
|
131 |
api_client = HuggingFaceAPIClient(HF_TOKEN)
|
132 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
133 |
def formatar_resposta_com_codigo(resposta: str) -> str:
|
134 |
"""Formata a resposta destacando c贸digos em blocos separados"""
|
135 |
if not resposta:
|
@@ -138,7 +149,7 @@ def formatar_resposta_com_codigo(resposta: str) -> str:
|
|
138 |
# Detecta blocos de c贸digo com ```
|
139 |
resposta_formatada = re.sub(
|
140 |
r'```(\w+)?\n(.*?)\n```',
|
141 |
-
|
142 |
resposta,
|
143 |
flags=re.DOTALL
|
144 |
)
|
@@ -146,7 +157,7 @@ def formatar_resposta_com_codigo(resposta: str) -> str:
|
|
146 |
# Detecta c贸digo inline com `
|
147 |
resposta_formatada = re.sub(
|
148 |
r'`([^`]+)`',
|
149 |
-
|
150 |
resposta_formatada
|
151 |
)
|
152 |
|
@@ -300,7 +311,7 @@ with gr.Blocks(
|
|
300 |
gr.Markdown("### 馃摑 Fa莽a sua pergunta:")
|
301 |
entrada = gr.Textbox(
|
302 |
label="",
|
303 |
-
placeholder="
|
304 |
lines=6,
|
305 |
elem_classes="pergunta-container"
|
306 |
)
|
|
|
130 |
# Inicializar cliente da API
|
131 |
api_client = HuggingFaceAPIClient(HF_TOKEN)
|
132 |
|
133 |
+
def escape_html(text: str) -> str:
|
134 |
+
"""Escapa caracteres especiais HTML para exibi莽茫o segura."""
|
135 |
+
html_escape_table = {
|
136 |
+
"&": "&",
|
137 |
+
"<": "<",
|
138 |
+
">": ">",
|
139 |
+
'"': """,
|
140 |
+
"'": "'"
|
141 |
+
}
|
142 |
+
return "".join(html_escape_table.get(c, c) for c in text)
|
143 |
+
|
144 |
def formatar_resposta_com_codigo(resposta: str) -> str:
|
145 |
"""Formata a resposta destacando c贸digos em blocos separados"""
|
146 |
if not resposta:
|
|
|
149 |
# Detecta blocos de c贸digo com ```
|
150 |
resposta_formatada = re.sub(
|
151 |
r'```(\w+)?\n(.*?)\n```',
|
152 |
+
lambda m: f'<div style="background-color: #f8f9fa; color: #1a1a1a; border: 1px solid #e9ecef; border-radius: 8px; padding: 15px; margin: 10px 0; font-family: Monaco, Consolas, monospace; overflow-x: auto;"><strong style="color: #1a1a1a;">馃捇 C贸digo:</strong><br><pre style="color: #1a1a1a; margin: 5px 0; white-space: pre-wrap; word-wrap: break-word;"><code>{escape_html(m.group(2))}</code></pre></div>',
|
153 |
resposta,
|
154 |
flags=re.DOTALL
|
155 |
)
|
|
|
157 |
# Detecta c贸digo inline com `
|
158 |
resposta_formatada = re.sub(
|
159 |
r'`([^`]+)`',
|
160 |
+
lambda m: f'<code style="background-color: #f1f3f4; color: #1a1a1a; padding: 2px 4px; border-radius: 4px; font-family: Monaco, Consolas, monospace;">{escape_html(m.group(1))}</code>',
|
161 |
resposta_formatada
|
162 |
)
|
163 |
|
|
|
311 |
gr.Markdown("### 馃摑 Fa莽a sua pergunta:")
|
312 |
entrada = gr.Textbox(
|
313 |
label="",
|
314 |
+
placeholder="Digite sua pergunta aqui.",
|
315 |
lines=6,
|
316 |
elem_classes="pergunta-container"
|
317 |
)
|