스킬셋 답변 생성
    • PDF

    스킬셋 답변 생성

    • PDF

    Article Summary

    Classic/VPC 환경에서 이용 가능합니다.

    특정 스킬셋의 API를 호출하여 적절한 답변을 생성합니다.

    요청

    요청 형식을 설명합니다. 요청 형식은 다음과 같습니다.

    메서드URI
    POST/v1/skillsets/{skillset-id}/versions/{version}/final-answer

    헤더

    헤더에 대한 설명은 다음과 같습니다.

    헤더필수 여부설명
    X-NCP-CLOVASTUDIO-API-KEYY테스트 앱이나 서비스 앱 생성 시 발급 받은 API KEY
    X-NCP-APIGW-API-KEYY테스트 앱이나 서비스 앱 생성 시 발급 받은 API Gateway KEY
    X-NCP-CLOVASTUDIO-REQUEST-IDN각 요청에 대한 요청 아이디
    Content-TypeYapplication/json

    경로 파라미터

    파라미터에 대한 설명은 다음과 같습니다.

    필드타입필수 여부설명
    skillset-idstringY답변 생성 대상 스킬셋 아이디
    versionintegerY답변 대상 스킬셋의 버전 (integer: >= 1)

    바디

    요청 바디의 각 필드에 대한 설명은 다음과 같습니다.

    필드타입필수 여부설명
    querystringY질의 내용
    tokenStreambooleanN답변 생성 시 토큰 스트리밍 사용 여부
    chatHistoryarrayN답변 생성 이력
    chatHistory.roleenumY대화 메시지의 역할
  • user: 사용자의 발화/질문
  • assistant: 사용자의 발화/질문에 대한 답변
  • chatHistory.contentstringY대화 메시지 내용

    구문

    구문 예시는 다음과 같습니다.

    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.finalAnswerstringY모델의 최종 실행 결과(마지막까지 실행되지 않은 경우, 빈 문자열 반환)
    result.tokenCountintegerY답변 생성 시 측정된 토큰 수
    result.apiResultarray-호출한 API 결과
    result.apiResult.urlstring-답변 과정에서 호출한 API URL
    result.apiResult.requestBodystring-답변 과정에서 호출한 API 요청 바디
    result.apiResult.responseBodystring-답변 과정에서 호출한 API 응답 바디
    result.apiResult.apiOrderstring-API 호출 결과에 상관없이 응답 순서를 고정하기 위한 정렬 기준 값. 스킬 트레이너에서 스킬을 등록할 때 API Spec 내 Operation Id 정의 시에 x-api-order : {number value} 를 정의하면 apiOrder: {number value}와 같이 정의된 값대로 결과값이 전달된다. UI 상에서 고정된 순서 값을 받고 싶을때 사용한다.
    result.apiResult.operationIdstring-답변 과정에서 호출한 API Spec의 Operation Id
    result.apiResult.nameForHumanstring-답변 과정에서 호출한 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"
          }
        ]
      }
    }
    

    응답 스트림

    각 이벤트를 하나씩 출력하도록 응답 스트리밍을 사용할 수 있습니다. 응답 스트리밍 형식을 설명합니다.

    헤더

    헤더에 대한 설명은 다음과 같습니다.

    헤더필수 여부설명
    accept-text/event-stream

    바디

    바디의 각 필드에 대한 설명은 다음과 같습니다.

    필드타입필수여부설명
    selectedSkillarray-선택된 스킬의 이름 (name for model). planning event에서만 표시
    finalAnswerstring-모델의 최종 실행 결과. 마지막까지 실행되지 않았다면 빈 문자열. finalAnswer event에서만 표시
    tokenCountinteger-해당 이벤트에서 사용된 토큰 수
    useTaskboolean-호출한 모델의 학습 여부
    apiResultarray-호출한 API 결과
    apiResult.urlstring-답변 과정에서 호출한 API URL
    apiResult.requestBodystring-답변 과정에서 호출한 API 요청 바디
    apiResult.responseBodystring-답변 과정에서 호출한 API 응답 바디
    apiResult.apiOrderstring-API 호출 결과에 상관없이 응답 순서를 고정하기 위한 정렬 기준 값. 스킬 트레이너에서 스킬을 등록할 때 API Spec 내 Operation Id 정의 시에 x-api-order : {number value} 를 정의하면 apiOrder: {number value}와 같이 정의된 값대로 결과값이 전달된다. UI 상에서 고정된 순서 값을 받고 싶을때 사용한다.
    apiResult.operationIdstring-답변 과정에서 호출한 API Spec의 Operation Id
    apiResult.nameForHumanstring-답변 과정에서 호출한 API 가 등록된 스킬의 nameForHuman

    Token Event

    토큰 스트리밍을 사용하는 경우 Token Data에 대한 설명은 다음과 같습니다.

    필드타입필수 여부설명
    idinteger-요청에 대한 식별자
    indexinteger-생성 토큰이 해당되는 배치 인덱스
    probsfloat-토큰별 생성 확률 값
    stop_reasonstring-토큰 생성이 중단된 이유
    textstring-완전한 텍스트 페어

    구문

    구문 예시는 다음과 같습니다.

    {
        "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를 사용하려는 경우, 요청을 위해 필요한 헤더와 경로 파라미터, 바디는 위 본문 내용을 참고해 주십시오.


    이 문서가 도움이 되었습니까?

    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.