@linkmind_claw/openclaw-faq-kb 2.0.2 → 3.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 CHANGED
@@ -1,17 +1,16 @@
1
1
  /**
2
2
  * OpenClaw Plugin — LinkMind Knowledge Base
3
3
  *
4
- * 一个 OpenClaw 实例 = 一个管理员(Owner)
5
- * 管理员通过 /linkmind_claim 绑定身份,拥有全部管理权限
6
- * 其他用户只能查询被开放的知识库
4
+ * 四级权限: Admin > Editor(管理员) > Viewer(查看者) > 无权限
7
5
  *
8
6
  * Slash Commands:
9
7
  * /linkmind_help — 使用帮助
10
- * /linkmind_claim — 绑定管理员身份
8
+ * /linkmind_claim — 绑定 Admin 身份(首次部署)
11
9
  * /linkmind_me — 查看我的身份信息
12
- * /linkmind_create 创建知识库并训练(仅 Owner
10
+ * /linkmind_role 设置用户角色(仅 Admin
11
+ * /linkmind_create — 创建知识库并训练(Admin / Editor)
12
+ * /linkmind_share — 管理 KB 权限与可见性(Admin / Editor)
13
13
  * /linkmind_query — 知识库问答
14
- * /linkmind_share — 管理 KB 权限(仅 Owner)
15
14
  * /linkmind_list — 列出可访问的知识库
16
15
  */
17
16
  interface CommandContext {
@@ -1 +1 @@
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,wBAggBG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;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,wBAimBG"}
package/dist/index.js CHANGED
@@ -1,17 +1,16 @@
1
1
  /**
2
2
  * OpenClaw Plugin — LinkMind Knowledge Base
3
3
  *
4
- * 一个 OpenClaw 实例 = 一个管理员(Owner)
5
- * 管理员通过 /linkmind_claim 绑定身份,拥有全部管理权限
6
- * 其他用户只能查询被开放的知识库
4
+ * 四级权限: Admin > Editor(管理员) > Viewer(查看者) > 无权限
7
5
  *
8
6
  * Slash Commands:
9
7
  * /linkmind_help — 使用帮助
10
- * /linkmind_claim — 绑定管理员身份
8
+ * /linkmind_claim — 绑定 Admin 身份(首次部署)
11
9
  * /linkmind_me — 查看我的身份信息
12
- * /linkmind_create 创建知识库并训练(仅 Owner
10
+ * /linkmind_role 设置用户角色(仅 Admin
11
+ * /linkmind_create — 创建知识库并训练(Admin / Editor)
12
+ * /linkmind_share — 管理 KB 权限与可见性(Admin / Editor)
13
13
  * /linkmind_query — 知识库问答
14
- * /linkmind_share — 管理 KB 权限(仅 Owner)
15
14
  * /linkmind_list — 列出可访问的知识库
16
15
  */
17
16
  import { Type } from "@sinclair/typebox";
@@ -27,7 +26,7 @@ function definePluginEntry(entry) {
27
26
  export default definePluginEntry({
28
27
  id: "faq-knowledge-base",
29
28
  name: "LinkMind Knowledge Base",
30
- description: "LinkMind 智能知识库:管理员绑定、一键上传文档训练、智能问答",
29
+ description: "LinkMind 智能知识库:四级权限管理、一键文档训练、智能问答",
31
30
  register(api) {
32
31
  const cfg = (api.pluginConfig ?? {});
33
32
  const baseUrl = cfg.apiBaseUrl || "http://67.212.146.21:8999";
@@ -39,8 +38,8 @@ export default definePluginEntry({
39
38
  });
40
39
  let cachedOwnerStatus = null;
41
40
  async function getOwnerStatus() {
42
- if (cachedOwnerStatus && Date.now() - cachedOwnerStatus.checkedAt < 60_000) {
43
- return { claimed: cachedOwnerStatus.claimed, owner_telegram_id: null };
41
+ if (cachedOwnerStatus && cachedOwnerStatus.claimed && Date.now() - cachedOwnerStatus.checkedAt < 60_000) {
42
+ return { claimed: true, owner_telegram_id: null };
44
43
  }
45
44
  try {
46
45
  const res = await client.get("/owner/status");
@@ -49,7 +48,7 @@ export default definePluginEntry({
49
48
  return data;
50
49
  }
51
50
  catch {
52
- return { claimed: true, owner_telegram_id: null };
51
+ return { claimed: false, owner_telegram_id: null };
53
52
  }
54
53
  }
55
54
  async function ensureAuth(ctx) {
@@ -93,20 +92,52 @@ export default definePluginEntry({
93
92
  return `⚠️ 自动登录失败: ${e.message}`;
94
93
  }
95
94
  }
96
- async function requireOwner(ctx) {
95
+ async function requireAdmin(ctx) {
97
96
  const authErr = await ensureAuth(ctx);
98
97
  if (authErr)
99
98
  return authErr;
100
99
  try {
101
100
  const res = await client.get("/oauth/me");
102
101
  const data = res.data ?? res;
103
- if (!data.is_owner) {
104
- return "此操作仅限管理员。如需查询知识库请使用 /linkmind_query";
102
+ if (!data.is_admin) {
103
+ const status = await getOwnerStatus();
104
+ if (!status.claimed && status.claim_secret) {
105
+ return [
106
+ "此服务器尚未绑定管理员。",
107
+ "请先完成绑定:",
108
+ ` /linkmind_claim ${status.claim_secret}`,
109
+ ].join("\n");
110
+ }
111
+ return "此操作仅限 Admin。";
105
112
  }
106
113
  return null;
107
114
  }
108
115
  catch {
109
- return "无法验证管理员身份,请稍后再试。";
116
+ return "无法验证身份,请稍后再试。";
117
+ }
118
+ }
119
+ async function requireEditor(ctx) {
120
+ const authErr = await ensureAuth(ctx);
121
+ if (authErr)
122
+ return authErr;
123
+ try {
124
+ const res = await client.get("/oauth/me");
125
+ const data = res.data ?? res;
126
+ if (!data.is_editor) {
127
+ const status = await getOwnerStatus();
128
+ if (!status.claimed && status.claim_secret) {
129
+ return [
130
+ "此服务器尚未绑定管理员。",
131
+ "请先完成绑定:",
132
+ ` /linkmind_claim ${status.claim_secret}`,
133
+ ].join("\n");
134
+ }
135
+ return "此操作需要管理员权限。如需查询知识库请使用 /linkmind_query";
136
+ }
137
+ return null;
138
+ }
139
+ catch {
140
+ return "无法验证身份,请稍后再试。";
110
141
  }
111
142
  }
112
143
  // ── Tools ──────────────────────────────────────────────────────────
@@ -190,7 +221,7 @@ export default definePluginEntry({
190
221
  description: "LinkMind 使用帮助",
191
222
  handler: async (ctx) => {
192
223
  const status = await getOwnerStatus();
193
- let isOwner = false;
224
+ let userFlags = { is_admin: false, is_editor: false };
194
225
  if (status.claimed && ctx.senderId && ctx.channel) {
195
226
  client.setSender(ctx.senderId);
196
227
  if (!client.hasUserToken(ctx.senderId)) {
@@ -205,7 +236,8 @@ export default definePluginEntry({
205
236
  }
206
237
  try {
207
238
  const me = await client.get("/oauth/me");
208
- isOwner = !!(me.data ?? me).is_owner;
239
+ const d = me.data ?? me;
240
+ userFlags = { is_admin: !!d.is_admin, is_editor: !!d.is_editor };
209
241
  }
210
242
  catch { /* ignore */ }
211
243
  }
@@ -216,17 +248,20 @@ export default definePluginEntry({
216
248
  if (!status.claimed) {
217
249
  const secret = status.claim_secret;
218
250
  if (secret) {
219
- lines.push("", "🎉 此服务器尚未绑定管理员,你可以直接激活!", "", "请发送以下命令:", ` /linkmind_claim ${secret}`, "", "绑定后即可创建和管理知识库。");
251
+ lines.push("", "此服务器尚未绑定管理员,你可以直接激活!", "", "请发送以下命令:", ` /linkmind_claim ${secret}`, "", "绑定后即可创建和管理知识库。");
220
252
  }
221
253
  else {
222
- lines.push("", "首次使用?请先绑定管理员身份:", " /linkmind_claim <密钥>", "", "密钥在服务器启动日志中生成。", "绑定后即可创建和管理知识库。");
254
+ lines.push("", "首次使用?请先绑定管理员身份:", " /linkmind_claim <密钥>", "", "密钥会在首次对话时自动展示。");
223
255
  }
224
256
  }
225
- else if (isOwner) {
226
- lines.push("", "你是管理员,可用命令:", "", " /linkmind_create <名称> <文档URL>", " 创建知识库并自动训练", " 支持 PDF / DOCX / DOC / TXT / MD", "", " /linkmind_list", " 查看所有知识库", "", " /linkmind_query <知识库名称> <问题>", " 向知识库提问", "", " /linkmind_share <KB名> <用户ID> <角色>", " 分享知识库给其他用户", " 角色: viewer / editor / revoke", "", " /linkmind_me", " 查看你的身份信息");
257
+ else if (userFlags.is_admin) {
258
+ lines.push("", "你是 Admin,可用命令:", "", " /linkmind_role <用户ID> <editor|user>", " 设置用户角色(提升/降级)", "", " /linkmind_create <名称> <文档URL>", " 创建知识库并自动训练", "", " /linkmind_share <KB名> public|private", " 设置知识库公开/私有", " /linkmind_share <KB名> <用户ID> viewer|revoke", " 授予/撤销查看权限", "", " /linkmind_list 查看所有知识库", " /linkmind_query <KB名> <问题> — 提问", " /linkmind_me — 查看身份信息");
259
+ }
260
+ else if (userFlags.is_editor) {
261
+ lines.push("", "你是管理员(Editor),可用命令:", "", " /linkmind_create <名称> <文档URL>", " 创建知识库并自动训练", "", " /linkmind_share <KB名> public|private", " 设置知识库公开/私有", " /linkmind_share <KB名> <用户ID> viewer|revoke", " 授予/撤销查看权限", "", " /linkmind_list — 查看所有知识库", " /linkmind_query <KB名> <问题> — 提问", " /linkmind_me — 查看身份信息");
227
262
  }
228
263
  else {
229
- lines.push("", "可用命令:", "", " /linkmind_list", " 查看你可访问的知识库", "", " /linkmind_query <知识库名称> <问题>", " 向知识库提问", "", " /linkmind_me", " 查看你的身份信息");
264
+ lines.push("", "可用命令:", "", " /linkmind_list 查看可访问的知识库", " /linkmind_query <KB名> <问题> 向知识库提问", " /linkmind_me — 查看身份信息");
230
265
  }
231
266
  return { text: lines.join("\n") };
232
267
  },
@@ -292,12 +327,18 @@ export default definePluginEntry({
292
327
  try {
293
328
  const res = await client.get("/oauth/me");
294
329
  const d = res.data ?? res;
295
- const ownerTag = d.is_owner ? " (管理员)" : "";
330
+ let roleLabel = d.role ?? "user";
331
+ if (d.is_admin)
332
+ roleLabel = "Admin";
333
+ else if (d.is_editor)
334
+ roleLabel = "Editor (管理员)";
335
+ else
336
+ roleLabel = "普通用户";
296
337
  const lines = [
297
- `✅ 你已登录${ownerTag}`,
338
+ `✅ 你已登录`,
298
339
  ` 用户 ID: ${d.user_id ?? d.id ?? "—"}`,
299
340
  ` 名称: ${d.name ?? "—"}`,
300
- ` 角色: ${d.role ?? "—"}`,
341
+ ` 权限等级: ${roleLabel}`,
301
342
  ` 渠道: ${d.channel_type ?? "—"}`,
302
343
  ];
303
344
  return { text: lines.join("\n") };
@@ -307,12 +348,47 @@ export default definePluginEntry({
307
348
  }
308
349
  },
309
350
  });
351
+ api.registerCommand({
352
+ name: "linkmind_role",
353
+ description: "设置用户角色(仅 Admin): /linkmind_role <用户ID> <editor|user>",
354
+ acceptsArgs: true,
355
+ handler: async (ctx) => {
356
+ const authErr = await requireAdmin(ctx);
357
+ if (authErr)
358
+ return { text: authErr };
359
+ const parts = (ctx.args ?? "").trim().split(/\s+/);
360
+ if (parts.length < 2) {
361
+ return {
362
+ text: [
363
+ "用法: /linkmind_role <用户ID> <角色>",
364
+ "",
365
+ "角色选项:",
366
+ " editor — 提升为管理员(可管理所有知识库)",
367
+ " user — 降为普通用户",
368
+ "",
369
+ "示例: /linkmind_role 1d52227f-6ac editor",
370
+ ].join("\n"),
371
+ };
372
+ }
373
+ const [targetUserId, role] = parts;
374
+ if (role !== "editor" && role !== "user") {
375
+ return { text: "角色只能是 editor 或 user" };
376
+ }
377
+ try {
378
+ const res = await client.put(`/users/${targetUserId}/role`, { role });
379
+ return { text: `✅ ${res.message || `已将用户设为 ${role}`}` };
380
+ }
381
+ catch (e) {
382
+ return { text: `❌ 设置失败: ${e.message}` };
383
+ }
384
+ },
385
+ });
310
386
  api.registerCommand({
311
387
  name: "linkmind_create",
312
- description: "创建知识库并训练(仅管理员): /linkmind_create <名称> <文档URL>",
388
+ description: "创建知识库并训练: /linkmind_create <名称> <文档URL>",
313
389
  acceptsArgs: true,
314
390
  handler: async (ctx) => {
315
- const authErr = await requireOwner(ctx);
391
+ const authErr = await requireEditor(ctx);
316
392
  if (authErr)
317
393
  return { text: authErr };
318
394
  const args = (ctx.args ?? "").trim();
@@ -399,30 +475,29 @@ export default definePluginEntry({
399
475
  });
400
476
  api.registerCommand({
401
477
  name: "linkmind_share",
402
- description: "管理知识库权限(仅管理员): /linkmind_share <KB名称> <用户ID> <角色>",
478
+ description: "管理知识库权限与可见性: /linkmind_share <KB名称> <用户ID|public|private> [viewer|revoke]",
403
479
  acceptsArgs: true,
404
480
  handler: async (ctx) => {
405
- const authErr = await requireOwner(ctx);
481
+ const authErr = await requireEditor(ctx);
406
482
  if (authErr)
407
483
  return { text: authErr };
408
484
  const parts = (ctx.args ?? "").trim().split(/\s+/);
409
- if (parts.length < 3) {
485
+ if (parts.length < 2) {
410
486
  return {
411
487
  text: [
412
- "用法: /linkmind_share <KB名称或ID> <目标用户ID> <角色>",
413
- "",
414
- "角色可选:",
415
- " viewer 只读(可查询)",
416
- " editor可编辑(可创建/修改 FAQ)",
417
- " revoke — 撤销权限",
488
+ "用法:",
489
+ " /linkmind_share <KB名称> public — 设为公开",
490
+ " /linkmind_share <KB名称> private — 设为私有",
491
+ " /linkmind_share <KB名称> <用户ID> viewer 授予查看权限",
492
+ " /linkmind_share <KB名称> <用户ID> revoke 撤销权限",
418
493
  "",
419
494
  "示例:",
495
+ " /linkmind_share 客服知识库 public",
420
496
  " /linkmind_share 客服知识库 123456789 viewer",
421
- " /linkmind_share 客服知识库 123456789 revoke",
422
497
  ].join("\n"),
423
498
  };
424
499
  }
425
- const [kbNameOrId, targetUserId, action] = parts;
500
+ const kbNameOrId = parts[0];
426
501
  try {
427
502
  let kbId = kbNameOrId;
428
503
  try {
@@ -435,17 +510,29 @@ export default definePluginEntry({
435
510
  kbId = items[0].id;
436
511
  }
437
512
  catch { /* use as-is */ }
513
+ if (parts[1] === "public" || parts[1] === "private") {
514
+ const isPublic = parts[1] === "public";
515
+ const res = await client.put(`/knowledge_bases/${kbId}/visibility`, { is_public: isPublic });
516
+ return { text: `✅ ${res.message || `知识库已设为${isPublic ? "公开" : "私有"}`}` };
517
+ }
518
+ if (parts.length < 3) {
519
+ return { text: "授权用户时需要指定角色: viewer 或 revoke" };
520
+ }
521
+ const [, targetUserId, action] = parts;
438
522
  if (action === "revoke") {
439
523
  const res = await client.del(`/knowledge_bases/${kbId}/share/${targetUserId}`);
440
524
  return { text: `✅ ${res.message || "已撤销权限"}` };
441
525
  }
526
+ if (action !== "viewer") {
527
+ return { text: "只能授予 viewer 权限。如需提升为管理员请使用 /linkmind_role" };
528
+ }
442
529
  const res = await client.post(`/knowledge_bases/${kbId}/share`, {
443
530
  target_channel_user_id: targetUserId,
444
531
  target_channel_type: ctx.channel || "telegram",
445
532
  channel_bot_id: "default",
446
- role: action,
533
+ role: "viewer",
447
534
  });
448
- return { text: `✅ ${res.message || `已将 ${targetUserId} 设为 ${action}`}` };
535
+ return { text: `✅ ${res.message || `已将 ${targetUserId} 设为查看者`}` };
449
536
  }
450
537
  catch (e) {
451
538
  return { text: `❌ 操作失败: ${e.message}` };
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":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@linkmind_claw/openclaw-faq-kb",
3
- "version": "2.0.2",
3
+ "version": "3.0.0",
4
4
  "description": "OpenClaw Plugin - FAQ Knowledge Base: one-click document training & intelligent Q&A",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,69 +1,77 @@
1
1
  ---
2
2
  name: faq-knowledge-base
3
- description: LinkMind 智能知识库 — 管理员绑定、文档训练、智能问答、权限控制
3
+ description: LinkMind 智能知识库 — 四级权限管理、文档训练、智能问答
4
4
  ---
5
5
 
6
6
  # LinkMind Knowledge Base Skill
7
7
 
8
- ## 核心概念:管理员机制
8
+ ## 四级权限模型
9
9
 
10
- 一个 OpenClaw 实例 = 一个管理员(Owner)。
10
+ | 角色 | 说明 | 管理 KB | 设 public/private | 分享 viewer | 管理用户角色 | 查询 |
11
+ |------|------|---------|-------------------|-------------|-------------|------|
12
+ | Admin | 系统管理员 | 全部 | 是 | 是 | 是 | 全部 |
13
+ | Editor | 管理员 | 全部 | 是 | 是 | 否 | 全部 |
14
+ | Viewer | 查看者(按 KB 授权) | 否 | 否 | 否 | 否 | 被授权的 KB |
15
+ | 无权限 | 普通用户 | 否 | 否 | 否 | 否 | 仅 public KB |
11
16
 
12
- - 无论连接了多少个 bot,它们共享同一个管理员
13
- - 管理员通过 Telegram user ID 绑定
14
- - 管理员拥有全部权限:创建/训练/删除知识库、管理用户权限
15
- - 其他用户只能查询管理员开放给他的知识库 + 公开知识库
16
-
17
- ### 绑定管理员流程
18
-
19
- 1. 服务器首次启动时生成一次性密钥
20
- 2. 第一个与 bot 对话的用户会自动收到密钥
21
- 3. 用户发送 `/linkmind_claim <密钥>` 完成绑定,成为管理员
17
+ - Admin: 通过 `/linkmind_claim` 绑定,或数据库 `role=admin`
18
+ - Editor: Admin 通过 `/linkmind_role` 提升
19
+ - Viewer: 由 Admin/Editor 通过 `/linkmind_share` 授予(按知识库)
22
20
 
23
21
  ## Slash Commands
24
22
 
25
23
  | 命令 | 功能 | 权限 |
26
24
  |------|------|------|
27
- | `/linkmind_help` | 使用帮助(根据身份显示不同内容) | 任何人 |
28
- | `/linkmind_claim <密钥>` | 绑定管理员身份 | 未绑定时任何人 |
29
- | `/linkmind_me` | 查看身份信息 | 任何人 |
30
- | `/linkmind_create <名称> <URL>` | 创建知识库并训练 | 仅管理员 |
31
- | `/linkmind_query <名称> <问题>` | 知识库问答 | 任何人 |
32
- | `/linkmind_share <KB名> <用户ID> <角色>` | 管理 KB 权限 | 仅管理员 |
33
- | `/linkmind_list` | 列出可访问的知识库 | 任何人 |
25
+ | `/linkmind_help` | 使用帮助(按身份展示不同内容) | 所有人 |
26
+ | `/linkmind_claim <密钥>` | 绑定 Admin 身份 | 未绑定时第一个用户 |
27
+ | `/linkmind_me` | 查看身份信息 | 所有人 |
28
+ | `/linkmind_role <用户ID> <editor/user>` | 设置用户角色 | Admin |
29
+ | `/linkmind_create <名称> <URL>` | 创建知识库并训练 | Admin / Editor |
30
+ | `/linkmind_share <KB名> public/private` | 切换知识库可见性 | Admin / Editor |
31
+ | `/linkmind_share <KB名> <用户ID> viewer/revoke` | 授予/撤销查看权限 | Admin / Editor |
32
+ | `/linkmind_query <KB名> <问题>` | 知识库问答 | 所有人(按权限过滤) |
33
+ | `/linkmind_list` | 列出可访问的知识库 | 所有人(按权限过滤) |
34
+
35
+ ## Typical Workflows
34
36
 
35
- ### `/linkmind_share` 用法
37
+ ### 首次部署
36
38
 
37
39
  ```
38
- /linkmind_share 客服知识库 123456789 viewer — 分享(只读)
39
- /linkmind_share 客服知识库 123456789 editor — 授予编辑权限
40
- /linkmind_share 客服知识库 123456789 revoke — 撤销权限
40
+ 1. 服务器启动,安装 Plugin
41
+ 2. 第一个用户发送任意命令 自动展示密钥
42
+ 3. /linkmind_claim <密钥> 成为 Admin
43
+ 4. /linkmind_create 客服知识库 https://example.com/doc.pdf → 训练
44
+ 5. /linkmind_share 客服知识库 public → 设为公开
41
45
  ```
42
46
 
43
- ## Typical Workflows
47
+ ### Admin 管理团队
44
48
 
45
- ### 首次部署
49
+ ```
50
+ 1. /linkmind_role <用户ID> editor → 提升为管理员
51
+ 2. Editor 可自行创建和管理知识库
52
+ 3. /linkmind_role <用户ID> user → 降为普通用户
53
+ ```
54
+
55
+ ### 分享知识库
46
56
 
47
57
  ```
48
- 1. 服务器启动,安装 Plugin,连接 Bot
49
- 2. 用户首次发送任意命令自动展示密钥和绑定指引
50
- 3. /linkmind_claim <密钥>绑定成功,成为管理员
51
- 4. /linkmind_create 客服知识库 https://example.com/doc.pdf训练
52
- 5. /linkmind_query 客服知识库 如何退款? → 查询
58
+ /linkmind_share 客服知识库 123456789 viewer → 授予查看权限
59
+ /linkmind_share 客服知识库 123456789 revoke 撤销权限
60
+ /linkmind_share 客服知识库 public 所有人可查询
61
+ /linkmind_share 客服知识库 private仅授权用户可查询
53
62
  ```
54
63
 
55
- ### 普通用户使用
64
+ ### 普通用户
56
65
 
57
66
  ```
58
- 1. /linkmind_help查看可用功能
59
- 2. /linkmind_list查看可访问的知识库
60
- 3. /linkmind_query 客服知识库 问题 → 查询
67
+ 1. /linkmind_list查看可访问的知识库
68
+ 2. /linkmind_query 客服知识库 如何退款? 查询
61
69
  ```
62
70
 
63
71
  ## Important Notes
64
72
 
65
73
  - 首次使用发 `/linkmind_help` 即可了解所有功能
66
- - 服务器未绑定管理员时,所有命令会提示先完成绑定
67
- - 密钥会自动展示给第一个与 bot 对话的用户
68
- - 管理员创建的知识库默认私有,需通过 /linkmind_share 开放
69
- - 普通用户无法创建/删除知识库
74
+ - 服务器未绑定 Admin 时密钥会自动展示给第一个用户
75
+ - Admin 创建的知识库默认私有,需通过 `/linkmind_share` 开放
76
+ - Editor 不能管理用户角色,只有 Admin 可以
77
+ - 普通用户只能查询 public 知识库和被授权的知识库