スキルセット返答の生成
- 印刷する
- PDF
スキルセット返答の生成
- 印刷する
- PDF
記事の要約
この要約は役に立ちましたか?
ご意見ありがとうございます
Classic/VPC環境で利用できます。
特定のスキルセットの APIを呼び出して適切な返答を生成します。
リクエスト
リクエスト形式を説明します。リクエスト形式は次の通りです。
メソッド | URI |
---|---|
POST |
|
リクエストヘッダ
リクエストヘッダの説明は次の通りです。
フィールド | 必須の有無 | 説明 |
---|---|---|
X-NCP-CLOVASTUDIO-API-KEY | Required | テストアプリやサービスアプリの作成時に発行された API Key |
X-NCP-APIGW-API-KEY | Required | テストアプリやサービスアプリの作成時に発行された API Gateway Key |
X-NCP-CLOVASTUDIO-REQUEST-ID | Optional | リクエスト ID |
Content-Type | Required | リクエストデータの形式
|
Accept | Conditional | レスポンスデータの形式
|
参考
レスポンス結果は基本的に JSON形式で返しますが、Accept
をtext/event-stream
に指定するとストリーム形式で返します。
リクエストパスパラメータ
リクエストパスパラメータの説明は次の通りです。
フィールド | タイプ | 必須の有無 | 説明 |
---|---|---|---|
skillset-id | String | Required | 返答生成対象のスキルセット ID |
version | Integer/String | Required | 返答生成対象のスキルセットバージョン
|
参考
version
は、入力するスキルセットのバージョンに応じて、Integerと Stringの中から選択してリクエストしてください。
リクエストボディ
リクエストボディの説明は次の通りです。
フィールド | タイプ | 必須の有無 | 説明 |
---|---|---|---|
query | String | Required | クエリ内容 |
tokenStream | Boolean | Optional | 返答生成時のトークンストリーミング使用有無 |
chatHistory | Array | Optional | 返答生成履歴 |
chatHistory.role | Enum | Required | 会話メッセージのロール
|
chatHistory.content | String | Required | 会話メッセージの内容 |
requestOverride | Object | Optional | すべての APIに適用する呼び出しオプション |
requestOverride.baseOperation | Object | Optional | すべての APIに適用する呼び出しオプション情報 |
requestOverride.baseOperation.header | Object | Optional | すべての APIに適用するリクエストヘッダ |
requestOverride.baseOperation.query | Object | Optional | すべての APIに適用するリクエストクエリパラメータ |
requestOverride.baseOperation.requestBody | Object | Optional | すべての APIに適用するリクエストボディ
|
requestOverride.operations | Array | Optional | 特定の APIに適用する呼び出しオプション |
operations
operations
の説明は次の通りです。
フィールド | タイプ | 必須の有無 | 説明 |
---|---|---|---|
operationId | String | Conditional | 特定の APIのオペレーション ID
|
header | Object | Optional | 特定の APIに適用するリクエストヘッダ |
query | Object | Optional | 特定の APIに適用するリクエストクエリパラメータ |
requestBody | Object | Optional | 特定の APIに適用するリクエストボディ
|
リクエスト例
リクエストのサンプルコードは次の通りです。
curl --location --request POST 'https://clovastudio.stream.ntruss.com/testapp/v1/skillsets/{skillset-id}/versions/{version}/final-answer' \
--header 'X-NCP-CLOVASTUDIO-API-KEY: {CLOVA Studio API Key}' \
--header 'X-NCP-APIGW-API-KEY: {API Gateway API Key}' \
--header 'X-NCP-CLOVASTUDIO-REQUEST-ID: {Request ID}' \
--header 'Content-Type: application/json' \
--data '{
"query": "明日の天気はどう?",
"tokenStream": true,
"chatHistory": [
{
"role": "user",
"content": "今日のソウルの天気はどう?"
},
{
"role": "assistant",
"content": "嵐の前の静けさです。"
}
],
"requestOverride": {
"baseOperation": {
"query": {
"appid": "appid-11223344"
}
}
}
}'
レスポンス
レスポンス形式を説明します。
レスポンスヘッダ
レスポンスヘッダの説明は次の通りです。
ヘッダ | 必須の有無 | 説明 |
---|---|---|
Content-Type | - | レスポンスデータの形式
|
レスポンスボディ
レスポンスボディの説明は次の通りです。
フィールド | タイプ | 必須の有無 | 説明 |
---|---|---|---|
status | Object | - | レスポンスステータス |
result | Object | - | レスポンス結果 |
result.finalAnswer | String | - | モデルの最終実行結果
|
result.tokenCount | Integer | - | 返答生成時に測定されたトークン数 |
result.useTask | Boolean | - | 呼び出したモデルの学習有無
|
result.apiResult | Array | - | 呼び出した APIの結果 |
apiResult
apiResult
の説明は次の通りです。
フィールド | タイプ | 必須の有無 | 説明 |
---|---|---|---|
url | String | - | 返答中に呼び出した API URL |
requestBody | String | - | 返答中に呼び出した APIリクエストボディ |
responseBody | String | - | 返答中に呼び出した APIレスポンスボディ |
apiOrder | Integer | - | API呼び出しの結果に関係なく、レスポンス順序を固定するためのソート基準 |
operationId | String | - | 返答中に呼び出した API Specのオペレーション ID |
nameForHuman | String | - | 返答中に呼び出した APIが登録されたスキルの名前 |
レスポンス例
レスポンスのサンプルコードは次の通りです。
成功
呼び出しに成功した場合のレスポンスのサンプルコードは次の通りです。
{
"status": {
"code": "20000",
"message": "OK"
},
"result": {
"finalAnswer": "明日のソウルの天気は晴れ、気温は約27度程度と予想されます。",
"tokenCount": 1032,
"apiResult": [
{
"url": "http://example.com?numOfRows=1&location=서울&date=20240530",
"requestBody": "string",
"responseBody": "string",
"apiOrder": 1,
"operationId": "weatherAPI",
"nameForHuman": "WeatherSkill"
}
]
}
}
失敗
呼び出しに失敗した場合のレスポンスのサンプルコードは次の通りです。
レスポンスストリーム
生成されるトークンを1つずつ出力するようにトークンストリーミングを使用できます。トークンストリーミング形式を説明します。
レスポンスヘッダ
レスポンスヘッダの説明は次の通りです。
フィールド | 必須の有無 | 説明 |
---|---|---|
Accept | - | レスポンスデータの形式
|
レスポンスボディ
レスポンスボディの説明は次の通りです。
フィールド | タイプ | 必須の有無 | 説明 |
---|---|---|---|
selectedSkill | Object | - | 選択されたスキルの名前
|
finalAnswer | String | - | モデルの最終実行結果
|
tokenCount | Integer | - | イベントで使用されたトークン数 |
apiResult | Object | - | 返答中に呼び出した APIの結果
|
apiResult.url | String | - | 返答中に呼び出した API URL |
apiResult.requestBody | String | - | 返答中に呼び出した APIリクエストボディ |
apiResult.responseBody | String | - | 返答中に呼び出した APIレスポンスボディ |
apiResult.apiOrder | Integer | - | API呼び出しの結果に関係なく、レスポンス順序を固定するためのソート基準 |
apiResult.operationId | String | - | 返答中に呼び出した API Specのオペレーション ID |
apiResult.nameForHuman | String | - | 返答中に呼び出した APIが登録されたスキルの名前 |
Token Event
TokenEventの説明は次の通りです。
フィールド | タイプ | 必須の有無 | 説明 |
---|---|---|---|
probs | Array | - | レスポンス候補のトークンリストと各トークンの確率 |
stopReason | String | - | 結果生成停止の理由(通常、最後のイベントで渡す)
|
text | String | - | 完全なるテキストペア |
レスポンス例
レスポンスのサンプルコードは次の通りです。
成功
呼び出しに成功した場合のレスポンスのサンプルコードは次の通りです。
id: aabdfe-dfgwr-edf-hpqwd-f2asd-g
event: planning
data: {"selectedSkill": {["nameForHuman":"ホテル検索"]}, "tokenCount": 432}
id: aabdfe-dfgwr-edf-hpqwd-f1asd-g
event: cot
data: {"apiResult": [{"url": "https://example.com/search_reviews_get?keyword=地下鉄の駅からのアクセスが良い", "requestBody": "keyword=地下鉄の駅からのアクセスが良い", "responseBody": "[{\"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}]", "apiOrder": 1}], "tokenCount": 2401 }
id: aabdfe-dfgwr-edf-hpqwd-f2asd-g
event: finalAnswer
data: {"finalAnswer": "ソウルで地下鉄の駅からのアクセスが良いホテルは Movenpick Hotelで、ソウル特別市クァンジン区ウォーカーヒルロ 120に
位置しています。", "apiResult": [{"url": "https://example.com/search_reviews_get?keyword=地下鉄の駅からのアクセスが良い", "requestBody": "keyword=地下鉄の駅からのアクセスが良い", "responseBody":
"[{\"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}]", "apiOrder": 1}],
"tokenCount": 214 }
...
失敗
呼び出しに失敗した場合のレスポンスのサンプルコードは次の通りです。
この記事は役に立ちましたか?