GitHub Copilotのドキュメントをざっと読んでみたのでメモ
はじめに 筆者はSIを生業とする企業で働いています。 お客様は比較的大きくて古い体質の企業様が多いです。 生成AI隆盛の現在ですが、予期せぬ学習されてしまうことを懸念して、あまり生成AIツールの導入に積極的ではありません。 そんな中でもGitHub CopilotはGitHub社の出しているサービスなので社内稟議も通りやすいらしく、使用が許可されています。 実際には他にも試してみたいツールはありますが、まずは職場で使えるツールに習熟しようということで、GitHub Copilotのドキュメントをローラーすることにしました。 今回の対象 GitHub Copilotのドキュメント GitHub Copilot全体の説明 使い方だけでなく、管理者としての設定もある Visual Studio Codeのドキュメント 主に使用者としてのドキュメント 筆者のOrgでは許可されていない機能も多いため、以下の主要な機能に絞って書いていきます。 対象 Chat Inline Chat Edits Completion 目線 開発者としてGitHub Copilotを使うこと 管理者の目線ではない 知らなかったこと Completionの使い方 私の普段の使い方としては以下の2つでした コードの書き出しを書いて、提案がいい感じだったらTabを押す コメントに要件を書いて、提案がいい感じだったらTabを押す 公式ドキュメントを読むともう少し奥深い使い方がありました。 ⌘ + ->で単語レベルの適用ができる Completion Panelを開くことで複数案の列挙ができる(画像の右側のペイン) モデルの話 公式ドキュメントによると、現在の既定のモデルはGPT 4oとのことでした。 また、以下のモデルへの変更も可能です Claude 3.5 Sonnet o1 o1-mini CursorやらClineやらが色んなモデルを選択できるのに比べてやや見取りする感じもしますが、セキュリティを気にするエンタープライズな企業に対しては安心感のあるチョイスになっている気もします。 また、o1モデルについては推論時間が長くなることも注意書きされています。 Copilotのベストプラクティスにもありますが、あくまでCopilotはコーディングの補助ツールなので、ライトなタスクをバッタバッタと倒していくことが想定されています。 そういう意味でも、回答の精度と生成時間を考慮して、4oが既定のモデルになっているのかなーと想像しました。 コンテキストの話 全般的なコンテキストの話 LLMのモデルに対して回答の要求をする場合、Promptを通して適切なコンテキストを提供することが大切です。 余計なことを教えるとそれに回答が引っ張られるし、情報が足りないと明後日の方向に回答が飛んでしまいます。 「Copilotを役立つ出力の導く」の項目を見ると、Copilotのコンテキストは以下のように決まるようです。 Completionの場合 開いているファイル Chat, Inline Chatの場合 開いているファイル 同一の会話の過去のやりとり コンテキスト変数(#file, @workspaceなど) そのため以下のようなことが推奨されています 関係ないファイルは閉じる Chat, Inline Chatは関係ない話題ならリレフッシュする コンテキスト変数で明示的にファイル等を指定する @workspaceの深掘り 「チャット参加者」という概念があるようです。和訳で変になっちゃってるパターンですね。 元々はエージェントという機能名だったようですが、昨今話題の自立型のエージェントと名前被りするのでこっちを変えたのかなと想像。...