import streamlit as st from streamlit_chat import message as st_message from g4f.client import Client # Inicializa o cliente do modelo client = Client() # Função para gerar temas def gerar_temas(papel, quantidade, tipo_conteudo, publico_alvo, tema_topico): prompt = f""" Atue como {papel}. Sua tarefa é sugerir {quantidade} temas para {tipo_conteudo}, considerando as seguintes exigências: O tema deve ser relevante para o público-alvo: {publico_alvo}. Deve abordar uma tendência ou problema atual relacionado a {tema_topico}. Inclua uma breve descrição sobre cada tema sugerido, explicando a relevância e como pode agregar valor ao público. """ # Gera a resposta do modelo response = client.chat.completions.create( model="gpt-4o-mini", messages=[{"role": "user", "content": prompt}] ) # Acessa a mensagem de resposta diretamente return response.choices[0].message.content # Título da aplicação st.title("Gerador de Temas com GPT") # Formulário para inserir os parâmetros with st.form(key="parametros_form"): st.subheader("Preencha os detalhes para gerar temas:") papel = st.text_input("Papel", "especialista em marketing digital") quantidade = st.number_input("Quantidade de Temas", min_value=1, max_value=10, value=5) tipo_conteudo = st.text_input("Tipo de Conteúdo", "artigos de blog") publico_alvo = st.text_input("Público-Alvo", "empreendedores digitais") tema_topico = st.text_input("Tendência ou Tópico", "inovações tecnológicas") submit_button = st.form_submit_button(label="Gerar Temas") # Gera os temas quando o botão for pressionado if submit_button: with st.spinner("Gerando temas..."): temas_gerados = gerar_temas(papel, quantidade, tipo_conteudo, publico_alvo, tema_topico) # Exibe os temas gerados usando o ChatMessage st_message(f"Temas sugeridos para {tipo_conteudo}:", is_user=True) st_message(temas_gerados, is_user=False)