This commit is contained in:
Team3
2026-06-06 22:58:58 +02:00
parent 07b2338e67
commit 656b5bb621
2 changed files with 20 additions and 2 deletions

View File

@@ -504,7 +504,11 @@ async def generate_bausteine(topic: str, instructions: str = "", provider: str =
# --- Guide-Generierung: Bausteine → (Plan) → Writer → JSON ---
# Parallele Writer pro Format (OnePager hat einen eigenen Weg).
WRITER_COUNT = {"MiniGuide": 1, "Guide": 2, "FullGuide": 4}
# Writer skalieren mit der Section-Zahl: 1 Writer je ~30 Sections (gedeckelt).
# Kleine Pakete vermeiden Lazy-Output bei langen Listen und begrenzen den Schaden
# eines fehlgeschlagenen Writers.
WRITER_SECTIONS = 30
WRITER_MAX = 10
def _resolve_gliederung(data, entries: dict[int, str], soll: int) -> list[dict] | None:
@@ -743,7 +747,8 @@ async def _generate_sections(
await _fail(guide_id, "Gliederung fehlgeschlagen")
return None
plan = res[0]
chunks = _split_chunks(plan, WRITER_COUNT[format_name])
total_sections = sum(len(c["nums"]) for c in plan)
chunks = _split_chunks(plan, min(WRITER_MAX, max(1, math.ceil(total_sections / WRITER_SECTIONS))))
zuteilungen = [_zuteilung_text(chunk, entries) for chunk in chunks]
chunk_sizes = [sum(len(c["nums"]) for c in chunk) for chunk in chunks]