Spaces:
Runtime error
Runtime error
# Created by Leandro Carneiro at 22/01/2024 | |
# Description: | |
# ------------------------------------------------ | |
import gradio as gr | |
import main | |
# Define two separate functions for each button | |
def call_generate_news(subject, sites, min_words, max_words): | |
if subject == '': | |
return 'Erro: Assunto não informado', '' | |
if min_words == '': | |
return 'Erro: Mínimo de palavras não informado', '' | |
if max_words == '': | |
return 'Erro: Máximo de palavras não informado', '' | |
if sites == '': | |
return 'Erro: Domínios para pesquisa não informados', '' | |
if max_words < min_words: | |
return 'Erro: Máximo de palavras menor que o mínimo de palavras' | |
list_sites = sites.split('\n') | |
result_news = main.generate_news(subject, min_words, max_words, list_sites) | |
return result_news | |
def call_invoke_llm(context, prompt): | |
result = main.call_llm(context, prompt) | |
return result | |
# Create the Gradio interface using Blocks | |
with gr.Blocks(title='BotNews') as page: | |
gr.Markdown("# BotNews") | |
gr.Markdown("## Gerar Notícia por IA") | |
gr.Markdown(" ") | |
gr.Markdown("Instrução: Preencha abaixo com um assunto (Por exemplo: 'Guerra em Israel' ou 'Economia do Brasil').") | |
gr.Markdown(" ") | |
with gr.Row(): | |
input1 = gr.Textbox(label="Assunto:", lines=1) | |
with gr.Row(): | |
input2 = gr.Textbox(label="Domínios para pesquisa (coloque um domínio por linha):", | |
lines=10, value='https://www.cnnbrasil.com.br/\nhttps://g1.globo.com/\nhttps://www.metropoles.com/\nhttps://www.bbc.com/portuguese/\nhttps://www.instagram.com/') | |
with gr.Row(): | |
input3 = gr.Textbox(label="Mínimo de palavras:", lines=1, value="300") | |
input4 = gr.Textbox(label="Máximo de palavras:", lines=1, value="700") | |
with gr.Row(): | |
button1 = gr.Button("Gerar notícia") | |
with gr.Row(): | |
output1 = gr.Textbox(label="Notícia gerada por IA", lines=25) | |
gr.Markdown("<hr>") | |
gr.Markdown("## Prompt para a Notícia") | |
gr.Markdown(" ") | |
gr.Markdown("Instrução: Preencha abaixo com um comando para ser executado sobre a notícia (Por exemplo: 'Resuma em tópicos' ou 'Adicione um tom sarcástico').") | |
gr.Markdown(" ") | |
with gr.Row(): | |
input5 = gr.Textbox(label="Prompt para a notícia") | |
with gr.Row(): | |
button2 = gr.Button("Gerar resposta") | |
with gr.Row(): | |
output2 = gr.Textbox(label="Resposta gerada por IA", lines=25) | |
button1.click(call_generate_news, inputs=[input1, input2, input3, input4], outputs=[output1]) | |
button2.click(call_invoke_llm, inputs=[output1, input5], outputs=[output2]) | |
# Launch the interface | |
page.launch(share=True) | |