스킬셋 답변 생성
    • PDF

    스킬셋 답변 생성

    • PDF

    기사 요약

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

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

    요청

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

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

    요청 헤더

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

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

    응답 결과는 기본적으로 JSON 형태로 반환되지만, Accept를 text/event-stream으로 지정 시 응답 결과를 스트림 형태로 반환합니다.

    요청 경로 파라미터

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

    필드타입필수 여부설명
    skillset-idstringY답변 생성 대상 스킬셋 아이디
    versioninteger / stringY답변 대상 스킬셋의 버전
  • 1 ≤ version: 특정 버전을 지정하는 경우 (integer)
  • latest: 적용 상태인 버전을 지정하는 경우 (string)
  • 참고

    version은 입력할 스킬셋 버전에 따라 integer 와 string 중에 선택하여 요청해 주십시오.

    요청 바디

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

    필드타입필수 여부설명
    querystringY질의 내용
    chatHistoryarrayN답변 생성 이력
    chatHistory.roleenumY대화 메시지의 역할
  • user: 사용자의 발화/질문
  • assistant: 사용자의 발화/질문에 대한 답변
  • chatHistory.contentstringY대화 메시지 내용
    tokenStreambooleanN답변 생성 시 토큰 스트리밍 사용 여부
  • true
  • false
  • requestOverrideobjectN오퍼레이션에 적용할 호출 옵션
    requestOverride.baseOperationobjectN모든 오퍼레이션에 적용할 key-value
    requestOverride.baseOperation.headerobjectN모든 API에 적용할 요청 헤더
    requestOverride.baseOperation.queryobjectN모든 API에 적용할 요청 쿼리 파라미터
    requestOverride.baseOperation.requestBodyobjectN모든 API에 적용할 요청 바디(Get 메서드 API에는 적용되지 않음)
    requestOverride.operationsarrayN특정 오퍼레이션에 적용한 key-value
    requestOverride.operations.operationIdstringY특정 API의 오퍼레이션 아이디
    requestOverride.operations.headerobjectN특정 API에 적용할 요청 헤더
    requestOverride.operations.queryobjectN특정 API에 적용할 요청 쿼리 파라미터
    requestOverride.operations.requestBodyobjectN특정 API에 적용할 요청 바디(Get 메서드 API에는 적용되지 않음)

    요청 구문

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

    curl --location --request POST 'https://clovastudio.stream.gov-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-CLOVASTUDIO-REQUEST-ID: <X-NCP-CLOVASTUDIO-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-application/json

    응답 바디

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

    필드타입필수 여부설명
    statusobject(statusSchema)-응답 상태
    resultobject-응답 결과
    result.finalAnswerstring-모델의 최종 실행 결과(마지막까지 실행되지 않은 경우, 빈 문자열 반환)
    result.tokenCountinteger-답변 생성 시 측정된 토큰 수
    result.useTaskboolean-호출한 모델의 학습 여부
  • false
  • true
  • result.apiResultobject-호출한 API 결과
    result.apiResult.urlstring-답변 과정에서 호출한 API URL
    result.apiResult.requestBodystring-답변 과정에서 호출한 API 요청 바디
    result.apiResult.responseBodystring-답변 과정에서 호출한 API 응답 바디
    result.apiResult.apiOrderinteger-API 호출 결과에 상관없이 응답 순서를 고정하기 위한 정렬 기준 값
    result.apiResult.operationIdstring-답변 과정에서 호출한 API Spec의 Operation Id
    result.apiResult.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"
          }
        ]
      }
    }
    

    실패

    호출이 실패한 경우의 구문 예시는 다음과 같습니다.

    응답 스트림

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

    응답 헤더

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

    헤더필수 여부설명
    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의 Operation Id
    apiResult.nameForHumanstring-답변 과정에서 호출한 API 가 등록된 스킬의 이름

    Token Event

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

    필드타입필수 여부설명
    probsarray-응답 토큰의 후보 토큰 및 후보 토큰의 확률값
    stopReasonstring-토큰 생성 중단 이유 (일반적으로 마지막 이벤트에 전달)
  • 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 }
    ...
    

    실패

    호출이 실패한 경우의 구문 예시는 다음과 같습니다.

    참고

    버전 관리 기능이 추가되기 전 스킬셋 답변 생성 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.