MENU
      スキルセット返答の生成
        • PDF

        スキルセット返答の生成

        • PDF

        記事の要約

        Classic/VPC環境で利用できます。

        特定のスキルセットの APIを呼び出して適切な返答を生成します。

        リクエスト

        リクエスト形式を説明します。リクエスト形式は次の通りです。

        メソッドURI
        POST/v1/skillsets/{skillset-id}/versions/{version}/final-answer

        リクエストヘッダ

        リクエストヘッダの説明は次の通りです。

        フィールド必須の有無説明
        AuthorizationRequired認証用 APIキー<例> Bearer nv-************
        X-NCP-CLOVASTUDIO-REQUEST-IDOptionalリクエスト ID
        Content-TypeRequiredリクエストデータの形式
        • application/json
        AcceptConditionalレスポンスデータの形式
        • text/event-stream
        参考

        レスポンス結果は基本的に JSON形式で返しますが、Accepttext/event-streamに指定するとストリーム形式で返します。

        リクエストパスパラメータ

        リクエストパスパラメータの説明は次の通りです。

        フィールドタイプ必須の有無説明
        skillset-idStringRequired返答生成対象のスキルセット ID
        versionInteger/StringRequired返答生成対象のスキルセットバージョン
        • バージョンを指定してスキルセット使用時に入力
        • {バージョン番号} | latest
          • {バージョン番号}: 特定のバージョン
            • 1 ≤ version
          • latest: 現在適用されたバージョン
        参考

        versionは、入力するスキルセットのバージョンに応じて、Integerと Stringの中から選択してリクエストしてください。

        リクエストボディ

        リクエストボディの説明は次の通りです。

        フィールドタイプ必須の有無説明
        queryStringRequiredクエリ内容
        tokenStreamBooleanOptional返答生成時のトークンストリーミング使用有無
        chatHistoryArrayOptional返答生成履歴
        chatHistory.roleEnumRequired会話メッセージのロール
        • user | assistant
          • user: ユーザーの発話または質問
          • assistant: モデルの返答
        chatHistory.contentStringRequired会話メッセージの内容
        requestOverrideObjectOptionalすべての APIに適用する呼び出しオプション
        requestOverride.baseOperationObjectOptionalすべての APIに適用する呼び出しオプション情報
        requestOverride.baseOperation.headerObjectOptionalすべての APIに適用するリクエストヘッダ
        requestOverride.baseOperation.queryObjectOptionalすべての APIに適用するリクエストクエリパラメータ
        requestOverride.baseOperation.requestBodyObjectOptionalすべての APIに適用するリクエストボディ
        • GETメソッド APIの場合は適用しない
        requestOverride.operationsArrayOptional特定の APIに適用する呼び出しオプション

        operations

        operationsの説明は次の通りです。

        フィールドタイプ必須の有無説明
        operationIdStringConditional特定の APIのオペレーション ID
        • operationsの入力時は必須
        headerObjectOptional特定の APIに適用するリクエストヘッダ
        queryObjectOptional特定の APIに適用するリクエストクエリパラメータ
        requestBodyObjectOptional特定の APIに適用するリクエストボディ
        • GETメソッド APIの場合は適用しない

        リクエスト例

        リクエストのサンプルコードは次の通りです。

        curl --location --request POST 'https://clovastudio.stream.ntruss.com/testapp/v1/skillsets/{skillset-id}/versions/{version}/final-answer' \
        --header 'Authorization: Bearer {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"
                        }
                    }
                }
            }'
        Plain text

        レスポンス

        レスポンス形式を説明します。

        レスポンスヘッダ

        レスポンスヘッダの説明は次の通りです。

        ヘッダ必須の有無説明
        Content-Type-レスポンスデータの形式
        • application/json

        レスポンスボディ

        レスポンスボディの説明は次の通りです。

        フィールドタイプ必須の有無説明
        statusObject-レスポンスステータス
        resultObject-レスポンス結果
        result.finalAnswerString-モデルの最終実行結果
        • 最後まで実行されなかった場合、空の文字列を返す
        result.tokenCountInteger-返答生成時に測定されたトークン数
        result.useTaskBoolean-呼び出したモデルの学習有無
        • false | true
          • false: 学習していない
          • true: 学習完了
        result.apiResultArray-呼び出した APIの結果

        apiResult

        apiResultの説明は次の通りです。

        フィールドタイプ必須の有無説明
        urlString-返答中に呼び出した API URL
        requestBodyString-返答中に呼び出した APIリクエストボディ
        responseBodyString-返答中に呼び出した APIレスポンスボディ
        apiOrderInteger-API呼び出しの結果に関係なく、レスポンス順序を固定するためのソート基準
        operationIdString-返答中に呼び出した API Specのオペレーション ID
        nameForHumanString-返答中に呼び出した 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"
              }
            ]
          }
        }
        JSON

        失敗

        呼び出しに失敗した場合のレスポンスのサンプルコードは次の通りです。

        レスポンスストリーム

        生成されるトークンを1つずつ出力するようにトークンストリーミングを使用できます。トークンストリーミング形式を説明します。

        レスポンスヘッダ

        レスポンスヘッダの説明は次の通りです。

        フィールド必須の有無説明
        Accept-レスポンスデータの形式
        • text/event-stream

        レスポンスボディ

        レスポンスボディの説明は次の通りです。

        フィールドタイプ必須の有無説明
        selectedSkillObject-選択されたスキルの名前
        • Planning eventでのみ表示
        finalAnswerString-モデルの最終実行結果
        • 最後まで実行されなかった場合は空の文字列を返す
        • FinalAnswer eventでのみ表示
        tokenCountInteger-イベントで使用されたトークン数
        apiResultObject-返答中に呼び出した APIの結果
        • FinalAnswer eventでのみ表示
        apiResult.urlString-返答中に呼び出した API URL
        apiResult.requestBodyString-返答中に呼び出した APIリクエストボディ
        apiResult.responseBodyString-返答中に呼び出した APIレスポンスボディ
        apiResult.apiOrderInteger-API呼び出しの結果に関係なく、レスポンス順序を固定するためのソート基準
        apiResult.operationIdString-返答中に呼び出した API Specのオペレーション ID
        apiResult.nameForHumanString-返答中に呼び出した APIが登録されたスキルの名前

        Token Event

        TokenEventの説明は次の通りです。

        フィールドタイプ必須の有無説明
        probsArray-レスポンス候補のトークンリストと各トークンの確率
        stopReasonString-結果生成停止の理由(通常、最後のイベントで渡す)
        • length | end_token | stop_before
          • length: 長さ制限
          • end_token: トークン数制限
          • stop_before: 返答生成中 stopBefore設定値の登場
        textString-完全なるテキストペア

        レスポンス例

        レスポンスのサンプルコードは次の通りです。

        成功

        呼び出しに成功した場合のレスポンスのサンプルコードは次の通りです。

        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 }
        ...
        Plain text

        失敗

        呼び出しに失敗した場合のレスポンスのサンプルコードは次の通りです。


        この記事は役に立ちましたか?

        Changing your password will log you out immediately. Use the new password to log back in.
        First name must have atleast 2 characters. Numbers and special characters are not allowed.
        Last name must have atleast 1 characters. Numbers and special characters are not allowed.
        Enter a valid email
        Enter a valid password
        Your profile has been successfully updated.