データ投入でサポートされているファイル形式
知識データ投入でサポートされているファイル形式
このドキュメントは、InfiniCloud AIのファイル取り込み機能が現在サポートしているファイル形式を、実装に基づいてまとめたものです。
取り込みフロー概要
- 「知識の投入」からファイルをアップロード
- 拡張子を判定し、UnstructuredLoaderを使ってパースしてText化。その後HTMLに変換
- 得られた HTMLをローカルキャッシュエリアに保存し、MHASを用いてノイズ及び重複除去。知識データベースに反映
- 知識データベースのレコードは「知識の編集」メニューで参照・削除などの管理ができ、知識ドメイン単位のJSONLエクスポートも可能
サポート済みファイル形式
| カテゴリ | 拡張子 | 処理方法 | 依存 / 備考 |
|---|---|---|---|
| HTML | .html, .htm | そのまま UTF-8 としてキャッシュ | 直接import_filesで保存 |
| HTMLアーカイブ | .zip (内部がHTML) | ZIPを解凍し、各HTMLをキャッシュ(その他の拡張子はスキップ) | zipfile |
| プレーンテキスト | .txt | テキストを <p> ラップして HTML 化 | 基本パッケージ |
| Markdown | .md | unstructured[md] → HTMLスニペット化 | requirements.txt に含まれる |
| CSV | .csv | unstructured[csv] → セル抽出 | 同上 |
| Excel | .xlsx | unstructured[xlsx] | 同上 |
| Word | .docx, .doc | unstructured[docx,doc] | 同上 |
| PowerPoint | .pptx, .ppt | unstructured[pptx] | 同上 |
| unstructured[pdf](PyMuPDF + OCR) | 同上 | ||
| 画像 | .jpg, .png, .gif, .bmp, .tiff | unstructured[image] で OCR | 同上 |
| RTF | .rtf | unstructured[rtf] | 同上 |
| JSONL(内部管理) | .jsonl | JSONLWebManager によるCRUD/エクスポートのみ | ファイルアップロードではなく DB 管理 |
その他のunstructured対応形式(例: .epub, .odt, .org, .rst, .tsv など)は現在は未対応。同じパイプラインで処理は可能なので将来要望により拡張可能。
実装から見る特殊処理
- ZIP
- .htmlだけを抽出し、キャッシュディレクトリに保存します。
- HTML/HTM
- バイト列を UTF-8 で解釈し、キャッシュディレクトリに保存します。
- その他
- 一旦テンポラリに保存し、読み込み、doc.metadata["text_as_html"] があれば利用、無ければ、単純な<p> で囲んで HTML を生成。
- JSONL
- ファイルとして取り込むのではなく、jsonl_records テーブルでレコード管理し、UI から CRUD/エクスポートする。
タスクログに記載されるトラブルシューティング
| 症状 | 対処 |
|---|---|
| partition_xxx() が見つからない | サーバーインストール上の問題。必要なライブラリがない。 |
| 文字化け | UTF-8 以外のエンコードは自動判定しないため、事前に UTF-8 に変換してからアップロード |
| OCR が遅い | 画像/スキャン PDF を分割し、小さなファイルでアップロード |
| ZIP に HTML 以外が混在 | 現状は HTML のみ抽出。その他は ZIP 外に取り出して個別にアップロードする |