Spaces:
Runtime error
Runtime error
File size: 3,187 Bytes
a2ee974 5dd704c a2ee974 65dc459 a2ee974 566bba1 a2ee974 566bba1 5dd704c a2ee974 5dd704c a2ee974 352342a a2ee974 db1bb8d a2ee974 5dd704c a2ee974 5dd704c a2ee974 bd5a0eb a2ee974 51e1c58 a2ee974 db1bb8d a2ee974 bd5a0eb a2ee974 51e1c58 a2ee974 51e1c58 a2ee974 5dd704c a2ee974 99017a2 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# 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, model):
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 int(max_words) < int(min_words):
return 'Erro: Máximo de palavras menor que o mínimo de palavras'
filtered_list_sites = []
list_sites = sites.split('\n')
for item in list_sites:
if item:
filtered_list_sites.append(item)
result_news = main.generate_news(subject, min_words, max_words, filtered_list_sites, model.lower())
return result_news
def call_invoke_llm(context, prompt, model):
result = main.call_llm(context, prompt, model)
return result
# Create the Gradio interface using Blocks
with gr.Blocks(title='BotNews') as page:
gr.Markdown("# BotNews")
gr.Markdown("## Gerar a notícia com IA")
gr.Markdown(" ")
gr.Markdown("<b>Instrução:</b> 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():
input5 = gr.Dropdown(
["OpenAI", "Mixtral-8x7B"], value='OpenAI', label="Modelo LLM", info="Escolha o modelo para processamento das informações.",
scale=1
)
input2 = gr.Textbox(label="Domínios para pesquisa (coloque um domínio por linha):",
lines=8,
scale=2,
value='https://www.cnnbrasil.com.br/\nhttps://g1.globo.com/\nhttps://www.metropoles.com/\nhttps://www.bbc.com/portuguese/\nhttps://www.instagram.com/')
input3 = gr.Textbox(label="Mínimo de palavras:", lines=1, value="300", scale=1)
input4 = gr.Textbox(label="Máximo de palavras:", lines=1, value="700", scale=1)
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("## Ajustar a notícia com IA")
gr.Markdown(" ")
gr.Markdown("<b>Instrução:</b> 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():
input6 = gr.Textbox(label="Ajustar a notícia com IA")
with gr.Row():
button2 = gr.Button("Ajustar notícia")
with gr.Row():
output2 = gr.Textbox(label="Notícia ajustada por IA", lines=25)
button1.click(call_generate_news, inputs=[input1, input2, input3, input4, input5], outputs=[output1])
button2.click(call_invoke_llm, inputs=[output1, input6, input5], outputs=[output2])
# Launch the interface
page.launch() #share=True
|