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 | 메시지 역할
|
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 |
- | 응답 데이터의 형식
|
응답 바디
응답 바디는 이벤트 타입에 따라 상이합니다.
ping
, token
, result
이벤트
ping
, token
, result
이벤트에 대한 설명은 다음과 같습니다.
필드 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
message |
Object | - | 메시지 정보 |
message.role |
String | - | 메시지 역할
|
message.content |
String | - | 현재 생성된 토큰 |
message.totalContent |
String | - | 현재까지 생성된 전체 토큰 |
status |
String | - | 메시지 상태
|
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 모델
|
metadata.modelName |
String | - | HyperCLOVA X 모델 버전
|
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
}
}