Files
awoooi/apps/api/src/services/ai_provider_policy.py

173 lines
5.8 KiB
Python

"""Single production AI-provider route contract.
The executable production path is deliberately small and ordered. Legacy
providers may remain registered for replay/shadow metadata, but callers must
not insert them into a production generation chain.
"""
from __future__ import annotations
from collections.abc import Iterable
from typing import Any
PRODUCTION_OLLAMA_ORDER: tuple[str, ...] = (
"ollama_gcp_a",
"ollama_gcp_b",
"ollama_local",
)
PRODUCTION_PROVIDER_ORDER: tuple[str, ...] = (
*PRODUCTION_OLLAMA_ORDER,
"gemini",
)
NON_EXECUTABLE_SHADOW_PROVIDERS: frozenset[str] = frozenset(
{
"claude",
"nvidia",
"nemotron",
"openclaw",
"openclaw_nemo",
"ollama_tool",
}
)
def production_provider_order(*, include_gemini: bool = True) -> list[str]:
"""Return a new list so callers cannot mutate the global contract."""
return list(
PRODUCTION_PROVIDER_ORDER
if include_gemini
else PRODUCTION_OLLAMA_ORDER
)
def normalize_production_execution_order(
requested: Iterable[str],
*,
require_local: bool = False,
) -> tuple[list[str], list[str]]:
"""Normalize a requested route and report rejected provider insertions.
The legacy logical ``ollama`` alias expands to all three concrete Ollama
identities. A production call must contain an Ollama lane; a lone Gemini
request is rejected because it has no evidence that the free lane ran.
Gemini is appended only when it was explicitly requested and local-only
processing is not required. This also means a disabled/removed Gemini is
never silently re-added by normalization.
"""
values = [str(value).strip().lower() for value in requested if str(value).strip()]
rejected = sorted(
{
value
for value in values
if value not in PRODUCTION_PROVIDER_ORDER and value != "ollama"
}
)
has_ollama_lane = "ollama" in values or any(
value in PRODUCTION_OLLAMA_ORDER for value in values
)
if not has_ollama_lane:
return [], rejected
normalized = list(PRODUCTION_OLLAMA_ORDER)
if not require_local and "gemini" in values:
normalized.append("gemini")
return normalized, rejected
def production_route_readback(
*,
gemini_configured: bool,
gemini_enabled: bool,
gemini_authentication: dict[str, Any] | None = None,
cost_guard: dict[str, Any] | None = None,
) -> dict[str, Any]:
"""Build a public-safe route/status payload without endpoint URLs or keys."""
authentication = dict(gemini_authentication or {})
cost_guard_payload = dict(cost_guard or {})
authenticated = authentication.get("authenticated")
authentication_verified = bool(
authentication.get("authentication_verified") is True
)
pricing_policy = cost_guard_payload.get("pricing_policy") or {}
accounting = cost_guard_payload.get("accounting") or {}
accounting_status = str(accounting.get("status") or "").strip().lower()
accounting_verified = bool(
accounting.get("complete") is True
and accounting.get("degraded") is not True
and accounting_status == "receipt_backed"
)
cost_guard_ready = bool(
cost_guard_payload
and cost_guard_payload.get("readback_status") == "verified"
and accounting_verified
and pricing_policy.get("supported") is True
and cost_guard_payload.get("cost_exceeded") is False
)
gemini_production_executable = bool(
gemini_enabled and cost_guard_ready and authentication_verified
)
hops = [
{
"position": 1,
"provider": "ollama_gcp_a",
"identity": "GCP-A",
"runtime": "Ollama",
"paid": False,
"production_executable": True,
},
{
"position": 2,
"provider": "ollama_gcp_b",
"identity": "GCP-B",
"runtime": "Ollama",
"paid": False,
"production_executable": True,
},
{
"position": 3,
"provider": "ollama_local",
"identity": "host111",
"runtime": "Ollama",
"paid": False,
"production_executable": True,
},
{
"position": 4,
"provider": "gemini",
"identity": "Gemini API",
"runtime": "gemini-2.5-flash-lite",
"paid": True,
"production_executable": gemini_production_executable,
"configured": bool(gemini_configured),
"authenticated": authenticated,
"authentication_verified": authentication_verified,
"verification_status": authentication.get(
"verification_status", "not_verified"
),
},
]
return {
"schema_version": "ai_provider_production_route_v1",
"provider_order": list(PRODUCTION_PROVIDER_ORDER),
"route_label": "GCP-A -> GCP-B -> host111 Ollama -> Gemini API",
"hops": hops,
"legacy_provider_policy": {
provider: "non_executable_shadow_metadata_only"
for provider in sorted(NON_EXECUTABLE_SHADOW_PROVIDERS)
},
"gemini": {
"configured": bool(gemini_configured),
"enabled": bool(gemini_enabled),
"production_executable": gemini_production_executable,
"authenticated": authenticated,
"authentication_verified": authentication_verified,
"verification_status": authentication.get(
"verification_status", "not_verified"
),
"verification_source": authentication.get("verification_source"),
"verified_at": authentication.get("verified_at"),
"cost_guard_ready": cost_guard_ready,
"cost_guard": cost_guard_payload,
},
}