URL共有機能の実装と活用:社内生成AIの普及を促進するツール
はじめに
本記事では、弊社が開発を進めている全社向けの生成AIチャットサービスの一部機能である「個人プロンプトURL共有機能」について紹介します。この機能は、個人のテンプレートプロンプトを他のメンバーと手軽に共有できるようにし、社内の生成AI活用をさらに促進する目的で開発されました。
なお、リリース当初の取り組みに関する詳細は「Azure OpenAI Serviceで社内版ChatGPTのChatPCAを構築した話」に記載していますので、ご関心のある方はそちらもご覧ください。
目次
1. URL共有機能の背景

社内チャットアプリでは、利用者がよく使用するプロンプトをテンプレートとして保存する機能が以前から存在していました。しかし、テンプレートの共有に関しては、Microsoft Entra ID(旧:Azure AD、以下Entra ID)で紐づく個人の利用に限定されており、部署や事業部全体で有効なプロンプトを手軽に共有する方法がありませんでした。
その対応策として、SharePoint上で各事業部が管理しているポータルサイト上でプロンプトを管理し、必要に応じてコピー&ペイストして使用する方法が採られていましたが、この作業が手間となり、効率的とは言えませんでした。また、その利用状況をデータとして管理しにくいため、活用状況の可視化も困難でした。このため、各個人が一からプロンプトを設定し直す手間や、ノウハウの共有が非効率的という課題が浮上していました。
理想的なUXとしては、利用するサービス(今回の場合、生成AIチャットサービス)内に全ての機能が閉じていることが求められます。これにより、ユーザーは外部ツールに依存することなく、プロンプトの作成、共有、活用までをサービス内で完結でき、操作の手間や手順を大幅に削減することができます。これに加えて、機能がサービス内に閉ざされることで、より多くの利用データを取得でき、これらのデータを基にしたデータドリブンな推進施策の策定にも役立てることが期待されます。
2. 機能概要
URL共有機能は、この課題を解決するために導入されました。この機能では、テンプレートプロンプトをURL形式で生成し、そのURLを通じて他のメンバーに共有できます。具体的には、次のような流れです:
- テンプレートの作成:個々のユーザーが自分のプロンプトテンプレートを作成し、それに名前と説明を付与して管理。
URLの生成:テンプレートごとにURLが発行され、他のメンバーと共有可能。URLの形式は次のようになります。
https://${ドメイン}/${APIエンドポイント}?sharedPromptId=${共有プロンプトID}
このURLを通じて、他のメンバーが共有プロンプトを簡単に利用することが可能になります。
Next.jsのAPI Route:URL共有機能は、Next.jsのAPI Routeを使用して実装されています。これにより、ユーザーは生成されたURLをクリックするだけで、簡単にプロンプトを利用できる環境を整えています。
アクセス解析:Cosmos DB上で共有プロンプトの利用状況を追跡し、どのテンプレートがよく利用されているかを把握。
この機能により、組織内でのプロンプトの共有が容易となり、効率的に情報や知識が伝達されるようになりました。
3. 実装の工夫と課題
URL共有機能は、個人のEntra IDに紐づいたプロンプト管理と、URL共有のシンプルなインターフェースを組み合わせて実現されています。また、現状ではプロンプトは全社向けにのみ共有可能で、部署単位に限定して共有することはできません。このため、URLを発行すると全社員がそのプロンプトを利用できる仕組みになっています。
また、URLに含まれるプロンプトIDを追跡し、人気の高いテンプレートを分析する仕組みも組み込まれており、これにより業務改善や効率化施策を推進するデータが得られます。
4. Cosmos DBにおけるデータ構造

- 共有プロンプトドキュメント
{ "id": "shared_prompt_id_1", "prompt_id": "prompt_id_1", "access_count": 0, ... }
- id: 共有プロンプトのID
- prompt_id: 元となるテンプレートプロンプトのID
- access_count: この共有プロンプトがアクセスされた回数
このドキュメントは、URL共有の基礎となる情報を持ち、各プロンプトがどの程度利用されているかを追跡します。アクセス回数(access_count)を通じて、どの共有プロンプトが頻繁に使用されているか把握することができます。
- 個人テンプレートプロンプトドキュメント
{ "id": "prompt_id_1", "source_prompt_id": "prompt_id_1", "shared_prompt_id": "shared_prompt_id_1", ... }
- id: 個人が作成したプロンプトのID
- source_prompt_id: オリジナルのテンプレートプロンプトのID
- shared_prompt_id: 関連する共有プロンプトのID
このドキュメントは、個人のテンプレートがどの共有プロンプトに由来しているかを追跡するためのもので、共有プロンプトから派生して使用されたことがわかります。これにより、どのテンプレートがURL共有から派生して利用されているかを追跡できます。
- チャット回答ドキュメント
{ "id": "chat_message_id_1", "prompt_id": "prompt_id_2", "source_prompt_id": "prompt_id_1", "shared_prompt_id": "shared_prompt_id_1", ... }
- id: チャットメッセージのID
- prompt_id: チャットで使用されたプロンプトのID
- source_prompt_id: オリジナルのテンプレートプロンプトのID
- shared_prompt_id: 関連する共有プロンプトのID
チャット回答ドキュメントでは、実際にチャットで利用されたプロンプトが記録されています。どのテンプレートプロンプトから生成された回答なのか、さらにそのテンプレートがどの共有プロンプトに由来するのかも追跡できます。これにより、どのプロンプトがどのチャットで使用されているかの履歴を管理できます。
このように、URL共有機能を通じて得られるデータは、テンプレートの利用状況や人気度を把握するための重要な情報源となります。特定のテンプレートがどれくらいの頻度で使用されているか、またどのテンプレートが他のプロンプトのベースになっているかを詳細に追跡することで、今後のデータドリブンな施策に活かせる分析が可能です。
これにより、人気のあるテンプレートプロンプトを特定し、推進施策の策定や改善に役立てることができます。
5. 推進施策への活用
Cosmos DBで収集されるデータは、プロンプトの利用状況を分析し、具体的な施策に活かすために非常に有用です。たとえば、access_countを利用することで、どのプロンプトが頻繁に使用されているかを把握できます。このデータを基にして、人気のあるテンプレートプロンプトを特定し、業務全体での推奨プロンプトとして展開することで、組織全体の業務効率化に貢献できます。
さらに、人気の高いテンプレートプロンプトを初期画面でランダムに表示する機能も考えられます。これにより、新しいユーザーやプロンプトに慣れていないユーザーが、すでに社内で実績のあるプロンプトを手軽に試すことができるため、利用促進と知見の共有を加速させることが期待されます。特に、頻繁に利用されるプロンプトが初期画面に含まれることで、効率的な業務推進に向けたさらなる活用が見込めます。
このように、テンプレートの利用データは、施策の策定や改善に向けた重要な指標として活用できます。
6. 今後の展望
今後は、テンプレート共有の範囲を拡大し、部署単位での限定共有が可能になるような機能改善も視野には入れられます。また、共有されたプロンプトの利用率を元にした自動化の改善や、テンプレートの品質向上を目的とした分析機能の強化も予定されています。これにより、より多くのメンバーが生成AIを活用しやすくなることが期待されています。
7. まとめ
URL共有機能により、個人が持つ知識やノウハウを手軽に他のメンバーと共有でき、チーム全体の業務効率向上が見込まれます。今後の機能拡充や改善によって、さらに幅広い利用シーンで役立つことが期待されます。

梅本 誠也 Seiya Umemoto
デジタルテクノロジー統括部 生成系AIエンジニアリング部 生成系AIエンジニアリンググループ リードエンジニア
韓国で5年間正規留学し、その間に業務委託で機械学習とデータエンジニアリング方面の開発を経験。新卒でアプリケーションエンジニアとしてフロントエンド、バックエンド、インフラを幅広く経験。パーソルキャリア入社後はデータエンジニアとして、社内のデータ分析基盤の構築と運用保守を担当。一方で、生成系AIを用いたアプリケーション開発にも携わっている。
※2024年10月現在の情報です。
