From 6a39dc7ee28f13c4868909a04e8fecdba238a8ab Mon Sep 17 00:00:00 2001 From: root Date: Wed, 27 May 2026 18:31:51 +0000 Subject: [PATCH] update --- backend/config.py | 18 +----------------- backend/generator.py | 31 +++++++++++++------------------ 2 files changed, 14 insertions(+), 35 deletions(-) diff --git a/backend/config.py b/backend/config.py index 79c74b4..1dfedf4 100644 --- a/backend/config.py +++ b/backend/config.py @@ -24,23 +24,7 @@ FORMAT_META = { "ExtendedGuide": {"pages": "47-60 Seiten", "time": "~5h"}, } -REVIEW_TIMEOUTS = { - "OnePager": 120, - "Cheatsheet": 120, - "MiniGuide": 180, - "BeginnerGuide": 600, - "IntermediateGuide": 600, - "ExtendedGuide": 900, -} - -GENERATION_TIMEOUTS = { - "OnePager": 900, - "Cheatsheet": 900, - "MiniGuide": 1200, - "BeginnerGuide": 1800, - "IntermediateGuide": 2400, - "ExtendedGuide": 3000, -} +AGENT_TIMEOUT = 3600 MAX_CONCURRENT_GENERATIONS = 6 CONTENT_REVIEW_ITERATIONS = { diff --git a/backend/generator.py b/backend/generator.py index 7660a17..82f9b85 100644 --- a/backend/generator.py +++ b/backend/generator.py @@ -8,12 +8,11 @@ from datetime import datetime, timezone from pathlib import Path from config import ( + AGENT_TIMEOUT, CLAUDE_CLI, CONTENT_REVIEW_ITERATIONS, TEMPLATES_DIR, - GENERATION_TIMEOUTS, MAX_CONCURRENT_GENERATIONS, - REVIEW_TIMEOUTS, STORAGE_DIR, ) from database import ( @@ -229,21 +228,19 @@ async def generate_guide(guide_id: str, topic: str, format_name: str, instructio html_path = STORAGE_DIR / "html" / f"{guide_id}.html" pdf_path = STORAGE_DIR / "pdf" / f"{guide_id}.pdf" preview_dir = STORAGE_DIR / "preview" / guide_id - timeout = GENERATION_TIMEOUTS.get(format_name, 600) content_iters = CONTENT_REVIEW_ITERATIONS.get(format_name, 2) - review_timeout = REVIEW_TIMEOUTS.get(format_name, 120) try: if guide_id in _cancelled: return current_step = "Generierung" - current_timeout = timeout + current_timeout = AGENT_TIMEOUT # Step 1: Generator-Agent erstellt HTML await _set_progress(guide_id, "Generiere HTML…") gen_prompt = _build_generator_prompt(topic, format_name, html_path, instructions) - returncode, stdout, stderr = await _run_claude(guide_id, gen_prompt, timeout) + returncode, stdout, stderr = await _run_claude(guide_id, gen_prompt, AGENT_TIMEOUT) if guide_id in _cancelled: return @@ -262,9 +259,9 @@ async def generate_guide(guide_id: str, topic: str, format_name: str, instructio await _set_progress(guide_id, f"Prüfe Inhalt… ({iteration}/{content_iters})") current_step = f"Inhalts-Review ({iteration}/{content_iters})" - current_timeout = review_timeout + current_timeout = AGENT_TIMEOUT content_prompt = _build_content_review_prompt(topic, format_name, html_path) - returncode, review_out, review_err = await _run_claude(guide_id, content_prompt, review_timeout) + returncode, review_out, review_err = await _run_claude(guide_id, content_prompt, AGENT_TIMEOUT) if returncode != 0: await _fail(guide_id, f"Inhalts-Review-Fehler: {review_err[:1000]}") @@ -280,9 +277,9 @@ async def generate_guide(guide_id: str, topic: str, format_name: str, instructio feedback = review_text.replace("FAIL", "").strip() await _set_progress(guide_id, f"Korrigiere Inhalt… ({iteration}/{content_iters})") current_step = f"Inhalts-Korrektur ({iteration}/{content_iters})" - current_timeout = timeout + current_timeout = AGENT_TIMEOUT fix_prompt = _build_fix_prompt(topic, format_name, html_path, feedback) - returncode, _, fix_err = await _run_claude(guide_id, fix_prompt, timeout) + returncode, _, fix_err = await _run_claude(guide_id, fix_prompt, AGENT_TIMEOUT) if returncode != 0: await _fail(guide_id, f"Fix-Fehler: {fix_err[:1000]}") @@ -303,9 +300,9 @@ async def generate_guide(guide_id: str, topic: str, format_name: str, instructio page_count = len(pngs) current_step = "Stil-Review" - current_timeout = review_timeout + current_timeout = AGENT_TIMEOUT review_prompt = _build_review_prompt(format_name, pngs, page_count) - returncode, review_out, review_err = await _run_claude(guide_id, review_prompt, review_timeout) + returncode, review_out, review_err = await _run_claude(guide_id, review_prompt, AGENT_TIMEOUT) if returncode != 0: await _fail(guide_id, f"Stil-Review-Fehler: {review_err[:1000]}") @@ -316,9 +313,9 @@ async def generate_guide(guide_id: str, topic: str, format_name: str, instructio feedback = review_text.replace("FAIL", "").strip() await _set_progress(guide_id, "Korrigiere Layout…") current_step = "Stil-Korrektur" - current_timeout = timeout + current_timeout = AGENT_TIMEOUT fix_prompt = _build_fix_prompt(topic, format_name, html_path, feedback) - returncode, _, fix_err = await _run_claude(guide_id, fix_prompt, timeout) + returncode, _, fix_err = await _run_claude(guide_id, fix_prompt, AGENT_TIMEOUT) if returncode != 0: await _fail(guide_id, f"Fix-Fehler: {fix_err[:1000]}") @@ -362,17 +359,15 @@ async def rework_guide(guide_id: str, topic: str, format_name: str, instructions html_path = STORAGE_DIR / "html" / f"{guide_id}.html" pdf_path = STORAGE_DIR / "pdf" / f"{guide_id}.pdf" - timeout = GENERATION_TIMEOUTS.get(format_name, 600) - try: if guide_id in _cancelled: return current_step = "Überarbeitung" - current_timeout = timeout + current_timeout = AGENT_TIMEOUT rework_prompt = _build_rework_prompt(topic, format_name, html_path, instructions) - returncode, stdout, stderr = await _run_claude(guide_id, rework_prompt, timeout) + returncode, stdout, stderr = await _run_claude(guide_id, rework_prompt, AGENT_TIMEOUT) if guide_id in _cancelled: return