
こんにちは。エンジニアの和田です。
先般、SalesforceにてIntelligent ContextがGAとなりました。Intelligent Contextがどういうものであるかについては、Agentforce 360の発表としては、以下のように書かれています。
Intelligent Context ensures your AI agents are deeply grounded in the complex, unstructured data of your business. https://www.salesforce.com/agentforce/what-is-new/
つまり、PDFなどの非構造データを、AIエージェントにうまく参照させるための機構、ということになります。
このページを参照する限り、非構造データをLLMなどの力を用いてRAGに適した形態へ変換し、図表なども適切に解釈してくれる機能のように見受けられます。しかし、実際にはどのような流れで構築し、どのような機能があり、どの程度有用なものなのでしょうか。今回はこれらの観点で深掘りしていきたいと思います。
以下の要領で解説していきます。
- 基本的な使い方
- 留意点
- 設定内容の解説
- クレジット消費
- 現時点でどの程度有用か?
なお、本記事の内容は2025年12月現在のものであり、今後のアップデートにより変更の可能性があることにご留意ください。
基本的な使い方
基本的な使い方の詳細はSalesforce サポートの該当ページに記載されていますので、ここでは流れを簡単に紹介します。
まず、Intelligent Contextを新規作成して名前を入力すると、PDFのアップロード画面になります。
PDFをアップロードすると、以下の画面になります。

左側の上部にあるEdit Configurationを選択すると、各種設定ができるようになります。設定項目は以下の通りです。
- Select Search Index Type
- Set Parsing Options
- Set Preprocessing Options
- Select an Embedding Model
- Set Data Chunking Rules
このうち、新機能はParsing OptionsとPreprocessing Optionsであり、他の設定は従来のSearch Indexにも存在したものです。このParsing OptionsとPreprocessing Optionsの設定が非構造データをうまく抽出する肝となります。 この2つの機能に関しては後述します。
これらの設定は手動で行うこともできますし、PDFをアップロードした直後であれば、右側の「Set up my configuration using smart defaults」を選択して、AI Smart Defaultsを利用して自動設定することもできます。
設定を適用すると、chunk例が真ん中に表示されます。右側で簡易的なRAGのテストをすることも可能です。

現在の設定でうまくいかない面があれば、適宜左側で設定を修正して、適用を保存すれば、新しくchunk例を確認することができます。
この設定で問題なければ、右上のPublishを選択して、既存のUDMOを選択して、現在の設定でSearch Indexを作成することになります。
一旦Search Indexを作ってしまえば、従来のSearch Indexと同様にRetrieverを作成すれば、RAGできるようになります。
留意点
Intelligent Contextを利用する上で留意すべき点を解説します。
非構造データの抽出機能自体は実はIntelligent Contextを使わなくても利用可能
Parsing OptionsとPreprocessing Optionsが非構造データをうまく抽出する肝となる機能だと述べましたが、実はこれらの設定項目は、Intelligent Contextの画面を開かなくても、Search Indexの新規作成画面でも設定できるようになっています。
では、Intelligent Contextとは結局なんなのか、という話になりますが、上記で貼ったスクリーンショットのように、設定を変えながらchunkのプレビューをして、最適な設定を見つけていくためのプレイグラウンドのことである、と言えます。
Intelligent Contextという名称からは、それ自身が非構造データを抽出するための機構であるかのような印象を受けますが、厳密には、非構造データをうまく抽出させるための機能はSearch Index側にあり、Intelligent Contextはあくまでその設定をやりやすくするためのプレイグラウンド、という位置づけになります。
現に、Parsing OptionsやPreprocessing Optionsに関するリリースノートではIntelligent Contextとは独立に書かれており、あくまで"This feature is also available in Intelligent Context."と述べているに過ぎません。
また、Intelligent Contextに関するリリースノートを見ても、タイトルは"Simplify Search Index Creation and Testing with Intelligent Context"とあり、Intelligent ContextはあくまでSearch Indexの作成を手助けするもの、ということがわかります。
そうなると、「いかにもIntelligent Context自身が非構造データをうまく抽出する機構であるかのような発表をSalesforceがしていたのは何だったのか」という疑問が生じるかもしれません。しかし非構造データを扱うなら事実上Intelligent Contextを用いることがスタンダードになることから、大まかに言えば、Intelligent Contextは非構造データを抽出する機構であると捉えても完全な間違いではないのかもしれません。また、発表の場においては、Intelligent Contextの画面を見せることで、非構造データを扱えるようになったことを視覚的にアピールする狙いもあったものと推測されます。
Intelligent ContextでPDFをアップロードしただけでは、RAG用の正式なPDFアップロードにならない
Intelligent ContextにはPDFのアップロード機能があるため、これでRAG用のPDFがアップロードできたかのように見えますが、実際には違います。
どういうことかというと、Intelligent ContextでのPDFのアップロード機能はあくまでプレビュー用なので、正式にRAG用として用いるPDFは別途アップロードする必要がある、ということです。
Intelligent ContextでPublishできるのは、あくまでSearch Indexの設定のみであり、PDF本体は含まれません。 Publishする際に、紐づけるUDMOを指定することになりますが、このUDMOにPDFを別途入れる必要があります。
UDMOにPDFを入れる方法はいくつかありますが、一番簡単な方法はData Libraryを用いる方法です。Data Libraryを作成すると、自動的にUDLO/UDMOが作成され、ファイルアップロードを行うことができます。同時に自動的にSearch Indexが作られることがあります*1が、Intelligent Contextの画面で用いた設定を活用したければ、それとは別にSearch IndexをこのUDMOに対してpublishすることになります。
Intelligent Contextで表示されるchunkがそのまま正式なchunkとしてvector DBに保存されるわけではない
Intelligent Contextの画面の中央にはchunkのプレビューが表示されますが、このchunkがそのままvector DBに正式に保存されるわけではない点に注意が必要です。
前述の通りIntelligent ContextでPublishできるのはあくまでSearch Indexの設定のみであるため、chunkの情報を直接含むわけではありません。
正式なchunkは、Search Indexを作成し、UDMOに保存されているデータで実行したときに初めて作られます。この時のchunkは、Intelligent Contextで表示されたプレビューと同一である保証はありません。特に、LLMを含む処理の場合には、Intelligent Contextで表示されたchunkのプレビューとは異なる可能性が高くなります。
したがって、Intelligent Contextで表示されたchunkのプレビューというのはあくまで参考ということになります。
これでは、プレビューの意味がないのではないか、という気もしてきます。
ただし、Salesforceの想定するIntelligent Contextの使い方を考慮すると、必ずしもそうとも言いきれません。想定する使い方は、以下の記述で確認できます。
Before you create a full search index, test a search configuration on a small set of unstructured data, such as PDFs, audio files, and other supported file formats, in the Intelligent Context workspace. https://help.salesforce.com/s/articleView?id=data.c360_a_intelligent_context.htm&type=5
つまり、いきなりフルのSearch Indexを作る前に、少ない単位で設定を検証する、というのが本来の使い方のようです。
例えば、PDFファイルが100個あるとしましょう。いきなりこの全てにSearch Indexを適用して、chunkを確認したりRAGの動作確認をしたりして、そこで初めて設定の問題点を確認して修正していくのでは、コストが膨大になります。
そこで、いきなり100個に適用するのではなく、Intelligent Contextを用いて代表的な(例えば)5個のファイルで確かめれば、コストを最小限に抑えられます。
この用途であれば、Intelligent Contextで表示されるchunkが正式なものでない点もある程度は納得できますし、全件に適用する前に傾向だけでも把握できるのは有用です。
とはいえ、最初から少量のPDFしか入れる予定がないケースもあり、「プレビューの通りに保存されてほしい」と感じるのも自然だと思います。今後より使いやすくなることを期待したいです。
設定内容の解説
Intelligent Contextの設定項目で、非構造データからの抽出の肝となるのはParsing OptionsとPreprocessing Optionsだと述べました。ここではこの2つの設定項目について解説します。
この2つの設定項目は独立に設定できるわけではなく、設定できる組み合わせが決まっています。設定できる組み合わせは以下の通りです。
- Default Parsing + No Preprocessing (以下Default)
- LLM-Based Parsing + No Preprocessing (以下LLM-Based Parsing)
- Docling Parser + No Preprocessing(以下Docling Parser)
- Default Parsing + LLM-Based Preprocessing (以下LLM-Based Preprocessing)
- Default Parsing + LLM-Based Preprocessing + Image Processing (以下Image Processing)
Image ProcessingはIntelligent Contextの画面上はPreprocessingの項目にトグルスイッチとして用意されているものです。Intelligent Contextの画面上では、Default Parsing + LLM-Based Preprocessing以外の組み合わせでもImage Processingをオンにすることは可能ですが、実際にやってみるとchunkが生成されないため、事実上Default Parsing + LLM-Based Preprocessingの場合にしか適用できないと考えてよいでしょう。
以下、一つずつ見ていきます。
Default
これは従来の処理方法です。見た目の文字をそのまま抽出します。
表などは左から順に単純に語句を並べた形になりますし、スライドではページ番号などもそのまま抜き出してしまうため、RAGとして使うには難があります。
しかし、使いどころが全くないわけではありません。その使いどころとは、完全に文章のみでフッターなどもない場合です。この場合は、下手にLLMを使う処理を用いて改変されてしまうリスクを負うよりも精度が高くなることがありますし、LLMを使わない分コストも安くなります。
LLM-Based Parsing
LLMを用いて文章全体の構造を把握して処理してくれる設定です。例えば、スライドに本質に関わらないフッター等がついている場合、それらを除去することを意図しています。
LLMを用いる際のプロンプトはデフォルトのものが用意されていますが、自由に変更することができます。特に、デフォルトのままだと英語でchunkが作られてしまうので、もし日本語でchunkを作りたい場合は、プロンプトの末尾に
Please use Japanese only and keep the original text as it is.
などといった記述をする必要があります。
なお、後述するLLM-Based Preprocessingと比較した場合、こちらは図表の読み取りよりも文章構造の把握が主目的とされているものの、実際に試してみると、図表の読み取りもそこそこうまくいきます。
Docling Parser
非構造データの読み取りに際して、LLMの代わりに、OCRを使うものです。具体的には、こちらのOSSを用いています。
表を読ませると、Markdownの表として抽出し、Defaultよりはきれいに抽出しているようには見えますが、一方で、Markdownの表として抽出するのはVector DB生成にあたって有用かというとやや微妙で、もうちょっと意味付けした形で抽出してほしければこの設定は選ばない方がいいということになります。 また、フッター除去処理なども行われません。
LLM-Based Preprocessing
LLMを用いて図表から文脈やデータを抽出する設定です。LLM-Based Parsingと同様にプロンプトを自由に編集することができます。 なお、デフォルトのプロンプトはLLM-Based Parsingと同じのようです。LLM-Based Parsingと同様に、日本語でchunkを作成したい場合はその旨の指示を追加する必要があります。
LLM-Based Parsingと比較して、こちらは文章構造の把握よりも図表の読み取りを目的としたものとされていますが、実際には、LLM-Based Parsingのようにフッター除去などもしてくれることがあります。
Image Processing
画像をテキストに変換する設定です。画像を絵や写真などと捉えて、その詳細な解説をしてくれます。
しかし、以下のような欠点があります。
- プロンプトを調整できず、英語出力しかできません。
- PDFの文章の途中に画像がある場合、画像以外の文章部分のパースがうまくいきません。
- PDF中に含まれる複数の画像のうち、どの画像をImage Processingにかけるかを選択できません。ゆえに、必ずしも解説が要らない画像を詳細に説明してしまうことがあります。(手元の実験では、スライドのPDFを入れた際に、スライドに含まれていた当社ロゴについて殊更に詳細に説明するような文がchunkに入りました)
したがって、この設定が生きるような使い道は、以下の条件を満たす場合くらいしかないと思われます。
- 英語出力でも許容できる。
- 画像ないし写真のみがあるPDFで、かつその全ての画像・写真について内容を詳細に記述してほしい。
AI Smart Defaultsについて
ここまでParsing OptionsとPreprocessing Optionsの設定内容の説明をしてきましたが、前述の通り、これらの設定を自動的に選択する、AI Smart Defaultsというものがあります。
精度はそれなりで、文章のみのPDFにはDefault、図表ありのPDFにはLLM-Based Preprocessingの設定になることが多い傾向にあります。
AI Smart Defaultsは、Parsing OptionsとPreprocessing Options以外の設定項目も自動的に選択されます。これもそこそこの精度に思えます。
ただし、LLM-Based ParsingやLLM-Based Preprocessingが選ばれた場合は、デフォルトのプロンプトが使われてしまうため、chunkの出力は英語になってしまいます。日本語で出力したい場合は手動でやり直しになるので、余分なクレジットを消費することになります。したがって、ある程度最適な設定がわかっている場合には、AI Smart Defaultsを使わず手動で設定してしまった方がいいかもしれません。
消費クレジット
Intelligent Contextの関与する機能における消費クレジットの区分は、以下の通りです。
- Parsing・Preprocessing
- LLMを使った部分: Data ServicesのIntelligent Processing
- LLMを使わなかった部分: Data ServicesのUnstructured Data Processed
- Chunking・Vectorization: Data ServicesのUnstructured Data Processed
詳しくは、サポートページをご確認ください。
このサポートページの記述によると、LLM-Based ParsingとLLM-Based Preprocessingの違いとして、以下が挙げられています。
- LLM-Based Parsing: ドキュメント全体にLLMの処理が入るため、全体の分がIntelligent Processingとしてカウントされる
- LLM-Based Preprocessing: 図表部分のみLLMの処理が入るので、その部分のみIntelligent Processingとしてカウントされ、それ以外はUnstructured Data Processedとなる
後述しますが、乗数はIntelligent Processingの方が大幅に大きいため、この記述だけを見ると、LLM-Based Preprocessingの方がコストを抑えられるように見受けられます。
しかし、LLM-Based Preprocessingの項で述べたように、実際にはLLM-Based Preprocessingであっても、フッターの除去等、ページ全体をLLMで処理したような形跡が窺えることから、必ずしも真に図表部分のみLLMの処理が走るとは限らない可能性がある点には注意が必要です。
乗数に関してはサポートページをご確認いただければと思いますが、2025年12月現在の値としては、1MBあたりIntelligent Processingで750、Unstructured Data Processedで60(いずれも本番環境)と大幅に異なります。Intelligent ProcessingはLLMの処理が走る分高くなるのは当然ですが、むやみにLLMの処理を実行すればよいわけではなく、適材適所に用いるのがよいことがわかります。
現時点でどの程度有用か?
Intelligent Contextの実力がどれほどかが気になるところですが、いくつかのパターンのPDFを用いながらさまざまな設定で確かめてみた結果、以下の結論を得ました。
- LLM-Based ParsingやLLM-Based Preprocessingを用いた場合、簡単な図表であれば、そこそこ解釈して記述してくれるし、スライドのフッター等も除去してくれる。しかし、少し複雑になると厳しい。
例えば、入れ子のない単純な表であれば、項目との対応付けをうまく解釈して記述してくれることがあります。しかし、例えば複数の関係性がある図では全ての関係性を記述できなかったり、入れ子が複雑になっている表では全ての入れ子を反映できなかったり、ページをまたぐ表ではまたいだ部分の補完がうまく機能しなかったりするなど、少し複雑な図表になると適切な解釈で記述することが難しくなります。
これは、LLM-Based ParsingやLLM-Based Preprocessingで用いるLLMモデルがGPT-4o固定であることが大きそうです。
LLM-Based ParsingやLLM-Based Preprocessingで用いるLLMモデルは、Intelligent Contextの画面からは確認できませんが、直接Search Indexの設定画面を開くと、LLMモデルの選択項目があり、GPT-4oしか選べない状態になっています。
ここは、最新モデルや、Gemini等の他社のモデルを選択できるようになると改善する可能性はあります。
また、文章部分が画像になってしまっているPDFや、テキスト状態にはなっているものの文字情報との対応付けがうまくなされていないPDF*2の場合、文字の解釈がおかしくなることがあるので、PDFを投入する前に事前にチェックしたいところです。この現象が起きるのは文字を画像として解釈しているからと思われますが、これもGPT-4oではなく最新のモデルを選択できるようになれば、改善する可能性はあります。
「Intelligent ContextでGPT-4oしか使えないのであれば、自前で最新のモデルを使ってPDFを処理して、テキスト化したものをData 360(旧Data Cloud)に入れた方がいいのでは?」と感じる方もいらっしゃるかもしれません。
確かに、数ファイルだとその手段もあるかもしれませんが、例えばファイルが数百とあって、どのファイルも似たような形式かつ簡単な図表止まりである場合には、サンプルとして数ファイルを抽出してIntelligent Contextで調整を行い、Search Indexとしてpublishした暁には数百のファイルに適用させる、という使い方はできるのではないかと思います。
繰り返しにはなりますが、今後Intelligent Contextで最新のモデルが使えるようになれば有用性が上がりそうな部分ではあるので、今後のアップデートに期待したいところです。
ところで、Intelligent Contextは「PDFといった非構造データをAIエージェントにうまく参照させる」ことを意図したものでした。その意味で言うと、そもそも、「図表が含まれるデータに対して、その解釈を文章の形で記述し、それをchunk化・vector化したもの」が、果たして「AIエージェントにうまく参照させる」ことに役立つか、ということは気にしておいてもいいかもしれません。LLMモデルが最新になれば「図表の解釈を文章化する」部分は改善されるかもしれませんが、そもそも「文章化」自体(ないし、その文章のvector表現を用いてRAGを行うこと)に限界があったりしないか、ということです。場合によっては、意味付けをグラフ化して保存し参照するGraphRAGなどの技術が必要になってくる部分かもしれません。この辺りのアップデートも今後期待したいです。
おわりに
以上、Intelligent Contextがどういう使い方で、どういう機能があり、現時点でどこまで有用なのかを見てきました。
非構造データをLLMで解釈させる、という発想は悪くないと思うのですが、もう少しアップデートがあるとより活用の幅が広がる可能性があると考えられます。特に、最新モデルへの対応は大いに期待したいところです。
最後までお読みいただきありがとうございました。
*1:この時のSearch Indexは、10MB以下のPDFファイルの場合、Parsing OptionsやPreprocessing Options等を考慮したものが自動的に作成されます。おそらく、Intelligent Contextの画面でAI Smart Defaultsを使った場合と同等と推測されます。しかし、このSearch Indexだとchunkが英語で生成されてしまうことが多いようです。これは、AI Smart Defaultsの項で述べるように、LLMを使った処理の場合デフォルトのプロンプトが使用されてしまうためと考えられます。
*2:ToUnicode CMapの設定がないPDF。文字選択自体はできるがコピー&ペーストすると「???」などの表記になってしまうのが特徴