feat(server): erp-ai 模块集成 — Config/State/路由注册
- 新增 AiConfig 到 AppConfig - 新增 FromRef<AppState> for AiState - 注册 AiModule 到 ModuleRegistry - 合并 AI protected routes - 修复 sync_module_permissions 只同步 health.% 的 bug Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -115,3 +115,31 @@ impl FromRef<AppState> for erp_health::HealthState {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Allow erp-ai handlers to extract their required state.
|
||||
impl FromRef<AppState> for erp_ai::AiState {
|
||||
fn from_ref(state: &AppState) -> Self {
|
||||
let mut provider = erp_ai::provider::claude::ClaudeProvider::new(
|
||||
state.config.ai.api_key.clone(),
|
||||
);
|
||||
if let Some(ref base_url) = state.config.ai.base_url {
|
||||
provider = provider.with_base_url(base_url.clone());
|
||||
}
|
||||
let db = state.db.clone();
|
||||
let event_bus = state.event_bus.clone();
|
||||
|
||||
let analysis = std::sync::Arc::new(
|
||||
erp_ai::service::analysis::AnalysisService::new(Box::new(provider), db.clone()),
|
||||
);
|
||||
let prompt = std::sync::Arc::new(erp_ai::service::prompt::PromptService::new(db.clone()));
|
||||
let usage = std::sync::Arc::new(erp_ai::service::usage::UsageService::new(db.clone()));
|
||||
|
||||
Self {
|
||||
db,
|
||||
event_bus,
|
||||
analysis,
|
||||
prompt,
|
||||
usage,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user