Skip to content

Commit 7bfa06a

Browse files
committed
feat: 更新版本号并优化插件管理功能
- 将项目版本号从 0.1.7 更新至 0.1.8 - 优化 `DocSplitter` 插件的参数描述 - 简化 `DocBase` 中 `docLoaders` 的返回逻辑 - 在 `app` 包中添加 `es-toolkit` 和 `zod-to-json-schema` 依赖 - 更新 `README.md` 中的 TODO 列表 - 在插件管理 API 中增加参数校验 schema 的转换功能
1 parent 0bcb54b commit 7bfa06a

File tree

7 files changed

+33
-30
lines changed

7 files changed

+33
-30
lines changed

README.md

Lines changed: 12 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,9 @@ docker-compose up -d
4444

4545
### 下载安装客户端
4646

47-
<!-- 客户端版(插件、多模态重构结束后才会做) -->
48-
<!-- 动态选择知识库目录功能 -->
47+
<!-- 客户端版 -->
48+
<!-- 多知识库前端页面 -->
4949
<!-- 本地自动部署 meilisearch -->
50-
<!-- 制作为 aiaw 插件(MCP协议) -->
5150
<!-- 整合 aiaw 前端 -->
5251
<!-- 制作图文发小红书 -->
5352

@@ -67,28 +66,23 @@ docker-compose up -d
6766

6867
<!-- 下一步-->
6968
<!-- TODO 开一个可信插件仓库 -->
70-
<!-- TODO 前端插件管理页面 -->
71-
<!-- TODO 文档补充搜索参数和插件管理 -->
72-
<!-- TODO 制作宣传视频发 bilibili -->
73-
74-
<!-- 工程化 -->
7569
<!-- TODO 打点日志 -->
76-
77-
<!-- 插件需完善 -->
78-
<!-- TODO 添加数据持久化层,将插件安装、配置、映射信息存入 -->
79-
<!-- TODO 启动时加载全部插件 -->
80-
81-
<!-- 功能 -->
8270
<!-- TODO 文件加载器、分割器支持自定义向量,搜索同时搜索docs和chunks -->
8371
<!-- TODO 数据持久化层 -->
84-
<!-- TODO 插件完善 -->
72+
<!-- TODO 添加数据持久化层,将插件安装、配置、映射信息存入 -->
73+
<!-- TODO 启动时加载全部插件 -->
74+
<!-- TODO 前端插件管理页面 -->
75+
<!-- TODO 文档补充更多搜索参数/插件管理 -->
8576
<!-- TODO 多知识库 -->
8677
<!-- TODO 客户端版 -->
78+
<!-- TODO 文档补充客户端/多知识库 -->
79+
<!-- TODO 制作宣传视频发 bilibili -->
8780
<!-- TODO 前端 i8n -->
8881

8982
<!-- 企业版 -->
90-
<!-- 多知识库管理 -->
91-
<!-- 知识库粒度的权限管理(webdav权限+搜索权限控制) -->
9283
<!-- 文件时光旅行功能,记录修改记录 -->
93-
<!-- 知识库分享、挂载 -->
84+
<!-- 知识库 MCP 服务 -->
85+
<!-- 多用户 -->
9486
<!-- OIDC 认证 -->
87+
<!-- 知识库粒度的权限管理(webdav权限+搜索权限控制) -->
88+
<!-- 知识库分享、挂载 -->

bun.lock

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,16 @@
1414
"name": "app",
1515
"dependencies": {
1616
"@hey-api/client-fetch": "^0.8.3",
17-
"nypm": "^0.6.0",
1817
},
1918
"devDependencies": {
2019
"@hey-api/openapi-ts": "^0.64.12",
2120
"@hono/swagger-ui": "^0.5.1",
2221
"@hono/zod-openapi": "^0.19.2",
2322
"core": "workspace:*",
23+
"es-toolkit": "^1.33.0",
2424
"hono": "^4.7.4",
25+
"nypm": "^0.6.0",
26+
"zod-to-json-schema": "^3.24.4",
2527
},
2628
},
2729
"packages/core": {

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "docbase",
3-
"version": "0.1.7",
3+
"version": "0.1.8",
44
"type": "module",
55
"workspaces": [
66
"packages/*"

packages/app/package.json

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,12 @@
1111
"@hono/zod-openapi": "^0.19.2",
1212
"hono": "^4.7.4",
1313
"core": "workspace:*",
14+
"es-toolkit": "^1.33.0",
15+
"nypm": "^0.6.0",
16+
"zod-to-json-schema": "^3.24.4",
1417
"@hey-api/openapi-ts": "^0.64.12"
1518
},
1619
"dependencies": {
17-
"@hey-api/client-fetch": "^0.8.3",
18-
"nypm": "^0.6.0"
20+
"@hey-api/client-fetch": "^0.8.3"
1921
}
20-
}
22+
}

packages/app/src/apis/plugin/index.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import { createRoute, z } from "@hono/zod-openapi";
22
import { OpenAPIHono } from "@hono/zod-openapi";
33
import { DocBasePlugin } from "core/src";
4+
import { merge } from "es-toolkit";
5+
import { zodToJsonSchema } from "zod-to-json-schema";
46

57
const app = new OpenAPIHono();
68

@@ -109,6 +111,8 @@ const listPlugin = createRoute({
109111
homepage: z.string().optional(),
110112
/** 插件图标 */
111113
icon: z.string().optional(),
114+
/** 插件参数校验 schema */
115+
paramsSchema: z.any().optional(),
112116
})),
113117
docSplitter: z.object({
114118
/** 插件类型,固定为"DocLoader" */
@@ -127,6 +131,8 @@ const listPlugin = createRoute({
127131
homepage: z.string().optional(),
128132
/** 插件图标 */
129133
icon: z.string().optional(),
134+
/** 插件参数校验 schema */
135+
paramsSchema: z.any().optional(),
130136
}),
131137
}),
132138
},
@@ -233,11 +239,13 @@ app.openapi(addPlugin, async (c) => {
233239
}
234240
})
235241

242+
const convertJSONSchema = (i: { paramsSchema?: z.ZodType; }) => merge(i, { paramsSchema: i.paramsSchema ? zodToJsonSchema(i.paramsSchema) : i.paramsSchema })
243+
236244
app.openapi(listPlugin, async (c) => {
237245
const docBase = c.get("docbase");
238246
return c.json({
239-
docLoaders: docBase.docLoaders.map(i => i),
240-
docSplitter: docBase.docSplitter,
247+
docLoaders: docBase.docLoaders.map(convertJSONSchema).toArray(),
248+
docSplitter: convertJSONSchema(docBase.docSplitter),
241249
});
242250
})
243251

packages/core/src/DocBase.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,9 +88,7 @@ export class DocBase {
8888
/** 获取所有可用文档加载器 */
8989
get docLoaders() {
9090
// 去掉 func init
91-
return Array.from(
92-
this.#docLoaders.values().map((v) => omit(v, ["func", "init"]))
93-
);
91+
return this.#docLoaders.values().map((v) => omit(v, ["func", "init"]));
9492
}
9593

9694
get docSplitter() {

packages/core/src/DocSplitter.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@ export interface DocSplitterPlugin<T extends AnyZodObject = AnyZodObject>
2222
}
2323

2424
const DocSplitterPluginParams = z.object({
25-
/** 每个文本块的长度 */
26-
len: z.number(),
25+
len: z.number().describe("分割得到的每个文本块的长度"),
2726
})
2827

2928
// 默认实现 ============

0 commit comments

Comments
 (0)