GitHub Copilotのオートコンプリーションを無効にし、手動で補完をトリガーする方法。やっと分かったのでメモ。
まずVSCodeに以下の設定を追加。
"github.copilot.editor.enableAutoCompletions": false, "editor.inlineSuggest.edits.experimental.enabled": false,
続いて、ショートカットキーはデフォルトでalt+\なのだが、日本語キーボードの場合、"editor.action.inlineSuggest.trigger"に "alt+oem_102"を割り当てる必要がある。(設定UIでalt+\を押下するだけでもいい)
こうでもしないと、無料枠の2000補完/月は一瞬で使い切ると思う。あとOpenAIに見せるファイルの主導権はこちらで握っておくなら、オートコンプリートは切っておいたほうがいい。
Copilot Chatをパケットキャプチャして色々見てたんだけど、コンテキストに与えられたファイルのどの行を抽出して送信するかを決定するのには、リモートのLLMは使ってない気がする。
ローカルの小型モデルを動かしてるのか、何らかのアルゴリズムなのかはちょっと分からない。
コード補完の方はssl keyが取れず、パケットキャプチャできんかった。
Copilot Chatのパケットよく読んだら、まずGPT-4o-miniでfunction callingしてタスクを決定してから、GPT-4oに本番のクエリを送っていた。
GPT-4o-miniでのタスク決定時に、タスクによっては追加のパラメータ(参照すべきファイル名とか)が返却されるのかもしれない。
なお、最後に追加質問文のサジェストと、チャットタイトル作成のために、1回ずつGPT-4o-miniを呼んでいた。