Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -12,14 +12,14 @@ if not HF_TOKEN:
|
|
12 |
|
13 |
# Modelos disponíveis via API (testados e funcionais)
|
14 |
MODELS = {
|
15 |
-
"
|
16 |
-
"
|
17 |
-
"
|
18 |
-
"
|
19 |
}
|
20 |
|
21 |
# Modelo padrão (mais confiável)
|
22 |
-
DEFAULT_MODEL =
|
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 =
|
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 |
-
#
|
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;
|
252 |
-
color: #1a1a1a !important;
|
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;
|
262 |
-
background-color: #f8f9fa !important;
|
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=
|
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
|
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?",
|
340 |
-
["Explique a diferença entre == e equals() em Java com exemplos práticos", "
|
341 |
-
["Como funciona o algoritmo de machine learning Random Forest?", "
|
342 |
-
["Mostre como criar uma API REST completa com Spring Boot", "
|
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
|