すべてのプロダクト
Search
ドキュメントセンター

OpenSearch:NL2SQL サービスの構成

最終更新日:Nov 05, 2025

クエリ分析のための NL2SQL サービスは、自然言語クエリを SQL 文に変換します。この Topic では、NL2SQL サービスを構成する方法について説明します。

クエリ: 1 年 3 組の模範生徒は誰ですか?

image

クエリ: 2024 年にクローズされたケースの原因トップ 5 は何ですか?

image

構成の説明

クエリ分析のための NL2SQL サービスは、自然言語クエリを SQL 文に変換します。NL2SQL サービスを使用するには、次の情報を構成する必要があります。

  • 基本的なテーブル情報: NL2SQL サービスが依存するビジネスデータテーブルを構成します。これには、フィールド名、フィールドタイプ、フィールドの列挙値、フィールドの説明、フィールドマッピング、テーブル結合が含まれます。

  • 学習サンプル: 頻繁に使用されるクエリや複雑なクエリと、それに対応する SQL 文を構成して、NL2SQL サービスの精度を向上させます。サービスが予期しない SQL 文を生成した場合は、ここにクエリと正しい SQL 文を追加することもできます。

  • カスタムルール (ビジネス用語と概念): ユーザーのクエリには、ビジネス固有の用語や概念が含まれていることがよくあります。モデルがこの情報を理解できるように、ここに用語、概念、およびそれに対応する説明を構成できます。

    例:

    • 過去 1 週間の浸水管理はどうでしたか? 関連情報: 浸水管理には、雨水マンホールの蓋や道路の冠水イベントが含まれます。

    • 模範生徒は ID が 10 以下の生徒です。スポーツ特待生は ID が 11 より大きい生徒です。

手順

  1. AI Search Open Platform で、[モデルサービス] > [サービス構成] を選択し、[作成] をクリックします。

    Service Category と Configuration Type はデフォルト設定のままにします。[構成名] に、student_info_analysis などの名前を入力します。これは、学生情報のデータ分析を表します。

  2. [保存して次へ] をクリックします。NL2SQL サービスで必要なデータテーブルを次のフォーマットで構成します。

    • 基本的なテーブル構成

      [
        {
          "table":"schools",
          "columns": [
            {
              "column": "class",
              "description": "Class",
              "type": "string",
              "example": ["Class 3, Grade 1", "Accelerated Class"],
              "value_mapping": []
            }, 
            {
              "column": "school",
              "description": "School",
              "type": "string",
              "example": ["High School B in City A", "AA No. 5 High School"],
              "value_mapping": []
            }
          ]
        }, 
        {
          "table":"students",
          "columns": [
            {
              "column": "id",
              "description": "Student ID",
              "type": "int",
              "example": [1, 2],
              "value_mapping": [
                [1,"Zhang San"],
                [2,"Li Si"]
              ]
            },
            {
              "column": "class",
              "description": "Class",
              "type": "string",
              "example": ["Class 3, Grade 1", "Accelerated Class"],
              "value_mapping": []
            }
          ]
        }
      ]

      table のテーブル名は小文字で始まる必要があり、小文字、数字、アンダースコア (_) のみを含めることができます。名前は 30 文字を超えることはできません。

      column のフィールド名は小文字で始まる必要があり、小文字、数字、アンダースコア (_) のみを含めることができます。名前は 30 文字を超えることはできません。

      type のフィールドタイプは、text、string、int8、uint8、int16、uint16、int32、int、uint32、int64、uint64、float、double、location、date、time、または timestamp にすることができます。

    • テーブル関連構成

      ["students.class=schools.class"]
  3. [次へ] をクリックします。カスタムルールと学習サンプルを構成して、NL2SQL サービスの精度を向上させます。

    • 学習サンプル: 頻繁に使用されるクエリや複雑なクエリと、それに対応する SQL 文を構成して、NL2SQL サービスの精度を向上させます。サービスが予期しない SQL 文を生成した場合は、ここにクエリと正しい SQL 文を追加することもできます。

      [
        {
          "query":"Which class is Zhang San in?",
          "sql" : "SELECT class FROM students WHERE name = 'Zhang San'"
        }
      ]
    • カスタムルールマッピング (ビジネス用語と概念): ユーザーのクエリには、ビジネス固有の用語や概念が含まれていることがよくあります。モデルがこの情報を理解できるように、ここに用語、概念、およびそれに対応する説明を構成できます。

      例: 模範生徒は ID (id) が 10 以下の生徒です。スポーツ特待生は ID (id) が 11 より大きい生徒です。

      [
        {
          "key":"Exemplary student",
          "value":"students.id <= 10"
        },
        {
          "key":"Student athlete",
          "value":"students.id > 11"
        }
      ]
  4. [OK] をクリックし、次に [今すぐアクティブ化] をクリックします。サービス構成リストにリダイレクトされます。システムが構成のフォーマットを検証している間、アクティベーションステータスは Activating に変わります。

    アクティベーションステータスが Activated に変わると、サービス構成を使用する準備が整います。体験センターで NL2SQL サービスをテストできます。

次のステップ

NL2SQL サービスをビジネスコードに統合するには、「NL2SQL API」をご参照ください。