会話タイトルの生成

Prev Next

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 メッセージのロール
  • 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. **倫理指針の策定と遵守**: 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でサポートするイベントタイプは、pingtokenresulterrorの4つです。

  • ping: 回答生成前の待機中に Read Timeoutを防止するためにデータを出力 (回答生成まで1秒ごとに)
  • token: 生成中回答のトークンをリアルタイムで出力
  • result: 最終回答を出力
  • error: 回答生成中にエラーが発生した場合に出力

レスポンスヘッダ

レスポンスヘッダの説明は次の通りです。

ヘッダ 必須の有無 説明
Accept - レスポンスデータの形式
  • text/event-stream

レスポンスボディ

レスポンスボディはイベントタイプによって異なります。

pingtokenresultイベント

pingtokenresultイベントの説明は次の通りです。

フィールド タイプ 必須の有無 説明
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
    }
}