":Copilot model" fails with "Copilot: Could not retrieve completions models"
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 82/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- vim
- 領域
- tooling
調査の方向性
autoload/copilot.vim の s:FmtModel() と s:commands.model() から始め、次に completions モデルのメタデータリクエストから返されるレスポンスの形を調べます。コマンドが補完に対応したモデルを識別し、単一モデルのメッセージを想定どおりにフォーマットすることを確認します。:Copilot model で問題を再現し、取得エラーではなく GPT-4.1 Copilot と報告されることを確認します。
索引モデルが issue の本文から書いたものです。
説明
The current implementation seems to rely on model_picker_enabled being true however it's false for the only completion mode in use: gpt-41-copilot.
What I expect to see from :Copilot model:
Copilot: Current/only completions model is GPT-4.1 Copilot (gpt-41-copilot)
What I see instead:
Copilot: Could not retrieve completions models
Here is a minimal fix which makes it work:
diff --git a/autoload/copilot.vim b/autoload/copilot.vim
index dfdc443..936e975 100644
--- a/autoload/copilot.vim
+++ b/autoload/copilot.vim
@@ -774,7 +774,7 @@ function! s:commands.panel(opts) abort
endfunction
function! s:FmtModel(model) abort
- return a:model.modelName . ' (' . a:model.id . ')'
+ return a:model.name . ' (' . a:model.id . ')'
endfunction
function! s:commands.model(opts) abort
@@ -782,11 +782,11 @@ function! s:commands.model(opts) abort
return
endif
let client = copilot#Client()
- let response = client.Request('copilot/models', {}).Wait()
+ let response = client.Request('copilot/models/getModelMetadataList', {}).Wait()
if response.status ==# 'error'
return 'echoerr ' . string('Copilot: Error retrieving completions models: ' . response.error.message)
endif
- let models = filter(response.result, { _, m -> index(m.scopes, 'completion') >= 0 })
+ let models = filter(response.result.models, { _, m -> m.capabilities.type ==# 'completion' })
if len(models) == 0
echo 'Copilot: Could not retrieve completions models'
elseif len(models) == 1
- 主要言語
- Vim Script
- スター
- 11.7k
- フォーク
- 821
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
github/copilot.vim のほかの issue
-
No link to DeepWikiオープン
難易度 1/5 1時間未満 初心者へのやさしさ 82/100
github/copilot.vim#303 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
github/copilot.vim#276 · コメント 1 件 · リアクション 1 件 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 20/100
github/copilot.vim#309 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 15/100
github/copilot.vim#308 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
github/copilot.vim#306 ·
github/copilot.vim の issue をすべて見る
似ている issue
-
難易度 1/5 1時間未満 初心者へのやさしさ 80/100
elodin-sys/elodin#890 ·
メンテナーはふだん 1 日以内に返信
-
main prepack rejects the missing beta.2 updater inventory対応中かも @shakkernerd が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
openclaw/openclaw#166914 · コメント 1 件 · リアクション 1 件 ·
メンテナーはふだん 1 日以内に返信
-
kind/chore priority/must
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
sidereal-io/sidereal#380 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
Gentleman-Programming/gentle-ai#5371 ·
メンテナーはふだん 1 日以内に返信