From 99b9a6c08a647882549d70e7a015470ff36fe3d9 Mon Sep 17 00:00:00 2001 From: Xuan Son Nguyen Date: Wed, 8 Jul 2026 00:35:05 +0200 Subject: [PATCH] also show model aliases --- tools/cli/cli-context.cpp | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/tools/cli/cli-context.cpp b/tools/cli/cli-context.cpp index 78ebe30a0b..78b1b102f1 100644 --- a/tools/cli/cli-context.cpp +++ b/tools/cli/cli-context.cpp @@ -195,10 +195,26 @@ bool cli_context::list_and_ask_models() { throw std::runtime_error("invalid response from /v1/models"); } std::vector models; + std::vector models_display; for (const auto & m : resp.at("data")) { - if (m.contains("id") && m.at("id").is_string()) { - models.push_back(m.at("id").get()); + if (!m.contains("id") || !m.at("id").is_string()) { + continue; } + std::string name = m.at("id").get(); + std::string display = name; + if (m.contains("aliases") && m.at("aliases").is_array()) { + std::vector aliases; + for (const auto & a : m.at("aliases")) { + if (a.is_string()) { + aliases.push_back(a.get()); + } + } + if (!aliases.empty()) { + display += " (" + string_join(aliases, ", ") + ")"; + } + } + models.push_back(name); + models_display.push_back(display); } // only one model: use it without asking @@ -209,10 +225,8 @@ bool cli_context::list_and_ask_models() { } std::string message = "\nAvailable models:"; - if (!models.empty()) { - for (size_t i = 0; i < models.size(); ++i) { - message += "\n " + std::to_string(i + 1) + ". " + models[i]; - } + for (size_t i = 0; i < models_display.size(); ++i) { + message += "\n " + std::to_string(i + 1) + ". " + models_display[i]; } message += "\n"; ui::show_message(message);