mirror of
https://github.com/ccmjga/zhilu-admin
synced 2026-03-16 14:43:42 +08:00
新增知识库管理功能,包括知识库和文档的增删改查,优化文档上传和状态管理,更新相关API接口和前端页面,添加知识库和文档的视图组件。
This commit is contained in:
@@ -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": {
|
||||
|
||||
319
frontend/src/api/types/schema.d.ts
vendored
319
frontend/src/api/types/schema.d.ts
vendored
@@ -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: {
|
||||
|
||||
Reference in New Issue
Block a user