mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-01 17:00:21 +08:00
fix(gateway): 管理端 provider query helper 改用 AdminAppState
将 admin provider query 路由相邻层 helper 中直接使用的 AppState 参数改为 AdminAppState,并通过 state.app() 访问底层状态,满足 admin_shared 架构约束。
This commit is contained in:
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user