Spaces:
Sleeping
Sleeping
# main.py | |
import streamlit as st | |
import asyncio | |
from crew_utils import ( | |
ExposeCrew, | |
project_manager, | |
planner, | |
researcher_intro, | |
researcher_dev, | |
researcher_conclusion, | |
assembler, | |
create_plan_task, | |
compile_report_task, | |
llm, | |
) | |
from crewai import Agent, Crew, Process, Task | |
async def run_crew(topic): | |
"""Exécute le crew pour générer l'exposé.""" | |
crew = ExposeCrew( | |
agents=[project_manager, planner, researcher_intro, researcher_dev, researcher_conclusion, assembler], | |
tasks=[create_plan_task, compile_report_task], | |
process=Process.hierarchical, | |
manager_llm=llm, | |
verbose=True, | |
) | |
result = await crew.kickoff(inputs={"topic": topic}) | |
return result | |
# Interface Streamlit | |
st.title("Générateur d'Exposés avec CrewAI") | |
topic = st.text_input("Entrez le thème de l'exposé :") | |
if st.button("Générer l'exposé"): | |
if not topic: | |
st.error("Veuillez entrer un thème pour l'exposé.") | |
else: | |
with st.spinner("Création de l'exposé en cours..."): | |
try: | |
# Exécuter le crew de manière asynchrone | |
result = asyncio.run(run_crew(topic)) | |
st.success("Exposé généré avec succès!") | |
# Téléchargement du fichier PDF | |
with open("expose.pdf", "rb") as file: | |
st.download_button( | |
label="Télécharger l'exposé en PDF", | |
data=file, | |
file_name="expose.pdf", | |
mime="application/pdf" | |
) | |
except Exception as e: | |
st.error(f"Une erreur s'est produite : {e}") |