wpbcpaz commited on
Commit
f129a43
·
verified ·
1 Parent(s): 396aee9

Update app.py

Browse files

Retificação do chatbot e revisão para remover componentes obsoletos do Gradio 4

Files changed (1) hide show
  1. app.py +14 -10
app.py CHANGED
@@ -61,9 +61,9 @@ ESTILOS_DISPONIVEIS = [
61
  ]
62
 
63
  FORMATO_CONFIGS = {
64
- "Instagram (Post)": {"tamanho": "100-150 palavras", "estrutura": "gancho inicial + desenvolvimento + call-to-action + Incluir no máximo 3 emojis relevantes no texto." , "tom_adicional": "próximo, empático e motivador", "max_tokens": 350, "limite_palavras_ia": "150 palavras", "hashtags": "Incluir 4-5 hashtags relevantes no final."},
65
  "Twitter/X (Curto)": {"tamanho": "Até 280 caracteres", "estrutura": "frase de impacto + link/hashtag", "tom_adicional": "direto e conciso, ideal para tweets", "max_tokens": 150, "limite_palavras_ia": "280 caracteres", "hashtags": "Incluir no máximo 2 hashtags."},
66
- "LinkedIn (Artigo)": {"tamanho": "250-400 palavras", "estrutura": "título chamativo + desenvolvimento profissional + reflexão", "tom_adicional": "profissional e autoritário", "focado em insights": True, "max_tokens": 700, "limite_palavras_ia": "400 palavras", "hashtags": "Incluir 3-4 hashtags profissionais no final."},
67
  }
68
 
69
  # Variável global para armazenar o histórico de sessão (agora é um cache)
@@ -336,7 +336,7 @@ def gerar_imagem(descricao):
336
  return None
337
 
338
  # ============================================
339
- # NOVA FUNÇÃO DO CHATBOT
340
  # ============================================
341
  def responder_chat(message, chat_history):
342
  """
@@ -353,9 +353,9 @@ def responder_chat(message, chat_history):
353
  # 2. Construir o histórico no formato da API
354
  messages = [{"role": "system", "content": system_prompt}]
355
 
356
- for user_msg, bot_msg in chat_history:
357
- messages.append({"role": "user", "content": user_msg})
358
- messages.append({"role": "assistant", "content": bot_msg})
359
 
360
  # 3. Adicionar a nova mensagem do usuário
361
  messages.append({"role": "user", "content": message})
@@ -458,7 +458,8 @@ def gerar_post_interface(tema, nicho, estilo, descricao_imagem, gerar_img, progr
458
  # INTERFACE GRADIO (Com Chatbot)
459
  # ============================================
460
 
461
- custom_theme = gr.themes.Glass(
 
462
  primary_hue="blue", # Azul como base
463
  secondary_hue="gray", # Contraste frio e sofisticado
464
  neutral_hue="stone", # Tom neutro suave
@@ -528,7 +529,8 @@ with gr.Blocks(theme=custom_theme, title="Gerador de Posts e Chatbot") as demo:
528
  )
529
 
530
  def toggle_descricao_img(gerar):
531
- return gr.update(visible=gerar)
 
532
 
533
  gerar_img_checkbox.change(
534
  toggle_descricao_img,
@@ -644,8 +646,10 @@ with gr.Blocks(theme=custom_theme, title="Gerador de Posts e Chatbot") as demo:
644
  ],
645
  chatbot=chatbot_para_interface, # Passando o componente chatbot customizado
646
  textbox=gr.Textbox(placeholder="Digite sua mensagem aqui...", scale=7),
647
- submit_btn="Enviar",
648
- stop_btn="Parar"
 
 
649
  )
650
 
651
  # ABA 2: Histórico (Exibe o Dataframe)
 
61
  ]
62
 
63
  FORMATO_CONFIGS = {
64
+ "Instagram (Post)": {"tamanho": "100-150 palavras", "estrutura": "gancho inicial + desenvolvimento + call-to-action", "tom_adicional": "próximo, empático e motivador", "max_tokens": 350, "limite_palavras_ia": "150 palavras", "hashtags": "Incluir 4-5 hashtags relevantes no final. Incluir no máximo 3 emojis relevantes no texto."},
65
  "Twitter/X (Curto)": {"tamanho": "Até 280 caracteres", "estrutura": "frase de impacto + link/hashtag", "tom_adicional": "direto e conciso, ideal para tweets", "max_tokens": 150, "limite_palavras_ia": "280 caracteres", "hashtags": "Incluir no máximo 2 hashtags."},
66
+ "LinkedIn (Artigo)": {"tamanho": "250-400 palavras", "estrutura": "título chamativo + desenvolvimento profissional + reflexão", "tom_adicional": "profissional e autoritário", "focado em insights", "max_tokens": 700, "limite_palavras_ia": "400 palavras", "hashtags": "Incluir 3-4 hashtags profissionais no final."},
67
  }
68
 
69
  # Variável global para armazenar o histórico de sessão (agora é um cache)
 
336
  return None
337
 
338
  # ============================================
339
+ # NOVA FUNÇÃO DO CHATBOT (CORRIGIDA)
340
  # ============================================
341
  def responder_chat(message, chat_history):
342
  """
 
353
  # 2. Construir o histórico no formato da API
354
  messages = [{"role": "system", "content": system_prompt}]
355
 
356
+ # CORREÇÃO: chat_history (quando type="messages") já é uma List[Dict[str, str]]
357
+ # Podemos simplesmente estendê-lo
358
+ messages.extend(chat_history)
359
 
360
  # 3. Adicionar a nova mensagem do usuário
361
  messages.append({"role": "user", "content": message})
 
458
  # INTERFACE GRADIO (Com Chatbot)
459
  # ============================================
460
 
461
+ # ATUALIZADO: gr.themes.Glass é obsoleto no Gradio 4.x. Usando gr.themes.Soft.
462
+ custom_theme = gr.themes.Soft(
463
  primary_hue="blue", # Azul como base
464
  secondary_hue="gray", # Contraste frio e sofisticado
465
  neutral_hue="stone", # Tom neutro suave
 
529
  )
530
 
531
  def toggle_descricao_img(gerar):
532
+ # ATUALIZADO: gr.update() é obsoleto no Gradio 4.x
533
+ return gr.Textbox(visible=gerar)
534
 
535
  gerar_img_checkbox.change(
536
  toggle_descricao_img,
 
646
  ],
647
  chatbot=chatbot_para_interface, # Passando o componente chatbot customizado
648
  textbox=gr.Textbox(placeholder="Digite sua mensagem aqui...", scale=7),
649
+ submit_btn="Enviar",
650
+ # clear_btn="Limpar Conversa", # Removido conforme solicitado
651
+ retry_btn=None, # Oculta botões desnecessários
652
+ undo_btn=None,
653
  )
654
 
655
  # ABA 2: Histórico (Exibe o Dataframe)