대화 제목 생성

Prev Next

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

사용자와 주고받은 대화에 대해 LLM이 제목을 생성합니다.

요청

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

메서드 URI
POST /api/v1/svc/{serviceId}/conversation-title

요청 헤더

RAG API 에서 공통으로 사용하는 헤더에 대한 정보는 RAG 요청 헤더를 참조해 주십시오.

요청 경로 파라미터

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

필드 타입 필수 여부 설명
serviceId String Required 서비스의 고유 식별자

요청 바디

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

필드 타입 필수 여부 설명
serviceId String Required 서비스의 고유 식별자
messages Array Required 메시지 목록
  • 대화 내역을 나타내는 메시지 객체의 배열

messages

대화 맥락을 제공하는 메시지 배열입니다.

필드 타입 필수 여부 설명
role String Required 메시지 역할
  • user | assistant
    • user: 사용자 쿼리
    • assistant: 모델 응답
content String Required 메시지 내용

요청 예시

요청 예시는 다음과 같습니다.

curl --location --request POST 'https://kr-pub-gateway.rag.naverncp.com/api/v1/svc/{serviceId}/conversation-title' \
--header 'Authorization: Bearer {apiKey}' \
--header 'Accept: text/event-stream' \
--data '{
  "serviceId": "{serviceId}",
  "messages": [
    {
      "role": "user",
      "content": "AI를 안전하게 사용하려면 어떻게 해야 할까?"
    },
    {
      "role": "assistant",
      "content": "인공지능을 안전하게 사용하기 위한 방법은 다음과 같습니다:\n\n1. **기술적 개선**: 인공지능 시스템이 잘못된 정보나 편향된 내용을 학습하지 않도록 정확하고 중립적인 데이터를 제공하고, 지속적인 연구개발을 통해 시스템의 안정성과 신뢰성을 높여야 합니다.\n\n2. **윤리 지침 마련 및 준수**: 네이버처럼 기업이 자체적인 AI 윤리 지침을 만들고 이에 따라 행동하도록 해야 합니다. 예를 들어 사람을 중심으로 한 가치관을 강조하고, AI 윤리 자문 프로세스를 통해 구성원 모두가 윤리적인 문제를 고민하고 논의할 수 있게 해야 합니다.\n\n3. **교육 및 훈련**: AI 기술을 사용하는 사람들을 대상으로 올바른 사용법과 잠재적 위험에 대해 교육함으로써, AI에 과도한 의존을 방지하고 의사결정 통제력을 유지할 수 있도록 도와야 합니다.\n\n4. **안전 조치 도입**: AI 시스템의 위험을 최소화하기 위해 필요한 경우 기술적이거나 정책적인 안전 조치를 취하고, 충분한 위험 평가 후 시스템을 배포해야 합니다.\n\n5. **다양한 이해관계자와 협력**: 학계, 산업 등 여러 이해관계자들과 협력하여 문화적 특성이 반영된 데이터셋을 구축하고 공유함으로써, 지역적 특성에 맞는 안전하고 효율적인 AI 사용을 도모해야 합니다.\n\n이러한 방법들을 종합적으로 적용하면 인공지능을 더욱 안전하고 윤리적으로 사용할 수 있을 것입니다."
    }
  ]
}'

응답 스트림

Server-Sent Events (SSE) 방식을 통해 실시간 스트리밍 응답을 제공합니다. 각 SSE 메시지는 다음과 같은 형식으로 구성됩니다. (이벤트 간에는 빈 줄로 구분합니다.)

event: [event_type]
data: [json_data]

대화 제목 생성 API에서 지원하는 이벤트 타입은 ping, token, result, error 네 가지입니다.

  • ping: 답변 생성 전 대기 중에 Read Timeout을 방지하기 위해 데이터 출력 (답변 생성 전까지 1초마다)
  • token: 생성 중인 답변의 토큰을 실시간으로 출력
  • result: 최종 답변 출력
  • error: 답변 생성 중 에러 발생 시 출력

응답 헤더

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

헤더 필수 여부 설명
Accept - 응답 데이터의 형식
  • text/event-stream

응답 바디

응답 바디는 이벤트 타입에 따라 상이합니다.

ping, token, result 이벤트

ping, token, result 이벤트에 대한 설명은 다음과 같습니다.

필드 타입 필수 여부 설명
message Object - 메시지 정보
message.role String - 메시지 역할
  • assistant
message.content String - 현재 생성된 토큰
message.totalContent String - 현재까지 생성된 전체 토큰
status String - 메시지 상태
  • IN_PROGRESS | COMPLETE
    • IN_PROGRESS: 생성 중
    • COMPLETE: 생성 완료
references Array - 인용 정보
rateLimit String - API 사용량 제한 정보 (result 이벤트에만 포함)
rateLimit.limitRequests String - 요청 수 제한
rateLimit.remainingRequests String - 현재 남은 요청 수
rateLimit.resetRequests String - 요청 제한 초기화 시간 (초)
rateLimit.limitTokens String - 토큰 수 제한
rateLimit.remainingTokens String - 현재 남은 토큰 수
rateLimit.resetTokens String - 토큰 제한 초기화 시간 (초)
metadata String - 요청 메타데이터 (result 이벤트에만 포함)
metadata.chatModel String - LLM 모델
  • HyperClovaX
metadata.modelName String - HyperCLOVA X 모델 버전
  • HCX-003 | HCX-005 | HCX-DASH-001 | HCX-DASH-002
metadata.inputTokens Integer - 입력 토큰 수
metadata.outputTokens Integer - 출력 토큰 수
metadata.totalTokens Integer - 전체 토큰 수

error 이벤트

error 이벤트에 대한 설명은 다음과 같습니다.

필드 타입 필수 여부 설명
code Integer Required API 응답 상태 코드
message String Required API 응답 상태 메시지

응답 상태 코드

RAG API에서 공통으로 사용하는 응답 상태 코드에 대한 정보는 RAG 응답 상태 코드를 참조해 주십시오.

응답 예시

응답 예시는 다음과 같습니다.

event: ping
data: {
    "message": {
        "role": "assistant",
        "content": "",
        "totalContent": ""
    },
    "status": "IN_PROGRESS",
    "references": [],
    "rateLimit": null,
    "metadata": {}
}

...

event: token
data: {
    "message": {
        "role": "assistant",
        "content": " 안전한",
        "totalContent": "\"인공지능 안전한"
    },
    "status": "IN_PROGRESS",
    "references": [],
    "rateLimit": null,
    "metadata": {}
}

...

event: result
data: {
    "message": {
        "role": "assistant",
        "content": "\"인공지능 안전한 활용법\"",
        "totalContent": "\"인공지능 안전한 활용법\""
    },
    "status": "COMPLETE",
    "references": [],
    "rateLimit": {
        "limitRequests": null,
        "remainingRequests": null,
        "resetRequests": null,
        "limitTokens": "60000",
        "remainingTokens": "58824",
        "resetTokens": "41s"
    },
    "metadata": {
        "chatModel": "HyperClovaX",
        "modelName": "HCX-005",
        "inputTokens": 327,
        "outputTokens": 8,
        "totalTokens": 335
    }
}