Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

api definition: get knowledge base and tags of knowledge base #2192 #2907

Merged
merged 1 commit into from
Feb 8, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading