Skip to content

## Day 20 — Structured outputs для отчёта#23

Merged
evkir merged 4 commits into
mainfrom
feat/structured-outputs
Jun 10, 2026
Merged

## Day 20 — Structured outputs для отчёта#23
evkir merged 4 commits into
mainfrom
feat/structured-outputs

Conversation

@evkir

@evkir evkir commented Jun 10, 2026

Copy link
Copy Markdown
Owner

Day 20 — Structured outputs для отчёта

  • structured_call() -> dict в LLMClient: OpenAI response_format=json_schema (strict=False + ручной pydantic-парс), Anthropic forced single-tool tool_choice={"type":"tool"}. Ollama не поддерживает.
  • ReportSection(title, severity, findings, recommendations, impact) в types.py — severity нормализуется через field_validator
  • ReportAgent: флаг-gated _structured_summary (use_llm_summary, default False) — fail-safe, детерминированный отчёт никогда не блокируется
  • h1_exporter.py — HackerOne-формат (Title/Severity/Steps/Impact/Recommendation)
  • 12 тестов: severity-норм, h1-export, обе провайдер-ветки structured_call, roundtrip, fail-safe

319 tests green.

@evkir evkir merged commit dc2d15b into main Jun 10, 2026
5 checks passed
@evkir evkir deleted the feat/structured-outputs branch June 10, 2026 21:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant