@vfvrpq/llm-cli 1.1.0 → 1.2.1

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/README.md CHANGED
@@ -1,11 +1,11 @@
1
- # llm-cli —— GLM / DeepSeek 终端命令行客户端
1
+ # llm-cli —— GLM / DeepSeek / MiMo 等终端命令行客户端
2
2
 
3
- 两个**零依赖**单文件脚本(Node.js ≥ 18),各连一家服务商;API Key 均由你本人手动填写,代码中不内置任何密钥。
3
+ 三个**零依赖**命令行入口(Node.js ≥ 18):`glm-cli` / `deepseek-cli` 单供应商 + `llm-cli` 多供应商(7 家);API Key 均由你本人手动填写,代码中不内置任何密钥。
4
4
 
5
5
  | 脚本 | 服务商 | 默认模型 | 配置目录 | Key 环境变量 |
6
6
  |---|---|---|---|---|
7
7
  | `glm_cli.js` | 智谱 GLM | `glm-5.3-flash` | `~/.glm-cli` | `GLM_API_KEY`(或 `ZHIPUAI_API_KEY`) |
8
- | `deepseek_cli.js` | DeepSeek | `deepseek-chat` | `~/.deepseek-cli` | `DEEPSEEK_API_KEY` |
8
+ | `deepseek_cli.js` | DeepSeek | `deepseek-flash` | `~/.deepseek-cli` | `DEEPSEEK_API_KEY` |
9
9
 
10
10
  Windows 下可用同目录的 `glm.bat` / `deepseek.bat` 启动,例如 `.\glm.bat chat`。
11
11
 
@@ -51,6 +51,27 @@ node llm_cli.js models -p mimo # 查看该账号可用模型
51
51
  - 智谱 coding 订阅(本机 MiMo 同款配置):`--base-url https://open.bigmodel.cn/api/coding/paas/v4`
52
52
  - 端点与模型清单均已实测;cc-switch(farion1231/cc-switch)的 OpenAI 兼容端点清单是本表的参考来源
53
53
 
54
+ ## 项目结构(v1.2 原子化重构)
55
+
56
+ ```
57
+ llm_cli.js / glm_cli.js / deepseek_cli.js # 三个薄入口(只声明注册表与特性开关)
58
+ lib/
59
+ ├── run.js # 入口引导与子命令分发
60
+ ├── args.js # 参数解析与帮助生成(按入口特性开关生成)
61
+ ├── config.js # 配置读写(单供应商入口兼容 1.x 扁平格式)
62
+ ├── registry.js # 供应商选择 / 模型名前缀推断 / 运行时与 Key 解析
63
+ ├── http.js # fetch 封装 + SSE 流解析 + 超时
64
+ ├── chat.js # payload 构建(thinking 门控)与流式渲染
65
+ ├── colors.js / errors.js / hidden.js
66
+ └── commands/ # ask / chat / models / config 四个子命令
67
+ providers/
68
+ ├── index.js # 聚合注册表(新增供应商在此登记一行)
69
+ └── <名称>/index.js # 每家供应商独立文件夹:端点 / 默认模型 / Key 环境变量 / 名称前缀
70
+ ```
71
+
72
+ **新增供应商**:在 `providers/<名称>/index.js` 写定义 → `providers/index.js` 加一行登记,
73
+ 即被 `-p`、模型名前缀推断、`config`、`models` 自动识别。
74
+
54
75
  ## 准备 API Key
55
76
 
56
77
  - GLM(智谱):<https://open.bigmodel.cn> 控制台 → API Key(海外版 <https://z.ai>)
@@ -108,6 +129,51 @@ node deepseek_cli.js chat --resume chat-latest.json
108
129
  配置优先级:命令行参数 > 环境变量 > 配置文件 > 内置默认值。
109
130
  配置持久化:`config set model/base-url`、`config get`(Key 脱敏显示)、`config del`、`config path`。
110
131
 
132
+ ## 实测案例(2026-09-27 真实调用归档)
133
+
134
+ 小米 MiMo(`llm_cli.js -p mimo`,v1.2 原子化重构后实测,端点 `api.xiaomimimo.com/v1`):
135
+
136
+ ```text
137
+ $ node llm_cli.js models -p mimo
138
+ mimo-v2.5
139
+ mimo-v2.5-asr
140
+ mimo-v2.5-pro
141
+ mimo-v2.5-tts
142
+ mimo-v2.5-tts-voiceclone
143
+ mimo-v2.5-tts-voicedesign
144
+ mimo-v2.6-flash
145
+ mimo-v2.6-pro
146
+ mimo-v2.6-pro-ultraspeed
147
+
148
+ $ node llm_cli.js ask -p mimo "用两句话介绍一下你自己,说明你能做什么"
149
+ —— 思考 ——
150
+ The user is asking me to introduce myself in two sentences, explaining what I can do.
151
+ —— 回答 ——
152
+ 我是MiMo,由小米大模型Core团队(Xiaomi LLM Core Team)研发的AI大语言模型。我能够回答各类问题、
153
+ 进行多语言翻译、辅助文案写作、代码编写与调试……
154
+ [tokens] 输入 16 · 输出 82
155
+
156
+ $ node llm_cli.js chat -p mimo # 多轮上下文记忆
157
+ 你 > 我叫小明,记住我
158
+ —— 回答 ——
159
+ 好的,小明!我记住了,你叫小明。有什么我可以帮你的吗?
160
+ [tokens] 输入 14 · 输出 59
161
+ 你 > 我叫什么名字?
162
+ —— 回答 ——
163
+ 你叫小明!
164
+ [tokens] 输入 53 · 输出 56 # 第二轮输入 53 tokens,历史消息完整送达
165
+ ```
166
+
167
+ ### 发版前回归矩阵
168
+
169
+ | 检查项 | 说明 |
170
+ |---|---|
171
+ | 语法 | 全部源文件 `node --check`(24 个) |
172
+ | mock 全链路 | 三入口 ask/chat/models/config、模型名前缀推断、thinking 门控、无默认模型报错 |
173
+ | 1.x 配置兼容 | 旧扁平 `config.json` 直接可读;单供应商入口写回保持扁平格式 |
174
+ | 真实端点 | GLM / DeepSeek / MiMo `GET /models` + MiMo 真实流式多轮对话 |
175
+ | registry 冒烟 | `npm i -g` 后三命令 `-V` 正确、`lib/` 与 `providers/` 随包分发 |
176
+
111
177
  ## 常见问题
112
178
 
113
179
  - **401 未授权**:Key 没填、填错或未生效,重新 `config set api-key`。