diff --git a/apps/api/src/api/v1/approvals.py b/apps/api/src/api/v1/approvals.py index 1b561bb3c..3fec3fe35 100644 --- a/apps/api/src/api/v1/approvals.py +++ b/apps/api/src/api/v1/approvals.py @@ -53,7 +53,6 @@ from src.services.approval_db import get_approval_service, get_timeline_service from src.services.approval_execution import get_execution_service from src.services.executor import get_executor from src.services.incident_approval_service import get_incident_approval_service -from src.services.proposal_service import get_proposal_service router = APIRouter(prefix="/approvals", tags=["HITL Approvals"]) logger = get_logger("awoooi.approvals") diff --git a/apps/api/src/services/auto_approve.py b/apps/api/src/services/auto_approve.py index c4519ba10..d187d7c3c 100644 --- a/apps/api/src/services/auto_approve.py +++ b/apps/api/src/services/auto_approve.py @@ -25,7 +25,6 @@ from typing import Any import structlog -from src.models.approval import RiskLevel from src.models.playbook import Playbook from src.services.playbook_rag import PlaybookMatch from src.services.trust_engine import TrustScoreManager, get_trust_manager diff --git a/apps/api/src/services/decision_manager.py b/apps/api/src/services/decision_manager.py index 5165da244..4fe41353d 100644 --- a/apps/api/src/services/decision_manager.py +++ b/apps/api/src/services/decision_manager.py @@ -484,8 +484,8 @@ class DecisionManager: """ try: # 延遲導入避免循環依賴 - from src.services.approval_execution import ApprovalExecutionService from src.models.approval import ApprovalRequest, ApprovalStatus + from src.services.approval_execution import ApprovalExecutionService # 建立虛擬 ApprovalRequest approval = ApprovalRequest( diff --git a/apps/api/src/services/learning_service.py b/apps/api/src/services/learning_service.py index fbf884584..415b706bd 100644 --- a/apps/api/src/services/learning_service.py +++ b/apps/api/src/services/learning_service.py @@ -26,7 +26,7 @@ from typing import Any import structlog from src.models.approval import ApprovalRequest -from src.models.incident import Incident, IncidentStatus +from src.models.incident import IncidentStatus from src.services.trust_engine import get_trust_manager logger = structlog.get_logger(__name__) diff --git a/apps/api/src/services/playbook_rag.py b/apps/api/src/services/playbook_rag.py index 979ae7985..723230f2e 100644 --- a/apps/api/src/services/playbook_rag.py +++ b/apps/api/src/services/playbook_rag.py @@ -96,7 +96,7 @@ def cosine_similarity(vec_a: list[float], vec_b: list[float]) -> float: if len(vec_a) != len(vec_b): return 0.0 - dot_product = sum(a * b for a, b in zip(vec_a, vec_b)) + dot_product = sum(a * b for a, b in zip(vec_a, vec_b, strict=True)) norm_a = math.sqrt(sum(a * a for a in vec_a)) norm_b = math.sqrt(sum(b * b for b in vec_b)) @@ -423,7 +423,7 @@ class PlaybookRAGService: vector_scores = {m.playbook_id: m.similarity_score for m in vector_matches} # 2. Jaccard 分數 - jaccard_scores = {pid: score for pid, score in jaccard_results} + jaccard_scores = dict(jaccard_results) # 3. 合併所有 playbook_id all_ids = set(vector_scores.keys()) | set(jaccard_scores.keys())