refactor: 拆分 gateway 单体为独立 crate,新增 systemd 部署方案

将 gateway 内部的 model-fetch、provider-transport、scheduler-core、
usage-runtime、video-tasks-core 模块提取为独立 crate;重构 gateway
内部模块结构(state/router/cache/data/query 等);移除大量遗留模块
文件;新增 systemd 二进制部署骨架及相关文档;更新前端 usage 相关
API 和组件。
This commit is contained in:
fawney19
2026-04-05 20:23:16 +08:00
parent cbc811f6ce
commit 763ff03a7b
777 changed files with 42654 additions and 21464 deletions
@@ -1,14 +1,13 @@
use crate::gateway::ai_pipeline::adaptation::private_envelope::normalize_provider_private_response_value as unwrap_local_finalize_response_value;
use crate::gateway::ai_pipeline::conversion::{
use crate::ai_pipeline::adaptation::private_envelope::normalize_provider_private_response_value as unwrap_local_finalize_response_value;
use crate::ai_pipeline::conversion::{
build_core_error_body_for_client_format, core_error_background_report_kind,
core_error_default_client_api_format, is_core_error_finalize_kind, LocalCoreSyncErrorKind,
};
use crate::gateway::api::response::build_client_response_from_parts;
use crate::gateway::usage::spawn_sync_report;
use crate::gateway::{
maybe_compile_sync_finalize_response, AppState, GatewayControlDecision, GatewayError,
GatewaySyncReportRequest,
};
use crate::ai_pipeline::finalize::maybe_compile_sync_finalize_response;
use crate::api::response::build_client_response_from_parts;
use crate::control::GatewayControlDecision;
use crate::usage::spawn_sync_report;
use crate::{usage::GatewaySyncReportRequest, AppState, GatewayError};
use axum::body::Body;
use axum::http::Response;
use base64::Engine as _;
@@ -223,7 +222,7 @@ pub(crate) fn resolve_core_error_background_report_kind(report_kind: &str) -> Op
#[cfg(test)]
pub(crate) fn resolve_core_success_background_report_kind(report_kind: &str) -> Option<String> {
crate::gateway::ai_pipeline::conversion::core_success_background_report_kind(report_kind)
crate::ai_pipeline::conversion::core_success_background_report_kind(report_kind)
.map(ToOwned::to_owned)
}
@@ -437,6 +436,8 @@ pub(crate) async fn submit_local_core_error_or_sync_finalize(
response
} else {
warn!(
event_name = "local_core_finalize_fallback_raw_response_body",
log_type = "event",
trace_id = %trace_id,
report_kind = %payload.report_kind,
status_code = payload.status_code,
@@ -457,6 +458,8 @@ pub(crate) async fn submit_local_core_error_or_sync_finalize(
spawn_sync_report(state.clone(), trace_id.to_string(), report_payload);
} else {
warn!(
event_name = "local_core_finalize_missing_error_report_mapping",
log_type = "event",
trace_id = %trace_id,
report_kind = %payload.report_kind,
"gateway built local core finalize response without background error report mapping"