refactor: 大规模模块拆分与代码精简,新增 ai-pipeline/data-contracts 独立 crate

- 新增 aether-ai-pipeline 和 aether-data-contracts crate,将 pipeline 逻辑与数据契约从 gateway 中解耦
- 重构 admin handlers:拆分单体模块为 auth/billing/endpoint/features/model/observability/provider/system 等独立子模块
- 合并 chat/cli 重复代码路径:精简 conversion、finalize、planner 中的 sync/chat/cli 分支
- 重构 scheduler/executor/data 层,引入 facade 模式降低模块间耦合
- 移除冗余的 intent 模块,将 plan_fallback/policy/stream_path/sync_path 迁移至 executor
- 前端适配:调整 admin API 调用和 provider 模型测试对话框
This commit is contained in:
fawney19
2026-04-07 02:50:19 +08:00
parent 763ff03a7b
commit 5d96d6673b
732 changed files with 28593 additions and 20666 deletions

View File

@@ -1,6 +1,5 @@
use axum::routing::{any, post};
use axum::Router;
use serde_json::json;
use super::{claude, gemini, openai};
use crate::{handlers::proxy::proxy_request, state::AppState};
@@ -61,33 +60,11 @@ pub(crate) fn admin_endpoint_signature_parts(
Some((normalized, api_family, endpoint_kind))
}
fn codex_default_body_rules() -> Vec<serde_json::Value> {
vec![
json!({"action": "drop", "path": "max_output_tokens"}),
json!({"action": "drop", "path": "temperature"}),
json!({"action": "drop", "path": "top_p"}),
json!({"action": "set", "path": "store", "value": false}),
json!({
"action": "set",
"path": "instructions",
"value": "You are GPT-5.",
"condition": {"path": "instructions", "op": "not_exists"},
}),
]
}
pub(crate) fn admin_default_body_rules_for_signature(
api_format: &str,
provider_type: Option<&str>,
) -> Option<(String, Vec<serde_json::Value>)> {
let normalized_api_format = normalize_admin_endpoint_signature(api_format)?.to_string();
let provider_type = provider_type.map(|value| value.trim().to_ascii_lowercase());
let body_rules = if normalized_api_format == "openai:compact"
|| (normalized_api_format == "openai:cli" && provider_type.as_deref() == Some("codex"))
{
codex_default_body_rules()
} else {
Vec::new()
};
Some((normalized_api_format, body_rules))
let _ = provider_type;
Some((normalized_api_format, Vec::new()))
}