replace all apimart call with vectorengine counterpart
This commit is contained in:
@@ -133,9 +133,10 @@ pub struct AppConfig {
|
|||||||
pub dashscope_reference_image_model: String,
|
pub dashscope_reference_image_model: String,
|
||||||
pub dashscope_cover_image_model: String,
|
pub dashscope_cover_image_model: String,
|
||||||
pub dashscope_image_request_timeout_ms: u64,
|
pub dashscope_image_request_timeout_ms: u64,
|
||||||
pub apimart_base_url: String,
|
// 中文注释:Apimart 已于 2026-06 弃用,LLM 文本调用统一迁移到 VectorEngine(同时支持 Chat Completions / Responses 协议)。
|
||||||
pub apimart_api_key: Option<String>,
|
// pub apimart_base_url: String,
|
||||||
pub apimart_image_request_timeout_ms: u64,
|
// pub apimart_api_key: Option<String>,
|
||||||
|
// pub apimart_image_request_timeout_ms: u64,
|
||||||
pub vector_engine_base_url: String,
|
pub vector_engine_base_url: String,
|
||||||
pub vector_engine_api_key: Option<String>,
|
pub vector_engine_api_key: Option<String>,
|
||||||
pub vector_engine_image_request_timeout_ms: u64,
|
pub vector_engine_image_request_timeout_ms: u64,
|
||||||
@@ -293,9 +294,9 @@ impl Default for AppConfig {
|
|||||||
dashscope_reference_image_model: String::new(),
|
dashscope_reference_image_model: String::new(),
|
||||||
dashscope_cover_image_model: String::new(),
|
dashscope_cover_image_model: String::new(),
|
||||||
dashscope_image_request_timeout_ms: 150_000,
|
dashscope_image_request_timeout_ms: 150_000,
|
||||||
apimart_base_url: String::new(),
|
// apimart_base_url: String::new(),
|
||||||
apimart_api_key: None,
|
// apimart_api_key: None,
|
||||||
apimart_image_request_timeout_ms: 180_000,
|
// apimart_image_request_timeout_ms: 180_000,
|
||||||
vector_engine_base_url: String::new(),
|
vector_engine_base_url: String::new(),
|
||||||
vector_engine_api_key: None,
|
vector_engine_api_key: None,
|
||||||
vector_engine_image_request_timeout_ms: DEFAULT_VECTOR_ENGINE_IMAGE_REQUEST_TIMEOUT_MS,
|
vector_engine_image_request_timeout_ms: DEFAULT_VECTOR_ENGINE_IMAGE_REQUEST_TIMEOUT_MS,
|
||||||
@@ -791,17 +792,17 @@ impl AppConfig {
|
|||||||
config.dashscope_image_request_timeout_ms = dashscope_image_request_timeout_ms;
|
config.dashscope_image_request_timeout_ms = dashscope_image_request_timeout_ms;
|
||||||
}
|
}
|
||||||
|
|
||||||
if let Some(apimart_base_url) = read_first_non_empty_env(&["APIMART_BASE_URL"]) {
|
// 中文注释:Apimart 已于 2026-06 弃用,LLM 文本调用统一迁移到 VectorEngine。
|
||||||
config.apimart_base_url = apimart_base_url;
|
// 保留以下历史加载代码,后续删除:
|
||||||
}
|
// if let Some(apimart_base_url) = read_first_non_empty_env(&["APIMART_BASE_URL"]) {
|
||||||
|
// config.apimart_base_url = apimart_base_url;
|
||||||
config.apimart_api_key = read_first_non_empty_env(&["APIMART_API_KEY"]);
|
// }
|
||||||
|
// config.apimart_api_key = read_first_non_empty_env(&["APIMART_API_KEY"]);
|
||||||
if let Some(apimart_image_request_timeout_ms) =
|
// if let Some(apimart_image_request_timeout_ms) =
|
||||||
read_first_positive_u64_env(&["APIMART_IMAGE_REQUEST_TIMEOUT_MS"])
|
// read_first_positive_u64_env(&["APIMART_IMAGE_REQUEST_TIMEOUT_MS"])
|
||||||
{
|
// {
|
||||||
config.apimart_image_request_timeout_ms = apimart_image_request_timeout_ms;
|
// config.apimart_image_request_timeout_ms = apimart_image_request_timeout_ms;
|
||||||
}
|
// }
|
||||||
|
|
||||||
if let Some(vector_engine_base_url) = read_first_non_empty_env(&["VECTOR_ENGINE_BASE_URL"])
|
if let Some(vector_engine_base_url) = read_first_non_empty_env(&["VECTOR_ENGINE_BASE_URL"])
|
||||||
{
|
{
|
||||||
@@ -1189,7 +1190,7 @@ mod tests {
|
|||||||
|
|
||||||
assert!(config.llm_model.is_empty());
|
assert!(config.llm_model.is_empty());
|
||||||
assert!(config.llm_base_url.is_empty());
|
assert!(config.llm_base_url.is_empty());
|
||||||
assert!(config.apimart_base_url.is_empty());
|
// assert!(config.apimart_base_url.is_empty());
|
||||||
assert!(config.vector_engine_base_url.is_empty());
|
assert!(config.vector_engine_base_url.is_empty());
|
||||||
assert!(config.ark_character_video_base_url.is_empty());
|
assert!(config.ark_character_video_base_url.is_empty());
|
||||||
assert_eq!(config.hyper3d_base_url, "https://api.hyper3d.com/api/v2");
|
assert_eq!(config.hyper3d_base_url, "https://api.hyper3d.com/api/v2");
|
||||||
@@ -1285,11 +1286,11 @@ mod tests {
|
|||||||
assert_eq!(config.llm_provider, LlmProvider::OpenAiCompatible);
|
assert_eq!(config.llm_provider, LlmProvider::OpenAiCompatible);
|
||||||
assert_eq!(config.llm_base_url, "https://llm.internal.example/v1");
|
assert_eq!(config.llm_base_url, "https://llm.internal.example/v1");
|
||||||
assert_eq!(config.llm_model, "internal-text-model");
|
assert_eq!(config.llm_model, "internal-text-model");
|
||||||
assert_eq!(
|
// assert_eq!(
|
||||||
config.apimart_base_url,
|
// config.apimart_base_url,
|
||||||
"https://responses.internal.example/v1"
|
// "https://responses.internal.example/v1"
|
||||||
);
|
// );
|
||||||
assert_eq!(config.apimart_image_request_timeout_ms, 190_000);
|
// assert_eq!(config.apimart_image_request_timeout_ms, 190_000);
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
config.vector_engine_base_url,
|
config.vector_engine_base_url,
|
||||||
"https://vector.internal.example"
|
"https://vector.internal.example"
|
||||||
|
|||||||
@@ -1378,8 +1378,9 @@ fn build_llm_client(config: &AppConfig) -> Result<Option<LlmClient>, AppStateIni
|
|||||||
fn build_creative_agent_gpt5_client(
|
fn build_creative_agent_gpt5_client(
|
||||||
config: &AppConfig,
|
config: &AppConfig,
|
||||||
) -> Result<Option<LlmClient>, AppStateInitError> {
|
) -> Result<Option<LlmClient>, AppStateInitError> {
|
||||||
|
// 中文注释:Apimart 已于 2026-06 弃用,LLM 文本调用统一迁移到 VectorEngine。
|
||||||
let Some(api_key) = config
|
let Some(api_key) = config
|
||||||
.apimart_api_key
|
.vector_engine_api_key
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.map(|value| value.trim())
|
.map(|value| value.trim())
|
||||||
.filter(|value| !value.is_empty())
|
.filter(|value| !value.is_empty())
|
||||||
@@ -1387,9 +1388,15 @@ fn build_creative_agent_gpt5_client(
|
|||||||
return Ok(None);
|
return Ok(None);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
let base_url = if config.vector_engine_base_url.ends_with("/v1") {
|
||||||
|
config.vector_engine_base_url.clone()
|
||||||
|
} else {
|
||||||
|
format!("{}/v1", config.vector_engine_base_url.trim_end_matches('/'))
|
||||||
|
};
|
||||||
|
|
||||||
let llm_config = LlmConfig::new(
|
let llm_config = LlmConfig::new(
|
||||||
LlmProvider::OpenAiCompatible,
|
LlmProvider::OpenAiCompatible,
|
||||||
config.apimart_base_url.clone(),
|
base_url,
|
||||||
api_key.to_string(),
|
api_key.to_string(),
|
||||||
platform_agent::CREATIVE_AGENT_GPT5_MODEL.to_string(),
|
platform_agent::CREATIVE_AGENT_GPT5_MODEL.to_string(),
|
||||||
config.llm_request_timeout_ms,
|
config.llm_request_timeout_ms,
|
||||||
@@ -1512,11 +1519,11 @@ mod tests {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn app_state_builds_creative_agent_gpt5_client_from_apimart_settings() {
|
fn app_state_builds_creative_agent_gpt5_client_from_vector_engine_settings() {
|
||||||
let mut config = AppConfig::default();
|
let mut config = AppConfig::default();
|
||||||
config.llm_api_key = None;
|
config.llm_api_key = None;
|
||||||
config.apimart_base_url = "https://api.apimart.test/v1".to_string();
|
config.vector_engine_base_url = "https://api.vectorengine.test".to_string();
|
||||||
config.apimart_api_key = Some("apimart-key".to_string());
|
config.vector_engine_api_key = Some("ve-key".to_string());
|
||||||
|
|
||||||
let state = AppState::new(config).expect("state should build");
|
let state = AppState::new(config).expect("state should build");
|
||||||
let client = state
|
let client = state
|
||||||
@@ -1529,7 +1536,7 @@ mod tests {
|
|||||||
);
|
);
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
client.config().responses_url(),
|
client.config().responses_url(),
|
||||||
"https://api.apimart.test/v1/responses"
|
"https://api.vectorengine.test/v1/responses"
|
||||||
);
|
);
|
||||||
assert!(client.config().official_fallback());
|
assert!(client.config().official_fallback());
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user