Skip to content

Commit

Permalink
Merge pull request #2907 from actiontech/2192
Browse files Browse the repository at this point in the history
api definition: get knowledge base and tags of knowledge base #2192
  • Loading branch information
LordofAvernus authored Feb 8, 2025
2 parents f1fbe1a + e2a3c73 commit 27af4fc
Show file tree
Hide file tree
Showing 6 changed files with 483 additions and 0 deletions.
4 changes: 4 additions & 0 deletions sqle/api/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -445,6 +445,10 @@ func StartApi(net *gracenet.Net, exitChan chan struct{}, config *config.SqleOpti
v1Router.GET("/rule_knowledge/db_types/:db_type/custom_rules/:rule_name/", v1.GetCustomRuleKnowledge)
v1Router.GET("/workflows/statistic_of_instances", v1.GetWorkflowStatisticOfInstances)

// 知识库 Knowledge Base
v1Router.GET("/knowledge_bases", v1.GetKnowledgeBaseList)
v1Router.GET("/knowledge_bases/tags", v1.GetKnowledgeBaseTagList)

//rule
v1Router.GET("/rules", v1.GetRules)
v1Router.GET("/custom_rules", v1.GetCustomRules)
Expand Down
64 changes: 64 additions & 0 deletions sqle/api/controller/v1/knowledge_base.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
package v1

import (
"github.com/actiontech/sqle/sqle/api/controller"
"github.com/labstack/echo/v4"
)

type GetKnowledgeBaseListReq struct {
KeyWords string `json:"keywords" query:"keywords" example:"keywords"` // 搜索内容
Tags []string `json:"tags" query:"tags" example:"tag1"` // 搜索标签
Limit uint32 `json:"limit" query:"limit" example:"10" validate:"required"`
Offset uint32 `json:"offset" query:"offset" example:"0"`
}

type GetKnowledgeBaseListRes struct {
controller.BaseRes
Data []*KnowledgeBase `json:"data"`
TotalNums uint64 `json:"total_nums"`
}

type KnowledgeBase struct {
ID uint `json:"id"` // 知识库ID
Title string `json:"title"` // 标题
Description string `json:"description"` // 描述
Content string `json:"content"` // 内容
Tags []*Tag `json:"tags"` // 标签
}

type Tag struct {
ID uint `json:"id"` // 标签ID
Name string `json:"name"` // 标签名称
}

// GetKnowledgeBaseList
// @Summary 获取知识库列表
// @Description get knowledge base list
// @Id getKnowledgeBaseList
// @Tags knowledge_base
// @Param keywords query string false "keywords"
// @Param tags query []string false "tags"
// @Security ApiKeyAuth
// @Success 200 {object} v1.GetKnowledgeBaseListRes
// @router /v1/knowledge_bases [get]
func GetKnowledgeBaseList(c echo.Context) error {
return getKnowledgeBaseList(c)
}

type GetKnowledgeBaseTagListRes struct {
controller.BaseRes
TotalNums uint64 `json:"total_nums"`
Data []*Tag `json:"data"`
}

// GetKnowledgeBaseTagList
// @Summary 获取知识库标签列表
// @Description get tag list of knowledge base
// @Id getKnowledgeBaseTagList
// @Tags knowledge_base
// @Security ApiKeyAuth
// @Success 200 {object} v1.GetKnowledgeBaseTagListRes
// @router /v1/knowledge_bases/tags [get]
func GetKnowledgeBaseTagList(c echo.Context) error {
return getKnowledgeBaseTagList(c)
}
21 changes: 21 additions & 0 deletions sqle/api/controller/v1/knowledge_base_ce.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
//go:build !enterprise
// +build !enterprise

package v1

import (
e "errors"

"github.com/actiontech/sqle/sqle/errors"
"github.com/labstack/echo/v4"
)

var ErrCommunityEditionDoesNotSupportKnowledgeBase = errors.New(errors.EnterpriseEditionFeatures, e.New("community edition does not support knowledge base"))

func getKnowledgeBaseList(c echo.Context) error {
return ErrCommunityEditionDoesNotSupportKnowledgeBase
}

func getKnowledgeBaseTagList(c echo.Context) error {
return ErrCommunityEditionDoesNotSupportKnowledgeBase
}
148 changes: 148 additions & 0 deletions sqle/docs/docs.go
Original file line number Diff line number Diff line change
Expand Up @@ -1369,6 +1369,69 @@ var doc = `{
}
}
},
"/v1/knowledge_bases": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "get knowledge base list",
"tags": [
"knowledge_base"
],
"summary": "获取知识库列表",
"operationId": "getKnowledgeBaseList",
"parameters": [
{
"type": "string",
"description": "keywords",
"name": "keywords",
"in": "query"
},
{
"type": "array",
"items": {
"type": "string"
},
"description": "tags",
"name": "tags",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/v1.GetKnowledgeBaseListRes"
}
}
}
}
},
"/v1/knowledge_bases/tags": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "get tag list of knowledge base",
"tags": [
"knowledge_base"
],
"summary": "获取知识库标签列表",
"operationId": "getKnowledgeBaseTagList",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/v1.GetKnowledgeBaseTagListRes"
}
}
}
}
},
"/v1/operation_records": {
"get": {
"security": [
Expand Down Expand Up @@ -14496,6 +14559,50 @@ var doc = `{
}
}
},
"v1.GetKnowledgeBaseListRes": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"example": 0
},
"data": {
"type": "array",
"items": {
"$ref": "#/definitions/v1.KnowledgeBase"
}
},
"message": {
"type": "string",
"example": "ok"
},
"total_nums": {
"type": "integer"
}
}
},
"v1.GetKnowledgeBaseTagListRes": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"example": 0
},
"data": {
"type": "array",
"items": {
"$ref": "#/definitions/v1.Tag"
}
},
"message": {
"type": "string",
"example": "ok"
},
"total_nums": {
"type": "integer"
}
}
},
"v1.GetLicenseResV1": {
"type": "object",
"properties": {
Expand Down Expand Up @@ -16197,6 +16304,34 @@ var doc = `{
}
}
},
"v1.KnowledgeBase": {
"type": "object",
"properties": {
"content": {
"description": "内容",
"type": "string"
},
"description": {
"description": "描述",
"type": "string"
},
"id": {
"description": "知识库ID",
"type": "integer"
},
"tags": {
"description": "标签",
"type": "array",
"items": {
"$ref": "#/definitions/v1.Tag"
}
},
"title": {
"description": "标题",
"type": "string"
}
}
},
"v1.LicenseItem": {
"type": "object",
"properties": {
Expand Down Expand Up @@ -17997,6 +18132,19 @@ var doc = `{
}
}
},
"v1.Tag": {
"type": "object",
"properties": {
"id": {
"description": "标签ID",
"type": "integer"
},
"name": {
"description": "标签名称",
"type": "string"
}
}
},
"v1.TargetReleaseInstance": {
"type": "object",
"properties": {
Expand Down
Loading

0 comments on commit 27af4fc

Please sign in to comment.