VPC環境で利用できます。
ユーザーとやり取りした会話に対し、LLMがタイトルを生成します。
リクエスト
リクエスト形式を説明します。リクエスト形式は次の通りです。
メソッド | URI |
---|---|
POST | /api/v1/svc/{serviceId}/conversation-title |
リクエストヘッダ
RAG APIで共通して使用されるヘッダの詳細は、RAGのリクエストヘッダをご参照ください。
リクエストパスパラメータ
パラメータの説明は次の通りです。
フィールド | タイプ | 必須の有無 | 説明 |
---|---|---|---|
serviceId |
String | Required | サービスの固有 ID |
リクエストボディ
リクエストボディの説明は次の通りです。
フィールド | タイプ | 必須の有無 | 説明 |
---|---|---|---|
serviceId |
String | Required | サービスの固有 ID |
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. **倫理指針の策定と遵守**: NAVERのように、企業が独自の AI倫理準則を作成し、それに従って行動するようにしなければなりません。例えば、人を中心とした価値観を強調し、AI倫理諮問プロセスを通じてメンバー全員が倫理的な問題を考慮し、議論できるようにするのです。\n\n3. **教育とトレーニング**: AI技術を使用する人々を対象に、正しい使い方と潜在的リスクについて教育することで、AIへの過剰な依存を防ぎ、意思決定のコントロールを維持できるようにする必要があります。\n\n4. **安全対策の導入**: AIシステムのリスクを最小限に抑えるために、必要に応じて技術的またはポリシー上の安全対策を講じ、十分なリスクを評価した後、システムを展開する必要があります。\n\n5. **さまざまなステークホルダーとの協力**: 学界、産業界などさまざまなステークホルダーと協力し、文化的特性が反映されたデータセットを構築・共有することで、地域の特性に合った安全で効率的な AIの使用を図らなければなりません。\n\nこれらの方法を総合的に適用することで、AIをより安全かつ倫理的に使用することができるでしょう。"
}
]
}'
レスポンスストリーム
Server-Sent Events (SSE)方式でリアルタイムストリーミングレスポンスを提供します。各 SSEメッセージは次のような形式で構成されます (イベントは空の行で区切ります)。
event: [event_type]
data: [json_data]
会話タイトル生成 APIでサポートするイベントタイプは、ping
、token
、result
、error
の4つです。
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
}
}