aldohenrique commited on
Commit
6483b01
verified
1 Parent(s): 24799c3

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +14 -3
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
- r'<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>\2</code></pre></div>',
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
- r'<code style="background-color: #f1f3f4; color: #1a1a1a; padding: 2px 4px; border-radius: 4px; font-family: Monaco, Consolas, monospace;">\1</code>',
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="Ex: Como implementar uma 谩rvore bin谩ria em C?\nEx: Qual a diferen莽a entre Spring Boot e Spring MVC?\nEx: Como funciona o algoritmo de backpropagation?",
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
+ "&": "&amp;",
137
+ "<": "&lt;",
138
+ ">": "&gt;",
139
+ '"': "&quot;",
140
+ "'": "&#x27;"
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
  )