feat: 完善知识库后端 API
- 添加 KnowledgeHandler 处理知识库请求 - 注册知识库 CRUD 路由 - 添加文档上传、删除、解析、预览接口 - 更新数据库模型和迁移 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -70,12 +70,13 @@ func main() {
|
||||
}
|
||||
|
||||
// 3. 自动迁移表
|
||||
db.AutoMigrate(&model.DatabaseInfo{}, &model.SubTableInfo{}, &model.ModelInfo{})
|
||||
db.AutoMigrate(&model.DatabaseInfo{}, &model.SubTableInfo{}, &model.ModelInfo{}, &model.KnowledgeBase{}, &model.KnowledgeDocument{})
|
||||
|
||||
// 4. 初始化 Repository
|
||||
dbRepo := repository.NewDatabaseRepository(db)
|
||||
subTableRepo := repository.NewSubTableRepository(db)
|
||||
modelRepo := repository.NewModelRepository(db)
|
||||
knowledgeRepo := repository.NewKnowledgeRepository(db)
|
||||
|
||||
// 5. 初始化 Service
|
||||
dbService := service.NewDatabaseService(dbRepo, subTableRepo)
|
||||
@@ -86,6 +87,7 @@ func main() {
|
||||
if err != nil {
|
||||
log.Printf("Warning: Failed to initialize upload service: %v (files will not be available)", err)
|
||||
}
|
||||
knowledgeService := service.NewKnowledgeService(knowledgeRepo, modelRepo, uploadService, cfg.PythonServiceURL)
|
||||
|
||||
// 6. 初始化 Handler
|
||||
dbHandler := handler.NewDatabaseHandler(dbService)
|
||||
@@ -93,6 +95,7 @@ func main() {
|
||||
neo4jHandler := handler.NewNeo4jHandler(neo4jService)
|
||||
modelHandler := handler.NewModelHandler(modelService)
|
||||
systemHandler := handler.NewSystemHandler()
|
||||
knowledgeHandler := handler.NewKnowledgeHandler(knowledgeService)
|
||||
var uploadHandler *handler.UploadHandler
|
||||
if uploadService != nil {
|
||||
uploadHandler = handler.NewUploadHandler(uploadService)
|
||||
@@ -185,6 +188,22 @@ func main() {
|
||||
modelGroup.DELETE("/:id", modelHandler.Delete)
|
||||
}
|
||||
|
||||
// 知识库管理模块
|
||||
knowledgeGroup := r.Group("/api/knowledge")
|
||||
{
|
||||
knowledgeGroup.POST("/create", knowledgeHandler.Create)
|
||||
knowledgeGroup.GET("/list", knowledgeHandler.List)
|
||||
knowledgeGroup.GET("/:id", knowledgeHandler.GetByID)
|
||||
knowledgeGroup.PUT("/:id", knowledgeHandler.Update)
|
||||
knowledgeGroup.DELETE("/:id", knowledgeHandler.Delete)
|
||||
// 文档管理
|
||||
knowledgeGroup.GET("/:id/documents", knowledgeHandler.ListDocuments)
|
||||
knowledgeGroup.POST("/:id/documents", knowledgeHandler.UploadDocument)
|
||||
knowledgeGroup.DELETE("/:id/documents/:doc_id", knowledgeHandler.DeleteDocument)
|
||||
knowledgeGroup.POST("/:id/documents/:doc_id/reparse", knowledgeHandler.ReparseDocument)
|
||||
knowledgeGroup.GET("/:id/documents/:doc_id/preview", knowledgeHandler.GetDocumentPreview)
|
||||
}
|
||||
|
||||
// 系统信息模块
|
||||
r.GET("/system/info", systemHandler.GetSystemInfo)
|
||||
|
||||
@@ -195,8 +214,8 @@ func main() {
|
||||
r.Static("/files", cfg.UploadLocalPath)
|
||||
}
|
||||
// 上传路由
|
||||
r.POST("/upload", uploadHandler.Upload)
|
||||
r.DELETE("/upload/:filename", uploadHandler.Delete)
|
||||
r.POST("/api/file_upload", uploadHandler.Upload)
|
||||
r.DELETE("/api/file_upload/:filename", uploadHandler.Delete)
|
||||
}
|
||||
|
||||
// 8. 启动服务
|
||||
|
||||
Reference in New Issue
Block a user