from crewai import Agent, Task, Crew, LLM import gradio as gr def criar_crew(tema): groq_llm = LLM(model="groq/llama-3.3-70b-versatile") pesquisador = Agent( role="Pesquisador", goal="Buscar informações detalhadas sobre o assunto informado.", backstory="Um especialista em coleta de dados e análise de informações.", llm=groq_llm ) redator = Agent( role="Redator", goal="Resumir as informações encontradas e criar um relatório.", backstory="Um redator experiente que transforma dados em textos claros.", llm=groq_llm ) latex = Agent( role="Latex", goal="Crie um documento Latex.", backstory="Um criador de documentos Latex.", llm=groq_llm ) tarefa_pesquisa = Task( description="Pesquise informações detalhadas sobre {}.".format(tema), agent=pesquisador, expected_output='Informações corretas e detalhadas sobre o assunto informado' ) tarefa_redacao = Task( description="Com base nas informações fornecidas pelo pesquisador, crie um resumo claro e objetivo.", agent=redator, expected_output='Resumo claro e objetivo' ) tarefa_latex = Task( description="Com base no resumo, crie um documento latex.", agent=latex, expected_output='Um documento Latex' ) equipe = Crew( agents=[pesquisador, redator, latex], tasks=[tarefa_pesquisa, tarefa_redacao, tarefa_latex] ) return equipe def executar_crew(entrada): equipe = criar_crew(entrada) resultado = equipe.kickoff() return resultado def interface_fn(tema): return executar_crew(tema) principal = gr.Interface( fn=interface_fn, inputs=gr.Textbox(label="Informe o tema"), outputs=gr.Textbox(label="Saída documento no formato Latex", show_copy_button=True), title="Pesquisa e Relatório em Latex", description="Clique no botão para executar três agentes que irão pesquisar e criar um relatório em latex sobre o tema informado.", examples=[["Mudanças Climáticas"], ["Inteligência Artificial"], ["Economia Global"]], ) arquitetura = gr.Blocks() with arquitetura: gr.Markdown("## Arquitetura do Sistema") gr.Image( value="diagrama.png", label="Arquitetura interna dos agentes", interactive=False ) demo = gr.TabbedInterface([principal, arquitetura], ["Principal", "Arquitetura"]) if __name__ == "__main__": demo.launch()