
SQL Suggest APIは、日本語の質問文をSQLに変換するプロダクトです。
SQLが書けなくても、質問文を入力すればデータベースになげるクエリを得ることができます。
DETAIL
SQL Suggest API は Seq2Seq の応用タスクであり、機械翻訳の分野で発展した技術です。
質問文とSQLの組み合わせを大量に学習させることで、未知の質問文に対してもSQLを予測することができる学習器です。
汎用的な学習器ではなく、テーブル定義にあわせてデータセットを準備することで高い精度の学習器が獲得できます。
NOTES
個人情報について:
他人の名称・メールアドレス・住所・電話番号など個人を特定しうる情報はアップロードしないでください。
推奨ブラウザについて:
本ページはGoogle Chromeを推奨しています。
Google Chrome以外のブラウザでは正しく作動しないケースがあります。
REFERENCE
- predict
- dataset_URL
- create_model
- model_status
SQL Suggest API (predict)
文章からSQLへ翻訳するAPIです。 入力された文章を意図するSQLに変換し、クエリを返します。
デフォルトモデルとして、日付、地域、気温、湿度をカラムに持つテーブルを想定したものが利用できます。
想定しているテーブルの定義については SAMPLE REQUEST の predict を参照ください。
エンドポイント
- URL:
- https://api.a3rt.recruit-tech.co.jp/sql_suggest/v1/predict
- メソッド:
- GET
No. | エンドポイント | 説明 |
---|---|---|
1 | predict | パラメータとして与えられた文章を指定されたモデルで、予測SQLを返答します |
リクエストパラメータ
No. | パラメータ名 | 説明 | 値サンプル | 制約 | 必須 |
---|---|---|---|---|---|
1 | apikey | APIキーを指定します | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | 半角英数字 | ○ |
2 | model_id | モデルIDを指定します
defaultを指定すると天気情報を返すSQLを利用できます。 |
default | レスポンス ContentType は 半角英数字・ハイフン |
○ |
3 | text | 予測したいテキストを指定します | 今日の東京の天気は | 全角/半角文字列 | ○ |
レスポンスフィールド
No. | 説明 | 値サンプル | 型 | 返却条件 | 複数 項目 |
|
---|---|---|---|---|---|---|
1 | status | 処理ステータス | 0 | int | 常に返却 | - |
2 | message | メッセージ | ok | string | 常に返却 | - |
3 | sql | 結果 | SELECT temperature FROM <schema>.<table> WHERE dt = <date> AND location = 'Tokyo' ; | seting | 常に返却 | - |
ステータスコード / メッセージ
No. | status | HTTP status |
message | 返却条件 |
---|---|---|---|---|
1 | 0 | 200 | ok | 正常応答 |
2 | 1000 | 400 | apikey is null | APIキー未指定 |
3 | 1001 | 400 | apikey not found | APIキーが見つからない |
4 | 1002 | 400 | deleted account | 退会済み |
5 | 1003 | 400 | temporary account | アカウント未承認 |
6 | 1010 | 400 | server not found | サーバが見つからない |
7 | 1011 | 400 | server parameter error | サーバ設定エラー |
8 | 1030 | 403 | access deny | アクセス拒否 |
9 | 1400 | 400 | bad request | リクエストパラメータが不正 |
10 | 1404 | 404 | not found | 指定したオブジェクト見つからない |
11 | 1405 | 405 | method not allowed | メソッドが正しくない |
12 | 1413 | 413 | request entity too long | リクエストパラメータの値が長すぎる |
13 | 1500 | 500 | internal server error | API処理で異常が発生しました |
制限事項
API実行に関する制限事項
同一 API Key で一度に学習できるモデルは一つまでです
ファイルに関する制限事項(dataset_url実行時のみ)
- データ行数:
- ヘッダー含め100行以上、1万行以内
- 各レコードのテキスト文字数:
- 1000文字以内かつ500単語以内
- エンコーディング:
- UTF-8
ブラウザによるファイルのアップロードは、今後対応予定です
SQL Suggest API (dataset)
ユーザー独自モデル作成用のAPIです。
datasetではモデル作成に使う学習データを配置するパスを返却します。
エンドポイント
- URL:
- https://api.a3rt.recruit-tech.co.jp/sql_suggest/v1/dataset
- メソッド:
- POST
No. | エンドポイント | 説明 |
---|---|---|
1 | dataset | 所定のファイル配置場所とdataset_idを返却します。 |
リクエストパラメータ
No. | パラメータ名 | 説明 | 値サンプル | 制約 | 必須 |
---|---|---|---|---|---|
1 | apikey | APIキーを指定します | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | 半角英数字 | ○ |
レスポンスフィールド
No. | フィールド名 | 説明 | 値サンプル | 型 | 返却条件 | 複数項目 |
---|---|---|---|---|---|---|
1 | status | 処理ステータス | 0 | int | 常に返却 | - |
2 | message | メッセージ | ok | string | 常に返却 | - |
3 | dataset_id | データセットID | xxxxxxxxxxx | string | 常に返却 | - |
4 | dataset_url | データセットURL | 配置先URL | string | 常に返却 | - |
ステータスコード / メッセージ
No. | status | HTTP status |
message | 返却条件 |
---|---|---|---|---|
1 | 0 | 200 | ok | 正常応答 |
2 | 1000 | 400 | apikey is null | APIキー未指定 |
3 | 1001 | 400 | apikey not found | APIキーが見つからない |
4 | 1002 | 400 | deleted account | 退会済み |
5 | 1003 | 400 | temporary account | アカウント未承認 |
6 | 1010 | 400 | server not found | サーバが見つからない |
7 | 1011 | 400 | server parameter error | サーバ設定エラー |
8 | 1030 | 403 | access deny | アクセス拒否 |
9 | 1400 | 400 | bad request | リクエストパラメータが不正 |
10 | 1405 | 405 | method not allowed | メソッドが正しくない |
11 | 1500 | 500 | internal server error | API処理で異常が発生しました |
制限事項
アップロードするファイルに関する制限事項
同一 API Key で一度に学習できるモデルは一つまでです
- データサイズ:
- 5MB以下
- データ行数:
- 100行以上、1万行以内
ファイルフォーマット
学習データ(アップロードファイル)
- 日本語の文章が書かれたテキストファイル
- 文字コード:UTF-8
- CSV形式のテキストファイル
- 1. 改行文字 LF "\n" のみ対応となります
- 2. カンマ "," を含む文字は指定は出来ません
- 3. 行ヘッダあり(1行目に text, sqlが必要)
No. | フィールド名 | 説明 | 値サンプル |
---|---|---|---|
1 | text | 学習テキスト | <date>の温度は何だっけ |
2 | sql | 予測SQL | SELECT temperature WHERE dt = <date> |
データフォーマット
- 日付形式
- textに対象となる文字 ( 今日・今・本日、昨日・先日、一昨日、N日前、YYYY年MM月DD日 形式 ) が含まれる場合、
- SQLにて<date> や <date_from> ・ <date_to> などdateという文字へ変換されます。
- SQL構成
- SELECT,WHEREの構成をSQL文として学習データを作成してください。
- FROM句は自動で<schema>.<table>が入ります。
SQL Suggest API (create model)
ユーザー独自モデル作成用のAPIです。
modelでは配置済みのデータセットに対して学習を起動させます。
エンドポイント
- URL:
- https://api.a3rt.recruit-tech.co.jp/sql_suggest/v1/model
- メソッド:
- POST
No. | エンドポイント | 説明 |
---|---|---|
1 | model | パラメータとして指定されたデータセットに対してユーザー独自モデルを作成します。 |
リクエストパラメータ
No. | パラメータ名 | 説明 | 値サンプル | 制約 | 必須 |
---|---|---|---|---|---|
1 | apikey | APIキーを指定します | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | 半角英数字 | ○ |
2 | dataset_id | データセットIDを指定します (datasetでレスポンスとして受けたもの) |
xxxxxxxxxxx | 半角英数字・ハイフン | ○ |
レスポンスフィールド
No. | フィールド名 | 説明 | 値サンプル | 型 | 返却条件 | 複数項目 |
---|---|---|---|---|---|---|
1 | status | 処理ステータス | 0 | int | 常に返却 | - |
2 | message | メッセージ | ok | string | 常に返却 | - |
3 | model_id | モデルID | xxxxxxxxxx | string | 常に返却 | - |
ステータスコード / メッセージ
No. | status | HTTP status |
message | 返却条件 |
---|---|---|---|---|
1 | 0 | 200 | ok | 正常応答 |
2 | 1000 | 400 | apikey is null | APIキー未指定 |
3 | 1001 | 400 | apikey not found | APIキーが見つからない |
4 | 1002 | 400 | deleted account | 退会済み |
5 | 1003 | 400 | temporary account | アカウント未承認 |
6 | 1010 | 400 | server not found | サーバが見つからない |
7 | 1011 | 400 | server parameter error | サーバ設定エラー |
8 | 1030 | 403 | access deny | アクセス拒否 |
9 | 1400 | 400 | bad request | リクエストパラメータが不正 |
10 | 1400 | 400 | train data file not found | 学習データファイルが見つからない |
11 | 1400 | 400 | bad train data file | 学習データファイルの中身が形式が不正 |
12 | 1400 | 400 | train data file size exceeds the size limit | 学習データサイズが大きすぎるか小さすぎる |
13 | 1403 | 403 | order already exist | すでに順番待ちしています |
14 | 1404 | 404 | not found | 指定したオブジェクト見つからない |
15 | 1405 | 405 | method not allowed | メソッドが正しくない |
16 | 1413 | 413 | request entity too long | リクエストパラメータの値が長すぎる |
17 | 1500 | 500 | internal server error | API処理で異常が発生しました |
制限事項
API実行に関する制限事項
同一 API Key で一度に学習できるモデルは一つまでです
SQL Suggest API (get model status)
ユーザー独自モデル作成用のAPIです。
check_statusではmodelで作成を開始したモデルの状況を確認することができます。
エンドポイント
No. | エンドポイント | 説明 |
---|---|---|
1 | check_status | パラメータとして指定されたモデルのステータスを返却します。 |
リクエストパラメータ
No. | パラメータ名 | 説明 | 値サンプル | 制約 | 必須 |
---|---|---|---|---|---|
1 | apikey | APIキーを指定します | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | 半角英数字 | ○ |
2 | model_id | モデルIDを指定します (modelでレスポンスとして受けたもの) |
xxxxxxxxxx | 半角英数字・ハイフン | ○ |
レスポンスフィールド
No. | フィールド名 | 説明 | 値サンプル | 型 | 返却条件 | 複数項目 |
---|---|---|---|---|---|---|
1 | status | 処理ステータス | 0 | int | 常に返却 | - |
2 | message | メッセージ | ok | string | 常に返却 | - |
3 | model_status | モデルステータス pending: 学習が予約されている状態 running: 学習中の状態 finish: 学習が完了し、suggest できる状態 error: 学習が失敗した状態 finishの状態になればそのmodel_idをsuggestで指定することができます |
running | string | 常に返却 | - |
ステータスコード / メッセージ
No. | status | HTTP status |
message | 返却条件 |
---|---|---|---|---|
1 | 0 | 200 | ok | 正常応答 |
2 | 1000 | 400 | apikey is null | APIキー未指定 |
3 | 1001 | 400 | apikey not found | APIキーが見つからない |
4 | 1002 | 400 | deleted account | 退会済み |
5 | 1003 | 400 | temporary account | アカウント未承認 |
6 | 1010 | 400 | server not found | サーバが見つからない |
7 | 1011 | 400 | server parameter error | サーバ設定エラー |
8 | 1030 | 403 | access deny | アクセス拒否 |
9 | 1400 | 400 | bad request | リクエストパラメータが不正 |
10 | 1404 | 404 | not found | 指定したオブジェクト見つからない |
11 | 1405 | 405 | method not allowed | メソッドが正しくない |
12 | 1500 | 500 | internal server error | サーバ処理中に想定外のエラーが発生 |
制限事項
API実行に関する制限事項
同一 API Key で一度に学習できるモデルは一つまでです
ファイルに関する制限事項(dataset_url実行時のみ)
- データ行数:
- ヘッダー含め100行以上、1万行以内
- 各レコードのテキスト文字数:
- 1000文字以内かつ500単語以内
- エンコーディング:
- UTF-8
ブラウザによるファイルのアップロードは、今後対応していく予定です
モデル作成インスタンスに関する制限事項(create_model実行時のみ)
バージョンv1では、最大3並列までとなります
3並列すべてのインスタンスにリクエストがきている場合は、いずれかの学習が完了次第順次割り当てになります。モデル作成に時間がかかることもありますがご了承ください。
SAMPLE REQUEST
- predict
- dataset_URL
- create_model
- model_status
前提条件:
APIキーを事前に取得している
curlコマンドが実行できる環境がある
Field | Type | Note. |
---|---|---|
dt | date | |
location | varchar(255) | Tokyo、Osaka、Nagoya、Fukuoka、Hokkaido に対応 |
temperature | float | 気温 |
precipitation | float | 降水量 |
集合関数の例: 合計(SUM), 最大(MAX), 最小(MIN), 平均(AVG), データ数(COUNT)
1. 正常時(callback指定なし)
リクエスト | curl -X POST -d apikey=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -d model_id=default --data-urlencode text='今日の東京の天気は' https://api.a3rt.recruit-tech.co.jp/sql_suggest/v1/predict |
---|---|
レスポンス |
|
前提条件:
APIキーを事前に取得している
curlコマンドが実行できる環境がある
1. ファイル配置のURLとデータセットIDを取得する
リクエスト | curl -X POST -d apikey=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA https://api.a3rt.recruit-tech.co.jp/sql_suggest/v1/dataset |
---|---|
レスポンス |
|
2. ローカルにあるファイルをdataset_urlに配置する
リクエスト | curl -D - -X PUT --upload-file <filepath> '<dataset_url>' |
---|---|
レスポンス |
|
前提条件:
APIキーを事前に取得している
curlコマンドが実行できる環境がある
dataset APIを用いてdataset_idを取得済み
学習用データをアップロード済み
1. 配置したデータセットに対して学習を開始する
リクエスト | curl -X POST -d apikey=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -d dataset_id=xxxxxxxxxxx https://api.a3rt.recruit-tech.co.jp/sql_suggest/v1/model |
---|---|
レスポンス |
|
前提条件:
APIキーを事前に取得している
curlコマンドが実行できる環境がある
model APIを使用してmodel_idを取得済み
1. 学習しているモデルのステータスを確認する
リクエスト | curl -X GET 'https://api.a3rt.recruit-tech.co.jp/sql_suggest/v1/check_status?apikey=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA&model_id=xxxxxxxxxx' |
---|---|
レスポンス |
|