「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
テキストデータを読み込む
テキストデータからインデックスを作成する。
テキストデータとインデックスを永続化する。
インデックスを使用してテキストデータを検索する。
検索のリクエストレスポンスを客観的に評価。
各ステージを処理する基本的なライブラリ
各ステージを処理するライブラリ
データの取得
データソースとして利用できる。
インデックスの作成
データのストア
区分 | インデックス | 特性 | 適合する NoSQL |
ベクトル | VectorStoreIndex | ベクトルデータ管理 | ANN Pinecone, Weaviate, Milvus, Qdrant, Redis |
グラフ | KnowledgeGraphIndex、PropertyGraphIndex | グラフデータ(ノードとエッジ)管理 | Neo4j, ArangoDB, Amazon Neptune, TigerGraph?, JanusGraph? |
データの検索
人手に依らない、マシンによるインデックスの評価機能を持つ。
Semantic Searchで説明済み。
GraphRAGで説明した処理に近いが、
キーワード検索
リーフ・ノード(チャンク)から木構造のサマリ・ノードを作成する。
概要はPandas Dataframe、TextToSQLで説明済み。
チャンク自体がIndexで、検索ではQA、Refineテンプレートを繰り返しサマリをする。
HyDEそのものではないが似ている。
最近では、システムによる自動化されたプロンプトエンジニアリング、プロンプトフローを
ReAct的プロンプトエンジニアリングを用い更にファジー化した、エージェント・システムが注目されている。
LLMツールは、高度に抽象化されていることから内部でどのような処理がされているか通常は見えないことが多い。
特徴 | VectorStoreIndex | PropertyGraphIndex |
データ構造 | ベクトル | プロパティグラフ |
検索方法 | ベクトル検索 | グラフクエリ言語(例:Cypher) |
ノードの管理 | ドキュメントをノードに分割しベクトル化 | ノード(エンティティ)とエッジ(関係) |
クエリの複雑さ | シンプルな意味的類似性検索 | 複雑なCypherクエリをサポート |
ハイブリッド検索 | なし | ベクトル検索とグラフを用いた検索をサポート |
用途 | 意味的な類似性に基づく検索 | データの関係性を重視した検索 |
LlamaIndex - LlamaIndex
https://docs.llamaindex.ai/en/stable/
https://docs.llamaindex.ai/en/stable/
https://docs.llamaindex.ai/en/stable/understanding/
https://docs.llamaindex.ai/en/stable/use_cases/
https://docs.llamaindex.ai/en/stable/examples/
https://docs.llamaindex.ai/en/stable/module_guides/