Files
video-gen/video-gen-api/app/services/module_generation_log_service.py
T
2026-07-06 15:13:41 +08:00

87 lines
2.3 KiB
Python

from __future__ import annotations
from typing import Any
from app.services.operation_log_service import build_exception_detail, log_operation_error, log_operation_event
def log_module_event_file(
*,
module: str,
event_type: str,
project_id: str | None = None,
step_id: str | None = None,
user_id: str | None = None,
message: str | None = None,
detail: dict[str, Any] | None = None,
error: str | None = None,
) -> None:
log_operation_event(
domain="module_generation",
module=module,
event_type=event_type,
project_id=project_id,
step_id=step_id,
user_id=user_id,
message=message,
detail=detail,
error=error,
event_status="failed" if error else "success",
source="service",
)
def log_module_prompt_event(
*,
event_type: str,
project_id: str,
step_id: str,
user_id: str,
module: str,
prompt_type: str,
request: dict[str, Any] | None = None,
response: dict[str, Any] | None = None,
token_usage: dict[str, Any] | None = None,
error: str | None = None,
) -> None:
log_operation_event(
domain="module_generation",
module=module,
event_type=event_type,
project_id=project_id,
step_id=step_id,
user_id=user_id,
message=f"模块 AI 请求:{prompt_type}",
detail={"prompt_type": prompt_type, "request": request or {}, "response": response or {}, "token_usage": token_usage or {}},
error=error,
event_status="failed" if error else "success",
source="service",
)
def log_module_error(
*,
module: str,
event_type: str,
project_id: str | None = None,
step_id: str | None = None,
user_id: str | None = None,
message: str | None = None,
detail: dict[str, Any] | None = None,
error: str | None = None,
exc: BaseException | None = None,
) -> None:
log_operation_error(
domain="module_generation",
module=module,
event_type=event_type,
project_id=project_id,
step_id=step_id,
user_id=user_id,
message=message,
detail=detail,
error=error if error is not None else (str(exc) if exc else None),
exc=exc,
source="service",
)