fix(gateway): 管理端 provider query helper 改用 AdminAppState

将 admin provider query 路由相邻层 helper 中直接使用的 AppState 参数改为 AdminAppState,并通过 state.app() 访问底层状态,满足 admin_shared 架构约束。
This commit is contained in:
AAEE86
2026-04-09 16:23:47 +08:00
parent 5581f7a085
commit 87b433e290

View File

@@ -125,11 +125,11 @@ fn provider_query_selected_fetch_endpoints(
} }
async fn provider_query_read_cached_models( async fn provider_query_read_cached_models(
state: &AppState, state: &AdminAppState<'_>,
provider_id: &str, provider_id: &str,
key_id: &str, key_id: &str,
) -> Option<Vec<Value>> { ) -> Option<Vec<Value>> {
let runner = state.redis_kv_runner()?; let runner = state.app().redis_kv_runner()?;
let cache_key = runner let cache_key = runner
.keyspace() .keyspace()
.key(&format!("upstream_models:{provider_id}:{key_id}")); .key(&format!("upstream_models:{provider_id}:{key_id}"));
@@ -148,11 +148,11 @@ async fn provider_query_read_cached_models(
} }
async fn provider_query_fetch_models_from_transport( async fn provider_query_fetch_models_from_transport(
state: &AppState, state: &AdminAppState<'_>,
transport: &crate::provider_transport::GatewayProviderTransportSnapshot, transport: &crate::provider_transport::GatewayProviderTransportSnapshot,
) -> Result<Vec<Value>, String> { ) -> Result<Vec<Value>, String> {
let plan = build_models_fetch_execution_plan(state, transport).await?; let plan = build_models_fetch_execution_plan(state.app(), transport).await?;
let result = execution_runtime::execute_execution_runtime_sync_plan(state, None, &plan) let result = execution_runtime::execute_execution_runtime_sync_plan(state.app(), None, &plan)
.await .await
.map_err(|err| format!("{err:?}"))?; .map_err(|err| format!("{err:?}"))?;
@@ -182,7 +182,7 @@ async fn provider_query_fetch_models_from_transport(
} }
async fn provider_query_fetch_models_for_key( async fn provider_query_fetch_models_for_key(
state: &AppState, state: &AdminAppState<'_>,
provider: &StoredProviderCatalogProvider, provider: &StoredProviderCatalogProvider,
endpoints: &[StoredProviderCatalogEndpoint], endpoints: &[StoredProviderCatalogEndpoint],
key: &StoredProviderCatalogKey, key: &StoredProviderCatalogKey,
@@ -213,6 +213,7 @@ async fn provider_query_fetch_models_for_key(
let mut all_errors = Vec::new(); let mut all_errors = Vec::new();
for endpoint in selected_endpoints { for endpoint in selected_endpoints {
let Some(transport) = state let Some(transport) = state
.app()
.read_provider_transport_snapshot(&provider.id, &endpoint.id, &key.id) .read_provider_transport_snapshot(&provider.id, &endpoint.id, &key.id)
.await? .await?
else { else {
@@ -231,7 +232,7 @@ async fn provider_query_fetch_models_for_key(
let unique_models = aggregate_models_for_cache(&all_models); let unique_models = aggregate_models_for_cache(&all_models);
if !unique_models.is_empty() { if !unique_models.is_empty() {
<AppState as ModelFetchRuntimeState>::write_upstream_models_cache( <AppState as ModelFetchRuntimeState>::write_upstream_models_cache(
state, state.app(),
&provider.id, &provider.id,
&key.id, &key.id,
&unique_models, &unique_models,
@@ -296,7 +297,7 @@ pub(crate) async fn build_admin_provider_query_models_response(
}; };
let result = provider_query_fetch_models_for_key( let result = provider_query_fetch_models_for_key(
state.app(), state,
&provider, &provider,
&endpoints, &endpoints,
selected_key, selected_key,
@@ -330,7 +331,7 @@ pub(crate) async fn build_admin_provider_query_models_response(
let mut fetch_count = 0usize; let mut fetch_count = 0usize;
for key in active_keys { for key in active_keys {
let result = provider_query_fetch_models_for_key( let result = provider_query_fetch_models_for_key(
state.app(), state,
&provider, &provider,
&endpoints, &endpoints,
key, key,