@linkmind_claw/openclaw-faq-kb 1.0.4 → 1.0.6

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,13 +1,11 @@
1
1
  /**
2
2
  * OpenClaw Plugin entry — FAQ Knowledge Base
3
3
  *
4
- * Registers four agent tools that wrap the 8999 FAQ KB API into
5
- * high-level workflow operations:
4
+ * 3 core tools + 3 slash commands:
6
5
  *
7
6
  * 1. faq_kb_create_and_train — one-click: create KB + auto-pipeline
8
7
  * 2. faq_kb_query — intelligent Q&A
9
- * 3. faq_kb_manage FAQ CRUD
10
- * 4. faq_kb_list — KB inventory & system status
8
+ * 3. faq_kb_list list accessible knowledge bases
11
9
  */
12
10
  interface CommandContext {
13
11
  args?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AA2CH,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,wBA0VG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA+BH,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,wBA6KG"}
package/dist/index.js CHANGED
@@ -1,19 +1,16 @@
1
1
  /**
2
2
  * OpenClaw Plugin entry — FAQ Knowledge Base
3
3
  *
4
- * Registers four agent tools that wrap the 8999 FAQ KB API into
5
- * high-level workflow operations:
4
+ * 3 core tools + 3 slash commands:
6
5
  *
7
6
  * 1. faq_kb_create_and_train — one-click: create KB + auto-pipeline
8
7
  * 2. faq_kb_query — intelligent Q&A
9
- * 3. faq_kb_manage FAQ CRUD
10
- * 4. faq_kb_list — KB inventory & system status
8
+ * 3. faq_kb_list list accessible knowledge bases
11
9
  */
10
+ import { Type } from "@sinclair/typebox";
12
11
  import { FaqKbApiClient } from "./lib/api-client.js";
13
12
  import { CreateAndTrainParams, executeCreateAndTrain, } from "./tools/create-kb-and-train.js";
14
13
  import { QueryParams, executeQuery, } from "./tools/query-kb.js";
15
- import { ManageFaqParams, executeManageFaq, } from "./tools/manage-faq.js";
16
- import { ListKbParams, executeListKb, } from "./tools/list-kb.js";
17
14
  function definePluginEntry(entry) {
18
15
  return entry;
19
16
  }
@@ -21,7 +18,7 @@ function definePluginEntry(entry) {
21
18
  export default definePluginEntry({
22
19
  id: "faq-knowledge-base",
23
20
  name: "FAQ Knowledge Base",
24
- description: "FAQ 知识库插件:一键上传文档训练知识库,智能问答,FAQ 增删改查",
21
+ description: "FAQ 知识库插件:一键上传文档训练知识库,智能问答,查看知识库列表",
25
22
  register(api) {
26
23
  const cfg = (api.pluginConfig ?? {});
27
24
  const baseUrl = cfg.apiBaseUrl || "http://67.212.146.21:8999";
@@ -58,36 +55,44 @@ export default definePluginEntry({
58
55
  parameters: QueryParams,
59
56
  execute: (_id, params) => executeQuery(client, params),
60
57
  });
61
- // ── Tool 3: Manage FAQ ────────────────────────────────────────────
62
- api.registerTool({
63
- name: "faq_kb_manage",
64
- label: "FAQ 管理",
65
- description: [
66
- "管理知识库中的 FAQ(问答对): 创建、更新、删除、列表、详情。",
67
- "通过 action 参数指定操作类型。",
68
- "create/update 需要 question 和 answer;",
69
- "update/delete/get 需要 faq_id;",
70
- "list 支持 keyword 搜索和分页。",
71
- ].join(" "),
72
- parameters: ManageFaqParams,
73
- execute: (_id, params) => executeManageFaq(client, params),
74
- });
75
- // ── Tool 4: List KB ───────────────────────────────────────────────
58
+ // ── Tool 3: List KB ───────────────────────────────────────────────
76
59
  api.registerTool({
77
60
  name: "faq_kb_list",
78
- label: "知识库管理",
61
+ label: "查看知识库列表",
79
62
  description: [
80
- "查询和管理知识库: 列出全部知识库、查看详情、删除知识库、查看系统状态。",
81
- "list: 列出所有知识库,支持按名称和标签筛选;",
82
- "detail: 查看知识库详情(需要 kb_id);",
83
- "delete: 删除知识库(需要 kb_id);",
84
- "system_status: 查看后端系统状态。",
63
+ "列出当前可访问的所有知识库。",
64
+ "返回每个知识库的 ID、名称、标签和训练状态。",
65
+ "支持按名称和标签筛选,支持分页。",
85
66
  ].join(" "),
86
- parameters: ListKbParams,
87
- execute: (_id, params) => executeListKb(client, params),
67
+ parameters: Type.Object({
68
+ keyword: Type.Optional(Type.String({ description: "按名称搜索(可选)" })),
69
+ tag_name: Type.Optional(Type.String({ description: "按标签筛选(可选)" })),
70
+ page: Type.Optional(Type.Number({ description: "页码(默认 1)" })),
71
+ page_size: Type.Optional(Type.Number({ description: "每页大小(默认 0=全部)" })),
72
+ }),
73
+ execute: async (_id, params) => {
74
+ const qp = new URLSearchParams();
75
+ if (params.keyword)
76
+ qp.set("keyword", params.keyword);
77
+ if (params.tag_name)
78
+ qp.set("tag_name", params.tag_name);
79
+ qp.set("page", String(params.page ?? 1));
80
+ qp.set("page_size", String(params.page_size ?? 0));
81
+ const res = await client.get(`/knowledge_bases?${qp.toString()}`);
82
+ const items = res.items ?? res.data?.items ?? [];
83
+ const total = res.total ?? items.length;
84
+ const lines = [`知识库列表(共 ${total} 个):`];
85
+ for (const kb of items) {
86
+ const status = kb.is_active ? "就绪" : "未训练";
87
+ const tag = kb.tag_name ? ` [${kb.tag_name}]` : "";
88
+ lines.push(` ${kb.id} ${kb.name}${tag} (${status})`);
89
+ }
90
+ if (items.length === 0)
91
+ lines.push(" (无知识库)");
92
+ return { content: [{ type: "text", text: lines.join("\n") }] };
93
+ },
88
94
  });
89
- // ── Slash Commands — 4 个,和 4 个 tools 一一对应 ─────────────────────
90
- // 1. /faq_create <kb_name> <file_url> — 对应 faq_kb_create_and_train
95
+ // ── 3 Slash Commands — 3 个 tools 一一对应 ──────────────────────
91
96
  api.registerCommand({
92
97
  name: "faq_create",
93
98
  description: "创建知识库并训练: /faq_create <名称> <文档URL>",
@@ -105,18 +110,14 @@ export default definePluginEntry({
105
110
  }
106
111
  try {
107
112
  const kbRes = await client.post("/knowledge_bases", {
108
- name: kbName,
109
- description: "",
110
- tag_name: null,
113
+ name: kbName, description: "", tag_name: null,
111
114
  });
112
115
  const kbId = kbRes.id;
113
116
  const pipeRes = await client.post(`/knowledge_bases/${kbId}/auto_pipeline`, {
114
- name: kbName,
115
- description: "",
116
- file_path: fileUrl,
117
+ name: kbName, description: "", file_path: fileUrl,
117
118
  });
118
119
  if (!pipeRes.success) {
119
- return { text: `❌ 启动训练失败: ${pipeRes.message}\n知识库已创建 (ID: ${kbId}),可用自然语言让 AI 重试训练。` };
120
+ return { text: `❌ 启动训练失败: ${pipeRes.message}\n知识库已创建 (ID: ${kbId})` };
120
121
  }
121
122
  return { text: `🚀 知识库创建成功,训练已启动!\n 名称: ${kbName}\n KB ID: ${kbId}\n 任务 ID: ${pipeRes.data.task_id}\n\n训练需要 2-10 分钟,完成后可用 /faq_query 提问。` };
122
123
  }
@@ -125,7 +126,6 @@ export default definePluginEntry({
125
126
  }
126
127
  },
127
128
  });
128
- // 2. /faq_query <kb_id> <问题> — 对应 faq_kb_query
129
129
  api.registerCommand({
130
130
  name: "faq_query",
131
131
  description: "知识库问答: /faq_query <kb_id> <问题>",
@@ -142,8 +142,7 @@ export default definePluginEntry({
142
142
  return { text: "请提供问题" };
143
143
  try {
144
144
  const res = await client.post(`/knowledge_bases/${kbId}/query`, {
145
- question,
146
- enable_polish: false,
145
+ question, enable_polish: false,
147
146
  });
148
147
  if (!res.success)
149
148
  return { text: `❌ ${res.message}` };
@@ -161,203 +160,27 @@ export default definePluginEntry({
161
160
  }
162
161
  },
163
162
  });
164
- // 3. /faq_manage <action> <...args> — 对应 faq_kb_manage
165
- api.registerCommand({
166
- name: "faq_manage",
167
- description: "FAQ 管理: /faq_manage <操作> <参数>",
168
- acceptsArgs: true,
169
- handler: async (ctx) => {
170
- const args = (ctx.args ?? "").trim();
171
- const parts = args.split(/\s+/);
172
- const action = parts[0]?.toLowerCase();
173
- if (!action || !["list", "get", "create", "delete", "help"].includes(action)) {
174
- return {
175
- text: [
176
- "用法: /faq_manage <操作> <参数>",
177
- "",
178
- "操作:",
179
- " list <kb_id> — 列出 FAQ",
180
- " get <kb_id> <faq_id> — 查看 FAQ 详情",
181
- " create <kb_id> <问题> | <答案> — 新增 FAQ",
182
- " delete <kb_id> <faq_id> — 删除 FAQ",
183
- " help — 显示此帮助",
184
- ].join("\n"),
185
- };
186
- }
187
- if (action === "help") {
188
- return {
189
- text: [
190
- "📝 FAQ 管理命令:",
191
- "",
192
- "/faq_manage list <kb_id>",
193
- "/faq_manage get <kb_id> <faq_id>",
194
- "/faq_manage create <kb_id> <问题> | <答案>",
195
- "/faq_manage delete <kb_id> <faq_id>",
196
- ].join("\n"),
197
- };
198
- }
199
- if (action === "list") {
200
- const kbId = parts[1];
201
- if (!kbId)
202
- return { text: "用法: /faq_manage list <kb_id>" };
203
- try {
204
- const res = await client.get(`/faqs?knowledge_base_id=${kbId}&page=1&page_size=20`);
205
- if (!res.success)
206
- return { text: `❌ ${res.message}` };
207
- const { faqs, pagination } = res.data;
208
- const lines = [`📝 FAQ 列表(共 ${pagination.total} 条):`];
209
- for (const f of faqs) {
210
- const q = f.question.length > 50 ? f.question.slice(0, 47) + "..." : f.question;
211
- lines.push(` • [${f.id}] ${q}`);
212
- }
213
- if (faqs.length === 0)
214
- lines.push(" (暂无 FAQ)");
215
- return { text: lines.join("\n") };
216
- }
217
- catch (e) {
218
- return { text: `❌ ${e.message}` };
219
- }
220
- }
221
- if (action === "get") {
222
- const [, kbId, faqId] = parts;
223
- if (!kbId || !faqId)
224
- return { text: "用法: /faq_manage get <kb_id> <faq_id>" };
225
- try {
226
- const res = await client.get(`/faqs/${faqId}?kb_id=${kbId}`);
227
- if (!res.success)
228
- return { text: `❌ ${res.message}` };
229
- const d = res.data;
230
- return {
231
- text: [
232
- `📄 FAQ 详情:`,
233
- ` ID: ${d.id ?? faqId}`,
234
- ` 问题: ${d.question}`,
235
- ` 答案: ${d.answer}`,
236
- ` 状态: ${d.status ?? "unknown"}`,
237
- ].join("\n"),
238
- };
239
- }
240
- catch (e) {
241
- return { text: `❌ ${e.message}` };
242
- }
243
- }
244
- if (action === "create") {
245
- const rest = args.slice("create".length).trim();
246
- const spaceIdx = rest.indexOf(" ");
247
- if (spaceIdx === -1)
248
- return { text: "用法: /faq_manage create <kb_id> <问题> | <答案>" };
249
- const kbId = rest.slice(0, spaceIdx).trim();
250
- const qa = rest.slice(spaceIdx + 1);
251
- const pipeIdx = qa.indexOf("|");
252
- if (pipeIdx === -1)
253
- return { text: "请用 | 分隔问题和答案\n示例: /faq_manage create kb123 退款政策 | 7天内可退" };
254
- const question = qa.slice(0, pipeIdx).trim();
255
- const answer = qa.slice(pipeIdx + 1).trim();
256
- if (!question || !answer)
257
- return { text: "问题和答案都不能为空" };
258
- try {
259
- const res = await client.post("/faqs", { knowledge_base_id: kbId, question, answer, status: "active" });
260
- if (!res.success)
261
- return { text: `❌ ${res.message}` };
262
- const faqId = res.data?.faq_id ?? res.data?.id ?? "unknown";
263
- return { text: `✅ FAQ 创建成功!\n ID: ${faqId}\n 问: ${question}\n 答: ${answer.slice(0, 80)}` };
264
- }
265
- catch (e) {
266
- return { text: `❌ ${e.message}` };
267
- }
268
- }
269
- if (action === "delete") {
270
- const [, kbId, faqId] = parts;
271
- if (!kbId || !faqId)
272
- return { text: "用法: /faq_manage delete <kb_id> <faq_id>" };
273
- try {
274
- const res = await client.del(`/faqs/${faqId}?kb_id=${kbId}`);
275
- if (!res.success)
276
- return { text: `❌ ${res.message}` };
277
- return { text: `🗑️ FAQ 已删除: ${faqId}` };
278
- }
279
- catch (e) {
280
- return { text: `❌ ${e.message}` };
281
- }
282
- }
283
- return { text: "未知操作,输入 /faq_manage help 查看帮助" };
284
- },
285
- });
286
- // 4. /faq_list [action] [kb_id] — 对应 faq_kb_list
287
163
  api.registerCommand({
288
164
  name: "faq_list",
289
- description: "知识库管理: /faq_list [detail|delete|status] [kb_id]",
290
- acceptsArgs: true,
291
- handler: async (ctx) => {
292
- const args = (ctx.args ?? "").trim();
293
- const parts = args.split(/\s+/);
294
- const action = parts[0]?.toLowerCase() || "";
295
- if (!action || !["detail", "delete", "status"].includes(action)) {
296
- try {
297
- const res = await client.get("/knowledge_bases?page=1&page_size=0");
298
- const items = res.items ?? res.data?.items ?? [];
299
- const total = res.total ?? items.length;
300
- const lines = [`📚 知识库列表(共 ${total} 个):`];
301
- for (const kb of items) {
302
- const st = kb.is_active ? "✅ 就绪" : "⏳ 未训练";
303
- const tag = kb.tag_name ? ` [${kb.tag_name}]` : "";
304
- lines.push(` • ${kb.name}${tag} ${st}\n ID: ${kb.id}`);
305
- }
306
- if (items.length === 0)
307
- lines.push(" (暂无知识库)");
308
- lines.push("", "其他操作: /faq_list detail <kb_id> | /faq_list delete <kb_id> | /faq_list status");
309
- return { text: lines.join("\n") };
310
- }
311
- catch (e) {
312
- return { text: `❌ ${e.message}` };
313
- }
314
- }
315
- if (action === "status") {
316
- try {
317
- const res = await client.get("/system/status");
318
- if (!res.success)
319
- return { text: `❌ ${res.message}` };
320
- return { text: `🟢 系统状态:\n${JSON.stringify(res.data, null, 2)}` };
321
- }
322
- catch (e) {
323
- return { text: `❌ ${e.message}` };
324
- }
325
- }
326
- const kbId = parts[1];
327
- if (!kbId)
328
- return { text: `用法: /faq_list ${action} <kb_id>` };
329
- if (action === "detail") {
330
- try {
331
- const kb = await client.get(`/knowledge_bases/${kbId}`);
332
- const created = new Date(kb.created_at).toLocaleString("zh-CN");
333
- const trained = kb.trainover_at ? new Date(kb.trainover_at).toLocaleString("zh-CN") : "未训练";
334
- return {
335
- text: [
336
- `📋 知识库详情:`,
337
- ` 名称: ${kb.name}`,
338
- ` ID: ${kb.id}`,
339
- ` 描述: ${kb.description ?? "(无)"}`,
340
- ` 标签: ${kb.tag_name ?? "(无)"}`,
341
- ` 状态: ${kb.is_active ? "✅ 就绪" : "⏳ 未训练"}`,
342
- ` 创建: ${created}`,
343
- ` 训练完成: ${trained}`,
344
- ].join("\n"),
345
- };
346
- }
347
- catch (e) {
348
- return { text: `❌ ${e.message}` };
349
- }
165
+ description: "列出所有知识库",
166
+ handler: async () => {
167
+ try {
168
+ const res = await client.get("/knowledge_bases?page=1&page_size=0");
169
+ const items = res.items ?? res.data?.items ?? [];
170
+ const total = res.total ?? items.length;
171
+ const lines = [`📚 知识库列表(共 ${total} 个):`];
172
+ for (const kb of items) {
173
+ const st = kb.is_active ? "✅ 就绪" : "⏳ 未训练";
174
+ const tag = kb.tag_name ? ` [${kb.tag_name}]` : "";
175
+ lines.push(` • ${kb.name}${tag} ${st}\n ID: ${kb.id}`);
176
+ }
177
+ if (items.length === 0)
178
+ lines.push(" (暂无知识库)");
179
+ return { text: lines.join("\n") };
350
180
  }
351
- if (action === "delete") {
352
- try {
353
- await client.del(`/knowledge_bases/${kbId}`);
354
- return { text: `🗑️ 知识库已删除: ${kbId}` };
355
- }
356
- catch (e) {
357
- return { text: `❌ ${e.message}` };
358
- }
181
+ catch (e) {
182
+ return { text: `❌ ${e.message}` };
359
183
  }
360
- return { text: "未知操作。直接 /faq_list 列出知识库,或 /faq_list detail|delete|status" };
361
184
  },
362
185
  });
363
186
  },
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": "1.0.4",
3
+ "version": "1.0.6",
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",
@@ -11,7 +11,9 @@
11
11
  "test": "node --loader ts-node/esm test/smoke.ts"
12
12
  },
13
13
  "openclaw": {
14
- "extensions": ["./dist/index.js"]
14
+ "extensions": [
15
+ "./dist/index.js"
16
+ ]
15
17
  },
16
18
  "keywords": [
17
19
  "openclaw",