@linkmind_claw/openclaw-faq-kb 1.3.3 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +12 -15
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +190 -88
- package/dist/index.js.map +1 -1
- package/linkmind_claw-openclaw-faq-kb-1.3.3.tgz +0 -0
- package/linkmind_claw-openclaw-faq-kb-1.4.0.tgz +0 -0
- package/package.json +1 -1
- package/skills/faq-kb/SKILL.md +38 -121
package/dist/index.d.ts
CHANGED
|
@@ -1,21 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* OpenClaw Plugin
|
|
2
|
+
* OpenClaw Plugin — LinkMind Knowledge Base
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* 一个 OpenClaw 实例 = 一个 Owner(主人)
|
|
5
|
+
* Owner 通过 /linkmind_claim 认主,拥有全部管理权限
|
|
6
|
+
* 其他用户只能查询被开放的知识库
|
|
5
7
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* /faq_register — 查看我的身份信息
|
|
15
|
-
* /faq_create — 创建知识库并训练
|
|
16
|
-
* /faq_query — 按名称提问
|
|
17
|
-
* /faq_share — 分享/修改/撤销 KB 权限
|
|
18
|
-
* /faq_list — 列出我的知识库
|
|
8
|
+
* Slash Commands:
|
|
9
|
+
* /linkmind_help — 使用帮助
|
|
10
|
+
* /linkmind_claim — 认主(绑定管理员)
|
|
11
|
+
* /linkmind_me — 查看我的身份信息
|
|
12
|
+
* /linkmind_create — 创建知识库并训练(仅 Owner)
|
|
13
|
+
* /linkmind_query — 知识库问答
|
|
14
|
+
* /linkmind_share — 管理 KB 权限(仅 Owner)
|
|
15
|
+
* /linkmind_list — 列出可访问的知识库
|
|
19
16
|
*/
|
|
20
17
|
interface CommandContext {
|
|
21
18
|
args?: string;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAsCH,UAAU,cAAc;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,SAAS;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,YAAY,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAC9C,eAAe,EAAE,CAAC,OAAO,EAAE;QACzB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,OAAO,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,GAAG;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;KAChF,KAAK,IAAI,CAAC;CACZ;AAED,UAAU,WAAW;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,IAAI,CAAC;CACpC;;AAQD,wBAyeG"}
|
package/dist/index.js
CHANGED
|
@@ -1,21 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* OpenClaw Plugin
|
|
2
|
+
* OpenClaw Plugin — LinkMind Knowledge Base
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* 一个 OpenClaw 实例 = 一个 Owner(主人)
|
|
5
|
+
* Owner 通过 /linkmind_claim 认主,拥有全部管理权限
|
|
6
|
+
* 其他用户只能查询被开放的知识库
|
|
5
7
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* /faq_register — 查看我的身份信息
|
|
15
|
-
* /faq_create — 创建知识库并训练
|
|
16
|
-
* /faq_query — 按名称提问
|
|
17
|
-
* /faq_share — 分享/修改/撤销 KB 权限
|
|
18
|
-
* /faq_list — 列出我的知识库
|
|
8
|
+
* Slash Commands:
|
|
9
|
+
* /linkmind_help — 使用帮助
|
|
10
|
+
* /linkmind_claim — 认主(绑定管理员)
|
|
11
|
+
* /linkmind_me — 查看我的身份信息
|
|
12
|
+
* /linkmind_create — 创建知识库并训练(仅 Owner)
|
|
13
|
+
* /linkmind_query — 知识库问答
|
|
14
|
+
* /linkmind_share — 管理 KB 权限(仅 Owner)
|
|
15
|
+
* /linkmind_list — 列出可访问的知识库
|
|
19
16
|
*/
|
|
20
17
|
import { Type } from "@sinclair/typebox";
|
|
21
18
|
import { FaqKbApiClient } from "./lib/api-client.js";
|
|
@@ -29,8 +26,8 @@ function definePluginEntry(entry) {
|
|
|
29
26
|
// ── Export ─────────────────────────────────────────────────────────────
|
|
30
27
|
export default definePluginEntry({
|
|
31
28
|
id: "faq-knowledge-base",
|
|
32
|
-
name: "
|
|
33
|
-
description: "
|
|
29
|
+
name: "LinkMind Knowledge Base",
|
|
30
|
+
description: "LinkMind 智能知识库:认主管理、一键上传文档训练、智能问答",
|
|
34
31
|
register(api) {
|
|
35
32
|
const cfg = (api.pluginConfig ?? {});
|
|
36
33
|
const baseUrl = cfg.apiBaseUrl || "http://67.212.146.21:8999";
|
|
@@ -40,16 +37,36 @@ export default definePluginEntry({
|
|
|
40
37
|
baseUrl,
|
|
41
38
|
staticToken: cfg.apiToken || undefined,
|
|
42
39
|
});
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
40
|
+
let cachedOwnerStatus = null;
|
|
41
|
+
async function getOwnerStatus() {
|
|
42
|
+
if (cachedOwnerStatus && Date.now() - cachedOwnerStatus.checkedAt < 60_000) {
|
|
43
|
+
return { claimed: cachedOwnerStatus.claimed, owner_telegram_id: null };
|
|
44
|
+
}
|
|
45
|
+
try {
|
|
46
|
+
const res = await client.get("/owner/status");
|
|
47
|
+
const data = res.data ?? res;
|
|
48
|
+
cachedOwnerStatus = { claimed: !!data.claimed, checkedAt: Date.now() };
|
|
49
|
+
return data;
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
return { claimed: true, owner_telegram_id: null };
|
|
53
|
+
}
|
|
54
|
+
}
|
|
49
55
|
async function ensureAuth(ctx) {
|
|
50
56
|
if (!ctx.senderId || !ctx.channel) {
|
|
51
57
|
return "无法获取你的用户信息,请在社媒渠道中使用。";
|
|
52
58
|
}
|
|
59
|
+
const status = await getOwnerStatus();
|
|
60
|
+
if (!status.claimed) {
|
|
61
|
+
return [
|
|
62
|
+
"此服务器尚未配置管理员。",
|
|
63
|
+
"如果你是部署者,请使用以下命令完成认主:",
|
|
64
|
+
" /linkmind_claim <部署时生成的密钥>",
|
|
65
|
+
"密钥可在服务器启动日志中找到。",
|
|
66
|
+
"",
|
|
67
|
+
"输入 /linkmind_help 查看详细说明。",
|
|
68
|
+
].join("\n");
|
|
69
|
+
}
|
|
53
70
|
client.setSender(ctx.senderId);
|
|
54
71
|
if (client.hasUserToken(ctx.senderId)) {
|
|
55
72
|
return null;
|
|
@@ -63,71 +80,72 @@ export default definePluginEntry({
|
|
|
63
80
|
return null;
|
|
64
81
|
}
|
|
65
82
|
catch (e) {
|
|
66
|
-
return `⚠️ 自动登录失败: ${e.message}
|
|
83
|
+
return `⚠️ 自动登录失败: ${e.message}`;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
async function requireOwner(ctx) {
|
|
87
|
+
const authErr = await ensureAuth(ctx);
|
|
88
|
+
if (authErr)
|
|
89
|
+
return authErr;
|
|
90
|
+
try {
|
|
91
|
+
const res = await client.get("/oauth/me");
|
|
92
|
+
const data = res.data ?? res;
|
|
93
|
+
if (!data.is_owner) {
|
|
94
|
+
return "此操作仅限管理员。如需查询知识库请使用 /linkmind_query";
|
|
95
|
+
}
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
return "无法验证管理员身份,请稍后再试。";
|
|
67
100
|
}
|
|
68
101
|
}
|
|
69
|
-
// ──
|
|
102
|
+
// ── Tools ──────────────────────────────────────────────────────────
|
|
70
103
|
api.registerTool({
|
|
71
|
-
name: "
|
|
104
|
+
name: "linkmind_account_register",
|
|
72
105
|
label: "用户注册/登录",
|
|
73
106
|
description: [
|
|
74
107
|
"社媒用户 OAuth 注册或登录。",
|
|
75
|
-
"
|
|
76
|
-
"成功后自动缓存 JWT,后续 API 调用自动携带用户身份。",
|
|
108
|
+
"首次调用自动创建账号,后续调用等同登录。",
|
|
77
109
|
"支持 Telegram / Discord / Slack / Web 等渠道。",
|
|
78
110
|
].join(" "),
|
|
79
111
|
parameters: AccountRegisterParams,
|
|
80
112
|
execute: (_id, params) => executeAccountRegister(client, params),
|
|
81
113
|
});
|
|
82
|
-
// ── Tool 2: Account Manage (admin) ────────────────────────────────
|
|
83
114
|
api.registerTool({
|
|
84
|
-
name: "
|
|
115
|
+
name: "linkmind_account_manage",
|
|
85
116
|
label: "权限管理",
|
|
86
117
|
description: [
|
|
87
118
|
"管理员权限操作工具。",
|
|
88
|
-
"grant_role
|
|
89
|
-
"list_users: 列出所有渠道用户。",
|
|
90
|
-
"my_info: 查看自己的身份、角色和配额。",
|
|
119
|
+
"grant_role / list_users / my_info",
|
|
91
120
|
].join(" "),
|
|
92
121
|
parameters: AccountManageParams,
|
|
93
122
|
execute: (_id, params) => executeAccountManage(client, params),
|
|
94
123
|
});
|
|
95
|
-
// ── Tool 3: Create & Train ────────────────────────────────────────
|
|
96
124
|
api.registerTool({
|
|
97
|
-
name: "
|
|
125
|
+
name: "linkmind_kb_create_and_train",
|
|
98
126
|
label: "创建知识库并训练",
|
|
99
127
|
description: [
|
|
100
|
-
"
|
|
101
|
-
"
|
|
102
|
-
"
|
|
103
|
-
"支持 PDF / DOCX / DOC / TXT / MD 格式,通过 file_url 传入文件地址。",
|
|
104
|
-
"训练过程通常需要 2-10 分钟,取决于文档大小。",
|
|
128
|
+
"创建 FAQ 知识库并自动完成全部训练流程。",
|
|
129
|
+
"支持 PDF / DOCX / DOC / TXT / MD 格式。",
|
|
130
|
+
"训练过程通常需要 2-10 分钟。",
|
|
105
131
|
].join(" "),
|
|
106
132
|
parameters: CreateAndTrainParams,
|
|
107
133
|
execute: (_id, params) => executeCreateAndTrain(client, params, pollInterval, pipelineTimeout),
|
|
108
134
|
});
|
|
109
|
-
// ── Tool 2: Query ─────────────────────────────────────────────────
|
|
110
135
|
api.registerTool({
|
|
111
|
-
name: "
|
|
136
|
+
name: "linkmind_kb_query",
|
|
112
137
|
label: "知识库问答",
|
|
113
138
|
description: [
|
|
114
139
|
"向知识库提问并获取 AI 智能回答。",
|
|
115
140
|
"可以用知识库名称(kb_name)或 ID(kb_id)指定,推荐用名称。",
|
|
116
|
-
"名称支持模糊匹配,系统自动在你有权限的 KB 中查找。",
|
|
117
|
-
"设置 enable_polish=true 可让 LLM 综合多个 FAQ 生成更自然的回答。",
|
|
118
141
|
].join(" "),
|
|
119
142
|
parameters: QueryParams,
|
|
120
143
|
execute: (_id, params) => executeQuery(client, params),
|
|
121
144
|
});
|
|
122
|
-
// ── Tool 3: List KB ───────────────────────────────────────────────
|
|
123
145
|
api.registerTool({
|
|
124
|
-
name: "
|
|
146
|
+
name: "linkmind_kb_list",
|
|
125
147
|
label: "查看知识库列表",
|
|
126
|
-
description:
|
|
127
|
-
"列出当前可访问的所有知识库。",
|
|
128
|
-
"返回每个知识库的 ID、名称、标签和训练状态。",
|
|
129
|
-
"支持按名称和标签筛选,支持分页。",
|
|
130
|
-
].join(" "),
|
|
148
|
+
description: "列出当前可访问的所有知识库。",
|
|
131
149
|
parameters: Type.Object({
|
|
132
150
|
keyword: Type.Optional(Type.String({ description: "按名称搜索(可选)" })),
|
|
133
151
|
tag_name: Type.Optional(Type.String({ description: "按标签筛选(可选)" })),
|
|
@@ -147,9 +165,9 @@ export default definePluginEntry({
|
|
|
147
165
|
const total = res.total ?? items.length;
|
|
148
166
|
const lines = [`知识库列表(共 ${total} 个):`];
|
|
149
167
|
for (const kb of items) {
|
|
150
|
-
const
|
|
168
|
+
const st = kb.is_active ? "就绪" : "未训练";
|
|
151
169
|
const tag = kb.tag_name ? ` [${kb.tag_name}]` : "";
|
|
152
|
-
lines.push(` ${kb.id} ${kb.name}${tag} (${
|
|
170
|
+
lines.push(` ${kb.id} ${kb.name}${tag} (${st})`);
|
|
153
171
|
}
|
|
154
172
|
if (items.length === 0)
|
|
155
173
|
lines.push(" (无知识库)");
|
|
@@ -158,48 +176,133 @@ export default definePluginEntry({
|
|
|
158
176
|
});
|
|
159
177
|
// ── Slash Commands ─────────────────────────────────────────────────
|
|
160
178
|
api.registerCommand({
|
|
161
|
-
name: "
|
|
162
|
-
description: "
|
|
179
|
+
name: "linkmind_help",
|
|
180
|
+
description: "LinkMind 使用帮助",
|
|
163
181
|
handler: async (ctx) => {
|
|
164
|
-
const
|
|
165
|
-
|
|
166
|
-
|
|
182
|
+
const status = await getOwnerStatus();
|
|
183
|
+
let isOwner = false;
|
|
184
|
+
if (status.claimed && ctx.senderId && ctx.channel) {
|
|
185
|
+
client.setSender(ctx.senderId);
|
|
186
|
+
if (!client.hasUserToken(ctx.senderId)) {
|
|
187
|
+
try {
|
|
188
|
+
await client.oauthLogin({
|
|
189
|
+
channel_type: ctx.channel,
|
|
190
|
+
channel_user_id: ctx.senderId,
|
|
191
|
+
display_name: "",
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
catch { /* ignore */ }
|
|
195
|
+
}
|
|
196
|
+
try {
|
|
197
|
+
const me = await client.get("/oauth/me");
|
|
198
|
+
isOwner = !!(me.data ?? me).is_owner;
|
|
199
|
+
}
|
|
200
|
+
catch { /* ignore */ }
|
|
201
|
+
}
|
|
202
|
+
const lines = [
|
|
203
|
+
"LinkMind 智能知识库",
|
|
204
|
+
"━━━━━━━━━━━━━━━━━━",
|
|
205
|
+
];
|
|
206
|
+
if (!status.claimed) {
|
|
207
|
+
lines.push("", "首次使用?请先完成认主:", " /linkmind_claim <密钥>", "", "密钥在服务器启动日志中生成。", "认主后你将成为管理员,可以创建和管理知识库。");
|
|
208
|
+
}
|
|
209
|
+
else if (isOwner) {
|
|
210
|
+
lines.push("", "你是管理员,可用命令:", "", " /linkmind_create <名称> <文档URL>", " 创建知识库并自动训练", " 支持 PDF / DOCX / DOC / TXT / MD", "", " /linkmind_list", " 查看所有知识库", "", " /linkmind_query <知识库名称> <问题>", " 向知识库提问", "", " /linkmind_share <KB名> <用户ID> <角色>", " 分享知识库给其他用户", " 角色: viewer / editor / revoke", "", " /linkmind_me", " 查看你的身份信息");
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
lines.push("", "可用命令:", "", " /linkmind_list", " 查看你可访问的知识库", "", " /linkmind_query <知识库名称> <问题>", " 向知识库提问", "", " /linkmind_me", " 查看你的身份信息");
|
|
214
|
+
}
|
|
215
|
+
return { text: lines.join("\n") };
|
|
216
|
+
},
|
|
217
|
+
});
|
|
218
|
+
api.registerCommand({
|
|
219
|
+
name: "linkmind_claim",
|
|
220
|
+
description: "认主(绑定管理员): /linkmind_claim <密钥>",
|
|
221
|
+
acceptsArgs: true,
|
|
222
|
+
handler: async (ctx) => {
|
|
223
|
+
if (!ctx.senderId || !ctx.channel) {
|
|
224
|
+
return { text: "无法获取你的用户信息,请在社媒渠道中使用。" };
|
|
225
|
+
}
|
|
226
|
+
const secret = (ctx.args ?? "").trim();
|
|
227
|
+
if (!secret) {
|
|
228
|
+
return {
|
|
229
|
+
text: [
|
|
230
|
+
"用法: /linkmind_claim <密钥>",
|
|
231
|
+
"",
|
|
232
|
+
"密钥在服务器启动日志中生成。",
|
|
233
|
+
"认主后你将成为此服务器的管理员,拥有创建/管理知识库的权限。",
|
|
234
|
+
].join("\n"),
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
client.setSender(ctx.senderId);
|
|
238
|
+
if (!client.hasUserToken(ctx.senderId)) {
|
|
239
|
+
try {
|
|
240
|
+
await client.oauthLogin({
|
|
241
|
+
channel_type: ctx.channel,
|
|
242
|
+
channel_user_id: ctx.senderId,
|
|
243
|
+
display_name: "",
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
catch (e) {
|
|
247
|
+
return { text: `⚠️ 登录失败: ${e.message}` };
|
|
248
|
+
}
|
|
249
|
+
}
|
|
167
250
|
try {
|
|
168
|
-
const res = await client.
|
|
169
|
-
|
|
251
|
+
const res = await client.post("/owner/claim", {
|
|
252
|
+
claim_secret: secret,
|
|
253
|
+
});
|
|
254
|
+
cachedOwnerStatus = { claimed: true, checkedAt: Date.now() };
|
|
170
255
|
return {
|
|
171
256
|
text: [
|
|
172
|
-
`✅
|
|
173
|
-
` 用户 ID: ${d.user_id ?? d.id ?? "—"}`,
|
|
174
|
-
` 名称: ${d.name ?? "—"}`,
|
|
175
|
-
` 角色: ${d.role ?? "—"}`,
|
|
176
|
-
` 渠道: ${d.channel_type ?? "—"}`,
|
|
257
|
+
`✅ ${res.message || "认主成功!"}`,
|
|
177
258
|
"",
|
|
178
|
-
"
|
|
179
|
-
"
|
|
180
|
-
" /faq_list — 查看你的知识库",
|
|
181
|
-
" /faq_query <名称> <问题> — 提问",
|
|
182
|
-
" /faq_share <KB名> <用户ID> <角色> — 管理权限",
|
|
259
|
+
"你现在是此服务器的管理员。",
|
|
260
|
+
"输入 /linkmind_help 查看可用命令。",
|
|
183
261
|
].join("\n"),
|
|
184
262
|
};
|
|
185
263
|
}
|
|
264
|
+
catch (e) {
|
|
265
|
+
return { text: `❌ 认主失败: ${e.message}` };
|
|
266
|
+
}
|
|
267
|
+
},
|
|
268
|
+
});
|
|
269
|
+
api.registerCommand({
|
|
270
|
+
name: "linkmind_me",
|
|
271
|
+
description: "查看我的身份信息",
|
|
272
|
+
handler: async (ctx) => {
|
|
273
|
+
const authErr = await ensureAuth(ctx);
|
|
274
|
+
if (authErr)
|
|
275
|
+
return { text: authErr };
|
|
276
|
+
try {
|
|
277
|
+
const res = await client.get("/oauth/me");
|
|
278
|
+
const d = res.data ?? res;
|
|
279
|
+
const ownerTag = d.is_owner ? " (管理员)" : "";
|
|
280
|
+
const lines = [
|
|
281
|
+
`✅ 你已登录${ownerTag}`,
|
|
282
|
+
` 用户 ID: ${d.user_id ?? d.id ?? "—"}`,
|
|
283
|
+
` 名称: ${d.name ?? "—"}`,
|
|
284
|
+
` 角色: ${d.role ?? "—"}`,
|
|
285
|
+
` 渠道: ${d.channel_type ?? "—"}`,
|
|
286
|
+
];
|
|
287
|
+
return { text: lines.join("\n") };
|
|
288
|
+
}
|
|
186
289
|
catch (e) {
|
|
187
290
|
return { text: `❌ 获取信息失败: ${e.message}` };
|
|
188
291
|
}
|
|
189
292
|
},
|
|
190
293
|
});
|
|
191
294
|
api.registerCommand({
|
|
192
|
-
name: "
|
|
193
|
-
description: "
|
|
295
|
+
name: "linkmind_create",
|
|
296
|
+
description: "创建知识库并训练(仅管理员): /linkmind_create <名称> <文档URL>",
|
|
194
297
|
acceptsArgs: true,
|
|
195
298
|
handler: async (ctx) => {
|
|
196
|
-
const authErr = await
|
|
299
|
+
const authErr = await requireOwner(ctx);
|
|
197
300
|
if (authErr)
|
|
198
301
|
return { text: authErr };
|
|
199
302
|
const args = (ctx.args ?? "").trim();
|
|
200
303
|
const spaceIdx = args.indexOf(" ");
|
|
201
304
|
if (!args || spaceIdx === -1) {
|
|
202
|
-
return { text: "用法: /
|
|
305
|
+
return { text: "用法: /linkmind_create <知识库名称> <文档URL>\n示例: /linkmind_create 客服知识库 https://example.com/doc.pdf\n支持 PDF/DOCX/DOC/TXT/MD" };
|
|
203
306
|
}
|
|
204
307
|
const kbName = args.slice(0, spaceIdx).trim();
|
|
205
308
|
const fileUrl = args.slice(spaceIdx + 1).trim();
|
|
@@ -217,7 +320,7 @@ export default definePluginEntry({
|
|
|
217
320
|
if (!pipeRes.success) {
|
|
218
321
|
return { text: `❌ 启动训练失败: ${pipeRes.message}\n知识库已创建 (ID: ${kbId})` };
|
|
219
322
|
}
|
|
220
|
-
return { text: `🚀 知识库创建成功,训练已启动!\n 名称: ${kbName}\n KB ID: ${kbId}\n 任务 ID: ${pipeRes.data.task_id}\n\n训练需要 2-10 分钟,完成后可用 /
|
|
323
|
+
return { text: `🚀 知识库创建成功,训练已启动!\n 名称: ${kbName}\n KB ID: ${kbId}\n 任务 ID: ${pipeRes.data.task_id}\n\n训练需要 2-10 分钟,完成后可用 /linkmind_query 提问。` };
|
|
221
324
|
}
|
|
222
325
|
catch (e) {
|
|
223
326
|
return { text: `❌ 创建失败: ${e.message}` };
|
|
@@ -225,8 +328,8 @@ export default definePluginEntry({
|
|
|
225
328
|
},
|
|
226
329
|
});
|
|
227
330
|
api.registerCommand({
|
|
228
|
-
name: "
|
|
229
|
-
description: "知识库问答: /
|
|
331
|
+
name: "linkmind_query",
|
|
332
|
+
description: "知识库问答: /linkmind_query <知识库名称> <问题>",
|
|
230
333
|
acceptsArgs: true,
|
|
231
334
|
handler: async (ctx) => {
|
|
232
335
|
const authErr = await ensureAuth(ctx);
|
|
@@ -235,14 +338,13 @@ export default definePluginEntry({
|
|
|
235
338
|
const args = (ctx.args ?? "").trim();
|
|
236
339
|
const spaceIdx = args.indexOf(" ");
|
|
237
340
|
if (!args || spaceIdx === -1) {
|
|
238
|
-
return { text: "用法: /
|
|
341
|
+
return { text: "用法: /linkmind_query <知识库名称> <问题>\n示例: /linkmind_query 客服知识库 什么是退款政策?" };
|
|
239
342
|
}
|
|
240
343
|
const nameOrId = args.slice(0, spaceIdx).trim();
|
|
241
344
|
const question = args.slice(spaceIdx + 1).trim();
|
|
242
345
|
if (!question)
|
|
243
346
|
return { text: "请提供问题" };
|
|
244
347
|
try {
|
|
245
|
-
// 先尝试按名称查,失败再按 ID 查
|
|
246
348
|
let res;
|
|
247
349
|
try {
|
|
248
350
|
res = await client.post("/knowledge_bases/query_by_name", {
|
|
@@ -280,18 +382,18 @@ export default definePluginEntry({
|
|
|
280
382
|
},
|
|
281
383
|
});
|
|
282
384
|
api.registerCommand({
|
|
283
|
-
name: "
|
|
284
|
-
description: "
|
|
385
|
+
name: "linkmind_share",
|
|
386
|
+
description: "管理知识库权限(仅管理员): /linkmind_share <KB名称> <用户ID> <角色>",
|
|
285
387
|
acceptsArgs: true,
|
|
286
388
|
handler: async (ctx) => {
|
|
287
|
-
const authErr = await
|
|
389
|
+
const authErr = await requireOwner(ctx);
|
|
288
390
|
if (authErr)
|
|
289
391
|
return { text: authErr };
|
|
290
392
|
const parts = (ctx.args ?? "").trim().split(/\s+/);
|
|
291
393
|
if (parts.length < 3) {
|
|
292
394
|
return {
|
|
293
395
|
text: [
|
|
294
|
-
"用法: /
|
|
396
|
+
"用法: /linkmind_share <KB名称或ID> <目标用户ID> <角色>",
|
|
295
397
|
"",
|
|
296
398
|
"角色可选:",
|
|
297
399
|
" viewer — 只读(可查询)",
|
|
@@ -299,9 +401,8 @@ export default definePluginEntry({
|
|
|
299
401
|
" revoke — 撤销权限",
|
|
300
402
|
"",
|
|
301
403
|
"示例:",
|
|
302
|
-
" /
|
|
303
|
-
" /
|
|
304
|
-
" /faq_share 客服知识库 123456789 revoke — 撤销权限",
|
|
404
|
+
" /linkmind_share 客服知识库 123456789 viewer",
|
|
405
|
+
" /linkmind_share 客服知识库 123456789 revoke",
|
|
305
406
|
].join("\n"),
|
|
306
407
|
};
|
|
307
408
|
}
|
|
@@ -336,7 +437,7 @@ export default definePluginEntry({
|
|
|
336
437
|
},
|
|
337
438
|
});
|
|
338
439
|
api.registerCommand({
|
|
339
|
-
name: "
|
|
440
|
+
name: "linkmind_list",
|
|
340
441
|
description: "列出我可访问的知识库",
|
|
341
442
|
handler: async (ctx) => {
|
|
342
443
|
const authErr = await ensureAuth(ctx);
|
|
@@ -346,7 +447,7 @@ export default definePluginEntry({
|
|
|
346
447
|
const res = await client.get("/knowledge_bases?page=1&page_size=0");
|
|
347
448
|
const items = res.items ?? res.data?.items ?? [];
|
|
348
449
|
const total = res.total ?? items.length;
|
|
349
|
-
const lines = [`📚
|
|
450
|
+
const lines = [`📚 知识库(共 ${total} 个):`];
|
|
350
451
|
for (const kb of items) {
|
|
351
452
|
const st = kb.is_active ? "✅ 就绪" : "⏳ 未训练";
|
|
352
453
|
const tag = kb.tag_name ? ` [${kb.tag_name}]` : "";
|
|
@@ -355,6 +456,7 @@ export default definePluginEntry({
|
|
|
355
456
|
}
|
|
356
457
|
if (items.length === 0)
|
|
357
458
|
lines.push(" (暂无可访问的知识库)");
|
|
459
|
+
lines.push("", "输入 /linkmind_help 查看更多命令");
|
|
358
460
|
return { text: lines.join("\n") };
|
|
359
461
|
}
|
|
360
462
|
catch (e) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,oBAAoB,EACpB,qBAAqB,GAEtB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,WAAW,EACX,YAAY,GAEb,MAAM,qBAAqB,CAAC;AAsC7B,SAAS,iBAAiB,CAAC,KAAkB;IAC3C,OAAO,KAAK,CAAC;AACf,CAAC;AAED,0EAA0E;AAE1E,eAAe,iBAAiB,CAAC;IAC/B,EAAE,EAAE,oBAAoB;IACxB,IAAI,EAAE,yBAAyB;IAC/B,WAAW,EACT,mCAAmC;IAErC,QAAQ,CAAC,GAAG;QACV,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAiB,CAAC;QACrD,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,IAAI,2BAA2B,CAAC;QAC9D,MAAM,YAAY,GAAG,GAAG,CAAC,cAAc,IAAI,KAAK,CAAC;QACjD,MAAM,eAAe,GAAG,GAAG,CAAC,iBAAiB,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAEhE,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;YAChC,OAAO;YACP,WAAW,EAAE,GAAG,CAAC,QAAQ,IAAI,SAAS;SACvC,CAAC,CAAC;QAEH,IAAI,iBAAiB,GAAmD,IAAI,CAAC;QAE7E,KAAK,UAAU,cAAc;YAC3B,IAAI,iBAAiB,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,iBAAiB,CAAC,SAAS,GAAG,MAAM,EAAE,CAAC;gBAC3E,OAAO,EAAE,OAAO,EAAE,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;YACzE,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,GAAG,GAAQ,MAAM,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;gBACnD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC;gBAC7B,iBAAiB,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;gBACvE,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;YACpD,CAAC;QACH,CAAC;QAED,KAAK,UAAU,UAAU,CAAC,GAAmB;YAC3C,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;gBAClC,OAAO,uBAAuB,CAAC;YACjC,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,cAAc,EAAE,CAAC;YACtC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO;oBACL,cAAc;oBACd,sBAAsB;oBACtB,8BAA8B;oBAC9B,iBAAiB;oBACjB,EAAE;oBACF,2BAA2B;iBAC5B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACf,CAAC;YAED,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC/B,IAAI,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACtC,OAAO,IAAI,CAAC;YACd,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,UAAU,CAAC;oBACtB,YAAY,EAAE,GAAG,CAAC,OAAO;oBACzB,eAAe,EAAE,GAAG,CAAC,QAAQ;oBAC7B,YAAY,EAAE,EAAE;iBACjB,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBAChB,OAAO,cAAc,CAAC,CAAC,OAAO,EAAE,CAAC;YACnC,CAAC;QACH,CAAC;QAED,KAAK,UAAU,YAAY,CAAC,GAAmB;YAC7C,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;YACtC,IAAI,OAAO;gBAAE,OAAO,OAAO,CAAC;YAC5B,IAAI,CAAC;gBACH,MAAM,GAAG,GAAQ,MAAM,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBAC/C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC;gBAC7B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACnB,OAAO,qCAAqC,CAAC;gBAC/C,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,kBAAkB,CAAC;YAC5B,CAAC;QACH,CAAC;QAED,sEAAsE;QAEtE,GAAG,CAAC,YAAY,CAAC;YACf,IAAI,EAAE,2BAA2B;YACjC,KAAK,EAAE,SAAS;YAChB,WAAW,EAAE;gBACX,mBAAmB;gBACnB,sBAAsB;gBACtB,0CAA0C;aAC3C,CAAC,IAAI,CAAC,GAAG,CAAC;YACX,UAAU,EAAE,qBAAqB;YACjC,OAAO,EAAE,CAAC,GAAW,EAAE,MAAW,EAAE,EAAE,CACpC,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC;SACzC,CAAC,CAAC;QAEH,GAAG,CAAC,YAAY,CAAC;YACf,IAAI,EAAE,yBAAyB;YAC/B,KAAK,EAAE,MAAM;YACb,WAAW,EAAE;gBACX,YAAY;gBACZ,mCAAmC;aACpC,CAAC,IAAI,CAAC,GAAG,CAAC;YACX,UAAU,EAAE,mBAAmB;YAC/B,OAAO,EAAE,CAAC,GAAW,EAAE,MAAW,EAAE,EAAE,CACpC,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC;SACvC,CAAC,CAAC;QAEH,GAAG,CAAC,YAAY,CAAC;YACf,IAAI,EAAE,8BAA8B;YACpC,KAAK,EAAE,UAAU;YACjB,WAAW,EAAE;gBACX,wBAAwB;gBACxB,oCAAoC;gBACpC,mBAAmB;aACpB,CAAC,IAAI,CAAC,GAAG,CAAC;YACX,UAAU,EAAE,oBAAoB;YAChC,OAAO,EAAE,CAAC,GAAW,EAAE,MAAW,EAAE,EAAE,CACpC,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,eAAe,CAAC;SACvE,CAAC,CAAC;QAEH,GAAG,CAAC,YAAY,CAAC;YACf,IAAI,EAAE,mBAAmB;YACzB,KAAK,EAAE,OAAO;YACd,WAAW,EAAE;gBACX,oBAAoB;gBACpB,uCAAuC;aACxC,CAAC,IAAI,CAAC,GAAG,CAAC;YACX,UAAU,EAAE,WAAW;YACvB,OAAO,EAAE,CAAC,GAAW,EAAE,MAAW,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC;SACpE,CAAC,CAAC;QAEH,GAAG,CAAC,YAAY,CAAC;YACf,IAAI,EAAE,kBAAkB;YACxB,KAAK,EAAE,SAAS;YAChB,WAAW,EAAE,gBAAgB;YAC7B,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;gBACtB,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC;gBACjE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC;gBAClE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC;gBAC7D,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC,CAAC;aACxE,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,GAAW,EAAE,MAAW,EAAE,EAAE;gBAC1C,MAAM,EAAE,GAAG,IAAI,eAAe,EAAE,CAAC;gBACjC,IAAI,MAAM,CAAC,OAAO;oBAAE,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;gBACtD,IAAI,MAAM,CAAC,QAAQ;oBAAE,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACzD,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;gBACzC,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC;gBACnD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAM,oBAAoB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBACvE,MAAM,KAAK,GAAW,GAAW,CAAC,KAAK,IAAK,GAAW,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;gBAC1E,MAAM,KAAK,GAAY,GAAW,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC;gBACzD,MAAM,KAAK,GAAa,CAAC,WAAW,KAAK,MAAM,CAAC,CAAC;gBACjD,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;oBACvB,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;oBACvC,MAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnD,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,GAAG,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC;gBACtD,CAAC;gBACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;oBAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC/C,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YAC1E,CAAC;SACF,CAAC,CAAC;QAEH,sEAAsE;QAEtE,GAAG,CAAC,eAAe,CAAC;YAClB,IAAI,EAAE,eAAe;YACrB,WAAW,EAAE,eAAe;YAC5B,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBACrB,MAAM,MAAM,GAAG,MAAM,cAAc,EAAE,CAAC;gBACtC,IAAI,OAAO,GAAG,KAAK,CAAC;gBACpB,IAAI,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;oBAClD,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBAC/B,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;wBACvC,IAAI,CAAC;4BACH,MAAM,MAAM,CAAC,UAAU,CAAC;gCACtB,YAAY,EAAE,GAAG,CAAC,OAAO;gCACzB,eAAe,EAAE,GAAG,CAAC,QAAQ;gCAC7B,YAAY,EAAE,EAAE;6BACjB,CAAC,CAAC;wBACL,CAAC;wBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;oBAC1B,CAAC;oBACD,IAAI,CAAC;wBACH,MAAM,EAAE,GAAQ,MAAM,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;wBAC9C,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC;oBACvC,CAAC;oBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;gBAC1B,CAAC;gBAED,MAAM,KAAK,GAAa;oBACtB,gBAAgB;oBAChB,oBAAoB;iBACrB,CAAC;gBAEF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpB,KAAK,CAAC,IAAI,CACR,EAAE,EACF,cAAc,EACd,wBAAwB,EACxB,EAAE,EACF,gBAAgB,EAChB,wBAAwB,CACzB,CAAC;gBACJ,CAAC;qBAAM,IAAI,OAAO,EAAE,CAAC;oBACnB,KAAK,CAAC,IAAI,CACR,EAAE,EACF,aAAa,EACb,EAAE,EACF,iCAAiC,EACjC,gBAAgB,EAChB,oCAAoC,EACpC,EAAE,EACF,kBAAkB,EAClB,aAAa,EACb,EAAE,EACF,gCAAgC,EAChC,YAAY,EACZ,EAAE,EACF,qCAAqC,EACrC,gBAAgB,EAChB,kCAAkC,EAClC,EAAE,EACF,gBAAgB,EAChB,cAAc,CACf,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,KAAK,CAAC,IAAI,CACR,EAAE,EACF,OAAO,EACP,EAAE,EACF,kBAAkB,EAClB,gBAAgB,EAChB,EAAE,EACF,gCAAgC,EAChC,YAAY,EACZ,EAAE,EACF,gBAAgB,EAChB,cAAc,CACf,CAAC;gBACJ,CAAC;gBAED,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,CAAC;SACF,CAAC,CAAC;QAEH,GAAG,CAAC,eAAe,CAAC;YAClB,IAAI,EAAE,gBAAgB;YACtB,WAAW,EAAE,iCAAiC;YAC9C,WAAW,EAAE,IAAI;YACjB,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBACrB,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;oBAClC,OAAO,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC;gBAC3C,CAAC;gBACD,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBACvC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,OAAO;wBACL,IAAI,EAAE;4BACJ,0BAA0B;4BAC1B,EAAE;4BACF,gBAAgB;4BAChB,gCAAgC;yBACjC,CAAC,IAAI,CAAC,IAAI,CAAC;qBACb,CAAC;gBACJ,CAAC;gBACD,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC/B,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACvC,IAAI,CAAC;wBACH,MAAM,MAAM,CAAC,UAAU,CAAC;4BACtB,YAAY,EAAE,GAAG,CAAC,OAAO;4BACzB,eAAe,EAAE,GAAG,CAAC,QAAQ;4BAC7B,YAAY,EAAE,EAAE;yBACjB,CAAC,CAAC;oBACL,CAAC;oBAAC,OAAO,CAAM,EAAE,CAAC;wBAChB,OAAO,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;oBAC3C,CAAC;gBACH,CAAC;gBACD,IAAI,CAAC;oBACH,MAAM,GAAG,GAAQ,MAAM,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE;wBACjD,YAAY,EAAE,MAAM;qBACrB,CAAC,CAAC;oBACH,iBAAiB,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;oBAC7D,OAAO;wBACL,IAAI,EAAE;4BACJ,KAAK,GAAG,CAAC,OAAO,IAAI,OAAO,EAAE;4BAC7B,EAAE;4BACF,eAAe;4BACf,2BAA2B;yBAC5B,CAAC,IAAI,CAAC,IAAI,CAAC;qBACb,CAAC;gBACJ,CAAC;gBAAC,OAAO,CAAM,EAAE,CAAC;oBAChB,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC1C,CAAC;YACH,CAAC;SACF,CAAC,CAAC;QAEH,GAAG,CAAC,eAAe,CAAC;YAClB,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,UAAU;YACvB,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBACrB,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;gBACtC,IAAI,OAAO;oBAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;gBAEtC,IAAI,CAAC;oBACH,MAAM,GAAG,GAAQ,MAAM,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;oBAC/C,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC;oBAC1B,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5C,MAAM,KAAK,GAAG;wBACZ,SAAS,QAAQ,EAAE;wBACnB,YAAY,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,EAAE,IAAI,GAAG,EAAE;wBACtC,SAAS,CAAC,CAAC,IAAI,IAAI,GAAG,EAAE;wBACxB,SAAS,CAAC,CAAC,IAAI,IAAI,GAAG,EAAE;wBACxB,SAAS,CAAC,CAAC,YAAY,IAAI,GAAG,EAAE;qBACjC,CAAC;oBACF,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpC,CAAC;gBAAC,OAAO,CAAM,EAAE,CAAC;oBAChB,OAAO,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC5C,CAAC;YACH,CAAC;SACF,CAAC,CAAC;QAEH,GAAG,CAAC,eAAe,CAAC;YAClB,IAAI,EAAE,iBAAiB;YACvB,WAAW,EAAE,+CAA+C;YAC5D,WAAW,EAAE,IAAI;YACjB,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBACrB,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;gBACxC,IAAI,OAAO;oBAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;gBAEtC,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACnC,IAAI,CAAC,IAAI,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;oBAC7B,OAAO,EAAE,IAAI,EAAE,sHAAsH,EAAE,CAAC;gBAC1I,CAAC;gBACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAChD,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;oBAChC,OAAO,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC;gBACxC,CAAC;gBACD,IAAI,CAAC;oBACH,MAAM,KAAK,GAAQ,MAAM,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE;wBACvD,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI;qBAC9C,CAAC,CAAC;oBACH,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;oBACtB,MAAM,OAAO,GAAQ,MAAM,MAAM,CAAC,IAAI,CAAC,oBAAoB,IAAI,gBAAgB,EAAE;wBAC/E,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO;qBAClD,CAAC,CAAC;oBACH,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;wBACrB,OAAO,EAAE,IAAI,EAAE,aAAa,OAAO,CAAC,OAAO,iBAAiB,IAAI,GAAG,EAAE,CAAC;oBACxE,CAAC;oBACD,OAAO,EAAE,IAAI,EAAE,4BAA4B,MAAM,cAAc,IAAI,cAAc,OAAO,CAAC,IAAI,CAAC,OAAO,4CAA4C,EAAE,CAAC;gBACtJ,CAAC;gBAAC,OAAO,CAAM,EAAE,CAAC;oBAChB,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC1C,CAAC;YACH,CAAC;SACF,CAAC,CAAC;QAEH,GAAG,CAAC,eAAe,CAAC;YAClB,IAAI,EAAE,gBAAgB;YACtB,WAAW,EAAE,qCAAqC;YAClD,WAAW,EAAE,IAAI;YACjB,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBACrB,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;gBACtC,IAAI,OAAO;oBAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;gBAEtC,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACnC,IAAI,CAAC,IAAI,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;oBAC7B,OAAO,EAAE,IAAI,EAAE,sEAAsE,EAAE,CAAC;gBAC1F,CAAC;gBACD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;gBAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACjD,IAAI,CAAC,QAAQ;oBAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;gBACxC,IAAI,CAAC;oBACH,IAAI,GAAQ,CAAC;oBACb,IAAI,CAAC;wBACH,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE;4BACxD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK;yBAClD,CAAC,CAAC;oBACL,CAAC;oBAAC,MAAM,CAAC;wBACP,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,oBAAoB,QAAQ,QAAQ,EAAE;4BAC5D,QAAQ,EAAE,aAAa,EAAE,KAAK;yBAC/B,CAAC,CAAC;oBACL,CAAC;oBACD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;wBACjB,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC;wBACxC,IAAI,UAAU,EAAE,MAAM,EAAE,CAAC;4BACvB,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4BAC9E,OAAO,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,OAAO,YAAY,IAAI,EAAE,EAAE,CAAC;wBACpD,CAAC;wBACD,OAAO,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;oBACtC,CAAC;oBACD,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC;oBACnB,MAAM,KAAK,GAAa,EAAE,CAAC;oBAC3B,IAAI,CAAC,CAAC,OAAO;wBAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC7C,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,IAAI,OAAO,EAAE,CAAC,CAAC;oBACxC,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ;wBAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;oBACtE,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC;wBACvC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACvE,CAAC;oBACD,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpC,CAAC;gBAAC,OAAO,CAAM,EAAE,CAAC;oBAChB,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC1C,CAAC;YACH,CAAC;SACF,CAAC,CAAC;QAEH,GAAG,CAAC,eAAe,CAAC;YAClB,IAAI,EAAE,gBAAgB;YACtB,WAAW,EAAE,mDAAmD;YAChE,WAAW,EAAE,IAAI;YACjB,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBACrB,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;gBACxC,IAAI,OAAO;oBAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;gBAEtC,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACnD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACrB,OAAO;wBACL,IAAI,EAAE;4BACJ,6CAA6C;4BAC7C,EAAE;4BACF,OAAO;4BACP,oBAAoB;4BACpB,4BAA4B;4BAC5B,iBAAiB;4BACjB,EAAE;4BACF,KAAK;4BACL,0CAA0C;4BAC1C,0CAA0C;yBAC3C,CAAC,IAAI,CAAC,IAAI,CAAC;qBACb,CAAC;gBACJ,CAAC;gBACD,MAAM,CAAC,UAAU,EAAE,YAAY,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC;gBACjD,IAAI,CAAC;oBACH,IAAI,IAAI,GAAG,UAAU,CAAC;oBACtB,IAAI,CAAC;wBACH,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,GAAG,CAC9B,4BAA4B,kBAAkB,CAAC,UAAU,CAAC,cAAc,CACzE,CAAC;wBACF,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;wBACzD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;wBAC9D,IAAI,KAAK;4BAAE,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;6BACtB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;4BAAE,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAClD,CAAC;oBAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC;oBAE3B,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;wBACxB,MAAM,GAAG,GAAQ,MAAM,MAAM,CAAC,GAAG,CAC/B,oBAAoB,IAAI,UAAU,YAAY,EAAE,CACjD,CAAC;wBACF,OAAO,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,OAAO,IAAI,OAAO,EAAE,EAAE,CAAC;oBACjD,CAAC;oBAED,MAAM,GAAG,GAAQ,MAAM,MAAM,CAAC,IAAI,CAAC,oBAAoB,IAAI,QAAQ,EAAE;wBACnE,sBAAsB,EAAE,YAAY;wBACpC,mBAAmB,EAAE,GAAG,CAAC,OAAO,IAAI,UAAU;wBAC9C,cAAc,EAAE,SAAS;wBACzB,IAAI,EAAE,MAAM;qBACb,CAAC,CAAC;oBACH,OAAO,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,OAAO,IAAI,MAAM,YAAY,OAAO,MAAM,EAAE,EAAE,EAAE,CAAC;gBAC3E,CAAC;gBAAC,OAAO,CAAM,EAAE,CAAC;oBAChB,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC1C,CAAC;YACH,CAAC;SACF,CAAC,CAAC;QAEH,GAAG,CAAC,eAAe,CAAC;YAClB,IAAI,EAAE,eAAe;YACrB,WAAW,EAAE,YAAY;YACzB,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBACrB,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;gBACtC,IAAI,OAAO;oBAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;gBAEtC,IAAI,CAAC;oBACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAM,qCAAqC,CAAC,CAAC;oBACzE,MAAM,KAAK,GAAW,GAAW,CAAC,KAAK,IAAK,GAAW,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;oBAC1E,MAAM,KAAK,GAAY,GAAW,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC;oBACzD,MAAM,KAAK,GAAa,CAAC,YAAY,KAAK,MAAM,CAAC,CAAC;oBAClD,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;wBACvB,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;wBAC3C,MAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;wBACnD,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;wBAClD,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,KAAK,EAAE,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;oBACrE,CAAC;oBACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;wBAAE,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBACpD,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,0BAA0B,CAAC,CAAC;oBAC3C,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpC,CAAC;gBAAC,OAAO,CAAM,EAAE,CAAC;oBAChB,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;gBACpC,CAAC;YACH,CAAC;SACF,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC"}
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
package/skills/faq-kb/SKILL.md
CHANGED
|
@@ -1,151 +1,68 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: faq-knowledge-base
|
|
3
|
-
description:
|
|
3
|
+
description: LinkMind 智能知识库 — 认主管理、文档训练、智能问答、权限控制
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# LinkMind Knowledge Base Skill
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
## 核心概念:认主机制
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
一个 OpenClaw 实例 = 一个主人(Owner)。
|
|
11
11
|
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
12
|
+
- 无论连接了多少个 bot,它们共享同一个 Owner
|
|
13
|
+
- Owner 通过 Telegram user ID 绑定
|
|
14
|
+
- Owner 拥有全部管理权限:创建/训练/删除知识库、管理权限
|
|
15
|
+
- 其他用户只能查询 Owner 开放给他的知识库 + 公开知识库
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
### 认主流程
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
**Parameters:**
|
|
24
|
-
- `channel_type` (required): 渠道类型 — telegram / discord / slack / web
|
|
25
|
-
- `channel_user_id` (required): 渠道用户唯一 ID
|
|
26
|
-
- `display_name` (optional): 显示名称
|
|
27
|
-
- `channel_bot_id` (optional): Bot 标识,默认 "default"
|
|
28
|
-
|
|
29
|
-
### `faq_account_manage`
|
|
30
|
-
|
|
31
|
-
系统管理员权限操作(仅 admin 可用)。
|
|
32
|
-
|
|
33
|
-
**When to use:**
|
|
34
|
-
- 需要给用户授予全局角色
|
|
35
|
-
- 需要列出所有渠道用户
|
|
36
|
-
- 需要查看自己的身份信息
|
|
37
|
-
|
|
38
|
-
**Parameters:**
|
|
39
|
-
- `action` (required): `grant_role` / `list_users` / `my_info`
|
|
40
|
-
- `target_channel_user_id`: 目标用户 ID(grant_role 必填)
|
|
41
|
-
- `role`: 要授予的角色 — viewer / editor / reviewer / admin
|
|
42
|
-
|
|
43
|
-
### `faq_kb_create_and_train`
|
|
44
|
-
|
|
45
|
-
一键创建知识库并完成全部训练流程。
|
|
46
|
-
|
|
47
|
-
**When to use:**
|
|
48
|
-
- User says "create a knowledge base from this document"
|
|
49
|
-
- User provides a file URL and wants to set up a Q&A system
|
|
50
|
-
|
|
51
|
-
**Parameters:**
|
|
52
|
-
- `kb_name` (required): 知识库名称
|
|
53
|
-
- `file_url` (required): 文档 URL(支持 PDF / DOCX / DOC / TXT / MD)
|
|
54
|
-
- `description` (optional): 知识库描述
|
|
55
|
-
- `tag_name` (optional): 分类标签
|
|
56
|
-
|
|
57
|
-
**Notes:**
|
|
58
|
-
- 训练耗时 2-10 分钟,取决于文档大小
|
|
59
|
-
- 创建者自动成为该知识库的 owner
|
|
60
|
-
- Pipeline: 上传 → AI 提取 → 构建知识树 → 建索引
|
|
61
|
-
|
|
62
|
-
### `faq_kb_query`
|
|
63
|
-
|
|
64
|
-
向知识库提问并获取 AI 回答。
|
|
65
|
-
|
|
66
|
-
**When to use:**
|
|
67
|
-
- User asks a question about a specific knowledge base
|
|
68
|
-
- User says "search the knowledge base for..."
|
|
69
|
-
|
|
70
|
-
**Parameters:**
|
|
71
|
-
- `kb_name` (optional, recommended): 知识库名称,支持模糊匹配
|
|
72
|
-
- `kb_id` (optional): 知识库 ID,精确匹配
|
|
73
|
-
- `question` (required): 要查询的问题
|
|
74
|
-
- `enable_polish` (optional): true 时 LLM 综合多个 FAQ 生成更自然的回答
|
|
75
|
-
|
|
76
|
-
**Notes:**
|
|
77
|
-
- 推荐用 `kb_name` 而非 `kb_id`,对用户更友好
|
|
78
|
-
- 名称有多个匹配时会返回候选列表供选择
|
|
79
|
-
- 只能查询用户有权限的知识库
|
|
80
|
-
|
|
81
|
-
### `faq_kb_list`
|
|
82
|
-
|
|
83
|
-
列出当前用户可访问的知识库。
|
|
84
|
-
|
|
85
|
-
**Parameters:**
|
|
86
|
-
- `keyword` (optional): 按名称搜索
|
|
87
|
-
- `tag_name` (optional): 按标签筛选
|
|
88
|
-
- `page`, `page_size` (optional): 分页
|
|
19
|
+
1. 服务器启动时在日志中生成一次性密钥
|
|
20
|
+
2. 部署者在任意连接的 bot 中发送 `/linkmind_claim <密钥>`
|
|
21
|
+
3. 认主完成,该用户永久绑定为管理员
|
|
89
22
|
|
|
90
23
|
## Slash Commands
|
|
91
24
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
| 命令 | 功能 | 用法 |
|
|
25
|
+
| 命令 | 功能 | 权限 |
|
|
95
26
|
|------|------|------|
|
|
96
|
-
| `/
|
|
97
|
-
| `/
|
|
98
|
-
| `/
|
|
99
|
-
| `/
|
|
100
|
-
| `/
|
|
27
|
+
| `/linkmind_help` | 使用帮助(根据身份显示不同内容) | 任何人 |
|
|
28
|
+
| `/linkmind_claim <密钥>` | 认主,绑定管理员 | 未认主时任何人 |
|
|
29
|
+
| `/linkmind_me` | 查看身份信息 | 任何人 |
|
|
30
|
+
| `/linkmind_create <名称> <URL>` | 创建知识库并训练 | 仅 Owner |
|
|
31
|
+
| `/linkmind_query <名称> <问题>` | 知识库问答 | 任何人 |
|
|
32
|
+
| `/linkmind_share <KB名> <用户ID> <角色>` | 管理 KB 权限 | 仅 Owner |
|
|
33
|
+
| `/linkmind_list` | 列出可访问的知识库 | 任何人 |
|
|
101
34
|
|
|
102
|
-
### `/
|
|
35
|
+
### `/linkmind_share` 用法
|
|
103
36
|
|
|
104
37
|
```
|
|
105
|
-
/
|
|
106
|
-
/
|
|
107
|
-
/
|
|
38
|
+
/linkmind_share 客服知识库 123456789 viewer — 分享(只读)
|
|
39
|
+
/linkmind_share 客服知识库 123456789 editor — 授予编辑权限
|
|
40
|
+
/linkmind_share 客服知识库 123456789 revoke — 撤销权限
|
|
108
41
|
```
|
|
109
42
|
|
|
110
|
-
角色说明:
|
|
111
|
-
- **viewer**: 只读,可查询
|
|
112
|
-
- **editor**: 可编辑,可创建/修改 FAQ
|
|
113
|
-
- **revoke**: 撤销该用户的访问权限
|
|
114
|
-
|
|
115
|
-
只有知识库的 **owner**(创建者)可以管理权限。
|
|
116
|
-
|
|
117
43
|
## Typical Workflows
|
|
118
44
|
|
|
119
|
-
###
|
|
120
|
-
|
|
121
|
-
```
|
|
122
|
-
1. /faq_create 产品手册 https://example.com/manual.pdf
|
|
123
|
-
→ 自动注册 + 创建 + 训练(2-10 min)
|
|
124
|
-
2. /faq_query 产品手册 如何退款?
|
|
125
|
-
→ 获取答案
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
### Workflow 2: 查询已有知识库
|
|
45
|
+
### 首次部署
|
|
129
46
|
|
|
130
47
|
```
|
|
131
|
-
1.
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
48
|
+
1. 服务器启动 → 日志输出 claim secret
|
|
49
|
+
2. /linkmind_help → 查看引导
|
|
50
|
+
3. /linkmind_claim <secret> → 认主成功
|
|
51
|
+
4. /linkmind_create 客服知识库 https://example.com/doc.pdf → 训练
|
|
52
|
+
5. /linkmind_query 客服知识库 如何退款? → 查询
|
|
135
53
|
```
|
|
136
54
|
|
|
137
|
-
###
|
|
55
|
+
### 普通用户使用
|
|
138
56
|
|
|
139
57
|
```
|
|
140
|
-
1. /
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
→ 升级为编辑权限
|
|
58
|
+
1. /linkmind_help → 查看可用功能
|
|
59
|
+
2. /linkmind_list → 查看可访问的知识库
|
|
60
|
+
3. /linkmind_query 客服知识库 问题 → 查询
|
|
144
61
|
```
|
|
145
62
|
|
|
146
63
|
## Important Notes
|
|
147
64
|
|
|
148
|
-
-
|
|
149
|
-
-
|
|
150
|
-
-
|
|
151
|
-
-
|
|
65
|
+
- 首次使用发 `/linkmind_help` 即可了解所有功能
|
|
66
|
+
- 服务器未认主时所有命令会提示先认主
|
|
67
|
+
- Owner 创建的知识库默认私有,需通过 /linkmind_share 开放
|
|
68
|
+
- 普通用户无法创建/删除知识库
|