@bty/customer-service-cli 0.1.26 → 0.2.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.
Files changed (3) hide show
  1. package/README.md +92 -5
  2. package/dist/bin.js +1831 -1135
  3. package/package.json +4 -4
package/README.md CHANGED
@@ -72,11 +72,12 @@ cs-cli agent list
72
72
 
73
73
  ### 工作空间优先级
74
74
 
75
- | 优先级 | 来源 | 说明 |
76
- | --- | ----------------------- | ---------- |
77
- | 1 | `--workspace <id>` 参数 | 命令行临时覆盖 |
78
- | 2 | `.cs-cli.json` (本地配置) | 当前目录或祖先目录 |
79
- | 3 | `~/.cs-cli/config.json` | 全局默认配置 |
75
+ | 优先级 | 来源 | 说明 |
76
+ | --- | ----------------------- | ---------------------------- |
77
+ | 0 | `CS_WORKSPACE_ID` 环境变量 | env lock,最高优先级,override 硬失败(见下方"环境变量锁定") |
78
+ | 1 | `--workspace <id>` 参数 | 命令行临时覆盖 |
79
+ | 2 | `.cs-cli.json` (本地配置) | 当前目录或祖先目录 |
80
+ | 3 | `~/.cs-cli/config.json` | 全局默认配置 |
80
81
 
81
82
  ### 使用方式
82
83
 
@@ -110,6 +111,35 @@ CLI 从当前目录向上查找 `.cs-cli.json`,找到第一个即使用其中
110
111
 
111
112
  每次写入后会提示写入的目标路径。
112
113
 
114
+ ## 环境变量锁定(sandbox / CI)
115
+
116
+ 当 sandbox、CI 等非交互环境预先注入以下环境变量时,cs-cli 会透明地把 env 作为凭据与上下文来源,并拒绝任何运行时 override(`--workspace` / `--agent` / `auth login` 等),避免下游脚本在上下文被静默切换时产生未定义行为。
117
+
118
+ | 环境变量 | 作用 |
119
+ | ----------------- | ------------------------- |
120
+ | `CS_AUTH` | 登录凭据(等同 access token)。存在即视为"已锁定" |
121
+ | `CS_WORKSPACE_ID` | 锁定工作空间 ID |
122
+ | `CS_AGENT_ID` | 锁定默认 agent ID |
123
+
124
+ 处理逻辑:
125
+
126
+ 1. **env 优先**:只要环境变量有值,cs-cli 就从 env 读取,忽略本地 `credentials.json` / `.cs-cli.json` / 全局配置。
127
+ 2. **override 硬失败**:锁定后如果再通过 `--workspace` / `--agent` / `auth login` / `auth logout` / `config set-workspace` 传入不一致的值,cs-cli 立刻报错退出,不会静默覆盖。
128
+ 3. **幂等传值**:override 与 env 值完全一致时允许通过(便于脚本显式断言)。
129
+
130
+ 使用示例:
131
+
132
+ ```bash
133
+ export CS_AUTH="<your-access-token>"
134
+ export CS_WORKSPACE_ID="ws-abc123"
135
+ export CS_AGENT_ID="agent-xyz"
136
+
137
+ cs-cli agent list # 直接运行,无需 auth login
138
+ cs-cli --workspace ws-other agent list # ❌ 报错:CS_WORKSPACE_ID 已被锁定
139
+ ```
140
+
141
+ 要解除锁定,清空对应环境变量即可(`unset CS_AUTH CS_WORKSPACE_ID CS_AGENT_ID`)。
142
+
113
143
  ## 命令速查表
114
144
 
115
145
  ### 认证 (`auth`)
@@ -170,9 +200,12 @@ CLI 从当前目录向上查找 `.cs-cli.json`,找到第一个即使用其中
170
200
  | `product get --agent <id> --product-id <商品ID>` | 获取商品详情(自动获取 db_id) |
171
201
  | `product update --agent <id> --product-id <商品ID> --update <json\|@file>` | 更新商品信息 |
172
202
  | `product update-sku --agent <id> --sku <SKU名称> --update <json\|@file>` | 更新 SKU 信息 |
203
+ | `product learn --agent <id> --url <URL...> [--source <type>] [--no-identify]` | 通过商品 URL 异步学习(manual / identify 默认开启) |
173
204
 
174
205
  `product update` 支持更新的字段包括:`卖点`、`补充知识`、`tag`、`参数`、`轮播图识别结果`、`商品详情页识别结果` 等。`--update` 接受 JSON 字符串或 `@文件路径`。
175
206
 
207
+ `product learn` 提交商品详情页 URL 进入异步学习队列(`/v1/knowledge/products/upload`),返回 `flow_id` 和 `knowledge_ids`。`--url` 可多值,用空格分隔;`--source` 默认 `manual`;传 `--no-identify` 可关闭自动识别。
208
+
176
209
  ```bash
177
210
  # 更新卖点
178
211
  cs-cli product update --agent <id> --product-id <商品ID> --update '{"卖点":"新卖点内容"}'
@@ -218,6 +251,24 @@ cs-cli product update-sku --agent <id> --sku "颜色分类:粉红" --update '{"
218
251
  | ---------------------------------------------------------------------------- | --------- |
219
252
  | `faq list --agent <id>` | 列出 FAQ 文件 |
220
253
  | `faq add --agent <id> --file <文件名> --questions <问题1,问题2> --answers <答案=xxx>` | 添加 FAQ 内容 |
254
+ | `faq update --agent <id> --file <文件名> --group-id <id> [--questions <...>] [--answers <...>] [--delete-chunks <id1,id2>]` | 更新已有 FAQ 答案组(`--questions` / `--answers` / `--delete-chunks` 至少一个) |
255
+ | `faq delete --agent <id> --file <文件名> --group-id <id>` | 删除 FAQ 答案组 |
256
+
257
+ `faq update` 按 `answer_group_id` 定位目标组,POST 同一个 `faq_contents/save` 接口完成字段替换、问题替换与 chunk 级删除。`faq delete` 走 `DELETE /faq_contents/{group_id}` 整组删除。
258
+
259
+ ### 扩展知识库 (`knowledge`)
260
+
261
+ Agent 关联的通用规则知识库(`suffix_type=_common`),与 FAQ / 商品知识并列的第三类知识源,支持段落(chunk)级 CRUD,统一走 `/mebsuta/api/v1/dataset/{id}/contents/perform-operations`。
262
+
263
+ | 命令 | 说明 |
264
+ | --- | --- |
265
+ | `knowledge list --agent <id> [--page N] [--page-size N]` | 列出 Agent 关联的扩展知识库文件 |
266
+ | `knowledge content list --knowledge-id <id> [--page-size N] [--direction up\|down]` | 列出段落(chunk) |
267
+ | `knowledge content add --knowledge-id <id> --content <text\|@file> [--keyword <k...>] [--after <chunk_id>]` | 新增段落 |
268
+ | `knowledge content update --knowledge-id <id> --chunk-id <id> [--content <text\|@file>] [--keyword <k...>] [--enable \| --disable]` | 更新段落(四个变更字段至少一个;未指定 `--enable` / `--disable` 时自动保留当前启停状态,避免后端 enable 必填校验失败) |
269
+ | `knowledge content delete --knowledge-id <id> --chunk-id <id>` | 删除段落 |
270
+
271
+ `knowledge content add` / `update` 的 `--content` 支持 `@路径` 前缀从文件读取**纯文本**(不是 JSON)。`--keyword` 为 variadic 选项,空格分隔多个关键词。
221
272
 
222
273
 
223
274
  ### 会话管理 (`conversation`)
@@ -430,6 +481,42 @@ cs-cli product update-sku --agent <id> --sku "颜色分类:粉红" --update '{"
430
481
  # 添加 FAQ
431
482
  cs-cli faq add --agent <id> --file "常见问题" --questions "怎么退款,如何退款" --answers "答案=请联系客服处理退款"
432
483
 
484
+ # 更新已有 FAQ 组答案
485
+ cs-cli faq update --agent <id> --file "常见问题" --group-id 2 --answers "答案=请通过订单页面申请退款"
486
+
487
+ # 更新 FAQ 组问题 + 删除旧 chunk
488
+ cs-cli faq update --agent <id> --file "常见问题" --group-id 2 --questions "如何退款,怎么申请退款" --delete-chunks 3,5
489
+
490
+ # 删除整个 FAQ 答案组
491
+ cs-cli faq delete --agent <id> --file "常见问题" --group-id 2
492
+
493
+ # 列出 Agent 的扩展知识库
494
+ cs-cli knowledge list --agent <id>
495
+
496
+ # 列出某扩展知识库的段落
497
+ cs-cli knowledge content list --knowledge-id 622474
498
+
499
+ # 新增段落(插入到末尾)
500
+ cs-cli knowledge content add --knowledge-id 622474 --content "退换货需保留商品吊牌" --keyword 退换货 吊牌
501
+
502
+ # 用文件内容作为段落
503
+ cs-cli knowledge content add --knowledge-id 622474 --content @./rules.txt
504
+
505
+ # 修改段落内容并重设关键词
506
+ cs-cli knowledge content update --knowledge-id 622474 --chunk-id 2 --content "新的规则说明" --keyword 规则 说明
507
+
508
+ # 停用某段落
509
+ cs-cli knowledge content update --knowledge-id 622474 --chunk-id 2 --disable
510
+
511
+ # 删除段落
512
+ cs-cli knowledge content delete --knowledge-id 622474 --chunk-id 2
513
+
514
+ # 商品 URL 异步学习
515
+ cs-cli product learn --agent <id> --url https://detail.tmall.com/item.htm?id=997678657962
516
+
517
+ # 多个 URL 一次提交,且跳过自动识别
518
+ cs-cli product learn --agent <id> --url https://a.example/1 https://a.example/2 --no-identify
519
+
433
520
  # 通过上下文内容模糊搜索对话记录(自动使用当前工作空间,查询窗口最多 3 天)
434
521
  cs-cli conversation context-search --query "退款问题" --start 2026-03-22T00:00:00 --end 2026-03-22T23:59:59
435
522