add design spec
This commit is contained in:
55
docs/superpowers/specs/2026-05-08-multi-llm-design.md
Normal file
55
docs/superpowers/specs/2026-05-08-multi-llm-design.md
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
# 多模型并行调用功能设计
|
||||||
|
|
||||||
|
## 概述
|
||||||
|
|
||||||
|
支持同时配置最多3个LLM大模型,主页面同时显示3个结果框,发送时并行调用所有已配置的模型。
|
||||||
|
|
||||||
|
## 配置页面 (SecondActivity)
|
||||||
|
|
||||||
|
### 布局
|
||||||
|
垂直排列3个模型配置卡片,每组包含:
|
||||||
|
- 配置名称 (EditText)
|
||||||
|
- Base URL (EditText)
|
||||||
|
- API Key + 显示/隐藏切换 (EditText + ImageButton)
|
||||||
|
- Model (EditText)
|
||||||
|
- 测试连接按钮 + 状态文本
|
||||||
|
|
||||||
|
### 交互
|
||||||
|
- 每个模型独立的「测试连接」按钮
|
||||||
|
- 保存时持久化3个模型的配置到 SharedPreferences
|
||||||
|
|
||||||
|
## 主页面 (MainActivity)
|
||||||
|
|
||||||
|
### 布局
|
||||||
|
结果显示区改为水平 ScrollView,内含3个结果卡片:
|
||||||
|
- 每个卡片 300dp 宽
|
||||||
|
- 包含:模型名称、状态标签、结果文本框、复制按钮
|
||||||
|
- 未配置的模型卡片显示为空或隐藏
|
||||||
|
|
||||||
|
### 发送逻辑
|
||||||
|
1. 获取所有已配置的模型列表
|
||||||
|
2. 并行启动 coroutine 给每个模型发送请求
|
||||||
|
3. 各自更新各自的结果框
|
||||||
|
4. 任意模型完成后更新总状态
|
||||||
|
|
||||||
|
## 数据结构
|
||||||
|
|
||||||
|
```kotlin
|
||||||
|
data class LLMConfig(
|
||||||
|
val name: String,
|
||||||
|
val baseUrl: String,
|
||||||
|
val apiKey: String,
|
||||||
|
val model: String
|
||||||
|
)
|
||||||
|
|
||||||
|
data class SettingsData(
|
||||||
|
val llmConfigs: List<LLMConfig> // 支持1-3个
|
||||||
|
)
|
||||||
|
```
|
||||||
|
|
||||||
|
## 文件变更
|
||||||
|
|
||||||
|
1. `activity_second.xml` - 增加2组模型配置卡片
|
||||||
|
2. `SecondActivity.kt` - 加载/保存3个模型配置,3个独立测试功能
|
||||||
|
3. `activity_main.xml` - 结果区改为水平布局3个结果卡片
|
||||||
|
4. `MainActivity.kt` - 并行调用所有模型,各自更新结果
|
||||||
Reference in New Issue
Block a user