AIコンシェルジュ「登録支援」API
AIコンシェルジュ「登録支援」APIはAIが注文書・発注仕様書・RFP(提案依頼書)などのファイルを解析し、指定した項目について最適な値を抽出するAPIです。
ご利用方法
AIコンシェルジュ「登録支援」APIをご利用いただくためには、
以下の3つのステップを実施する必要があります。
1. 認証
APIを利用するためには、まず認証を行いアクセストークンを取得する必要があります。
Request
| 項目 | 値 |
|---|---|
| リクエストメソッド | POST |
| エンドポイント | https://gateway-esm.softbrain.com/auth/token |
| リクエストヘッダ | Content-Type: application/json |
| リクエストボディ | 下記のJSON形式 |
{
"grantType": "password",
"userId": "yourUserId",
"password": "yourPassword",
"tenantId": "yourTenantId"
}
正常時 Response (200 OK)
{
"accessToken": "${JWT}",
"tokenType": "BEARER",
"expireIn": "3600",
"refreshToken": "${refreshToken}"
}
異常時 Response
- HTTP 400 Bad Request: リクエスト内容が正しくない場合に発生します。
- HTTP 500 Internal Server Error: 想定外のエラーの場合に発生します。
2. AIコンシェルジュへの解析依頼
エンドポイント
POST https://gateway-ai.softbrain.com/dsas/document/analysis
概要
AIサーバーに対して、解析の依頼をします。
解析対象のファイルと、解析の対象とする項目の情報をリクエストに含めて送信します。
そして、リクエストを送るとAIによる解析が行われ、解析対象のファイルから指定した項目に対する値が抽出されます。
レスポンスではanalysisIdを返します。このanalysisIdは、「3. AIコンシェルジュの解析結果取得 」で使用します。
Request Header
| キー | 値 | 備考 |
|---|---|---|
Authorization | Bearer ${accessToken} | 「1. 認証 」で取得したアクセストークン |
X-Service-Name | ms20 |
Request Body (form-data)
| No. | パラメータ | 必須 | タイプ | デフォルト値 | 項目名 | 備考 |
|---|---|---|---|---|---|---|
| 1 | file | ◯ | file | ー | ドキュメント | 解析するファイル、解析対象のファイル形式は PDF、JPEG、PNG、TEXT、PPTX、DOC、DOCX、XLSX、XLS、XLSM |
| 2 | needSchedule | boolean | ー | スケジュール情報の要否 | マイルストーンなどでスケジュール情報が必要な場合にtrueにする。不要ならfalse。指定がない場合はfalseとして扱う。 | |
| 3 | subject | ◯ | String | ー | 主題 | 文書を解析する際のタイトル、案件なら業務タイプなどを指定する。 |
| 4 | items | ◯ | Object | ー | ||
| 5 | └ baseItems | ◯ | Array | ー | ||
| 6 | itemKey | ◯ | String | ー | 項目キー | 解析対象の項目を一意に識別するためのキー |
| 7 | itemType | ◯ | String | ー | 項目型 | 解析結果として返す型(例: STRING, SELECT など)を指定する。 解析対象の型 を参照して型を指定する。 |
| 8 | labelName | ◯ | String | ー | 項目名 | 例えば、「案件名」「売上金額」などの解析対象の項目名を指定する。 |
| 9 | options | SELECT型のみ必須 | String | ー | 選択肢 | SELECT型のみ必須、選択肢の文字列を列挙する。 |
| 10 | isMultiSelect | boolean | ー | 複数選択可能かどうか | SELECT型のみ指定する。デフォルトはfalseである。 | |
| 11 | └ categorizedItems | Array | ー | カテゴライズアイテム | 解析時に前提情報を付与したい項目を列挙する。 | |
| 12 | categoryName | ◯ | String | ー | カテゴリー名 | 解析時に前提情報となるカテゴリー名を指定する。 |
| 13 | items | ◯ | Array | ー | ||
| 14 | itemKey | ◯ | String | ー | 項目キー | 解析対象の項目を一意に識別するためのキー |
| 15 | itemType | ◯ | String | ー | 項目型 | 例:「STRING」,「SELECT」。 解析対象の型 を参照して指定する。 |
| 16 | labelName | ◯ | String | ー | 項目名 | 例えば、「案件名」「売上金額」などの解析対象の項目名を指定する。 |
| 17 | └ productItems | Array | ー | 商品情報 | 商品の情報を解析する場合に記載する。 | |
| 18 | itemKey | ◯ | String | ー | 項目キー | 解析対象の項目を一意に識別するためのキー |
| 19 | itemType | ◯ | String | ー | 項目型 | 例:「STRING」,「SELECT」。解析対象の型 を参照して指定する。 |
| 20 | options | SELECT型と商品名のみ必須 | Array | ー | 選択肢 | 商品名とSELECT型のみ必須、選択肢の文字列を列挙する。 |
| 21 | labelName | ◯ | String | ー | 項目名 | 「商品名」「個数」などの項目名を指定する。 |
Request Sample
Content-typeは、form-dataを指定して、以下のようにパラメータを指定してリクエストを送信する。
"needSchedule": true
"subject": "入札"
"file": {解析対象のファイルを指定}
"items": {
"baseItems": [
{
"itemKey": "EXT_2_BRANCH_NAME",
"labelName": "案件名",
"itemType": "STRING"
},
{
"itemKey": "type_checkbox1",
"itemType": "SELECT",
"labelName": "好きな色",
"options": [
"赤",
"青",
"黄"
],
"isMultiSelect": true
}
],
"categorizedItems": [
{
"categoryName": "クレーム情報",
"items": [
{
"itemKey": "EXT_2_ANK_VARCHAR_2",
"labelName": "対象者",
"itemType": "STRING"
}
]
}
],
"productItems": [
{
"itemKey": "productName",
"itemType": "STRING",
"labelName": "商品名",
"options": [
"営業データ活用商品",
"登録支援",
"知財活用"
]
},
{
"itemKey": "productPrice",
"itemType": "NUMBER",
"labelName": "価格"
}
]
}
解析対象の型
AIコンシェルジュの解析時に、解析が行われる項目の型です。
| 型 | 備考 |
|---|---|
| DATETIME | yyyy/mm/dd hh:MM形式 |
| STRING | 文字列型 |
| DATE | yyyy/mm/dd 形式 |
| MEMO | 文章型(上限2,000文字) |
| NUMBER | 数値型 |
| TIME | hh:MM形式 |
| SELECT | 選択式、isMultiSelectで複数可否を制御する |
対象外の型は、リクエストに指定しても解析結果に含まれません。
正常時 Response (200 OK)
| キー | 型 | 項目名 | 備考 |
|---|---|---|---|
analysisId | string | 解析ID | 「3. AIコンシェルジュの解析結果取得」で使用するIdが発行される。 |
※サンプル
{
"analysisId": ${analysisId}
}
異常時 Response
HTTP 400 Bad Request
解析対象のファイルがリクエストに存在しない、または容量が0 KBの場合に発生します。
| キー | 型 | エラー概要 |
|---|---|---|
code | string | FILE_NOT_FOUND |
message | string | ファイルの存在を確認できませんでした。 or 取込みファイルが空の可能性があります。ファイルの内容をご確認ください。 |
※サンプル
{
"error": {
"code": "FILE_NOT_FOUND",
"message": "取込みファイルが空の可能性があります。\nファイルの内容をご確認ください。"
}
}
HTTP 415 Unsupported Media Type
解析対象のファイルの形式が不正な場合に発生します。
| キー | 型 | エラー概要 |
|---|---|---|
code | string | UNSUPPORTED_FILE_TYPE |
message | string | ファイルを取込みできませんでした。取込み可能なファイル形式はPDF、JPEG、PNG、TEXT、PPTX、DOC、DOCX、XLSX、XLS、XLSMです。 |
※サンプル
{
"error": {
"code": "UNSUPPORTED_FILE_TYPE",
"message": "ファイルを取込みできませんでした。\n取込み可能なファイル形式はPDF、JPEG、PNG、TEXT、PPTX、DOC、DOCX、XLSX、XLS、XLSMです。"
}
}
HTTP 403 Forbidden
AIコンシェルジュ「登録支援」の権限がない場合に発生します。
| キー | 型 | エラー概要 |
|---|---|---|
code | string | FORBIDDEN |
message | string | AIコンシェルジュ「登録支援」の利用権限がありません。 |
※サンプル
{
"error": {
"code": "FORBIDDEN",
"message": "AIコンシェルジュ「登録支援」の利用権限がありません。"
}
}
3. AIコンシェルジュの解析結果取得
エンドポイント
GET https://gateway-ai.softbrain.com/dsas/sse/connect/{analysisId}
概要
「2.AIコンシェルジュの解析依頼」で取得したanalysisIdを使用して、AIが解析した結果をServer Sent Events(SSE)接続で取得します。
Request Header
| キー | 値 | 備考 |
|---|---|---|
Authorization | Bearer ${accessToken} | 「1. 認証 」で取得したアクセストークン |
X-Service-Name | ms20 |
正常時 Response (200 OK)
HTTPレスポンスコード:200
レスポンスでは、SSE接続によって、接続状況や解析結果がリアルタイムで送信されます。
Content/Typeはtext/event-streamが指定されており、以下の表の順番でイベントが返されます。
| 順番 | フィールド名 | データ | 説明 |
|---|---|---|---|
| 1 | message | [CONNECTTING] | 接続中であることを示すメッセージ |
| 2 | message | 解析結果が、JSON形式で返される。 | 解析結果の詳細については、レスポンスボディとレスポンスサンプルを参照 |
| 3 | message | [END] | 接続が終了したことを表すメッセージ |
Response Body
イベントで送信される解析結果の各項目の詳細は以下のようになっています。
| No. | キー | 型 | 項目名 | 備考 |
|---|---|---|---|---|
| 1 | baseData | array[object] | 解析結果の各項目を要素とする配列が返される。 | |
| 2 | itemKey | string | 項目キー | |
| 3 | value | 項目値 | isMultiSelectがtrueならArrayで返す。それ以外はStringで返す。 | |
| 4 | schedule | array[object] | マイルストーンで使用、解析依頼のneedSchedule=trueの場合のみ載せる。 | |
| 5 | date | string | 日付 | |
| 6 | title | string | タイトル | |
| 7 | manager | string | 担当者 | |
| 8 | productData | array[array[object]] | 商品情報 | 商品ごとの解析結果を配列で返却する。外側の配列は「商品単位」、内側の配列は「1商品に対して解析された項目(productItemsで指定した項目)」を表し、解析結果が存在する項目のみが返却される。 |
| 9 | itemKey | string | 項目キー | |
| 10 | value | 項目値 | 解析依頼時の itemType に応じた型で返却される。isMultiSelect が true の場合は、itemType に応じた型の配列として返却される。 |
Response Sample
SSE接続によって、[CONNECTTING]のメッセージが返されると、次に以下のように解析結果のイベントが送られます。
{
"baseData": [
{
"itemKey": "EXT_2_BRANCH_NAME",
"value": "案件名"
},
{
"itemKey": "type_checkbox1",
"value": ["赤", "黄"]
}
],
"schedule": [
{
"date": "2024/01/11",
"title": "入札公告",
"memo": "浦郷米軍(5)係留施設(278)護岸等整備工事の配置予定技術者の専任期間",
"manager": "森信哉"
}
],
"productData": [
[
{
"itemKey": "productName",
"value": "esm"
},
{
"itemKey": "productPrice",
"value": 3000
},
],
[
{
"itemKey": "productName",
"value": "AIコンシェルジュ"
},
{
"itemKey": "productPrice",
"value": 1000
},
]
]
}
「2.AIコンシェルジュへ解析依頼」でリクエストに指定した解析対象の項目のうち、AIが抽出することができた項目のみ情報が返されます。
異常時 Response
タイムアウト時などのサーバー側からの接続断の場合は、文字列"[ERROR]"が返されます。