Docfile commited on
Commit
2b143d9
·
verified ·
1 Parent(s): 092b262

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +44 -0
app.py ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # main.py
2
+ import streamlit as st
3
+ import asyncio
4
+
5
+ from crew_utils import ExposeCrew, project_manager, planner, researcher_intro, researcher_dev, researcher_conclusion, assembler, create_plan_task, compile_report_task, llm
6
+
7
+ async def run_crew(topic):
8
+ """Exécute le crew pour générer l'exposé."""
9
+ crew = ExposeCrew(
10
+ agents=[project_manager, planner, researcher_intro, researcher_dev, researcher_conclusion, assembler],
11
+ tasks=[create_plan_task, compile_report_task],
12
+ process=Process.hierarchical,
13
+ manager_llm=llm,
14
+ verbose=2,
15
+ )
16
+ result = await crew.kickoff(inputs={"topic": topic})
17
+ return result
18
+
19
+ # Interface Streamlit
20
+ st.title("Générateur d'Exposés avec CrewAI")
21
+
22
+ topic = st.text_input("Entrez le thème de l'exposé :")
23
+
24
+ if st.button("Générer l'exposé"):
25
+ if not topic:
26
+ st.error("Veuillez entrer un thème pour l'exposé.")
27
+ else:
28
+ with st.spinner("Création de l'exposé en cours..."):
29
+ try:
30
+ # Exécuter le crew de manière asynchrone
31
+ result = asyncio.run(run_crew(topic))
32
+ st.success("Exposé généré avec succès!")
33
+
34
+ # Téléchargement du fichier PDF
35
+ with open("expose.pdf", "rb") as file:
36
+ st.download_button(
37
+ label="Télécharger l'exposé en PDF",
38
+ data=file,
39
+ file_name="expose.pdf",
40
+ mime="application/pdf"
41
+ )
42
+
43
+ except Exception as e:
44
+ st.error(f"Une erreur s'est produite : {e}")