Summary
-
问题:在 Raven 的初始化向导或 TUI 的配置界面中,添加服务商(如 DeepSeek 等)的 API Key 并连接成功后,在接下来的“选择模型”界面中,下拉菜单或选择框为空(没有模型可选),导致配置流程受阻。
-
原因:
raven/tui_rpc/methods/model.py 中的 model_options RPC 方法在构建模型选项时,使用的是 _provider_models(slug)。
_provider_models 只会去读取本地 config.json 中 providers.{provider}.models 的数组内容,而没有在保存 Key 或初始化时通过网络动态同步模型列表。
config.json 中初始状态下,如 deepseek 等提供商的 models 默认是空数组 []。
即使在 onboard_commands.py 的验证环节中,_verify_provider 调用了 test_provider(provider) 并成功获取了 model_ids,该列表也并没有被写入本地 config.json 的 models 数组中,导致后续界面仍然读取到 []。
Steps to reproduce
- 复现步骤
(1)启动 raven 运行配置向导。
(2)选择配置 deepseek 提供商,输入有效的 API Key。
(3) 验证成功并提示连接成功。
(4)到达“选择模型”界面时,因为 config.json 里的 models 仍然为 [],界面显示为空,用户只能强行中断配置或手动用命令/修改 JSON 的方式去增加模型。
Expected behavior
期望在配置好 API Key 且验证连接成功后,能够自动同步并显示可用的模型列表(如 deepseek-v4-flash / deepseek-v4-pro等)。
Actual behavior
建议的解决方案
方案 A(动态同步):当用户在 onboarding 向导中输入 API Key 或通过 model.save_key 保存 Key,且 test_provider 连通性测试成功后,自动将返回的 model_ids 写入本地 config.json 的 providers.{provider}.models 中。
方案 B(静态预设):在 ProvidersConfig 的 schema 或 registry 中,为常见提供商(如 DeepSeek、OpenAI、Anthropic 等)预设一些默认的主流模型,而不是默认置空。
Environment
- OS: Windows
- Shell: Windows PowerShell
- Python: 3.12
- Node.js: 22+
- Installation Method: Installed globally via
uv (using raven-install.ps1)
- Raven Version: v0.1.2
Logs or screenshots
Summary
问题:在 Raven 的初始化向导或 TUI 的配置界面中,添加服务商(如 DeepSeek 等)的 API Key 并连接成功后,在接下来的“选择模型”界面中,下拉菜单或选择框为空(没有模型可选),导致配置流程受阻。
原因:
raven/tui_rpc/methods/model.py中的model_optionsRPC 方法在构建模型选项时,使用的是_provider_models(slug)。_provider_models只会去读取本地config.json中providers.{provider}.models的数组内容,而没有在保存 Key 或初始化时通过网络动态同步模型列表。config.json中初始状态下,如deepseek等提供商的models默认是空数组[]。即使在
onboard_commands.py的验证环节中,_verify_provider调用了test_provider(provider)并成功获取了model_ids,该列表也并没有被写入本地config.json的models数组中,导致后续界面仍然读取到[]。Steps to reproduce
(1)启动
raven运行配置向导。(2)选择配置
deepseek提供商,输入有效的 API Key。(3) 验证成功并提示连接成功。
(4)到达“选择模型”界面时,因为
config.json里的models仍然为[],界面显示为空,用户只能强行中断配置或手动用命令/修改 JSON 的方式去增加模型。Expected behavior
期望在配置好 API Key 且验证连接成功后,能够自动同步并显示可用的模型列表(如 deepseek-v4-flash / deepseek-v4-pro等)。
Actual behavior
建议的解决方案
方案 A(动态同步):当用户在 onboarding 向导中输入 API Key 或通过
model.save_key保存 Key,且test_provider连通性测试成功后,自动将返回的model_ids写入本地config.json的providers.{provider}.models中。方案 B(静态预设):在
ProvidersConfig的 schema 或 registry 中,为常见提供商(如 DeepSeek、OpenAI、Anthropic 等)预设一些默认的主流模型,而不是默认置空。Environment
uv(using raven-install.ps1)Logs or screenshots