mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-03 01:40:21 +08:00
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:
71
crates/aether-provider-transport/src/kiro/url.rs
Normal file
71
crates/aether-provider-transport/src/kiro/url.rs
Normal file
@@ -0,0 +1,71 @@
|
||||
use super::super::url::build_passthrough_path_url;
|
||||
use super::credentials::DEFAULT_REGION;
|
||||
|
||||
pub const GENERATE_ASSISTANT_RESPONSE_PATH: &str = "/generateAssistantResponse";
|
||||
pub const KIRO_ENVELOPE_NAME: &str = "kiro:generateAssistantResponse";
|
||||
|
||||
pub fn resolve_kiro_base_url(upstream_base_url: &str, api_region: Option<&str>) -> String {
|
||||
let region = api_region
|
||||
.map(str::trim)
|
||||
.filter(|value| !value.is_empty())
|
||||
.unwrap_or(DEFAULT_REGION);
|
||||
upstream_base_url
|
||||
.trim()
|
||||
.replace("{region}", region)
|
||||
.trim_end_matches('/')
|
||||
.to_string()
|
||||
}
|
||||
|
||||
pub fn build_kiro_generate_assistant_response_url(
|
||||
upstream_base_url: &str,
|
||||
query: Option<&str>,
|
||||
api_region: Option<&str>,
|
||||
) -> Option<String> {
|
||||
let upstream_base_url = resolve_kiro_base_url(upstream_base_url, api_region);
|
||||
build_passthrough_path_url(
|
||||
upstream_base_url.as_str(),
|
||||
GENERATE_ASSISTANT_RESPONSE_PATH,
|
||||
query,
|
||||
&[],
|
||||
)
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::{
|
||||
build_kiro_generate_assistant_response_url, resolve_kiro_base_url,
|
||||
GENERATE_ASSISTANT_RESPONSE_PATH, KIRO_ENVELOPE_NAME,
|
||||
};
|
||||
|
||||
#[test]
|
||||
fn exposes_kiro_request_constants() {
|
||||
assert_eq!(
|
||||
GENERATE_ASSISTANT_RESPONSE_PATH,
|
||||
"/generateAssistantResponse"
|
||||
);
|
||||
assert_eq!(KIRO_ENVELOPE_NAME, "kiro:generateAssistantResponse");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn builds_generate_assistant_response_url() {
|
||||
assert_eq!(
|
||||
build_kiro_generate_assistant_response_url(
|
||||
"https://kiro.{region}.example?tenant=demo",
|
||||
Some("stream=true"),
|
||||
Some("us-west-2")
|
||||
)
|
||||
.as_deref(),
|
||||
Some(
|
||||
"https://kiro.us-west-2.example/generateAssistantResponse?stream=true&tenant=demo"
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn resolves_region_placeholder_in_base_url() {
|
||||
assert_eq!(
|
||||
resolve_kiro_base_url("https://kiro.{region}.example/", Some("us-west-2")),
|
||||
"https://kiro.us-west-2.example"
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user