104 lines
3.4 KiB
Markdown
104 lines
3.4 KiB
Markdown
# SearchKnowledge / ListNamespaces / ListDocuments / IngestDocument / IngestStatus
|
||
|
||
DKS(Document Knowledge Service)に取り込んだ社内文書をベクトル検索で参照するツール群。
|
||
|
||
## 利用可能性チェック
|
||
|
||
```js
|
||
ListNamespaces() // 利用可能な namespace 一覧を返す
|
||
```
|
||
|
||
DKS が設定されていなければ "Knowledge service not configured" を返す。
|
||
namespace が空なら何も検索できない。
|
||
|
||
## 文書一覧の確認
|
||
|
||
```js
|
||
ListDocuments({ namespace: "product-a-support" })
|
||
```
|
||
|
||
その namespace に取り込み済みの文書を表示する。
|
||
|
||
## 検索
|
||
|
||
```js
|
||
SearchKnowledge({ namespace: "product-a-support", query: "返品ポリシーは何日以内?" })
|
||
```
|
||
|
||
レスポンスには:
|
||
1. **sections** — マッチしたツリーノード(タイトル + summary + ページ範囲)
|
||
2. **page_image_urls** — 関連ページの画像(PNG)
|
||
|
||
### 自動ダウンロード
|
||
|
||
検索結果に含まれるページ画像は **自動的にワークスペース** `input/knowledge/{namespace}/page_001.png` などに保存される。
|
||
LLM はそのローカルパスを `ReadImage` でそのまま閲覧できる。
|
||
|
||
```js
|
||
// SearchKnowledge の出力例:
|
||
// ## 返品ポリシー (manual.pdf, pages: 3, 4)
|
||
// 購入後30日以内であれば...
|
||
//
|
||
// ### ページ画像(ReadImage で閲覧可能)
|
||
// - input/knowledge/product-a-support/page_003.png
|
||
// - input/knowledge/product-a-support/page_004.png
|
||
|
||
ReadImage({ file_path: "input/knowledge/product-a-support/page_003.png" })
|
||
```
|
||
|
||
### 生 JSON の保存
|
||
|
||
DKS の生レスポンス JSON は `logs/raw/searchknowledge-{timestamp}.json` に保存される。doc_id 等の詳細フィールドが必要なときはそちらを Read する。
|
||
|
||
## 文書の取り込み
|
||
|
||
```js
|
||
// 1. 取り込み開始(非同期)
|
||
IngestDocument({ namespace: "product-a-support", file_path: "input/manual.pdf" })
|
||
// → "取込を開始しました (job: xxx, 45ページ検出)。完了確認は IngestStatus で可能です。"
|
||
|
||
// 2. 進捗確認
|
||
IngestStatus({ namespace: "product-a-support", job_id: "xxx" })
|
||
// → "ジョブ xxx: 処理中: VLM 12/45ページ, ツリー構築: 未完了"
|
||
// または "完了 (manual.pdf)" / "失敗: ..."
|
||
```
|
||
|
||
DKS は内部で:
|
||
1. PDF → ページ画像化
|
||
2. VLM でページごとに記述生成
|
||
3. ツリー構造(章・節)構築
|
||
4. ベクトル化してインデックス登録
|
||
|
||
を行う。45 ページで数分かかる規模感。
|
||
|
||
## ワークフロー例
|
||
|
||
### 質問応答
|
||
|
||
```
|
||
SearchKnowledge → 関連 sections + ページ画像取得
|
||
↓ 必要なら ReadImage で図表確認
|
||
↓
|
||
回答文に sections の要点を引用、根拠ページを示す
|
||
```
|
||
|
||
### 新文書を取り込んで検索
|
||
|
||
```
|
||
IngestDocument → job_id 取得
|
||
↓ 待機(数分後 or 別作業)
|
||
IngestStatus → completed まで polling
|
||
↓
|
||
SearchKnowledge で取り込み済みコンテンツを検索
|
||
```
|
||
|
||
## ログ
|
||
|
||
`logs/knowledge-history.jsonl` に各ツール呼び出し(クエリ・件数・所要時間・エラー)が記録される。
|
||
|
||
## 注意
|
||
|
||
- **検索ヒット件数は DKS 側で制御** されるので、件数上限を心配する必要はない
|
||
- DKS サーバーがローカル/プライベート IP でも、API キー認証経由なので SSRF 例外不要
|
||
- VLM 処理はバックグラウンドで動くので、IngestDocument 後すぐに SearchKnowledge を呼んでもまだヒットしない可能性あり(IngestStatus で完了確認)
|