BYOK: populate the /model picker from the provider's /models endpoint
Personne n'a encore pris cette issue.
- Langage dominant
- Shell
- Étoiles
- 11.2k
- Forks
- 1.9k
- Merge moyen
- 14 h 16 min
- PR mergées (30 j)
- 6
Description
Problem
When the CLI runs against a custom provider (COPILOT_PROVIDER_BASE_URL), exactly one model can be configured (COPILOT_MODEL / COPILOT_PROVIDER_MODEL_ID). In-session, /models shows only that single configured model — there is no way to browse or switch models without quitting and relaunching with --model (which must be guessed, since nothing lists what the provider serves).
Request
For COPILOT_PROVIDER_TYPE=openai (and azure), populate the model picker from the provider's standard OpenAI-compatible catalog endpoint:
GET {COPILOT_PROVIDER_BASE_URL}/models
- Fall back silently to today's single-model behavior when the endpoint 404s or errors.
data[].idis enough for a useful picker; if present,capabilities.limits/supported_endpointsstyle metadata could fill the Context column the way the native picker does.
A lighter-weight alternative (or complement): a COPILOT_PROVIDER_MODELS env var accepting a comma-separated id list, for providers whose catalog endpoint can't be reached at startup.
Why it matters
Practically every OpenAI-compatible backend already serves /models — Ollama, vLLM, LiteLLM, Azure, and enterprise LLM gateways. We operate such a gateway: it fronts the Copilot API itself (billing stays on the user's Copilot seat) and serves GET /models with exactly the models the seat's plan/org policy allows — but the CLI never asks, so enrolled users see a one-entry picker and file "the CLI is broken" reports, while the native CLI right next to it shows the full list.
Observed on v1.0.77 and v1.0.78 (linux-x64 and darwin-arm64).
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Suivez le sélecteur /models de la CLI et la configuration des fournisseurs personnalisés pour trouver où la liste actuelle contenant un seul modèle est assemblée. Commencez par vérifier les chemins des fournisseurs OpenAI et Azure ainsi que leur gestion des erreurs existante. C’est terminé lorsqu’une réponse /models réussie fournit des IDs de modèles, tandis que les 404 ou autres erreurs préservent le comportement actuel avec un seul modèle ; les métadonnées facultatives et l’alternative par variable d’environnement restent des choix de conception.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- shell
- Domaine
- api, cli
- Type d'issue
- Fonctionnalité
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- Calme
- Clarté
- Plutôt claire
- Accessibilité débutants
- 52/100