Chat Completions
    • PDF

    Chat Completions

    • PDF

    Article Summary

    Classic/VPC環境で利用できます。

    HyperCLOVA Xモデルを活用して会話型文章を作成します。

    リクエスト

    リクエスト形式を説明します。リクエスト形式は次の通りです。

    メソッドURI
    POST/v1/chat-completions/{modelName}

    ヘッダ

    ヘッダの説明は次の通りです。

    ヘッダ必須有無説明
    X-NCP-CLOVASTUDIO-API-KEYYテストアプリやサービスアプリを作成時に発行された API KEY
    X-NCP-APIGW-API-KEYYテストアプリやサービスアプリを作成時に発行された API Gateway KEY
    X-NCP-CLOVASTUDIO-REQUEST-IDN各リクエストのリクエスト ID
    Content-TypeYapplication/json
    AcceptNtext/event-stream
    参考
    • レスポンス結果は基本的に JSON形式で返されますが、Accepttext/event-streamで指定するとレスポンス結果をストリーム形式で返します。
    • レスポンスストリームを利用する場合、API URLは https://clovastudio.stream.ntruss.com/を使用してください。

    パスパラメータ

    パラメータについての説明は、次の通りです。

    フィールドタイプ必須有無説明
    modelNamestringYモデル名: HCX-002

    ボディ

    ボディの説明は次の通りです。

    フィールドタイプ必須有無説明
    messagesarrayY会話メッセージ
    messages.roleenumY会話メッセージの役割
  • system: 役割を規定する指示文
  • user: ユーザーの発話/質問
  • assistant: ユーザーの発話/質問に対する回答
  • messages.contentstringY会話メッセージの内容
    temperaturedoubleN作成トークンに対する多様度(設定値が高いほど多様な文章を作成)
  • 0.00 < temperature ≤ 1(デフォルト値: 0.50)
  • topKintN作成トークン候補群から確率の高い k個を候補に指定しサンプリング
  • 0 ≤ topK ≤ 128(デフォルト値: 0)
  • topPdoubleN作成トークン候補群を累積確率に基づいてサンプリング
  • 0 < topP ≤ 1(デフォルト値: 0.8)
  • repeatPenaltydoubleN同じトークンを作成することに対するペナルティ度(設定値が高いほど、同じ結果値を繰り返し作成する確率が減少)
  • 0 < repeatPenalty ≤ 10(デフォルト値: 5)
  • stopBeforestringNトークン作成停止文字
  • [](デフォルト値)
  • maxTokensintN最大作成トークン数
  • 0~4096(デフォルト値: 100)
  • seedintNモデル繰り返し実行時に結果値の一貫性レベルを調整
  • 0: 一貫性レベルをランダムに適用(デフォルト)
  • 1 ≤ seed ≤ 4294967295: 一貫して作成しようとする結果値の seed値またはユーザーが指定しようとする seed値
  • 参考

    一部のフィールドを入力する際は、以下の内容をご確認ください。

  • messages: 入力したトークン数と`maxTokens`で入力したトークン数の合計は4096トークンを超過することは出来ません。messagesで入力したトークン数は Chat Completionsトークン計算 APIを呼び出して確認できます。
  • topP、temperature: 小数点以下2桁まで表記します。
  • Seed: 使用すると、モデルを繰り返し実行しても一貫性のある結果を得る確率を高めることができます。ただし、結果値の完全性は保証されず、他の条件が変更されると結果が微妙に変わる場合があります。
  • 構文

    構文例は次の通りです。

    curl --location --request POST 'https://clovastudio.stream.ntruss.com/testapp/v1/chat-completions/HCX-002' \
    --header 'X-NCP-CLOVASTUDIO-API-KEY: <X-NCP-CLOVASTUDIO-API-KEY>' \
    --header 'X-NCP-APIGW-API-KEY: <X-NCP-APIGW-API-KEY>' \
    --header 'X-NCP-CLOVASTUDIO-REQUEST-ID: <X-NCP-CLOVASTUDIO-REQUEST-ID>' \
    --header 'Content-Type: application/json' \
    --header 'Accept: text/event-stream' \
    --data '{
      "topK" : 0,
      "includeAiFilters" : true,
      "maxTokens" : 256,
      "temperature" : 0.5,
      "messages" : [ {
        "role" : "system",
        "content" : "test"
      }, {
        "role" : "user",
        "content" : "テストしてみよう。"
      }, {
        "role" : "assistant",
        "content" : "分かりました。何をテストしましょうか?"
      } ],
      "stopBefore" : [ ],
      "repeatPenalty" : 5.0,
      "topP" : 0.8
    }'
    

    レスポンス

    レスポンス形式を説明します。

    ヘッダ

    ヘッダの説明は次の通りです。

    ヘッダ必須有無説明
    Content-Type-application/json

    ボディ

    ボディの説明は次の通りです。

    フィールドタイプ必須有無説明
    result--レスポンス結果
    result.messagearrayY会話メッセージ
    result.message.roleenumY会話メッセージの役割
  • system: 役割を規定する指示文
  • user: ユーザーの発話/質問
  • assistant: ユーザーの発話/質問に対する回答
  • result.message.contentstringY会話メッセージの内容
    result.stopReasonenum-トークン作成停止理由(一般的に最後のイベントに転送)
  • LENGTH: 長さ制限
  • END_TOKEN: EOD(End Of Token)による作成停止
  • STOP_BEFORE: stopBeforeに指定した文字による停止
  • result.inputLengthint-入力トークン数(課金基準で end of turnのような特殊トークンも含む)
    result.outputLengthint-レスポンストークン数
    result.seedint-入力 seed値
    (0の入力または未入力の場合、ランダム値を返す)
    aiFilterarray-AI Filter結果
    aiFilter.groupNamestringYAI Filterカテゴリグループ名
  • curse
  • unsafeContents
  • aiFilter.namestringYAI Filterカテゴリ詳細名
  • discrimination: 卑下、差別、嫌悪(curse)
  • insult: 暴言(curse)
  • sexualHarassment: セクハラ、わいせつ(unsafeContents)
  • aiFilter.scorestringYAI Filter点数
  • 0: 会話メッセージにセンシティブ/危険な表現を含む可能性が高い
  • 1: 会話メッセージにセンシティブ/危険な表現を含む可能性あり
  • 2: 会話メッセージにセンシティブ/危険な表現を含む可能性が低い
  • 参考

    AI Filterは最大500文字まで分析できます。ただし、分析対象テキストに正常ではない形式、絵文字、特殊文字などが多い場合、正常に分析されないことがあります。

    構文

    構文例は次の通りです。

    {
      "status": {
        "code": "20000",
        "message": "OK"
      },
      "result": {
        "message": {
          "role": "assistant",
          "content": "フレーズ: 今日一日あった出来事を記録し、明日に備えましょう。日記はあなたの人生をより豊かにしてくれます。\n"
        },
        "stopReason": "LENGTH",
        "inputLength": 100,
        "outputLength": 10,
        "aiFilter": [
          {
            "groupName": "curse",
            "name": "insult",
            "score": "1"
          },
          {
            "groupName": "curse",
            "name": "discrimination",
            "score": "0"
          },
          {
            "groupName": "unsafeContents",
            "name": "sexualHarassment",
            "score": "2"
          }
        ]
      }
    }
    

    レスポンスストリーム

    作成されるトークンを1つずつ出力するようトークンストリーミングを使用できます。トークンストリーミング形式について説明します。

    ヘッダ

    ヘッダの説明は次の通りです。

    ヘッダ必須有無説明
    Accept-text/event-stream

    ボディ

    ボディの説明は次の通りです。

    StreamingChatCompletionsResultEvent

    StreamingChatCompletionsResultEventの説明は、次の通りです。

    フィールドタイプ必須有無説明
    messagearray-会話メッセージ
    message.roleenum-会話メッセージの役割
  • system: 役割を規定する指示文
  • user: ユーザーの発話/質問
  • assistant: ユーザーの発話/質問に対する回答
  • message.contentstring-会話メッセージの内容
    stopReasonenum-トークン作成停止理由(一般的に最後のイベントに転送)
  • LENGTH: 長さ制限
  • END_TOKEN: EOD(End Of Token)による作成停止
  • STOP_BEFORE: stopBeforeに指定した文字による停止
  • inputLengthint-入力トークン数(課金基準で end of turnのような特殊トークンも含む)
    outputLengthint-レスポンストークン数
    aiFilterarray-AI Filter結果
    aiFilter.groupNamestringYAI Filterカテゴリグループ名
    aiFilter.namestringYAI Filterカテゴリ詳細名
    aiFilter.scorestringYAI Filter点数
  • 0: 会話メッセージにセンシティブ/危険な表現を含む可能性が高い
  • 1: 会話メッセージにセンシティブ/危険な表現を含む可能性あり
  • 2: 会話メッセージにセンシティブ/危険な表現を含む可能性が低い
  • StreamingChatCompletionsTokenEvent

    StreamingChatCompletionsResultEventの説明は、次の通りです。

    フィールドタイプ必須有無説明
    idstring-リクエストを識別するイベント ID
    messagearray-会話メッセージ
    message.roleenum-会話メッセージの役割
  • system: 役割を規定する指示文
  • user: ユーザーの発話/質問
  • assistant: ユーザーの発話/質問に対する回答
  • message.contentstring-会話メッセージの内容
    inputLengthint-入力トークン数(課金基準で end of turnのような特殊トークンも含む)
    stopReasonenum-トークン作成停止理由(一般的に最後のイベントに転送)
  • LENGTH: 長さ制限
  • END_TOKEN: EOD(End Of Token)による作成停止
  • STOP_BEFORE: stopBeforeに指定した文字による停止
  • ErrorEvent

    ErrorEventの説明は次の通りです。

    フィールドタイプ必須有無説明
    statusstatus-レスポンス状態

    SignalEvent

    SignalEventの説明は次の通りです。

    フィールドタイプ必須有無説明
    datastring-伝達するシグナルデータの情報

    構文

    構文例は次の通りです。

    id: aabdfe-dfgwr-edf-hpqwd-f2asd-g
    event: token
    data: {"message": {"role": "assistant", "content": "こんに"}}
    
    id: aabdfe-dfgwr-edf-hpqwd-f1asd-g
    event: result
    data: {"message": {"role": "assistant", "content": "ちわ"}}
    

    この記事は役に立ちましたか?

    What's Next
    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.