Spaces:
Running
Running
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}] | |
) | |
# Retorna o conteúdo gerado pelo modelo | |
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) | |