补全图片 provider 启动报错与日志信息
缺少 BASE_URL / API_KEY 时点名对应环境变量 启动成功时记录 provider、base_url 与超时配置
This commit is contained in:
@@ -2518,6 +2518,7 @@ fn build_required_image_provider_client(
|
||||
api_key: Option<String>,
|
||||
request_timeout_ms: u64,
|
||||
) -> Result<ImageProviderClient, AppStateInitError> {
|
||||
let (base_url_env, api_key_env) = required_image_provider_env_vars(provider);
|
||||
#[cfg(test)]
|
||||
let (base_url, api_key) = (
|
||||
if base_url.trim().is_empty() {
|
||||
@@ -2532,8 +2533,9 @@ fn build_required_image_provider_client(
|
||||
let base_url = base_url.trim().trim_end_matches('/');
|
||||
if base_url.is_empty() {
|
||||
return Err(AppStateInitError::DependencyUnavailable(format!(
|
||||
"{} 图片 provider 缺少 BASE_URL 配置",
|
||||
provider.as_str()
|
||||
"{} 图片 provider 缺少 BASE_URL 配置:请设置 {}。两个图片 provider 都在启动时构造,缺失即阻止 api-server 启动,不做 provider 回退。",
|
||||
provider.as_str(),
|
||||
base_url_env
|
||||
)));
|
||||
}
|
||||
let api_key = api_key
|
||||
@@ -2542,18 +2544,36 @@ fn build_required_image_provider_client(
|
||||
.filter(|value| !value.is_empty())
|
||||
.ok_or_else(|| {
|
||||
AppStateInitError::DependencyUnavailable(format!(
|
||||
"{} 图片 provider 缺少 API_KEY 配置",
|
||||
provider.as_str()
|
||||
"{} 图片 provider 缺少 API_KEY 配置:请设置 {}。两个图片 provider 都在启动时构造,缺失即阻止 api-server 启动,不做 provider 回退。",
|
||||
provider.as_str(),
|
||||
api_key_env
|
||||
))
|
||||
})?;
|
||||
build_image_provider_client(ImageProviderSettings {
|
||||
let client = build_image_provider_client(ImageProviderSettings {
|
||||
provider,
|
||||
base_url: base_url.to_string(),
|
||||
api_key: api_key.to_string(),
|
||||
request_timeout_ms: request_timeout_ms.max(1),
|
||||
request_deadline: None,
|
||||
})
|
||||
.map_err(|error| AppStateInitError::DependencyUnavailable(error.to_string()))
|
||||
.map_err(|error| AppStateInitError::DependencyUnavailable(error.to_string()))?;
|
||||
info!(
|
||||
provider = provider.as_str(),
|
||||
base_url = %base_url,
|
||||
request_timeout_ms = request_timeout_ms.max(1),
|
||||
env = base_url_env,
|
||||
api_key_env,
|
||||
"图片 provider client 已启用"
|
||||
);
|
||||
Ok(client)
|
||||
}
|
||||
|
||||
/// 图片 provider 在启动期必须齐备的环境变量名,用于给出可直接执行的报错与启动日志。
|
||||
fn required_image_provider_env_vars(provider: ImageProvider) -> (&'static str, &'static str) {
|
||||
match provider {
|
||||
ImageProvider::VectorEngine => ("VECTOR_ENGINE_BASE_URL", "VECTOR_ENGINE_API_KEY"),
|
||||
ImageProvider::Tiantoken => ("TIANTOKEN_BASE_URL", "TIANTOKEN_API_KEY"),
|
||||
}
|
||||
}
|
||||
|
||||
fn build_oss_client(config: &AppConfig) -> Result<Option<OssClient>, AppStateInitError> {
|
||||
|
||||
Reference in New Issue
Block a user