feat: 增强 provider query 端点选择逻辑,支持 openai:responses 格式与 key 级 api_formats 过滤

- provider_query_selected_fetch_endpoints 支持按 key.api_formats 过滤可用端点
- 端点选择增加 endpoint_supports_rust_models_fetch 检查
- 支持优先级列表之外的自定义 api_format 端点
- 新增 openai:responses 端点的 provider query 集成测试
- 各 crate 补充缺失的 tracing instrument 和小修正
- 前端 Pool 管理页面补充状态逻辑
This commit is contained in:
fawney19
2026-04-09 13:55:18 +08:00
parent b0b40c16ff
commit fe81eafe2c
24 changed files with 380 additions and 37 deletions

View File

@@ -118,6 +118,7 @@ pub struct LocalStreamPlanAndReport {
pub report_context: Option<serde_json::Value>,
}
#[allow(clippy::too_many_arguments)]
pub fn build_gateway_control_plan_request(
trace_id: &str,
method: &str,

View File

@@ -208,7 +208,9 @@ pub fn apply_codex_openai_cli_special_headers(
provider_request_headers.insert("session_id".to_string(), short_id.clone());
}
if provider_api_format.trim().to_ascii_lowercase() != "openai:compact"
if !provider_api_format
.trim()
.eq_ignore_ascii_case("openai:compact")
&& !header_map_has_non_empty_value(original_headers, "conversation_id")
{
provider_request_headers.insert("conversation_id".to_string(), short_id);

View File

@@ -15,6 +15,7 @@ use crate::conversion::request::{
use super::codex::apply_codex_openai_cli_special_body_edits;
#[allow(clippy::too_many_arguments)]
pub fn build_standard_request_body(
body_json: &Value,
client_api_format: &str,