vfven's picture
Upload 6 files
d677097 verified
Raw
History Blame
1.21 kB
# agents/specialized/writer.py
from agents.specialized.base import build_result, call_llm
from core.file_builder import build_docx
ROLE = """
Eres redactor experto. Escribe SOLO contenido real y extenso (500+ palabras).
Sin placeholders. Usa ## para secciones y ### para subsecciones.
Secciones: ## Resumen Ejecutivo, ### Introducción, ### Desarrollo,
### Hallazgos, ### Conclusiones, ### Recomendaciones
"""
async def run(task: str, context: dict = None) -> dict:
result = build_result("writer")
try:
response = await call_llm("writer", ROLE, task, context)
result["response"] = response
# Si la respuesta es suficientemente larga, generar un .docx
if len(response.strip()) > 300:
title = task[:60].strip('"') or "Informe generado"
try:
file_path = build_docx(title, response, images=None)
if file_path:
result["file_path"] = file_path.name
result["file_type"] = "docx"
except Exception as e:
result["file_error"] = str(e)
except Exception as e:
result["success"] = False
result["error"] = str(e)
return result