meeting-cli
v1.0.5
Published
Meeting knowledge base CLI - semantic search, metadata management, and meeting transcript processing
Maintainers
Readme
meeting-cli
会议知识库命令行工具,提供语义搜索和元数据查询能力。
kb— 知识库操作:语义搜索、数据摄入、删除、健康检查、配置管理meet-meta— 元数据查询:按条件过滤会议、转录记录、决策
安装
需要 Node.js >= 18。
npm install -g meeting-cli安装后全局可用两个命令:
kb --version # 查看 kb 版本
meet-meta --version # 查看 meet-meta 版本快速开始
# 1. 设置后端 API 地址(只需执行一次,配置会持久保存)
kb config set KB_API_BASE_URL http://192.168.4.185:8001/api/v1
kb config set MEET_META_API_BASE_URL http://192.168.4.185:9992/api/v1
# 2. 发起搜索
kb query "Sprint 计划"配置
配置通过 kb config 命令管理,存储在 ~/.meeting-cli/config.json,设置一次后全局生效。
配置命令
# 设置
kb config set KB_API_BASE_URL http://192.168.4.185:8001/api/v1
kb config set KB_API_TIMEOUT 60000
# 查看全部
kb config get
# 查看单项
kb config get KB_API_BASE_URL
# 删除
kb config unset KB_API_TIMEOUT配置优先级(低 → 高)
- 代码默认值
- 当前目录下的
.env文件 - 用户配置
~/.meeting-cli/config.json - 系统环境变量
环境变量
| 变量 | 默认值 | 说明 |
|---|---|---|
| KB_API_BASE_URL | http://localhost:8000/api/v1 | kb 命令的后端 API 地址 |
| MEET_META_API_BASE_URL | http://localhost:8000/api/v1 | meet-meta 命令的后端 API 地址 |
| KB_API_TIMEOUT | 30000 | HTTP 请求超时时间(毫秒) |
| KB_API_MOCK | false | 设为 true 启用模拟模式(无需后端,返回模拟数据) |
kb 命令
全局选项
所有 kb 子命令都支持以下选项:
| 选项 | 说明 | 默认 |
|---|---|---|
| -V, --version | 显示版本号 | — |
| -v, --verbose | 显示详细错误堆栈 | false |
| -t, --text | 人类可读文本输出 | false(默认 JSON) |
kb query
语义搜索知识库。
kb query <text> [options]| 参数 / 选项 | 说明 | 默认 |
|---|---|---|
| <text> | 搜索查询文本(必填) | — |
| -k, --top-k <n> | 返回结果数量上限 | 10 |
| --meeting-id <id...> | 限定特定会议(可重复) | — |
| --type <type> | 段落类型:transcript / decision / material / minutes | — |
| --full | 展示完整内容不截断 | false |
kb query "Sprint 计划"
kb query "架构讨论" -k 5 --type decision
kb query "性能优化" --meeting-id mtg-001 -t
kb query "技术选型" --fullkb ingest
摄入会议数据(JSON 文件)。
kb ingest [options]| 选项 | 说明 |
|---|---|
| -f, --file <path> | 会议数据 JSON 文件路径(必填) |
JSON 文件需包含 meeting 和 contents 字段。每个 content 项的 type 必须为 transcript / decision / material / minutes 之一。
kb ingest -f meeting_data.jsonkb append
追加内容到已有会议。
kb append <meeting_id> [options]| 参数 / 选项 | 说明 |
|---|---|
| <meeting_id> | 目标会议 ID(必填) |
| -f, --file <path> | 内容数据 JSON 文件路径(必填) |
会校验文件中每个 content 项的 meeting_id 是否与命令行参数一致,不一致则报错。
kb append mtg-001 -f append_data.jsonkb forget
删除数据(子命令组)。
forget segments
删除指定段落。
kb forget segments <meeting_id> [options]| 参数 / 选项 | 说明 |
|---|---|
| <meeting_id> | 会议 ID(必填) |
| -s, --segment-id <id...> | 要删除的段落 ID,可重复多个(必填) |
kb forget segments mtg-001 -s seg-001 -s seg-002forget source
删除指定来源实体。
kb forget source <meeting_id> [options]| 参数 / 选项 | 说明 |
|---|---|
| <meeting_id> | 会议 ID(必填) |
| -s, --source-id <id...> | 要删除的来源实体 ID,可重复多个(必填) |
kb forget source mtg-001 -s src-001forget meeting
删除整个会议及其所有数据。
kb forget meeting <meeting_id> [options]| 参数 / 选项 | 说明 |
|---|---|
| <meeting_id> | 会议 ID(必填) |
| -y, --yes | 跳过确认提示 |
不加 --yes 会弹出交互式确认:确认删除会议 {id} 及其所有数据?(y/n)。
kb forget meeting mtg-001
kb forget meeting mtg-001 --yeskb update-speaker
更新指定来源实体的 speaker 元数据。
kb update-speaker <meeting_id> [options]| 参数 / 选项 | 说明 |
|---|---|
| <meeting_id> | 会议 ID(必填) |
| -s, --source-id <id...> | 来源实体 ID,可重复多个(必填) |
| --speaker <name> | speaker 名称(必填) |
kb update-speaker mtg-001 -s src-001 --speaker "张三"kb health
检查后端服务健康状态。
kb healthkb healthkb config
管理持久化配置。
kb config set <key> <value>
kb config get [key]
kb config unset <key>kb config set KB_API_BASE_URL http://192.168.4.185:8001/api/v1
kb config set KB_API_TIMEOUT 60000
kb config get
kb config get KB_API_BASE_URL
kb config unset KB_API_TIMEOUT配置保存在 ~/.meeting-cli/config.json,设置一次后全局生效。详见配置章节。
meet-meta 命令
全局选项
| 选项 | 说明 | 默认 |
|---|---|---|
| -V, --version | 显示版本号 | — |
| -v, --verbose | 显示详细错误堆栈 | false |
| -t, --text | 人类可读文本输出 | false(默认 JSON) |
meet-meta meeting
按会议元数据条件过滤会议。
meet-meta meeting [options]| 选项 | 说明 | 默认 |
|---|---|---|
| --topic <text> | 按主题模糊匹配 | — |
| --status <status> | 会议状态 | — |
| --creator <name> | 按创建人过滤 | — |
| --participant <name> | 按参会人过滤 | — |
| --meeting-id <id...> | 限定会议 ID(可重复) | — |
| --start-after <date> | 开始时间不早于该日期 | — |
| --start-before <date> | 开始时间早于该日期 | — |
| --include-minutes | 联查最新纪要正文 | false |
| -n, --limit <n> | 返回数量上限 | 10 |
| -o, --offset <n> | 偏移量 | 0 |
meet-meta meeting --topic "Sprint"
meet-meta meeting --creator "张三" --status "completed"
meet-meta meeting --start-after "2024-01-01" --start-before "2024-12-31" -t
meet-meta meeting --meeting-id mtg-001 --include-minutesmeet-meta transcript
按转录脚本元数据条件过滤。
meet-meta transcript [options]| 选项 | 说明 | 默认 |
|---|---|---|
| --speaker <name> | 按发言人过滤 | — |
| --meeting-id <id...> | 限定会议 ID(可重复) | — |
| -n, --limit <n> | 返回数量上限 | 10 |
| -o, --offset <n> | 偏移量 | 0 |
meet-meta transcript --speaker "李四"
meet-meta transcript --meeting-id mtg-001 -n 20meet-meta decision
按决策元数据条件过滤。
meet-meta decision [options]| 选项 | 说明 | 默认 |
|---|---|---|
| --owner <name> | 按决策人过滤 | — |
| --deadline-before <date> | 截止日期在此之前 | — |
| --deadline-after <date> | 截止日期在此之后 | — |
| --meeting-id <id...> | 限定会议 ID(可重复) | — |
| -n, --limit <n> | 返回数量上限 | 10 |
| -o, --offset <n> | 偏移量 | 0 |
meet-meta decision --owner "王五"
meet-meta decision --deadline-after "2024-06-01" --deadline-before "2024-06-30"
meet-meta decision -n 20 -o 10输出格式
JSON 模式(默认)
成功输出到 stdout:
{"ok":true,"data":{"...","elapsed_ms":50}}错误输出到 stdout(JSON 模式):
{"ok":false,"error":{"message":"错误描述","hint":"建议操作"}}文本模式(-t / --text)
启用 -t 选项后,输出为彩色人类可读格式。
kb query "Sprint" -t
meet-meta meeting --topic "评审" -t错误处理
错误输出格式
发生错误时,JSON 模式输出以下结构:
{"ok":false,"error":{"message":"错误描述","hint":"建议操作"}}文本模式输出带颜色的错误信息和提示。
常见错误
| 错误信息 | 原因 | 解决方法 |
|---|---|---|
| 无法连接后端 | API 地址不可达或网络不通 | 检查 KB_API_BASE_URL 配置是否正确,确认后端服务是否运行 |
| 请求超时 | 网络延迟或后端响应慢 | 增大超时时间:kb config set KB_API_TIMEOUT 60000 |
| 文件不存在 | -f 指定的文件路径不正确 | 检查文件路径,确认文件存在 |
| 请求参数错误 | 参数格式或类型不正确 | 检查参数格式,参考命令帮助 kb <command> --help |
| 内部错误 | 未预期的运行时错误 | 使用 -v 选项查看详细堆栈,根据错误信息排查 |
调试
使用 -v / --verbose 可输出完整的错误堆栈信息,便于定位问题:
kb query "测试" -v退出码
| 退出码 | 含义 |
|---|---|
| 0 | 成功 |
| 1 | 通用错误(网络、超时、内部错误等) |
| 2 | 参数或输入错误(文件不存在、格式错误等) |
