Search API
概要: RAGで使用するためのcontextを検索するAPIです。メッセージに基づいて関連するドキュメントチャンクを検索し、構造化されたデータとして返します。
GET /v1/api/search
RAGで使用するためのcontextを検索します。
指定されたメッセージに基づいて、インデックス化されたドキュメントから関連性の高いチャンクを検索し、構造化されたテキストデータを返します。
GET /v1/api/search
Headers
api-key
: string(required) - rokadoc APIキー
Request Example
- Python
- curl
import requests
import os
api_key = os.getenv("ROKADOC_API_KEY")
tag = os.getenv("TAG")
space_id = os.getenv("SPACE_ID")
url = "https://beta-api.rokadoc.ntt.com/v1/api/search"
headers = {
"api-key": api_key
}
params = {
"message": "NTTドコモビジネスに社名変更したのはいつですか",
"tags_filter": [tag] if tag else [],
"search_top_k": 3,
"tags_filter_include": True,
"space_id": space_id
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
curl -X 'GET' \
"https://beta-api.rokadoc.ntt.com/v1/api/search?message=NTTドコモビジネスに社名変更したのはいつですか&tags_filter=${TAG}&search_top_k=3&tags_filter_include=true&space_id=${SPACE_ID}" \
-H "api-key: ${ROKADOC_API_KEY}"
Query Parameters
必須パラメータ
message
: string(required) - RAGで検索するメッセージ
オプショナルパラメータ
tags_filter
: array(optional) - 検索で絞り込むタグ名 (デフォルト: [])search_top_k
: integer(optional) - 検索するチャンク数。最大5件まで指定可能 (デフォルト: 3)tags_filter_include
: boolean(optional) - 指定したタグが含まれるものを返却するか否か。falseでタグが含まれないものが返却される (デフォルト: true)space_id
: string(optional) - スペース機能を利用する場合はスペースIDを指定
Response
200 Success - 検索結果
{
"search_result": [
{
"context": "<チャンク化されたテキスト>",
"unit": {
"unit": 1,
"title": "",
"body": "",
"elements": [
{
"type": "title",
"coordinates": [[305.0,254.0],[802.0,343.0]],
"text": "<ここにタイトルが入ります>",
"page": 1,
"reading_order": 1
}],
"description": "<elementsが統合されたチャンク化される前の全量テキスト>",
"width": 2481,
"height": 3508
},
"pdf_name": "sample.pdf",
"page_number": 1,
"roka_algorithm": null,
"conversion_id": "xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"user_id": "xxxxxxxxxxxx",
"tags": []
}
]
}
search_result
: array - 検索結果のドキュメント一覧context
: string - 検索されたコンテキストconversion_id
: string - 変換IDpage_number
: integer - ページ番号pdf_name
: string - ファイル名roka_algorithm
: string|null - 使用されたアルゴリズムtags
: array - 関連タグunit
: object - ドキュメントのユニット情報unit
: integer - ユニット番号title
: string - elementsに集約したため、現在未使用body
: string - elementsに集約したため、現在未使用elements
: array - ドキュメントに含まれるレイアウト情報type
: string - 要素のタイプ(title, text, table, image)coordinates
: array - 要素の左上基準の座標情報 [[x1, y1], [x2, y2]]形式text
: string - 抽出したテキストpage
: integer - 要素が存在するページ番号reading_order
: integer - 1から始まる読み順
description
: string - elementsが統合された全量テキストwidth
: integer - PDFを画像化したときのページの幅height
: integer - PDFを画像化したときのページの高さ
user_id
: string - ユーザーID
422 Validation Error
{
"detail": [
{
"loc": ["query", "message"],
"msg": "Field required",
"type": "missing"
}
]
}
注意事項
- 検索結果は関連度順にソートされて返されます
search_top_k
の最大値は5件です- タグフィルターを使用して検索結果を絞り込むことができます
- スペース機能を利用している場合は、そのスペース内のドキュメントのみが検索対象となります