Files
awoooi/apps/api/src/models/__init__.py
OG T b77e151387 feat(ai): ADR-036 NVIDIA Nemotron Tool Calling 整合
Phase 20 - 提升 Tool Calling 精準度 50% → 83.3%

新增:
- src/models/nvidia.py: Pydantic Schema
- src/services/nvidia_provider.py: NvidiaProvider 類別
- tests/test_nvidia_provider.py: 15 項單元測試 (全部通過)

修改:
- ai_router.py: AIProvider.NVIDIA + route_tool_calling()
- ai_rate_limiter.py: NVIDIA 限制 (5 RPM, 100/day)
- models.json: NVIDIA 配置
- cd.yaml: Secrets 注入 NVIDIA_API_KEY

路由策略:
- Tool Calling: Nemotron → Gemini → Claude
- 一般對話: Ollama → Gemini → Claude (不變)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-29 00:00:08 +08:00

87 lines
1.7 KiB
Python

"""
AWOOOI Models Package
=====================
核心資料模型匯出:
- Approval: 簽核相關模型 (Phase 2 HITL)
- Incident: 事件相關模型 (Phase 6 認知覺醒)
- AI: AI 相關模型
- NVIDIA: Nemotron Tool Calling 模型 (ADR-036)
"""
# Approval Models (Phase 2)
from src.models.approval import (
ApprovalRequest,
ApprovalRequestCreate,
ApprovalRequestResponse,
ApprovalStatus,
BlastRadius,
DataImpact,
DryRunCheck,
PendingApprovalsResponse,
RejectRequest,
RiskLevel,
Signature,
SignatureSource,
SignRequest,
SignResponse,
)
# Incident Models (Phase 6 - 認知覺醒)
from src.models.incident import (
AIDecisionChain,
Incident,
IncidentCreate,
IncidentOutcome,
IncidentResponse,
IncidentStatus,
IncidentUpdate,
Severity,
Signal,
)
# NVIDIA Models (ADR-036 - Nemotron Tool Calling)
from src.models.nvidia import (
NvidiaProviderResult,
NvidiaResponse,
NvidiaUsage,
ToolCall,
ToolCallValidationResult,
ToolDefinition,
)
__all__ = [
# Approval
"ApprovalRequest",
"ApprovalRequestCreate",
"ApprovalRequestResponse",
"ApprovalStatus",
"BlastRadius",
"DataImpact",
"DryRunCheck",
"PendingApprovalsResponse",
"RejectRequest",
"RiskLevel",
"SignRequest",
"SignResponse",
"Signature",
"SignatureSource",
# Incident
"AIDecisionChain",
"Incident",
"IncidentCreate",
"IncidentOutcome",
"IncidentResponse",
"IncidentStatus",
"IncidentUpdate",
"Severity",
"Signal",
# NVIDIA (ADR-036)
"NvidiaProviderResult",
"NvidiaResponse",
"NvidiaUsage",
"ToolCall",
"ToolCallValidationResult",
"ToolDefinition",
]