ベクトルデータ管理(Vectors API)
このドキュメントでは、RAG システムが利用するベクトルデータ(Embedding)を API で管理する方法をまとめています。 ベクトル登録、削除、検索、メタデータ管理など、ベクトルストアの運用に必要な すべての仕様を扱います。
1. ベクトルストアとは
ベクトルストアは、テキストをベクトル(数値配列)として保存し、類似検索を行うためのデータベースです。 当プラットフォームでは以下の用途で使用されます:
- テキストチャンク(文書)の意味的検索
- RAG(Retrieval Augmented Generation)の検索対象
- FAQ・ナレッジ・社内文書の類似検索
ベクトルは LLM / Embedding モデルにより生成された 768 次元 / 1536 次元(モデルにより異なる) の配列として保存されます。
2. Vectors API 一覧
| メソッド | エンドポイント | 説明 |
|---|---|---|
| POST | /api/vectors/upsert | ベクトルデータの登録または更新 |
| POST | /api/vectors/search | ベクトル類似検索 |
| DELETE | /api/vectors/{id} | 特定ベクトルを削除 |
| GET | /api/vectors/{id} | 特定ベクトルのメタ情報取得 |
3. ベクトル登録(Upsert)
ベクトルの登録または更新を行います。 同じ ID があれば上書き、なければ新規登録されます。
■ リクエスト例
POST /api/vectors/upsert
Content-Type: application/json
{
"id": "chunk-001",
"values": [0.12, -0.44, 0.91, ...],
"metadata": {
"text": "AIとは、人間の知的行動を模倣する技術の総称である。",
"source": "wiki-ai",
"path": "/docs/ai",
"updatedAt": "2025-01-14T10:00:00Z"
}
}
■ レスポンス
{
"status": "ok",
"id": "chunk-001",
"operation": "updated"
}
4. ベクトル検索(Similarity Search)
ベクトル類似度計算(cosine similarity)により、指定クエリに最も近い文書を検索します。
■ リクエスト例
POST /api/vectors/search
Content-Type: application/json
{
"vector": [0.11, -0.52, 0.33, ...],
"topK": 5,
"includeMetadata": true
}
■ レスポンス
{
"results": [
{
"id": "chunk-001",
"score": 0.92,
"metadata": {
"text": "AIとは〜",
"source": "wiki-ai",
"path": "/docs/ai"
}
}
]
}
5. メタデータ取得
保存済みのベクトルデータの詳細を取得します。
GET /api/vectors/chunk-001
{
"id": "chunk-001",
"dimensions": 1536,
"metadata": {
"text": "...",
"source": "wiki-ai",
"path": "/docs/ai"
}
}
6. ベクトル削除
特定ベクトルを削除します。
DELETE /api/vectors/chunk-001
{
"status": "deleted",
"id": "chunk-001"
}
7. ベストプラクティス
- 1チャンクは 300–600 文字が最適
- メタデータに text / path / source / updatedAt を入れると検索品質が上がる
- 同じ文書を再処理する場合は ID を固定して upsert する
- RAG 評価(Semantic Eval)を定期的に実行しバイアスを監視する