コパイロット・ワークスペースコパイロット・ワークスペースとは何か、どのように機能するのか、なぜ重要なのか

先日開催されたUnstructured Data Meetupの講演で、GitHub NextのシニアリサーチディレクターのIdan Gazit氏とシニアリサーチエンジニアのCole Bemis氏の話を聞いた。彼らはCopilot WorkspaceというGitHub Copilot上に構築された新しいタスク指向の開発環境を紹介した。
この開発環境は、生成AIモデルの活用方法を強化するもので、単純なコード提案にとどまらず、機能全体の実装まで行えるようになった。以下のセクションでは、このCopilot Workspaceと、それがAIアプリの構築と保守にどのように役立つかを探ってみよう。
GitHub Copilot Workspaceとは?
GitHub Copilot Workspaceは、生成AIをコーディング環境に直接統合するために設計されたツールです。自然言語による会話やプロンプトを使用して、ブレーンストーミング、計画、ビルド、テスト、コードの実行を行うことができます。バグの修正や機能の実装などの作業を支援するために構築されています。
GitHub Copilotワークスペースはジェネレーティブ・モデルによって動いているため、ジェネレーティブ・モデルを使うときと同じように、このワークスペースと対話するときにもいくつかの課題があります。よくある課題のひとつは、モデルが完全にレールから外れることなく、応答(この場合は提案)を返すようにすることです。
GitHub Nextチームは、与えられたタスクと提案されたコードの間にステアリングポイントを実装することで、この課題を解決しました。これは、開発者がこちらの要求を誤解したり、エッジケースを見落としたりしたときに、モデルに指示することで誘導できるようにするものだ。Copilot Workspaceのフローを見てみよう。
タスク→仕様→計画→コード
Copilot Workspaceはタスクの作成から始まり、仕様、計画、コーディングへと流れます。
図 1-タスクから仕様、計画、コーディングのワークフロー](https://assets.zilliz.com/Fig_1_Task_to_Spec_to_Plan_to_Code_Workflow_73c75fc5bb.png)
各ステップの内訳は以下の通りです:
1.**タスクの作成ワークフローは、GitHubの課題、プルリクエスト、一般的な機能リクエストやアイデアなどのタスクから始まります。これは最初のプロンプト、またはあなたのゴールです。
2.仕様:Copilot Workspaceは、タスクで達成すべきことのハイレベルな仕様やアウトラインを生成します。Copilot Workspace は、コードベース、課題コメント、その他のコンテキストを理解して、仕様を提案します。
3.プランニング:Copilot Workspace は、仕様を詳細な計画に変換します。この計画には、必要なコードの変更、テスト、その他のアクションなど、ソリューションの実装に必要なステップバイステップのプロセスが概説されています。この計画は、検証のためにお客様に提示されます。
4.**コーディング計画に満足したら、Copilot Workspace でソリューションを実装するための実際のコードが生成されます。計画をガイドとして使用し、コードベースとプログラミング言語の理解を活用して必要なコードを記述します。
このような舵取りのポイントがなければ、目をつぶって目標に当たることを祈るようなものだ。ワークフローの各ステップは編集可能で、コンテンツの収集や改善ができる。
Copilot Workspaceの仕組みを紹介する実践的なデモ
Copilot Workspace のワークフローを理解するために、実際の例を見てみましょう。Copilotは技術的な検討段階にあり、誰でも利用できるわけではないため、正式リリース時に提示されたスクリーンショットを使用します。
GitHubの課題から始めましょう。これは、Copilot Workspaceに一緒に作業してもらいたいタスクです。この場合、ゲームにAIプレーヤーを追加して、常に2人を必要としないようにしたい。AIプレーヤーは、95%の確率で人間プレーヤーをうまくブロックし、挑戦的でありながらプレイしやすいゲームにする必要があります。ワークスペースで開く」をクリックすると、ワークフローが起動します。
図2- GitHub AIプレーヤー・オプション問題](https://assets.zilliz.com/Fig_2_Git_Hub_AI_player_option_issue_8292b811e9.png)
トリガーされると、Copilot Workspaceは課題をタスクとして受け取り、仕様またはアウトラインを生成します。現在のコードベースを見て、AIプレイヤーが存在しないことを確認します。そして、ゲームの将来の状態にAIプレーヤーを持たせるための修正を提案します。あなたは提案をクリックし、あなたの期待に沿うように編集することができます。
図3- Copilot Workspaceワークフロー仕様ステップ](https://assets.zilliz.com/Fig_3_Copilot_Workspace_workflow_specification_step_6932cf9802.png)
アウトラインに満足したら、Copilot Workspaceはそれを実装するための計画を生成します。計画では、新しいAIプレーヤー機能を組み込むために、index.jsx
ファイルとstyle.css
ファイルを変更します。 Copilot Workspaceは、仕様を実装するために各ファイルで行うすべての変更を一覧表示します。この段階で計画を編集したり、項目を追加したりできます。
図 4- Copilot Workspace ワークフロー計画ステップ](https://assets.zilliz.com/Fig_4_Copilot_Workspace_workflow_planning_step_47c8a94ccf.png)
計画を確認し、満足したら、計画したソリューションを実装するのが次のステップです。これには、提案されたファイルに提案されたコードを記述します。Copilot ワークスペースには、変更されたファイルが表示されます。表示された場所でコードを編集および変更できます。
図 5- Copilot ワークスペースのワークフロー実装ステップ](https://assets.zilliz.com/Fig_5_Copilot_Workspace_workflow_implementation_step_7d137edf57.png)
コードに満足したら、ライブプレビューを開いてゲームの外観を確認できます。Copilot Workspace環境内では、組み込みのターミナルを使用することで、別のターミナルや環境に切り替えることなく、コードの検証やテストを行うことができます。新機能(この場合はAIプレーヤー)に満足したら、次のステップとしてプルリクエストを開きます。
図6- Copilot Workspaceワークフロー プルリクエストの作成ステップ](https://assets.zilliz.com/Fig_6_Copilot_Workspace_workflow_Create_pull_request_step_89e0e3d04a.png)
このステップでは、コードをマージする前に、あなたやあなたのチームが最後に行った変更を確認できます。このアプローチは、Copilot Workspaceが開発者を置き換えるのではなく、プロセス全体を通して検証が必要であるため、開発者を補完するのに役立つことを示しています。
GitHub Copilot Workplace と Milvus による RAG 構築の合理化
GitHub Copilot Workspaceは、生成AIを使ったタスクからコードへの開発ワークフローを可能にすることで、生産性を向上させる。このCopilot Workspaceは、複雑なアプリケーションの構築をより簡単かつ効率的にします。
その好例がRAG(Retrieval-Augmented Generation)だ。これは、大規模な言語モデル(LLM)に外部知識を与えることで、その幻覚に対処するために設計された高度なテクニックである。RAGは、MilvusやZilliz Cloud(マネージドMilvus)のようなベクトルデータベースと埋め込みモデルで構築されたRetrieverと、LLMの2つの主要コンポーネントから構成される。
RAGアプリケーションの構築は複雑です。しかし、Copilot Workspaceを使えば、そのような作業は非常に合理化されます。
単言語アプリを多言語化するRAGタスクを見て、このワークスペースがどのように役立つかを見てみましょう。
現在モノリンガルでMilvusベクトルデータベースを使用したアプリにRAGコードがあります。BGE-M3](https://zilliz.com/learn/bge-m3-and-splade-two-machine-learning-models-for-generating-sparse-embeddings)のようなMilvusの多言語対応エンベッディングモデルを使用して、アプリを多言語に対応させたいとします。この機能を実装するようにCopilot Workspaceに指示できます。
Copilot Workspaceによる実装
Copilot Workspace を使用してこの機能を実装する方法を説明します:
1.タスクの作成:アプリを多言語化するためのGitHub課題を作成することから始めます。タスクは、(BGE-M3)多言語モデルを既存のRAGシステムに統合することです。
2.仕様:Copilot Workspaceはタスクを分析し、高レベルの仕様を生成する。多言語を処理するためにデータ処理パイプラインを更新し、多言語サポートのためにBGE-M3を利用するようにRAGシステムを変更する必要性を特定する。
3.プランニング:ワークスペースは次に詳細な計画を生成する。これには以下のようなステップが含まれる:
データ取り込みプロセスを更新し、多言語データを取り込む。
BGE-M3をサポートするために既存のMilvusセットアップを変更する。
BGE-M3の多言語機能を活用するためのRAGシステムの調整。
システムが多言語で動作することを確認するためのテスト。
4.コーディング:検証された計画に基づいて、Copilot Workspace が必要なコードを生成します:
データ取り込みスクリプトを更新し、多言語データを前処理してMilvusにインデックス付けします。
BGE-M3エンベッディングを多言語の類似検索に利用するようにMilvusコードを設定します。
多言語モデルを使用してMilvusに問い合わせ、関連する結果を取得するためにRAGシステムを修正する。
5.**レビューとテスト生成されたコードをレビューし、必要な調整を行い、変更をテストします。
6.プルリクエストとマージ:満足したら、チームと変更を確認するためにプルリクエストを開きます。最終確認後、変更がマージされ、アプリが多言語化されます。
結論
Idan Gazit 氏と Cole Bemis 氏によるプレゼンテーションは、GitHub Copilot Workspace の可能性を明らかにしました。この開発環境は、RAGのような複雑なソフトウェア開発を合理化する重要な一歩であり、生成的AIを使用したタスクからコードへの開発ワークフローを可能にすることで生産性を向上させる。
その他のリソース
読み続けて

Balancing Precision and Performance: How Zilliz Cloud's New Parameters Help You Optimize Vector Search
Optimize vector search with Zilliz Cloud’s level and recall features to tune accuracy, balance performance, and power AI applications.

AI Video Editing Software: Revolutionizing Video Tech Through Intelligent Search and Automation
Learn how to build AI-powered video editing tools using CLIP, ResNet, and vector databases. Discover implementation steps for intelligent search, automated tagging, and scalable video processing.

AI Integration in the Legal Industry: Revolutionizing Legal Practice with Data-Driven Solutions
Discover how AI and vector databases are revolutionizing legal work through advanced document processing, semantic search, and contract analysis capabilities.