Docfile commited on
Commit
c14f709
·
verified ·
1 Parent(s): 2272990

Update crew_utils.py

Browse files
Files changed (1) hide show
  1. crew_utils.py +19 -9
crew_utils.py CHANGED
@@ -1,9 +1,20 @@
1
  # crew_utils.py
 
 
 
2
  from crewai import Agent, Crew, Process, Task
3
  from crewai_tools import SerperDevTool
4
  from crewai import LLM
5
  from pydantic import BaseModel, Field
6
- from typing import List,Any
 
 
 
 
 
 
 
 
7
  from pdf_tool import PDFTool
8
 
9
  # --- Définition des outils ---
@@ -12,8 +23,6 @@ pdf_tool = PDFTool()
12
 
13
  # --- Définition du LLM (Gemini) ---
14
  # Remplace par ta clé API
15
-
16
-
17
  GEMINI_API_KEY = "AIzaSyD6yZxfVOnh63GXBJjakAupk9aP4CZrgrQ"
18
  llm = LLM(
19
  model="gemini/gemini-1.5-flash",
@@ -100,7 +109,7 @@ class SectionContent(BaseModel):
100
 
101
  # Tâches pour les Rédacteurs (exemple pour 3 sections, à adapter)
102
  async def write_section_task(
103
- researcher: Agent, section_title: str, context: List[Any]
104
  ) -> Task:
105
  return Task(
106
  description=f"""
@@ -159,7 +168,7 @@ class ExposeCrew(Crew):
159
  async def kickoff(self, inputs: dict = {}) -> str:
160
  # Exécuter la tâche de création du plan
161
  plan = await create_plan_task.execute(context=inputs)
162
- print(f"Plan de l'exposé : {plan}")
163
 
164
  # Créer et exécuter les tâches de rédaction de section en parallèle
165
  section_tasks = await process_section_tasks(
@@ -167,10 +176,11 @@ class ExposeCrew(Crew):
167
  plan=plan,
168
  researchers=[researcher_intro, researcher_dev, researcher_conclusion],
169
  )
 
 
 
170
 
171
- section_outputs = await asyncio.gather(*[task.execute() for task in section_tasks])
172
-
173
- print(f"Sections rédigées : {section_outputs}")
174
 
175
  # Mettre à jour la description de la tâche de compilation avec les sections rédigées
176
  compile_report_task.description = f"""
@@ -184,5 +194,5 @@ class ExposeCrew(Crew):
184
  compile_report_task.context = section_tasks
185
 
186
  # Exécuter la tâche de compilation
187
- result = await compile_report_task.execute(context=section_outputs)
188
  return result
 
1
  # crew_utils.py
2
+ import asyncio
3
+ from typing import Any, List
4
+
5
  from crewai import Agent, Crew, Process, Task
6
  from crewai_tools import SerperDevTool
7
  from crewai import LLM
8
  from pydantic import BaseModel, Field
9
+
10
+ # --- Installation des dépendances (si nécessaire) ---
11
+ # Assure-toi que les packages nécessaires sont installés.
12
+ # Tu peux exécuter `crewai install` si tu as utilisé le CLI de CrewAI pour initialiser le projet.
13
+ # Sinon, installe-les manuellement avec :
14
+ # pip install crewai crewai-tools langchain-google-genai reportlab
15
+
16
+ # --- Outil de génération de PDF (exemple avec reportlab) ---
17
+ # Crée un fichier `pdf_tool.py` dans le même répertoire que ce script, par exemple.
18
  from pdf_tool import PDFTool
19
 
20
  # --- Définition des outils ---
 
23
 
24
  # --- Définition du LLM (Gemini) ---
25
  # Remplace par ta clé API
 
 
26
  GEMINI_API_KEY = "AIzaSyD6yZxfVOnh63GXBJjakAupk9aP4CZrgrQ"
27
  llm = LLM(
28
  model="gemini/gemini-1.5-flash",
 
109
 
110
  # Tâches pour les Rédacteurs (exemple pour 3 sections, à adapter)
111
  async def write_section_task(
112
+ researcher: Agent, section_title: str, context: List[Task]
113
  ) -> Task:
114
  return Task(
115
  description=f"""
 
168
  async def kickoff(self, inputs: dict = {}) -> str:
169
  # Exécuter la tâche de création du plan
170
  plan = await create_plan_task.execute(context=inputs)
171
+ self.log.info(f"Plan de l'exposé : {plan}")
172
 
173
  # Créer et exécuter les tâches de rédaction de section en parallèle
174
  section_tasks = await process_section_tasks(
 
176
  plan=plan,
177
  researchers=[researcher_intro, researcher_dev, researcher_conclusion],
178
  )
179
+
180
+ sections_results = await asyncio.gather(*[task.execute(context=[create_plan_task]) for task in section_tasks])
181
+ section_outputs = [result.content for result in sections_results]
182
 
183
+ self.log.info(f"Sections rédigées : {section_outputs}")
 
 
184
 
185
  # Mettre à jour la description de la tâche de compilation avec les sections rédigées
186
  compile_report_task.description = f"""
 
194
  compile_report_task.context = section_tasks
195
 
196
  # Exécuter la tâche de compilation
197
+ result = await compile_report_task.execute()
198
  return result