text_limits.py 659 B

123456789101112131415161718192021222324
  1. """Shared text length limits for the formal creation-knowledge pipeline."""
  2. from __future__ import annotations
  3. from typing import Any
  4. BODY_TEXT_MAX_CHARS = 50_000
  5. CLASSIFY_BODY_MAX_CHARS = 50_000
  6. RAW_SUMMARY_MAX_CHARS = 5_000
  7. REASON_MAX_CHARS = 10_000
  8. DIRECTIVE_CONTEXT_MAX_CHARS = 10_000
  9. QUERY_FILTER_REASON_MAX_CHARS = 5_000
  10. ERROR_MESSAGE_MAX_CHARS = 5_000
  11. TITLE_FALLBACK_MAX_CHARS = 1_000
  12. JSON_ERROR_SNIPPET_MAX_CHARS = 5_000
  13. def clip_text(value: Any, limit: int) -> str:
  14. """Return text capped at a shared business limit."""
  15. if value is None:
  16. return ""
  17. text = str(value)
  18. if limit <= 0:
  19. return ""
  20. return text[:limit]