技術ブログ株式会社エーピーコミュニケーションズの技術ブログです。エーピーコミュニケーションズの技術ブログです。>はじめにこんにちは、ACS事業部の瀧澤です。普段Copilotを使っている中で、コード提案の元になるコンテキストはどのファイルまでを読み込んでいるのか、ふと疑問に思いました。公式ページには以下のような記載があります。エディター内から候補の提示を行います。今回はこの「関連ファイル」がどこまでの範囲を指すのか、確認してみます。pythonIDEによって挙動が違うかもしれませんが、今回は個人的に普段使っているVSCodeでの検証をします。準備コンテキストとして読み込ませる事前情報を用意します。github-copilotという空ディレクトリの直下にcontext.pyという名前でファイルを作成、以下のような簡単なコードを記述します。b※このコードを元に提案していると判断できるよう、日本語のprint文をつけています。似たような名前で関数を定義しようとした時、上記コードを踏まえた内容を提案してくれるかどうかでファイルがコンテキストに含まれているか判断します。同ファイル内だともちろんですが以下のように提案をしてくれます。同ワークスペース配下の別ファイルgithub-copilotディレクトリをルートとしてVSCodeワークスペースを開きます。context.pyと同じ階層にファイルを作成した場合です。context.pyの内容を踏まえて提案してくれました。次に適当なディレクトリ配下にsuggest.pyを置いた場合です。github-copilot配下に適当な複数階層ディレクトリ(a/b/c、d/e)を作成、その配下にそれぞれsuggest.pyとcontext.pyを配置してみます。ディレクトリを跨いでいてもcontext.pyの内容を汲み取ってくれました。VSCodeのワークスペースで開かれている範囲のファイルはディレクトリの深い階層にあってもコンテキストに含まれる様です。ワークスペース外のファイル今度はワークスペース外のファイルについても確認してみます。先程作成したディレクトリaをワークスペースのルートとしてVSCodeを開きなおします。context.pyはワークスペースに含まれていません。当然と言えば当然ですが、context.pyの内容を反映した提案はされなくなりました。(ここで反映されていたらローカルのファイルシステムを全部読み込もうとしていることになってしまいますね)しかし公式ページの説明にもあったように、context.pyファイルを開きVSCodeで編集中の状態にすると、これまでと同様の提案がされる様になりました。ワークスペースに関わらず編集中のファイルはコンテキストに含まれるということですね。まとめVSCodeでの話になりますが、以下2点がわかりました。ワークスペース配下のファイルはコンテキスト対象ワークスペース配下外のファイルであっても、VSCodeで編集状態にすればコンテキスト対象となる振り返ると当たり前の様な気もしますが、import等でコード的な依存関係がなくともワークスペース配下のファイルはコンテキストには入っている、ということがわかったのは収穫でした。私達ACS事業部はAzure・AKSなどのクラウドネイティブ技術を活用した内製化のご支援をしております。ご相談等ありましたらぜひご連絡ください。www.ap-com.co.jpまた、一緒に働いていただける仲間も募集中です!今年もまだまだ組織規模拡大中なので、ご興味持っていただけましたらぜひお声がけください。Engineeringの導入支援、データ&AI基盤に関連するサービスを提供しています。わたしたちは「エンジニアとお客様を笑顔にする」というVisionを掲げ、インフラエンジニアの未来を創るNeoSIerとして工夫と挑戦を行い続けます。CopilotCopilotを活用したDatabricksの開発がはかどりそう。読者になるこのブログについて引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。