feat(ollama): allow Custom model ID in the CLI dropdown

Users with other models pulled via `ollama pull` (beyond the three
suggested defaults) can now select "Custom model ID" and type any
model name. Matches the same pattern used for DeepSeek, GLM, Qwen,
and MiniMax — the existing _prompt_custom_model_id flow handles the
"custom" value generically, so this is a one-row catalog addition
plus regression coverage.
This commit is contained in:
Yijia-Xiao
2026-05-11 09:03:06 +00:00
parent f10daa2824
commit 800862405d
2 changed files with 15 additions and 0 deletions

View File

@@ -154,3 +154,14 @@ def test_ollama_model_labels_no_local_suffix():
for mode in ("quick", "deep"):
labels = [label for label, _ in get_model_options("ollama", mode)]
assert all("local" not in label for label in labels), labels
def test_ollama_offers_custom_model_id():
"""Ollama users with custom-pulled models can pick 'Custom model ID'."""
from tradingagents.llm_clients.model_catalog import get_model_options
for mode in ("quick", "deep"):
entries = get_model_options("ollama", mode)
values = [v for _, v in entries]
assert "custom" in values, f"Ollama {mode!r} missing 'custom' option: {entries}"
# Custom option is last so it doesn't push the curated defaults off-screen
assert values[-1] == "custom", f"'custom' should be last entry: {values}"

View File

@@ -159,16 +159,20 @@ MODEL_OPTIONS: ProviderModeOptions = {
# apply whether the user runs ollama-serve on localhost or against a
# remote host. The actual resolved endpoint is surfaced separately by
# cli.utils.confirm_ollama_endpoint() right after provider selection.
# "Custom model ID" lets users pick any model they have pulled via
# `ollama pull` beyond the three suggested defaults.
"ollama": {
"quick": [
("Qwen3:latest (8B)", "qwen3:latest"),
("GPT-OSS:latest (20B)", "gpt-oss:latest"),
("GLM-4.7-Flash:latest (30B)", "glm-4.7-flash:latest"),
("Custom model ID", "custom"),
],
"deep": [
("GLM-4.7-Flash:latest (30B)", "glm-4.7-flash:latest"),
("GPT-OSS:latest (20B)", "gpt-oss:latest"),
("Qwen3:latest (8B)", "qwen3:latest"),
("Custom model ID", "custom"),
],
},
}