aldohenrique commited on
Commit
61b536d
·
verified ·
1 Parent(s): fdce04f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +31 -24
app.py CHANGED
@@ -12,14 +12,14 @@ if not HF_TOKEN:
12
 
13
  # Modelos disponíveis via API (testados e funcionais)
14
  MODELS = {
15
- "phi3-mini": "microsoft/Phi-3-mini-4k-instruct",
16
- "llama3.1-3b": "meta-llama/Llama-3.2-3B-Instruct",
17
- "mistral-7b": "mistralai/Mistral-7B-Instruct-v0.3",
18
- "zephyr7b": "HuggingFaceH4/zephyr-7b-beta",
19
  }
20
 
21
  # Modelo padrão (mais confiável)
22
- DEFAULT_MODEL = MODELS["phi3-mini"]
23
 
24
  class HuggingFaceAPIClient:
25
  def __init__(self, token: str):
@@ -164,7 +164,7 @@ def formatar_resposta_com_codigo(resposta: str) -> str:
164
 
165
  return resposta_formatada
166
 
167
- def responder_como_aldo(pergunta: str, modelo_escolhido: str = "phi3-mini") -> str:
168
  """Função principal para gerar respostas via API"""
169
  if not pergunta.strip():
170
  return "Por favor, faça uma pergunta."
@@ -184,8 +184,8 @@ def responder_como_aldo(pergunta: str, modelo_escolhido: str = "phi3-mini") -> s
184
  }
185
  ]
186
 
187
- # Escolher modelo
188
- model_name = MODELS.get(modelo_escolhido, DEFAULT_MODEL)
189
 
190
  # Fazer requisição
191
  resposta = api_client.query_model(model_name, messages, max_tokens=800)
@@ -248,8 +248,8 @@ css_customizado = """
248
  }
249
 
250
  .resposta-container {
251
- background-color: #ffffff !important; /* Always light background */
252
- color: #1a1a1a !important; /* Always dark text */
253
  border: 1px solid #e0e0e0 !important;
254
  border-radius: 20px !important;
255
  padding: 20px !important;
@@ -258,8 +258,8 @@ css_customizado = """
258
  }
259
 
260
  .resposta-container pre code {
261
- color: #1a1a1a !important; /* Ensure code text is dark */
262
- background-color: #f8f9fa !important; /* Light background for code */
263
  }
264
 
265
  .pergunta-container {
@@ -276,6 +276,10 @@ css_customizado = """
276
  margin-bottom: 20px !important;
277
  text-align: center !important;
278
  }
 
 
 
 
279
  """
280
 
281
  # Interface Gradio
@@ -307,9 +311,10 @@ with gr.Blocks(
307
 
308
  modelo_select = gr.Dropdown(
309
  choices=list(MODELS.keys()),
310
- value="phi3-mini",
311
- label="🧠 Modelo de IA",
312
- info="Escolha o modelo para responder sua pergunta"
 
313
  )
314
 
315
  with gr.Row():
@@ -323,7 +328,7 @@ with gr.Blocks(
323
  variant="secondary"
324
  )
325
 
326
- # Coluna da direita - Saída (MAIOR)
327
  with gr.Column(scale=3):
328
  gr.Markdown("### 💬 Resposta do Dr. Aldo Henrique:")
329
  saida = gr.HTML(
@@ -336,13 +341,10 @@ with gr.Blocks(
336
  with gr.Accordion("📚 Exemplos de Perguntas", open=False):
337
  gr.Examples(
338
  examples=[
339
- ["Como implementar uma lista ligada em C com todas as operações básicas?", "phi3-mini"],
340
- ["Explique a diferença entre == e equals() em Java com exemplos práticos", "gemma2-2b"],
341
- ["Como funciona o algoritmo de machine learning Random Forest?", "llama3.1-8b"],
342
- ["Mostre como criar uma API REST completa com Spring Boot", "mistral-7b"],
343
- ["Explique os conceitos de HTML5, CSS3 e JavaScript ES6 com exemplos", "zephyr7b"],
344
- ["Como implementar algoritmos de ordenação eficientes em C?", "openhermes"],
345
- ["Explique redes neurais convolucionais para iniciantes", "babelia"]
346
  ],
347
  inputs=[entrada, modelo_select]
348
  )
@@ -363,11 +365,16 @@ with gr.Blocks(
363
  - **Foco**: Explicações didáticas e exemplos práticos
364
  - **Abordagem**: Acadêmica e profissional
365
 
 
 
 
 
 
 
366
  ### Dicas para melhores respostas:
367
  - Seja específico em suas perguntas
368
  - Mencione o contexto (iniciante, intermediário, avançado)
369
  - Peça exemplos práticos quando necessário
370
- - Experimente diferentes modelos para comparar respostas
371
  """)
372
 
373
  # Eventos
 
12
 
13
  # Modelos disponíveis via API (testados e funcionais)
14
  MODELS = {
15
+ "Phi-3 Mini (Microsoft)": "microsoft/Phi-3-mini-4k-instruct",
16
+ "Llama 3.2 3B (Meta)": "meta-llama/Llama-3.2-3B-Instruct",
17
+ "Mistral 7B": "mistralai/Mistral-7B-Instruct-v0.3",
18
+ "Zephyr 7B": "HuggingFaceH4/zephyr-7b-beta",
19
  }
20
 
21
  # Modelo padrão (mais confiável)
22
+ DEFAULT_MODEL = "Phi-3 Mini (Microsoft)"
23
 
24
  class HuggingFaceAPIClient:
25
  def __init__(self, token: str):
 
164
 
165
  return resposta_formatada
166
 
167
+ def responder_como_aldo(pergunta: str, modelo_escolhido: str = DEFAULT_MODEL) -> str:
168
  """Função principal para gerar respostas via API"""
169
  if not pergunta.strip():
170
  return "Por favor, faça uma pergunta."
 
184
  }
185
  ]
186
 
187
+ # Obter o nome real do modelo
188
+ model_name = MODELS.get(modelo_escolhido, MODELS[DEFAULT_MODEL])
189
 
190
  # Fazer requisição
191
  resposta = api_client.query_model(model_name, messages, max_tokens=800)
 
248
  }
249
 
250
  .resposta-container {
251
+ background-color: #ffffff !important;
252
+ color: #1a1a1a !important;
253
  border: 1px solid #e0e0e0 !important;
254
  border-radius: 20px !important;
255
  padding: 20px !important;
 
258
  }
259
 
260
  .resposta-container pre code {
261
+ color: #1a1a1a !important;
262
+ background-color: #f8f9fa !important;
263
  }
264
 
265
  .pergunta-container {
 
276
  margin-bottom: 20px !important;
277
  text-align: center !important;
278
  }
279
+
280
+ .modelo-dropdown {
281
+ margin-bottom: 15px !important;
282
+ }
283
  """
284
 
285
  # Interface Gradio
 
311
 
312
  modelo_select = gr.Dropdown(
313
  choices=list(MODELS.keys()),
314
+ value=DEFAULT_MODEL,
315
+ label="🧠 Selecione o Modelo de IA",
316
+ info="Escolha o modelo para responder sua pergunta",
317
+ elem_classes="modelo-dropdown"
318
  )
319
 
320
  with gr.Row():
 
328
  variant="secondary"
329
  )
330
 
331
+ # Coluna da direita - Saída
332
  with gr.Column(scale=3):
333
  gr.Markdown("### 💬 Resposta do Dr. Aldo Henrique:")
334
  saida = gr.HTML(
 
341
  with gr.Accordion("📚 Exemplos de Perguntas", open=False):
342
  gr.Examples(
343
  examples=[
344
+ ["Como implementar uma lista ligada em C com todas as operações básicas?", DEFAULT_MODEL],
345
+ ["Explique a diferença entre == e equals() em Java com exemplos práticos", "Mistral 7B"],
346
+ ["Como funciona o algoritmo de machine learning Random Forest?", "Llama 3.2 3B (Meta)"],
347
+ ["Mostre como criar uma API REST completa com Spring Boot", "Zephyr 7B"]
 
 
 
348
  ],
349
  inputs=[entrada, modelo_select]
350
  )
 
365
  - **Foco**: Explicações didáticas e exemplos práticos
366
  - **Abordagem**: Acadêmica e profissional
367
 
368
+ ### Modelos Disponíveis:
369
+ - **Phi-3 Mini**: Modelo compacto e eficiente da Microsoft
370
+ - **Llama 3.2 3B**: Versão menor do modelo da Meta
371
+ - **Mistral 7B**: Modelo francês de alta qualidade
372
+ - **Zephyr 7B**: Versão otimizada para diálogo
373
+
374
  ### Dicas para melhores respostas:
375
  - Seja específico em suas perguntas
376
  - Mencione o contexto (iniciante, intermediário, avançado)
377
  - Peça exemplos práticos quando necessário
 
378
  """)
379
 
380
  # Eventos