Files
zclaw_openfang/crates/zclaw-saas/src/knowledge/mod.rs
iven 640df9937f
Some checks failed
CI / Lint & TypeCheck (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Build Frontend (push) Has been cancelled
CI / Rust Check (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / E2E Tests (push) Has been cancelled
feat(knowledge): Phase D 统一搜索 + 种子知识冷启动
- search/recommend API 返回 UnifiedSearchResult (文档+结构化双通道)
- POST /api/v1/knowledge/seed 种子知识冷启动 (幂等, admin权限)
- seed_knowledge service: 按标题+行业查重, source=distillation
- SearchRequest 扩展: search_structured/search_documents/industry_id
2026-04-12 20:46:43 +08:00

49 lines
2.8 KiB
Rust

//! 知识库模块 — 行业知识管理、RAG 检索、版本控制、结构化数据
pub mod types;
pub mod service;
pub mod handlers;
pub mod extractors;
use axum::routing::{delete, get, patch, post, put};
pub fn routes() -> axum::Router<crate::state::AppState> {
axum::Router::new()
// 分类管理
.route("/api/v1/knowledge/categories", get(handlers::list_categories))
.route("/api/v1/knowledge/categories", post(handlers::create_category))
.route("/api/v1/knowledge/categories/:id", put(handlers::update_category))
.route("/api/v1/knowledge/categories/:id", delete(handlers::delete_category))
.route("/api/v1/knowledge/categories/:id/items", get(handlers::list_category_items))
.route("/api/v1/knowledge/categories/reorder", patch(handlers::reorder_categories))
// 知识条目 CRUD
.route("/api/v1/knowledge/items", get(handlers::list_items))
.route("/api/v1/knowledge/items", post(handlers::create_item))
.route("/api/v1/knowledge/items/batch", post(handlers::batch_create_items))
.route("/api/v1/knowledge/items/import", post(handlers::import_items))
.route("/api/v1/knowledge/upload", post(handlers::upload_file))
.route("/api/v1/knowledge/items/:id", get(handlers::get_item))
.route("/api/v1/knowledge/items/:id", put(handlers::update_item))
.route("/api/v1/knowledge/items/:id", delete(handlers::delete_item))
// 版本控制
.route("/api/v1/knowledge/items/:id/versions", get(handlers::list_versions))
.route("/api/v1/knowledge/items/:id/versions/:v", get(handlers::get_version))
.route("/api/v1/knowledge/items/:id/rollback/:v", post(handlers::rollback_version))
// 检索
.route("/api/v1/knowledge/search", post(handlers::search))
.route("/api/v1/knowledge/recommend", post(handlers::recommend))
.route("/api/v1/knowledge/seed", post(handlers::seed_knowledge))
// 分析看板
.route("/api/v1/knowledge/analytics/overview", get(handlers::analytics_overview))
.route("/api/v1/knowledge/analytics/trends", get(handlers::analytics_trends))
.route("/api/v1/knowledge/analytics/top-items", get(handlers::analytics_top_items))
.route("/api/v1/knowledge/analytics/quality", get(handlers::analytics_quality))
.route("/api/v1/knowledge/analytics/gaps", get(handlers::analytics_gaps))
// 结构化数据源管理
.route("/api/v1/structured/sources", get(handlers::list_structured_sources))
.route("/api/v1/structured/sources/:id", get(handlers::get_structured_source))
.route("/api/v1/structured/sources/:id/rows", get(handlers::list_structured_source_rows))
.route("/api/v1/structured/sources/:id", delete(handlers::delete_structured_source))
.route("/api/v1/structured/query", post(handlers::query_structured))
}