Files
hms/crates/erp-ai/src/state.rs
iven 23c5bbdb40 feat(ai): 知识库 V2 Handler + 路由注册 + State 初始化
5 个端点:GET/POST /ai/knowledge-bases, GET/PUT/DELETE /ai/knowledge-bases/{id}
AiState 新增 knowledge_v2 字段,main.rs 初始化。
2026-05-26 23:25:38 +08:00

42 lines
1.5 KiB
Rust

use std::sync::Arc;
use erp_core::events::EventBus;
use erp_core::health_provider::HealthDataProvider;
use sea_orm::DatabaseConnection;
use crate::provider::registry::ProviderRegistry;
use crate::service::analysis::AnalysisService;
use crate::service::cache::CacheService;
use crate::service::chat_message::ChatMessageService;
use crate::service::chat_session::ChatSessionService;
use crate::service::feature_flag_service::FeatureFlagService;
use crate::service::insight_service::InsightService;
use crate::service::knowledge::KnowledgeService;
use crate::service::knowledge_v2::KnowledgeV2Service;
use crate::service::prompt::PromptService;
use crate::service::quota::QuotaService;
use crate::service::risk_service::RiskService;
use crate::service::suggestion::SuggestionService;
use crate::service::usage::UsageService;
#[derive(Clone)]
pub struct AiState {
pub db: DatabaseConnection,
pub event_bus: EventBus,
pub analysis: Arc<AnalysisService>,
pub prompt: Arc<PromptService>,
pub usage: Arc<UsageService>,
pub suggestion: Arc<SuggestionService>,
pub health_provider: Arc<dyn HealthDataProvider>,
pub provider_registry: Arc<ProviderRegistry>,
pub quota: Arc<QuotaService>,
pub cache: Arc<CacheService>,
pub risk_service: Arc<RiskService>,
pub insight_service: Arc<InsightService>,
pub feature_flags: Arc<FeatureFlagService>,
pub knowledge: Arc<KnowledgeService>,
pub knowledge_v2: Arc<KnowledgeV2Service>,
pub chat_session: Arc<ChatSessionService>,
pub chat_message: Arc<ChatMessageService>,
}