DHEIVER commited on
Commit
934e488
·
verified ·
1 Parent(s): 12bee70

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +71 -12
app.py CHANGED
@@ -1,6 +1,7 @@
1
  import gradio as gr
2
  import torch
3
  from transformers import pipeline
 
4
 
5
  class GeradorTrilhaAprendizado:
6
  def __init__(self):
@@ -9,19 +10,23 @@ class GeradorTrilhaAprendizado:
9
  model="openai/whisper-base",
10
  device=self.device)
11
  self.generator = pipeline("text-generation",
12
- model="gpt2-large", # Modelo maior
13
  device=self.device)
 
14
 
15
  def processar_audio(self,
16
  audio_path: str,
17
  nome_trilha: str,
18
  nivel: str = "intermediário",
 
 
19
  incluir_recursos: bool = True) -> tuple:
20
  try:
21
  transcricao = self.transcriber(audio_path)["text"]
22
 
23
  prompt = f"""
24
- Crie uma trilha de aprendizado estruturada para nível {nivel} com base no seguinte objetivo:
 
25
  {transcricao}
26
 
27
  Inclua:
@@ -30,25 +35,56 @@ class GeradorTrilhaAprendizado:
30
  3. Módulos de estudo sequenciais
31
  4. Projetos práticos
32
  5. Marcos de avaliação
 
33
 
34
  Trilha de aprendizado para {nome_trilha}:
35
  """
36
 
37
  analise = self.generator(prompt,
38
- max_length=500, # Aumentado
39
  num_return_sequences=1,
40
- temperature=0.7, # Adicionado
41
- top_p=0.95)[0]["generated_text"] # Adicionado
42
 
43
  if incluir_recursos:
44
- recursos = self._gerar_recursos(nivel, transcricao)
45
  analise += "\n\n" + recursos
46
 
47
- return (transcricao, analise, "✅ Trilha gerada com sucesso!")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
48
  except Exception as e:
49
- return (f"Erro: {str(e)}", "Não foi possível gerar a análise.", "❌ Ocorreu um erro")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
50
 
51
- def _gerar_recursos(self, nivel: str, objetivo: str) -> str:
52
  recursos_por_nivel = {
53
  "iniciante": {
54
  "cursos": ["Fundamentos Básicos", "Introdução Prática"],
@@ -69,7 +105,7 @@ class GeradorTrilhaAprendizado:
69
 
70
  recursos = recursos_por_nivel[nivel]
71
  return f"""
72
- 📚 Recursos Recomendados para Nível {nivel}:
73
 
74
  1. Cursos Recomendados:
75
  - {recursos['cursos'][0]}
@@ -117,6 +153,18 @@ def criar_interface():
117
  label="Nível de Dificuldade"
118
  )
119
 
 
 
 
 
 
 
 
 
 
 
 
 
120
  incluir_recursos = gr.Checkbox(
121
  label="Incluir Recursos Recomendados",
122
  value=True
@@ -129,11 +177,22 @@ def criar_interface():
129
  status = gr.Markdown()
130
  transcricao = gr.Textbox(label="Transcrição do Áudio", lines=4)
131
  analise = gr.Textbox(label="Sua Trilha de Aprendizado", lines=10)
 
 
 
 
 
 
 
 
 
 
 
132
 
133
  processar_btn.click(
134
  fn=GeradorTrilhaAprendizado().processar_audio,
135
- inputs=[audio_input, nome_trilha, nivel, incluir_recursos],
136
- outputs=[transcricao, analise, status]
137
  )
138
 
139
  return app
 
1
  import gradio as gr
2
  import torch
3
  from transformers import pipeline
4
+ from datetime import datetime
5
 
6
  class GeradorTrilhaAprendizado:
7
  def __init__(self):
 
10
  model="openai/whisper-base",
11
  device=self.device)
12
  self.generator = pipeline("text-generation",
13
+ model="gpt2-large",
14
  device=self.device)
15
+ self.historico = []
16
 
17
  def processar_audio(self,
18
  audio_path: str,
19
  nome_trilha: str,
20
  nivel: str = "intermediário",
21
+ area: str = "geral",
22
+ duracao: str = "3 meses",
23
  incluir_recursos: bool = True) -> tuple:
24
  try:
25
  transcricao = self.transcriber(audio_path)["text"]
26
 
27
  prompt = f"""
28
+ Crie uma trilha de aprendizado estruturada para nível {nivel} na área de {area}
29
+ com duração de {duracao} com base no seguinte objetivo:
30
  {transcricao}
31
 
32
  Inclua:
 
35
  3. Módulos de estudo sequenciais
36
  4. Projetos práticos
37
  5. Marcos de avaliação
38
+ 6. Cronograma sugerido
39
 
40
  Trilha de aprendizado para {nome_trilha}:
41
  """
42
 
43
  analise = self.generator(prompt,
44
+ max_length=500,
45
  num_return_sequences=1,
46
+ temperature=0.7,
47
+ top_p=0.95)[0]["generated_text"]
48
 
49
  if incluir_recursos:
50
+ recursos = self._gerar_recursos(nivel, area, transcricao)
51
  analise += "\n\n" + recursos
52
 
53
+ # Salvar no histórico
54
+ self.historico.append({
55
+ "data": datetime.now().strftime("%d/%m/%Y %H:%M"),
56
+ "nome": nome_trilha,
57
+ "nivel": nivel,
58
+ "area": area,
59
+ "duracao": duracao,
60
+ "transcricao": transcricao,
61
+ "analise": analise
62
+ })
63
+
64
+ return (
65
+ transcricao,
66
+ analise,
67
+ self._formatar_historico(),
68
+ "✅ Trilha gerada com sucesso!"
69
+ )
70
  except Exception as e:
71
+ return (
72
+ f"Erro: {str(e)}",
73
+ "Não foi possível gerar a análise.",
74
+ self._formatar_historico(),
75
+ "❌ Ocorreu um erro"
76
+ )
77
+
78
+ def _formatar_historico(self) -> str:
79
+ if not self.historico:
80
+ return "Nenhuma trilha gerada ainda"
81
+
82
+ historico_fmt = "📋 Histórico de Trilhas:\n\n"
83
+ for h in self.historico[-5:]: # Últimas 5 trilhas
84
+ historico_fmt += f"• {h['data']} - {h['nome']} ({h['nivel']}, {h['area']})\n"
85
+ return historico_fmt
86
 
87
+ def _gerar_recursos(self, nivel: str, area: str, objetivo: str) -> str:
88
  recursos_por_nivel = {
89
  "iniciante": {
90
  "cursos": ["Fundamentos Básicos", "Introdução Prática"],
 
105
 
106
  recursos = recursos_por_nivel[nivel]
107
  return f"""
108
+ 📚 Recursos Recomendados para {area} - Nível {nivel}:
109
 
110
  1. Cursos Recomendados:
111
  - {recursos['cursos'][0]}
 
153
  label="Nível de Dificuldade"
154
  )
155
 
156
+ area = gr.Dropdown(
157
+ choices=["programação", "data science", "design", "marketing", "negócios", "geral"],
158
+ value="geral",
159
+ label="Área de Conhecimento"
160
+ )
161
+
162
+ duracao = gr.Dropdown(
163
+ choices=["1 mês", "3 meses", "6 meses", "1 ano"],
164
+ value="3 meses",
165
+ label="Duração Estimada"
166
+ )
167
+
168
  incluir_recursos = gr.Checkbox(
169
  label="Incluir Recursos Recomendados",
170
  value=True
 
177
  status = gr.Markdown()
178
  transcricao = gr.Textbox(label="Transcrição do Áudio", lines=4)
179
  analise = gr.Textbox(label="Sua Trilha de Aprendizado", lines=10)
180
+ historico = gr.Markdown(label="Histórico")
181
+
182
+ # Botão de ajuda
183
+ with gr.Accordion("ℹ️ Como usar"):
184
+ gr.Markdown("""
185
+ 1. Grave um áudio descrevendo seus objetivos de aprendizado
186
+ 2. Escolha o nome da trilha, nível, área e duração
187
+ 3. Clique em 'Gerar Trilha de Aprendizado'
188
+ 4. Revise a transcrição e a trilha gerada
189
+ 5. O histórico mostra suas últimas 5 trilhas geradas
190
+ """)
191
 
192
  processar_btn.click(
193
  fn=GeradorTrilhaAprendizado().processar_audio,
194
+ inputs=[audio_input, nome_trilha, nivel, area, duracao, incluir_recursos],
195
+ outputs=[transcricao, analise, historico, status]
196
  )
197
 
198
  return app