GitHub Copilot RAG Extensionsで社内ナレッジをいい感じで活用したい

3.7K Views

February 18, 25

スライド概要

2025年2月18日発表資料
https://alterbooth.connpass.com/event/340695/

profile-image

name: - いけだしんのすけ work: - インフラ・情シス like: - バイク - 読書 - 映画 - アニメ - ゲーム

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

Copilot RAG Extensions で社内ナレッジ をいい感じで活用したい

2.

自己紹介 普段は 神奈川県 東京都町田市に生息

3.

本LTで話すこと 主にGitHub Copilot RAG Extensions の話をします。 なお作成手順などは割愛させて頂きストーリーだけお話します。 目的 1. 社内のナレッジをいい感じに活用したい 2. 普段からよく利用しているGitHub Copilot Chatに取り入れることで、無理なく 自然な利用促進ができるようにしたい 話さないこと • Copilot Extensionsの具体的な作成方法 • RAGの具体的な解説

4.

Copilot Extensions GitHub Copilotのエージェントやスキルセットを独自に作れる GitHub Copilot Chatの画面で@や#で独自に作 成したエージェントやスキルセットを呼び出せる ※作成方法は以下リンクを参照 https://docs.github.com/ja/copilot/building-copilotextensions/setting-up-copilot-extensions

5.

Copilot Extensions RAG-Extension Copilot ExtensionsでRAGエージェントを構築するサンプル https://github.com/copilot-extensions/rag-extension data/ 配下にMarkdownファイルを置い ておくと参照して回答してくれる。 Markdown

6.

まずはマークダウンファイルを生成する オルターブースのBacklogに格納されている対応履歴はナレッジの宝庫。 これらのデータをいい感じに生成AIにマークダウンで纏めてもらう。 QA QA QA QA お客様 社内スタッフ Markdown 質問: ×××× と いう事象が発 生しました。 調査をお願い します。 回答: 調査し たところ、 ××××は ××××で…

7.

2回ほどLLMを連鎖して文章を校正。 文体の揺れや構成のブレが無いように生成 # GitHub Enterprise 料金支払い体系 ## 課題の概要 GitHub Enterprise 料金に関しての質問 # GitHub Enterprise 料金支払い体系 ## 課題の概要 ## 実現したいこと GitHub Enterprise 料金に関しての質問 # GitHub Enterprise 料金支払い体系 部門ごとに使用した分だけの料金を支払えるようにしたい。請求はOrganization単位が一般的だが、理想としては ## 課題の概要 リポジトリごとに請求を分けたい。支払いを適切に分割したいと考えている。 ## 実現したいこと GitHub Enterprise 料金に関しての質問 部門ごとに使用した分だけの料金を支払えるようにしたい。請求はOrganization単位が一般的だが、理想としては ## 解決策 リポジトリごとに請求を分けたい。支払いを適切に分割したいと考えている。 ## 実現したいこと### 具体的な解決策 部門ごとに使用した分だけの料金を支払えるようにしたい。請求はOrganization単位が一般的だが、理想としては ## 解決策 新しい課金プラットフォームを導入することで、リポジトリ単位で明細や請求を分けることが可能になる。このプ リポジトリごとに請求を分けたい。支払いを適切に分割したいと考えている。 ラットフォームでは「コストセンター」機能を活用し、Organizationやリポジトリ単位でグルーピングしてコスト ### 具体的な解決策 を可視化する。さらに、Azureサブスクリプションによる支払いが可能で、サブスクリプションIDとグループごと 新しい課金プラットフォームを導入することで、リポジトリ単位で明細や請求を分けることが可能になる。このプ ## 解決策 の紐づけが実現できる。 ラットフォームでは「コストセンター」機能を活用し、Organizationやリポジトリ単位でグルーピングしてコスト ### 具体的な解決策 を可視化する。さらに、Azureサブスクリプションによる支払いが可能で、サブスクリプションIDとグループごと リンク: 新しい課金プラットフォームを導入することで、リポジトリ単位で明細や請求を分けることが可能になる。このプ の紐づけが実現できる。 ラットフォームでは「コストセンター」機能を活用し、Organizationやリポジトリ単位でグルーピングしてコスト - [新しい課金プラットフォームについて](https://docs.github.com/ja/enterprise-cloud@latest/billing/using-the-newを可視化する。さらに、Azureサブスクリプションによる支払いが可能で、サブスクリプションIDとグループごと billing-platform/about-the-new-billing-platform) リンク: の紐づけが実現できる。 - [コストセンターとビジネスユニットの紐づけ](https://docs.github.com/ja/enterprise-cloud@latest/billing/using- [新しい課金プラットフォームについて](https://docs.github.com/ja/enterprise-cloud@latest/billing/using-the-newthe-new-billing-platform/charging-business-units) billing-platform/about-the-new-billing-platform) リンク: - [コストセンターとビジネスユニットの紐づけ](https://docs.github.com/ja/enterprise-cloud@latest/billing/using- [新しい課金プラットフォームについて](https://docs.github.com/ja/enterprise-cloud@latest/billing/using-the-new### 質問と回答 the-new-billing-platform/charging-business-units) billing-platform/about-the-new-billing-platform) #### 質問1 - [コストセンターとビジネスユニットの紐づけ](https://docs.github.com/ja/enterprise-cloud@latest/billing/usingGitHub Enterpriseアカウントのライセンス料もリポジトリごとに振り分け可能か? ### 質問と回答 the-new-billing-platform/charging-business-units) - 回答:API経由でユーザーをコストセンターに割り当てることで可能。 #### 質問1 GitHub Enterpriseアカウントのライセンス料もリポジトリごとに振り分け可能か? ### 質問と回答 #### 質問2 - 回答:API経由でユーザーをコストセンターに割り当てることで可能。 #### 質問1 コストセンター数に制限はあるか? GitHub Enterpriseアカウントのライセンス料もリポジトリごとに振り分け可能か? - 回答:コストセンターの作成数に制限はない。ドキュメントには記載が無い情報のため問い合わせして確認 #### 質問2 - 回答:API経由でユーザーをコストセンターに割り当てることで可能。 コストセンター数に制限はあるか? ### 参考文献 - 回答:コストセンターの作成数に制限はない。ドキュメントには記載が無い情報のため問い合わせして確認 #### 質問2 - [GitHub新しい課金プラットフォームについて](https://docs.github.com/ja/enterprise-cloud@latest/billing/usingコストセンター数に制限はあるか? the-new-billing-platform/about-the-new-billing-platform) ### 参考文献 - 回答:コストセンターの作成数に制限はない。ドキュメントには記載が無い情報のため問い合わせして確認 - [コストセンターとビジネスユニットの紐づけについて](https://docs.github.com/ja/enterprise- [GitHub新しい課金プラットフォームについて](https://docs.github.com/ja/enterprise-cloud@latest/billing/usingcloud@latest/billing/using-the-new-billing-platform/charging-business-units) the-new-billing-platform/about-the-new-billing-platform) ### 参考文献 - [API経由でのユーザー追加について](https://docs.github.com/ja/enterprise-cloud@latest/rest/enterprise- [コストセンターとビジネスユニットの紐づけについて](https://docs.github.com/ja/enterprise- [GitHub新しい課金プラットフォームについて](https://docs.github.com/ja/enterprise-cloud@latest/billing/usingadmin/billing?apiVersion=2022-11-28#add-users-to-a-cost-center) cloud@latest/billing/using-the-new-billing-platform/charging-business-units) the-new-billing-platform/about-the-new-billing-platform) - [API経由でのユーザー追加について](https://docs.github.com/ja/enterprise-cloud@latest/rest/enterprise- [コストセンターとビジネスユニットの紐づけについて](https://docs.github.com/ja/enterpriseadmin/billing?apiVersion=2022-11-28#add-users-to-a-cost-center) cloud@latest/billing/using-the-new-billing-platform/charging-business-units) - [API経由でのユーザー追加について](https://docs.github.com/ja/enterprise-cloud@latest/rest/enterpriseadmin/billing?apiVersion=2022-11-28#add-users-to-a-cost-center)

8.

Copilot Extensions RAG-Extension を試す。 生成したマークダウンファイル 30個ほどを入れて、 どんな感じが試してみる。 ※一部システムプロンプトと モデルをGPT4に修正 Markdown

9.

サンプルコードそのままだと辛みが… 格納したマークダウンファイルが数個程度だと問題なく動作するが、 ファイル数が多くなると 429 Too Many Requests… サンプルではエージェント呼び出し時に、 マークダウンファイルを元にベクトルデータセットを作成している。 その際、1つ1つのマークダウンファイルに対して埋め込み処理をおこなっているた め、GitHub Copilot 埋め込みAPIのリクエストリミットに達してしまったよう。

10.

そこで Vector Search in Azure Cosmos DB for NoSQL ベクトルデータストアにCosmos DB のベクトル検索機能 (プレビュー) を使うことに。 CosmosDBにマークダウンファイルをチャンク&埋め込みして格納 https://python.langchain.com/docs/integrations/vectorstores/azure_cosmos_db_no_sql/ Markdown https://learn.microsoft.com/en-us/azure/cosmos-db/nosql/vector-search

11.

現在は全文検索の言語指定は英語のみ CosmosDBのベクトル検索では全文検索と合わせたハイブリッド検索も可能だが、 現在は全文検索の言語指定が “en-us” のみ。 全文検索も組み合わせる場合のCosmosDBの Indexing Policyはこんな感じになる。 現在は英語対応のみなため、今回は設定せず。 https://learn.microsoft.com/ja-jp/azure/cosmos-db/gen-ai/full-text-search

12.

Copilot Extensions RAG-Extension Copilot Extensions サンプルコード の一部を Cosmos DB ベクトル検索を使うよ うに修正して動作確認。

13.

My Knowledge Base Copilot Extension 零号機 が起動しました いい感じに回答してくれるようになりました ちゃんと適切に参照して回答 を生成してくれてますね Markdown ### 質問と回答 #### 質問1 GitHub Enterpriseアカウントのライセンス料もリポジトリごとに振り分け可能か? - 回答:API経由でユーザーをコストセンターに割り当てることで可能。 #### 質問2 コストセンター数に制限はあるか? - 回答:コストセンターの作成数に制限はない。ドキュメントには記載が無い情報のため問い合わせして確認

14.

めでたし。めでたし。

15.

??

16.

いつから、ヘーシャのGitHubは Teamプランだと錯覚していた…?

17.

GitHub Enterprise Managing Copilot knowledge bases GitHub エンタープライズプランでは リポジトリに格納してあるマークダウンドキュ メントをナレッジベースとして作成でき、Copilot Chatのコンテキストとして使用できる。 ちゃんと参照して回答してくれま した。 @github #kb と入力することで、 参照するナレッジベースを選択できる。 https://docs.github.com/en/enterprise-cloud@latest/copilot/customizing-copilot/managing-copilot-knowledge-bases

18.

GitHub Enterprise Managing Copilot knowledge bases マークダウンファイルの格納されている リポジトリ、ディレクトリを選択して作成 作成後、「Indexed」になれば使える。 (indexedになった後、少し時間を置いたほう が精度が良くなった感触) https://docs.github.com/en/enterprise-cloud@latest/copilot/customizing-copilot/managing-copilot-knowledge-bases

19.

これで良いじゃん。 Enterprise プラン最高かよ。

20.

とはいえ とはいえ、GitHub Copilot Extensions を自作したほうが自由度はも ちろん高い。 なので、より精度の高いRAGや、エージェント構築には Copilot Extensionsを自作したほうが良いかと思う。 (あとやっぱり自作したほうが楽しいよね)

21.

ご清聴有難うございました。