新增知识库管理功能,包括知识库和文档的增删改查,优化文档上传和状态管理,更新相关API接口和前端页面,添加知识库和文档的视图组件。

This commit is contained in:
Chuck1sn
2025-06-27 16:51:48 +08:00
parent 2fb08968ee
commit 8ed0b795f3
25 changed files with 1578 additions and 46 deletions

View File

@@ -44,6 +44,51 @@
}
}
},
"/knowledge/doc": {
"put": {
"tags": [
"library-controller"
],
"operationId": "updateLibraryDoc",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DocUpdateDto"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK"
}
}
},
"delete": {
"tags": [
"library-controller"
],
"operationId": "deleteLibraryDoc",
"parameters": [
{
"name": "libraryDocId",
"in": "query",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
}
}
],
"responses": {
"200": {
"description": "OK"
}
}
}
},
"/ai/llm": {
"put": {
"tags": [
@@ -192,6 +237,93 @@
}
}
},
"/knowledge/library": {
"post": {
"tags": [
"library-controller"
],
"operationId": "upsertLibrary",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LibraryUpsertDto"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK"
}
}
},
"delete": {
"tags": [
"library-controller"
],
"operationId": "deleteLibrary",
"parameters": [
{
"name": "libraryId",
"in": "query",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
}
}
],
"responses": {
"200": {
"description": "OK"
}
}
}
},
"/knowledge/doc/upload": {
"post": {
"tags": [
"library-controller"
],
"operationId": "uploadLibraryDoc",
"requestBody": {
"content": {
"application/json": {
"schema": {
"required": [
"file",
"libraryId"
],
"type": "object",
"properties": {
"libraryId": {
"type": "string"
},
"file": {
"type": "string",
"format": "binary"
}
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"type": "string"
}
}
}
}
}
}
},
"/iam/user": {
"get": {
"tags": [
@@ -963,6 +1095,97 @@
}
}
},
"/knowledge/segments": {
"get": {
"tags": [
"library-controller"
],
"operationId": "queryLibraryDocSegments",
"parameters": [
{
"name": "libraryDocId",
"in": "query",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/LibraryDocSegment"
}
}
}
}
}
}
}
},
"/knowledge/libraries": {
"get": {
"tags": [
"library-controller"
],
"operationId": "queryLibraries",
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Library"
}
}
}
}
}
}
}
},
"/knowledge/docs": {
"get": {
"tags": [
"library-controller"
],
"operationId": "queryLibraryDocs",
"parameters": [
{
"name": "libraryId",
"in": "query",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/LibraryDoc"
}
}
}
}
}
}
}
},
"/iam/users": {
"get": {
"tags": [
@@ -1354,6 +1577,22 @@
}
}
},
"DocUpdateDto": {
"required": [
"enable",
"id"
],
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"enable": {
"type": "boolean"
}
}
},
"LlmVm": {
"required": [
"apiKey",
@@ -1422,6 +1661,24 @@
}
}
},
"LibraryUpsertDto": {
"required": [
"name"
],
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"name": {
"type": "string"
},
"description": {
"type": "string"
}
}
},
"UserUpsertDto": {
"required": [
"enable",
@@ -1789,6 +2046,94 @@
}
}
},
"LibraryDocSegment": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"docId": {
"type": "integer",
"format": "int64"
},
"embeddingId": {
"type": "string"
},
"content": {
"type": "string"
},
"tokenUsage": {
"type": "integer",
"format": "int32"
}
}
},
"Library": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"createTime": {
"type": "string",
"format": "date-time"
}
}
},
"JSON": {
"type": "object"
},
"LibraryDoc": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"libId": {
"type": "integer",
"format": "int64"
},
"name": {
"type": "string"
},
"identify": {
"type": "string"
},
"path": {
"type": "string"
},
"meta": {
"$ref": "#/components/schemas/JSON"
},
"enable": {
"type": "boolean"
},
"status": {
"type": "string",
"enum": [
"SUCCESS",
"INDEXING"
]
},
"createTime": {
"type": "string",
"format": "date-time"
},
"updateTime": {
"type": "string",
"format": "date-time"
}
}
},
"UserQueryDto": {
"type": "object",
"properties": {

View File

@@ -20,6 +20,22 @@ export interface paths {
patch?: never;
trace?: never;
};
"/knowledge/doc": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put: operations["updateLibraryDoc"];
post?: never;
delete: operations["deleteLibraryDoc"];
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/ai/llm": {
parameters: {
query?: never;
@@ -100,6 +116,38 @@ export interface paths {
patch?: never;
trace?: never;
};
"/knowledge/library": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
post: operations["upsertLibrary"];
delete: operations["deleteLibrary"];
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/knowledge/doc/upload": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
put?: never;
post: operations["uploadLibraryDoc"];
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/iam/user": {
parameters: {
query?: never;
@@ -484,6 +532,54 @@ export interface paths {
patch?: never;
trace?: never;
};
"/knowledge/segments": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get: operations["queryLibraryDocSegments"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/knowledge/libraries": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get: operations["queryLibraries"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/knowledge/docs": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get: operations["queryLibraryDocs"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/iam/users": {
parameters: {
query?: never;
@@ -684,6 +780,11 @@ export interface components {
name: string;
group: string;
};
DocUpdateDto: {
/** Format: int64 */
id: number;
enable: boolean;
};
LlmVm: {
/** Format: int64 */
id: number;
@@ -705,6 +806,12 @@ export interface components {
id?: number;
name?: string;
};
LibraryUpsertDto: {
/** Format: int64 */
id?: number;
name: string;
description?: string;
};
UserUpsertDto: {
/** Format: int64 */
id?: number;
@@ -829,6 +936,42 @@ export interface components {
name: string;
isBound?: boolean;
};
LibraryDocSegment: {
/** Format: int64 */
id?: number;
/** Format: int64 */
docId?: number;
embeddingId?: string;
content?: string;
/** Format: int32 */
tokenUsage?: number;
};
Library: {
/** Format: int64 */
id?: number;
name?: string;
description?: string;
/** Format: date-time */
createTime?: string;
};
JSON: Record<string, never>;
LibraryDoc: {
/** Format: int64 */
id?: number;
/** Format: int64 */
libId?: number;
name?: string;
identify?: string;
path?: string;
meta?: components["schemas"]["JSON"];
enable?: boolean;
/** @enum {string} */
status?: "SUCCESS" | "INDEXING";
/** Format: date-time */
createTime?: string;
/** Format: date-time */
updateTime?: string;
};
UserQueryDto: {
username?: string;
/** Format: date-time */
@@ -973,6 +1116,48 @@ export interface operations {
};
};
};
updateLibraryDoc: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["DocUpdateDto"];
};
};
responses: {
/** @description OK */
200: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
deleteLibraryDoc: {
parameters: {
query: {
libraryDocId: number;
};
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description OK */
200: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
updateLlm: {
parameters: {
query?: never;
@@ -1105,6 +1290,76 @@ export interface operations {
};
};
};
upsertLibrary: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["LibraryUpsertDto"];
};
};
responses: {
/** @description OK */
200: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
deleteLibrary: {
parameters: {
query: {
libraryId: number;
};
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description OK */
200: {
headers: {
[name: string]: unknown;
};
content?: never;
};
};
};
uploadLibraryDoc: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: {
content: {
"application/json": {
libraryId: string;
/** Format: binary */
file: string;
};
};
};
responses: {
/** @description OK */
200: {
headers: {
[name: string]: unknown;
};
content: {
"text/plain": string;
};
};
};
};
queryUserWithRolePermission: {
parameters: {
query: {
@@ -1782,6 +2037,70 @@ export interface operations {
};
};
};
queryLibraryDocSegments: {
parameters: {
query: {
libraryDocId: number;
};
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description OK */
200: {
headers: {
[name: string]: unknown;
};
content: {
"*/*": components["schemas"]["LibraryDocSegment"][];
};
};
};
};
queryLibraries: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description OK */
200: {
headers: {
[name: string]: unknown;
};
content: {
"*/*": components["schemas"]["Library"][];
};
};
};
};
queryLibraryDocs: {
parameters: {
query: {
libraryId: number;
};
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description OK */
200: {
headers: {
[name: string]: unknown;
};
content: {
"*/*": components["schemas"]["LibraryDoc"][];
};
};
};
};
queryUsers: {
parameters: {
query: {