Skip to content

在 TUI/CLI 中配置提供商 API Key 后模型列表为空,无法选择模型 #100

Description

@xiaobaoliu849

Summary

  1. 问题:在 Raven 的初始化向导或 TUI 的配置界面中,添加服务商(如 DeepSeek 等)的 API Key 并连接成功后,在接下来的“选择模型”界面中,下拉菜单或选择框为空(没有模型可选),导致配置流程受阻。

  2. 原因:
    raven/tui_rpc/methods/model.py 中的 model_options RPC 方法在构建模型选项时,使用的是 _provider_models(slug)
    _provider_models 只会去读取本地 config.jsonproviders.{provider}.models 的数组内容,而没有在保存 Key 或初始化时通过网络动态同步模型列表
    config.json 中初始状态下,如 deepseek 等提供商的 models 默认是空数组 []
    即使在 onboard_commands.py 的验证环节中,_verify_provider 调用了 test_provider(provider) 并成功获取了 model_ids,该列表也并没有被写入本地 config.jsonmodels 数组中,导致后续界面仍然读取到 []

Steps to reproduce

  1. 复现步骤
    (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.jsonproviders.{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


Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions