
こんにちは!ACESでR&D部門統括をしている久保(@seishin55)です。
ACESでは、事業としてAIを活用したプロジェクト推進(DXパートナーサービス)やプロダクト開発(AIソフトウェア開発)を行う一方、社内業務にも積極的にAIを取り入れています。今回は、その中でも他社にも応用可能と思われる「ナレッジ検索」の取り組みについてご紹介します。
当社ではドキュメント管理にNotionを採用しており、ドキュメント文化が根付いた環境の中で、体系的かつ豊富な情報が蓄積されています。この資産を最大限活用しない手はありません。また、チャットツールとして全社員にOpenAIのChatGPTを配布しており、日常的に業務で活用しています。そのため、ChatGPTから直接Notionの情報にアクセスできれば、より効率的に知識を引き出せる理想的な環境となります。こうした背景から、「ChatGPT上でNotionのデータを参照しながらナレッジ検索を実現する」ことが、本プロジェクトの出発点となりました。
あわせて、活用の窓口を一元化することも重視しました。個別のツールごとに専用のAIを作ると便利さはあるものの、利用者からするとどのAIに聞けばよいか迷う場面が増え、結果的に活用が広がりにくくなる場合もあります。その点、ChatGPTのような汎用的な対話環境を業務の中心に据え、必要なデータやシステムを裏側で繋ぎ込むことで、利用体験の一貫性を保つことによって、より良い体験の実現が期待されます。こうした発想もプロジェクトを支える背景のひとつです。
さらに、取り組みにあたっての前提として、Notionのデータ構造の特異性を認識する必要があります。Notionは人が使うには使いやすいインターフェースである一方で、AIが活用するにあたっては工夫が必要であるという点です。NotionのデータはAIに不向きであるという意見がSNS上では散見されます。例えば、以下の記事で説明されています。
今回の取り組みにおいては、Notionのデータ構造に対して処理を施し、AIに対しても読みやすい形に変換を行い、活用できるようにしています。当社では、Notionデータに限らず、AIが活用しやすいデータ形式に変換して、データを整備することは多く、この点の強みもあります。この記事は、いわゆるRAG (Retrieval-Augmented Generation)の取り組みにあたりますが、実際の利用にあたって十分な精度で活用を行うための、1事例としてもご参考にして頂ければと思います。
本記事では、実際の挙動をお見せした後に、構築した技術の全体像とそのポイントについて解説していきます。
まずは、実際の挙動です。ChatGPTに当社の強みについて質問した回答が以下になります。画像中にハイライトしている「エキスパートAI」という単語は社内で定義している単語になりまして、それを踏まえて回答を行ってくれています。回答のNotionマークを押すと回答に利用したNotionページを参照できるので、本当に正しいかどうかを人手で確認することも可能です。

ここで参照しているNotion記事の中には以下のように質問文にある「エキスパートAI」について記述してあるスライド画像が格納されており、今回はこれを参照して回答を作成してくれていました。

今回のシステム内では、画像データであってもデータ登録時に検索できるように処理(構造化)を行っており、検索することが可能になっています。この構造化処理を行わない場合、以下のような回答になるのですが、この場合、検索情報に必要な情報が不足していることに起因して、やや期待とズレた(断片的な)回答になってしまっていました。

今回紹介するシステムでは、構造化処理によって回答の質も担保しながらChatGPTを活用し、利用しやすいインターフェースを構築することを行っています。
今回ご紹介する機能の全体像を以下に示します。

今回は、ChatGPTをインターフェースとして活用しつつ、裏側でコネクター(次章で説明します)に必要な機能(MCPサーバー)を実装しています。ChatGPTの内部のAIモデルがそのコネクターを活用した回答を生成します。技術スタックとしては、Microsoft Azureを中心に構成しており、データの管理にはSnowflakeやAI Searchを利用しています。ChatGPTを活用することで、裏側の仕組みだけ考えればよく、比較的簡易に構築が可能です。次章では、この構成を実現するためのポイントについて説明していきます。
なお、今回ご紹介する機能には執筆時点で、プレビュー版(Azure FunctionsのMCP bindings)やβ版(ChatGPTのカスタムコネクター)など本番利用に推奨されない機能が含まれます。実際に対応が追いついていない箇所もいくつか見られたので、期待通りの挙動にならない部分も一定存在します。ご自身の環境で利用する場合には、これらを踏まえて検討を行って下さい。(注目される領域ではあるので、早期に対応されることを期待はしています。)
まず、今回のシステム構成で重要なポイントであるChatGPTの「コネクター」機能を説明します。この機能は、ChatGPTが外部のデータソースを活用してチャットができるようになる機能になります。例えば、デフォルトで、Google DriveやGmailと連携する選択肢があります。これらを選択することで、チャットを行う時に、適宜AIが判断して情報参照してくれるようになります。
以下の記事がコネクター機能についての公式記事になります。プランによって使える範囲が異なるので、使いたい場合は確認が必要です。また、コネクター機能は執筆時点で発展途上で更新も早いため、新規のコネクターなど随時追加されています。時折確認してみると機能アップデートされているかもしれません。
ここまでは、ChatGPT内で事前に用意されたコネクターの話でしたが、このコネクター機能の連携先は自前で用意することも可能です。今回はこの機能を利用しました。このように、自前で用意したデータに対してアクセスできるようにするオプション機能を「カスタムコネクター」といいます。この機能の仕様には注意すべき点があるので、これは次節に説明します。
なお、実はデフォルトのコネクターとしてNotionも対応されていまして、こちらを活用することで、基本的なNotionの参照は実現できます。便利な機能なのでお手軽にまずは利用されることをおすすめします。一方で、データの検索性能はサービス(Notion⇔ChatGPT)側に依存するところではありますので、内部的な検索性能を更新することはできません。後述する構造化の処理を挟み、性能の改善を行いたかったため、今回はカスタムのコネクターとして独自にデータソースを用意することとしました。例えば、2章でお示しした実際の動作で行ったような画像データに対する検索性能など検索できる性能が拡張されています。*1
カスタムコネクターを使えば、独自に用意したデータを活用できることは前節で触れました。ここでは、カスタムコネクターについて深堀ります。ChatGPTをカスタムコネクターに接続するためには、「MCPサーバー」を立てる必要があります。AIの界隈では「MCP」は一般的な単語になりつつありますが、MCPとは、Model Context Protocolの略であり、AIエージェントにツールを持たせるための標準規格になります。この規格に則って開発を行うと、同じ規格に対応したクライアント(ここではChatGPT)に簡単に接続できます。ChatGPTのカスタムコネクターはこの規格に対応しており、MCPサーバーを用意することで接続することが可能です。(MCPについてもっと知りたい方は検索してみると丁寧に解説してある記事も出てくるかと思います。)
そのため、カスタムコネクターを利用するためには、MCPサーバーを立てる必要があります。MCPサーバー自体は任意にAIエージェントが利用するツールを作成することができるのですが、カスタムコネクター機能は情報検索の利用に制約が掛かっておりまして、使えるツールに制約があります。具体的には、 search と fetch のツールのみが利用可能で、それぞれ、テキストから検索、と、ドキュメントIDから詳細情報の取得、の機能になります。仕様に則って、この2つのツールのMCPサーバーを用意することによって、ChatGPTに接続することが可能です。カスタムコネクターの詳細については以下の記事にありますので実際に取り組む際はご参照下さい。
なお、このカスタムコネクターはβ版であることには注意が必要です。例えば、本来であれば、作成したカスタムコネクターをチーム全体に展開したいのですが、β版のため制限が掛かっています。今後開発が進み、正式リリースされることが待たれます。
4.3. MCPサーバーの構築
では、MCPサーバーを構築することを考えます。MCPサーバーの構築方法自体は様々あるので、手段はどのようでも構いません。ここでは、MCPサーバーを簡易に構築することが可能なAzure FunctionsのMCP機能で開発を行いました。これを活用すると、基本的に必要となるツールの関数を記述するだけでMCPサーバーを作成することができます。以下にドキュメントがあるのでこちらを参照できます。
本記事では、ChatGPTに接続しますが、MCPは標準規格のため、例えば、ClaudeやCursorなどMCPに対応しているサービスでも利用することも可能です。また、執筆時点においては、本機能はプレビュー版になりますが、先日のAzure OpenAI Service Dev Dayでロードマップも公開されており、Streamable HTTPとよばれる通信規格への対応なども含めて着実に対応される模様です。
ChatGPTのカスタムコネクターの接続はOAuth認証にも対応がされています。今回はMCPサーバーにOAuthの実装を施すことも考えました。MCPサーバーの認証として、API Managementを使う構成を公式で公開されていたので、これを活用しました。つまり、API ManagementをMCPサーバーとChatGPTの間に挟むことで認証の機能を搭載しました。詳細については以下のドキュメントが参考になります。
4.4. Notionとデータ管理
前節までで、ChatGPTと独自データの連携の方法は説明しました。最後に、独自データ側の整備についても説明したいと思います。システム全体像でお示ししたように、対象となるデータソース(ここではNotion)をSnowflakeを介してAzure AI Searchに保存することで、検索対象のデータとして登録することができます。自動で定期的に同期を行いつつ、データを最新に保つことで、AIエージェント側はAzure AI Searchの中のデータを参照するだけになります。
さて、この登録するデータですが、Notionデータを検索しやすい形に独自の変換(構造化)を施しています。まず、NotionのAPI経由で取得できるデータは個別の記事の全文が取れるというわけではなく、ブロックとよばれる記事ページ単位より細かい単位で取得されます。そのため、データの取得後にページ全体をAIが理解しやすいMarkdown形式でまとめ直しています。また、それに対して構造化処理をさらに行っており、例えば、画像データを説明する文章に変換するなど、AI、人にとっても分かりやすい形式に変換しています。これらを最終的には検索しやすい形式、つまりチャンク化(文章を適切に分割)等を行った上で、Azure AI Searchに格納しています。
冒頭でお見せした実際の挙動の中で参照したスライド画像は以下のような形に変換を行って、データの保存を行っています。
# ACES のエキスパート AI ChatGPT などの汎用LLM(=優秀な新卒)では対応が難しい、業界・業務の専門知識や企業独自のナレッジを融合し、個社の強みと企業特性を踏襲した「エキスパート AI」を開発しご提供します。 ## 汎用的な生成 AI - 例: OpenAI など - 「優秀な新卒AI」が業務を部分的に効率化 - 教科書に記述されている知識 - インターネットに公開されている情報 - 一般論な考え方 ### 対応可能な業務 - 一般に公開されている情報を調べる業務 - 与えられた情報単体を整理する業務 - 一般論や型に沿ってアイデアを列挙する業務 ## エキスパート AI /ACES - 個社の強みと企業特性を踏襲した AI 開発 - お客様の生の声、リアルな情報 - 企業独自の業務の進め方やノウハウ - 自社内に蓄積する情報やナレッジ ### 対応可能な業務 - 業界特有のルールや暗黙知を踏まえた業務 - 自社に蓄積されたナレッジを理解した業務 - 属人的なノウハウを必要とする高度な業務
画像の場合、単に文章化するだけではなく、全体的な位置関係も踏まえて構造的な文章にする必要があるため、一定の工夫が必要な場合があります。今回はこのような構造化処理を行うことによって、回答精度を向上させています。
本記事では、ACESにおけるAI活用事例の一つとして、Notion × ChatGPTによる社内ナレッジ検索の取り組みをご紹介しました。この仕組みが情報資産を最大限に活かし、業務効率を高める上での参考になれば幸いです。今後も、社内外に役立つ取り組みやノウハウを積極的に発信していきたいと考えています。
関連する取り組みの紹介ですが、今回ご紹介したChatGPTでの利用の他に、同様のデータを参照するボットも社内Slack上でも稼働しています。AIエージェントと人が協働する場をつくるために、どのようなインターフェースや仕組みが有効かを試行しながら、最適な形を探っています。また、近年注目される「コンテキストエンジニアリング」の概念とも関連し、RAGやメモリ管理といった技術の活用も進めていきます。
AIの領域は、LLM(大規模言語モデル)の進化を背景にかつてないスピードで変化しています。大規模モデルの性能向上だけでなく、それを活用するためのインフラやツールも日々進化を続けています。ACESでは、この変化をいち早く捉え、スピード感を持って試行・導入を重ねることで、より大きな価値提供につなげていきたいと考えています。
ACESでは、AI活用を共に推進するパートナーとしてご支援しています。RAGの精度改善をはじめとする各種ソリューションや、業務改善や事業開発など、ニーズに合わせたサポートをご提供しています。ぜひ下記ページよりお気軽にご相談ください。
また、ACESでは共にAI活用を進めていく仲間も募集しています。ご興味をお持ちの方は、ぜひお問い合わせください。
コメント