メインコンテンツまでスキップ

Search API

概要: RAGで使用するためのcontextを検索するAPIです。メッセージに基づいて関連するドキュメントチャンクを検索し、構造化されたデータとして返します。

GET /v1/api/search

RAGで使用するためのcontextを検索します。

指定されたメッセージに基づいて、インデックス化されたドキュメントから関連性の高いチャンクを検索し、構造化されたテキストデータを返します。

GET /v1/api/search

Headers

  • api-key : string(required) - rokadoc APIキー

Request Example

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 - 変換ID
    • page_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件です
  • タグフィルターを使用して検索結果を絞り込むことができます
  • スペース機能を利用している場合は、そのスペース内のドキュメントのみが検索対象となります