# 管理 LLM 配置

## 使用场景

当你已经准备好模型平台的连接信息，想在 Jarvis 里保存、查看、修改或删除某一条 LLM 配置时，可以使用平台管理器的 LLM 配置命令。保存后的配置可以继续被模型组引用。

## 操作步骤

### 查看 LLM 配置列表

1. 在终端中输入：`jpm manage llm list`
2. 按回车后，系统会直接列出当前已有的 LLM 配置。
3. 你可以在列表里看到每条配置的名称，以及它当前对应的平台和模型。

### 查看单个 LLM 配置详情

#### 方式一：直接在命令里带上配置名称

1. 在终端中输入：`jpm manage llm show 你的配置名`
2. 按回车后，如果名称存在，系统会直接显示这一条配置的详情。
3. 你会看到这条配置的：
   - 平台
   - 模型
   - 最大 token 数
   - 其他连接参数

#### 方式二：先打开交互选择列表再选

1. 在终端中输入：`jpm manage llm show`
2. 按回车后，系统会弹出选择列表，提示类似：`选择 LLM 配置 > `。
3. 在列表中选中目标配置并确认后，系统会显示该配置详情。
4. 如果你在选择界面直接取消，本次查看会立即结束，不会继续执行。

### 新增 LLM 配置

1. 在终端中输入：`jpm manage llm add 你的配置名`
2. 按回车后，系统会先显示：`📝 添加 LLM 配置: 你的配置名`
3. 接下来按提示依次输入以下内容，每输入一项后按回车继续：
   - `平台名称 (openai/claude/other): `
   - `模型名称 (如: gpt-4o): `
   - `最大token数 (默认: 128000): `
   - `API基础URL: `
   - `API密钥: `
4. 如果你在“最大token数”这一步直接回车，系统会自动使用默认值 `128000`。
5. 全部输入完成后，系统会立即保存这条配置。
6. 保存成功后，你会看到：`✅ 已添加 LLM 配置: 你的配置名`

### 更新 LLM 配置

#### 方式一：直接指定要修改的配置

1. 在终端中输入：`jpm manage llm update 你的配置名`
2. 按回车后，系统会先显示当前配置概要，例如当前平台和模型。
3. 然后系统会逐项询问新的值：
   - `平台名称 (当前: ..., 留空不变): `
   - `模型名称 (当前: ..., 留空不变): `
   - `最大token数 (当前: ..., 留空不变): `
4. 只想改某一项时，就只输入那一项的新值；其余步骤直接回车即可。
5. 全部完成后，系统会保存修改结果。
6. 保存成功后，你会看到：`✅ 已更新 LLM 配置: 你的配置名`

#### 方式二：先选择再更新

1. 在终端中输入：`jpm manage llm update`
2. 按回车后，系统会弹出选择列表，提示类似：`选择要更新的 LLM 配置 > `。
3. 选中目标配置后，系统会进入和上面相同的逐项更新流程。
4. 如果你在选择界面直接取消，本次更新会立即结束。

### 删除 LLM 配置

#### 方式一：直接指定要删除的配置

1. 在终端中输入：`jpm manage llm delete 你的配置名`
2. 按回车后，如果这条配置当前正被某个模型组引用，系统会先给出警告。
3. 随后系统会要求你确认删除，提示类似：`确认删除 LLM 配置 '你的配置名'?`
4. 只有在你明确确认后，系统才会真正删除这条配置。
5. 删除成功后，你会看到：`✅ 已删除 LLM 配置: 你的配置名`

#### 方式二：先选择再删除

1. 在终端中输入：`jpm manage llm delete`
2. 按回车后，系统会弹出选择列表，提示类似：`选择要删除的 LLM 配置 > `。
3. 选中目标配置后，系统会继续进入确认删除步骤。
4. 如果你在选择界面直接取消，本次删除会立即结束，不会删除任何内容。

## 你会看到的提示与反馈

- 查看列表时，你会看到类似：`✅ LLM 配置列表:`，后面跟着每个配置的 `名称 (平台/模型)`。
- 查看详情成功时，你会看到类似：
  - `✅ LLM 配置: 配置名`
  - `平台: ...`
  - `模型: ...`
  - `最大token数: ...`
  - `其他配置:`
- 新增开始时，系统会提示：`📝 添加 LLM 配置: 配置名`。
- 更新开始时，系统会提示：`📝 更新 LLM 配置: 配置名`，随后显示当前平台和模型。
- 新增成功后，会提示：`✅ 已添加 LLM 配置: 配置名`。
- 更新成功后，会提示：`✅ 已更新 LLM 配置: 配置名`。
- 删除成功后，会提示：`✅ 已删除 LLM 配置: 配置名`。
- 如果输入了不存在的配置名，系统会提示：`❌ 未找到 LLM 配置: ...`。
- 如果新增时配置名已经存在，系统会提示：`❌ LLM 配置 '...' 已存在`。
- 如果你把平台名称、模型名称、API 基础 URL 或 API 密钥留空，系统会立即提示对应字段不能为空，并结束本次新增。
- 如果 token 数输入不是有效数字：
  - 新增时会提示：`❌ 无效的token数，使用默认值 128000`
  - 更新时会提示：`❌ 无效的token数，保持原值`
- 如果你在交互选择列表中直接取消，当前操作会立即结束。

## 注意事项

- 这些命令都需要在终端里执行。
- `list` 是直接输出结果的命令；`show`、`update`、`delete` 在不带名称时会进入交互选择。
- 新增命令必须在命令里直接写出配置名称，例如：`jpm manage llm add my-openai`。
- 更新时“留空不变”表示保留原来的值，不是把该字段清空。
- 删除前最好先确认这条配置是否仍被模型组使用，否则可能影响已有模型组。
- 这里管理的是持久保存的 LLM 配置，不等于临时切换当前会话使用的模型组。
