スキルセット回答の作成
- 印刷する
- PDF
スキルセット回答の作成
- 印刷する
- PDF
Article Summary
Share feedback
Thanks for sharing your feedback!
Classic/VPC環境で利用できます。
特定スキルセットの APIを呼び出し、適切な回答を作成します。
リクエスト
リクエスト形式を説明します。リクエスト形式は次の通りです。
メソッド | URI |
---|---|
POST | /v1/skillsets/{skillset-id}/versions/{version}/final-answer |
ヘッダ
ヘッダの説明は次の通りです。
ヘッダ | 必須有無 | 説明 |
---|---|---|
X-NCP-CLOVASTUDIO-API-KEY | Y | テストアプリやサービスアプリを作成時に発行された API KEY |
X-NCP-APIGW-API-KEY | Y | テストアプリやサービスアプリを作成時に発行された API Gateway KEY |
X-NCP-CLOVASTUDIO-REQUEST-ID | N | 各リクエストのリクエスト ID |
Content-Type | Y | application/json |
パスパラメータ
パラメータについての説明は、次の通りです。
フィールド | タイプ | 必須有無 | 説明 |
---|---|---|---|
skillset-id | string | Y | 回答作成対象スキルセット ID |
version | integer | Y | 回答作成対象のスキルセットのバージョン(integer: >= 1) |
ボディ
リクエストボディの各フィールドの説明は、次の通りです。
フィールド | タイプ | 必須有無 | 説明 |
---|---|---|---|
query | string | Y | 質疑内容 |
tokenStream | boolean | N | 回答作成時にトークンストリーミングの使用有無 |
chatHistory | array | N | 回答作成履歴 |
chatHistory.role | enum | Y | 会話メッセージの役割 |
chatHistory.content | string | Y | 会話メッセージの内容 |
構文
構文例は次の通りです。
curl --location --request POST 'https://clovastudio.stream.ntruss.com/testapp/v1/skillsets/{skillset-id}/versions/{version}/final-answer' \
--header 'X-NCP-CLOVASTUDIO-API-KEY: <X-NCP-CLOVASTUDIO-API-KEY>' \
--header 'X-NCP-APIGW-API-KEY: <X-NCP-APIGW-API-KEY>' \
--header 'X-NCP-CLOVASTUDIO-REQUEST-ID: <X-NCP-CLOVASTUDIO-REQUEST-ID>' \
--header 'Content-Type: application/json'
--data '{
"query": "明日ソウルの天気はどう?",
"tokenStream": true
"chatHistory": [
{
"role": "user",
"content" : "今日の天気はどう?"
},
{
"role": "assistant",
"content" : "嵐の前夜です。"
}
]
}'
レスポンス
レスポンス形式を説明します。
ヘッダ
ヘッダの説明は次の通りです。
ヘッダ | 必須有無 | 説明 |
---|---|---|
Content-Type | - | application/json |
ボディ
ボディの各フィールドの説明は次の通りです。
フィールド | タイプ | 必須有無 | 説明 |
---|---|---|---|
result | - | - | レスポンス結果 |
result.finalAnswer | string | Y | モデルの最終実行結果(最後まで実行されなかった場合、空の文字列を返す) |
result.tokenCount | integer | Y | 回答作成時に測定されたトークン数 |
result.apiResult | array | - | 呼び出した API結果 |
result.apiResult.url | string | - | 回答過程で呼び出した API URL |
result.apiResult.requestBody | string | - | 回答過程で呼び出した APIのリクエストボディ |
result.apiResult.responseBody | string | - | 回答過程で呼び出した APIのレスポンスボディ |
result.apiResult.apiOrder | string | - | API呼び出し結果に関係なく、レスポンス順序を固定するためのソート基準値。スキルトレーナーでスキルを登録する際、API Spec内の Operation Idの定義時に x-api-order : {number value}を定義すると、apiOrder: {number value}のように定義された値通りに結果値が渡される。UI上で固定された順序値を受け取りたいときに使用。 |
result.apiResult.operationId | string | - | 回答過程で呼び出した API Specの Operation Id |
result.apiResult.nameForHuman | string | - | 回答過程で呼び出した APIが登録されたスキルの nameForHuman |
構文
構文例は次の通りです。
{
"status": {
"code": "20000",
"message": "OK"
},
"result": {
"finalAnswer": "明日のソウルの天気は晴れで、温度は約27度と予想されます。",
"tokenCount": 1032,
"apiResult": [
{
"url": "http://api.kcisa.kr/openapi/service/rest/convergence/conver8?serviceKey=247c5de7-556d-41bf-af3e-875e039e4f5c&numOfRows=1&keyword=판교",
"requestBody": "string",
"responseBody": "string",
"apiOrder": 1,
"operationId": "searchHotel",
"nameForHuman": "V1ReviewSearch"
}
]
}
}
レスポンスストリーム
各イベントを1つずつ出力するようレスポンスストリーミングを使用できます。レスポンスストリーミング形式について説明します。
ヘッダ
ヘッダの説明は次の通りです。
ヘッダ | 必須有無 | 説明 |
---|---|---|
accept | - | text/event-stream |
ボディ
ボディの各フィールドの説明は次の通りです。
フィールド | タイプ | 必須有無 | 説明 |
---|---|---|---|
selectedSkill | array | - | 選択されたスキルの名前(name for model).planning eventでのみ表示 |
finalAnswer | string | - | モデルの最終実行結果。最後まで実行されなかった場合は、空の文字列。finalAnswer eventでのみ表示 |
tokenCount | integer | - | そのイベントで使用されたトークン数 |
useTask | boolean | - | 呼び出したモデルの学習有無 |
apiResult | array | - | 呼び出した API結果 |
apiResult.url | string | - | 回答過程で呼び出した API URL |
apiResult.requestBody | string | - | 回答過程で呼び出した APIのリクエストボディ |
apiResult.responseBody | string | - | 回答過程で呼び出した APIのレスポンスボディ |
apiResult.apiOrder | string | - | API呼び出し結果に関係なく、レスポンス順序を固定するためのソート基準値。スキルトレーナーでスキルを登録する際、API Spec内の Operation Idの定義時に x-api-order : {number value}を定義すると、apiOrder: {number value}のように定義された値通りに結果値が渡される。UI上で固定された順序値を受け取りたいときに使用。 |
apiResult.operationId | string | - | 回答過程で呼び出した API Specの Operation Id |
apiResult.nameForHuman | string | - | 回答過程で呼び出した APIが登録されたスキルの nameForHuman |
Token Event
トークンストリーミングを使用する場合、Token Dataの説明は次の通りです。
フィールド | タイプ | 必須有無 | 説明 |
---|---|---|---|
id | integer | - | リクエストに対する識別子 |
index | integer | - | 作成トークンが該当するバッチインデックス |
probs | float | - | トークンごとの作成確率値 |
stop_reason | string | - | トークン作成が中断された理由 |
text | string | - | 完全なテキストペア |
構文
構文例は次の通りです。
{
"status": {
"code": "20000",
"message": "OK"
},
"result": {
"finalAnswer": "ソウルにあるホテルをお勧めいたします。\n\n1. Luxury Hotel(4.0) - ソウル中浪区ジェイル洞13-1\n2. Grand Resort(5.0) - ソウル中区文安洞12-1\n3. Movenpick Hotel(4.0) - ソウル広津区ウォーカーヒル路120",
"apiResult": [
{
"url": "https://free-api-0601.herokuapp.com/search_reviews_get?address=서울",
"requestBody": "address=서울",
"responseBody": "{\"hotels\": [{\"review_id\": 1, \"review_date\": \"20230811\", \"reviewer\": \"JohnDoe\", \"rating\": 4.0, \"content\": \"ホテルはいいけど、変な臭いがします。\", \"hotel_name\": \"Luxury Hotel\", \"address\": \"ソウル中浪区ジェイル洞13-1\", \"room_name\": \"Deluxe Suite\", \"good_cnt\": 10, \"bad_cnt\": 2, \"rating_service\": 5.0, \"rating_clean\": 4.0, \"rating_room\": 4.0}, {\"review_id\": 2, \"review_date\": \"20230810\", \"reviewer\": \"JaneSmith\", \"rating\": 5.0, \"content\": \"部屋の中にコーヒーポットもなく、周りにコーヒーを売っているところもありません。それ以外は満足です。\", \"hotel_name\": \"Grand Resort\", \"address\": \"ソウル中区文安洞12-1\", \"room_name\": \"Ocean View Room\", \"good_cnt\": 15, \"bad_cnt\": 0, \"rating_service\": 5.0, \"rating_clean\": 5.0, \"rating_room\": 5.0}, {\"review_id\": 5, \"review_date\": \"20230809\", \"reviewer\": \"ClaudeCalder\", \"rating\": 4.0, \"content\": \"サウナ、プールなどの施設がなくて残念だったけど、値段が安かったので良かったです。近くに地下鉄やコンビニもあってアクセスが良いです。しばらく滞在するのにぴったりです。\", \"hotel_name\": \"Movenpick Hotel\", \"address\": \"ソウル広津区ウォーカーヒル路120\", \"room_name\": \"City View\", \"good_cnt\": 9, \"bad_cnt\": 0, \"rating_service\": 3.0, \"rating_clean\": 4.0, \"rating_room\": 4.0}], \"test\": \"test\"}",
"operationId": "searchHotel",
"nameForHuman": "V1ReviewSearch",
"apiOrder": 1
}
],
"useTask": false,
"tokenCount": 3524
}
}
参考
バージョン管理機能が追加される前のスキルセット回答作成 APIのURIは /v1/skillsets/{skillset-id}/final-answer
です。もしこの APIを使う場合、リクエストのために必要なヘッダとパスパラメータ、ボディは上記の本文をご参照ください。
この記事は役に立ちましたか?