feat: add knowledge management functionality with CRUD operations and database schema

- Implemented KnowledgeHandler for managing knowledge groups and items, including listing, creating, updating, and deleting operations.
- Added database migration scripts to create necessary tables for knowledge management, including knowledge_groups, knowledge_items, knowledge_parse_tasks, and knowledge_chunks_meta.
- Introduced prompt_rule_knowledge_groups table to associate prompt rules with knowledge groups.
This commit is contained in:
2026-04-05 17:14:13 +08:00
parent 134dd063c3
commit 446f865cdf
62 changed files with 9503 additions and 2664 deletions
@@ -83,6 +83,18 @@ func RegisterRoutes(app *bootstrap.App) {
brands.PUT("/:id/competitors/:cid", brandHandler.UpdateCompetitor)
brands.DELETE("/:id/competitors/:cid", brandHandler.DeleteCompetitor)
knowledge := protected.Group("/tenant/knowledge")
knowledgeHandler := NewKnowledgeHandler(app)
knowledge.GET("/groups", knowledgeHandler.ListGroups)
knowledge.POST("/groups", knowledgeHandler.CreateGroup)
knowledge.PUT("/groups/:gid", knowledgeHandler.UpdateGroup)
knowledge.DELETE("/groups/:gid", knowledgeHandler.DeleteGroup)
knowledge.GET("/items", knowledgeHandler.ListItems)
knowledge.POST("/items/text", knowledgeHandler.CreateTextItem)
knowledge.POST("/items/url", knowledgeHandler.CreateURLItem)
knowledge.POST("/items/file", knowledgeHandler.CreateFileItem)
knowledge.DELETE("/items/:id", knowledgeHandler.DeleteItem)
// Prompt Rules
promptRules := protected.Group("/tenant/prompt-rules")
prHandler := NewPromptRuleHandler(app)