Spaces:
Runtime error
Runtime error
File size: 1,850 Bytes
b76f199 732b14f b76f199 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | """Whether the OpenAI tool-calling inspector is active (for dev / health visibility)."""
from __future__ import annotations
from typing import Any
from app.config import settings
def is_openai_inspector_live() -> bool:
"""True when section generation may use ``run_inspector_tool_loop`` (tool-calling).
Matches the gate in :class:`app.agentic.agents.HeadAgent` — non-empty API key
and ``inspector_tool_agent`` enabled.
"""
key = (settings.openai_api_key or "").strip()
return bool(key) and bool(settings.inspector_tool_agent)
def inspector_public_status() -> dict[str, Any]:
"""Safe JSON for ``/health`` and logs: no secrets, only booleans and paths."""
key_ok = bool((settings.openai_api_key or "").strip())
flag = bool(settings.inspector_tool_agent)
live = key_ok and flag
if not key_ok:
reason = "OPENAI_API_KEY is unset or empty — per-section agent uses the legacy fixed pipeline."
elif not flag:
reason = "INSPECTOR_TOOL_AGENT=false — tool-calling loop disabled; legacy pipeline runs."
else:
reason = "OpenAI tool-calling inspector is active for agentic report generation."
return {
"effective_mode": "openai_tool_agent" if live else "legacy_pipeline",
"openai_api_key_configured": key_ok,
"inspector_tool_agent": flag,
"inspector_max_tool_rounds": int(settings.inspector_max_tool_rounds),
"tool_agent_endpoints": [
"POST /reports/{report_id}/agentic/generate",
],
"other_generate_path": (
"POST /reports/{report_id}/generate uses the inspector HeadAgent when "
"AGENTIC_INSPECTOR_WHEN_NOTES_ONLY=true or NOTES_ONLY_GENERATION=false; "
"otherwise the standard fixed RAG pipeline (notes-only default)."
),
"summary": reason,
}
|