修复图标规范 LLM 模型配置与错误提示

为图标规范优化与参数补全请求指定默认模型
将两类请求切换为 OpenAI Chat 协议
统一 VectorEngine LLM 客户端读取与未配置错误信息
This commit is contained in:
2026-08-05 14:30:56 +08:00
parent e9f50248b9
commit 059826b06d
2 changed files with 12 additions and 8 deletions
@@ -5,7 +5,7 @@ use axum::{
extract::{Extension, State},
http::StatusCode,
};
use platform_llm::{LlmMessage, LlmRunRequest};
use platform_llm::{EDITOR_AGENT_GPT5_MODEL, LlmMessage, LlmRunRequest};
use serde::{Deserialize, Deserializer, Serialize, Serializer, de};
use serde_json::{Value, json};
use shared_contracts::assets::EditorCanvasGenerationCompletionPayload;
@@ -260,15 +260,17 @@ async fn run_icon_spec_extra_param_llm(
state: &AppState,
prompt: String,
) -> Result<ExtraParam, AppError> {
let configured_llm_client = state.llm_client().ok_or_else(|| {
let configured_llm_client = state.vector_engine_llm_client().ok_or_else(|| {
AppError::from_status(StatusCode::SERVICE_UNAVAILABLE).with_details(json!({
"provider": "editor-icon-spec-llm",
"message": "服务端尚未配置可用的 LLM API Key",
"message": "服务端尚未配置可用的 VectorEngine LLM API Key",
}))
})?;
let retry_backoff_ms = configured_llm_client.config().retry_backoff_ms();
let llm_client = configured_llm_client.clone().with_max_retries(0);
let request = LlmRunRequest::new(vec![LlmMessage::user(prompt)]);
let request = LlmRunRequest::new(vec![LlmMessage::user(prompt)])
.with_model(EDITOR_AGENT_GPT5_MODEL)
.with_openai_chat();
for attempt in 1..=ICON_SPEC_LLM_MAX_ATTEMPTS {
match llm_client.run(request.clone()).await {
@@ -3,7 +3,7 @@ use axum::{
extract::{Extension, State},
http::StatusCode,
};
use platform_llm::{LlmMessage, LlmRunRequest};
use platform_llm::{EDITOR_AGENT_GPT5_MODEL, LlmMessage, LlmRunRequest};
use serde::Deserialize;
use serde_json::{Value, json};
use std::time::Duration;
@@ -144,15 +144,17 @@ fn normalize_refined_text(value: &str) -> Result<String, RefinedTextError> {
}
async fn run_refine_text_llm(state: &AppState, prompt: String) -> Result<String, AppError> {
let configured_llm_client = state.llm_client().ok_or_else(|| {
let configured_llm_client = state.vector_engine_llm_client().ok_or_else(|| {
AppError::from_status(StatusCode::SERVICE_UNAVAILABLE).with_details(json!({
"provider": "editor-icon-spec-llm",
"message": "服务端尚未配置可用的 LLM API Key",
"message": "服务端尚未配置可用的 VectorEngine LLM API Key",
}))
})?;
let retry_backoff_ms = configured_llm_client.config().retry_backoff_ms();
let llm_client = configured_llm_client.clone().with_max_retries(0);
let request = LlmRunRequest::new(vec![LlmMessage::user(prompt)]);
let request = LlmRunRequest::new(vec![LlmMessage::user(prompt)])
.with_model(EDITOR_AGENT_GPT5_MODEL)
.with_openai_chat();
for attempt in 1..=ICON_SPEC_LLM_MAX_ATTEMPTS {
match llm_client.run(request.clone()).await {