Chat Completions
- 印刷する
- PDF
Chat Completions
- 印刷する
- PDF
Article Summary
Share feedback
Thanks for sharing your feedback!
Classic/VPC環境で利用できます。
HyperCLOVA Xモデルを活用して会話型文章を作成します。
リクエスト
リクエスト形式を説明します。リクエスト形式は次の通りです。
メソッド | URI |
---|---|
POST | /v1/chat-completions/{modelName} |
ヘッダ
ヘッダの説明は次の通りです。
ヘッダ | 必須有無 | 説明 |
---|---|---|
X-NCP-CLOVASTUDIO-API-KEY | Y | テストアプリやサービスアプリを作成時に発行された API KEY |
X-NCP-APIGW-API-KEY | Y | テストアプリやサービスアプリを作成時に発行された API Gateway KEY |
X-NCP-CLOVASTUDIO-REQUEST-ID | N | 各リクエストのリクエスト ID |
Content-Type | Y | application/json |
Accept | N | text/event-stream |
参考
- レスポンス結果は基本的に JSON形式で返されますが、
Accept
をtext/event-stream
で指定するとレスポンス結果をストリーム形式で返します。 - レスポンスストリームを利用する場合、API URLは
https://clovastudio.stream.ntruss.com/
を使用してください。
パスパラメータ
パラメータについての説明は、次の通りです。
フィールド | タイプ | 必須有無 | 説明 |
---|---|---|---|
modelName | string | Y | モデル名: HCX-002 |
ボディ
ボディの説明は次の通りです。
フィールド | タイプ | 必須有無 | 説明 |
---|---|---|---|
messages | array | Y | 会話メッセージ |
messages.role | enum | Y | 会話メッセージの役割 |
messages.content | string | Y | 会話メッセージの内容 |
temperature | double | N | 作成トークンに対する多様度(設定値が高いほど多様な文章を作成) |
topK | int | N | 作成トークン候補群から確率の高い k個を候補に指定しサンプリング |
topP | double | N | 作成トークン候補群を累積確率に基づいてサンプリング |
repeatPenalty | double | N | 同じトークンを作成することに対するペナルティ度(設定値が高いほど、同じ結果値を繰り返し作成する確率が減少) |
stopBefore | string | N | トークン作成停止文字 |
maxTokens | int | N | 最大作成トークン数 |
seed | int | N | モデル繰り返し実行時に結果値の一貫性レベルを調整 |
参考
一部のフィールドを入力する際は、以下の内容をご確認ください。
構文
構文例は次の通りです。
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.message | array | Y | 会話メッセージ |
result.message.role | enum | Y | 会話メッセージの役割 |
result.message.content | string | Y | 会話メッセージの内容 |
result.stopReason | enum | - | トークン作成停止理由(一般的に最後のイベントに転送) |
result.inputLength | int | - | 入力トークン数(課金基準で end of turnのような特殊トークンも含む) |
result.outputLength | int | - | レスポンストークン数 |
result.seed | int | - | 入力 seed値 (0の入力または未入力の場合、ランダム値を返す) |
aiFilter | array | - | AI Filter結果 |
aiFilter.groupName | string | Y | AI Filterカテゴリグループ名 |
aiFilter.name | string | Y | AI Filterカテゴリ詳細名 |
aiFilter.score | string | Y | AI Filter点数 |
参考
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の説明は、次の通りです。
フィールド | タイプ | 必須有無 | 説明 |
---|---|---|---|
message | array | - | 会話メッセージ |
message.role | enum | - | 会話メッセージの役割 |
message.content | string | - | 会話メッセージの内容 |
stopReason | enum | - | トークン作成停止理由(一般的に最後のイベントに転送) |
inputLength | int | - | 入力トークン数(課金基準で end of turnのような特殊トークンも含む) |
outputLength | int | - | レスポンストークン数 |
aiFilter | array | - | AI Filter結果 |
aiFilter.groupName | string | Y | AI Filterカテゴリグループ名 |
aiFilter.name | string | Y | AI Filterカテゴリ詳細名 |
aiFilter.score | string | Y | AI Filter点数 |
StreamingChatCompletionsTokenEvent
StreamingChatCompletionsResultEventの説明は、次の通りです。
フィールド | タイプ | 必須有無 | 説明 |
---|---|---|---|
id | string | - | リクエストを識別するイベント ID |
message | array | - | 会話メッセージ |
message.role | enum | - | 会話メッセージの役割 |
message.content | string | - | 会話メッセージの内容 |
inputLength | int | - | 入力トークン数(課金基準で end of turnのような特殊トークンも含む) |
stopReason | enum | - | トークン作成停止理由(一般的に最後のイベントに転送) |
ErrorEvent
ErrorEventの説明は次の通りです。
フィールド | タイプ | 必須有無 | 説明 |
---|---|---|---|
status | status | - | レスポンス状態 |
SignalEvent
SignalEventの説明は次の通りです。
フィールド | タイプ | 必須有無 | 説明 |
---|---|---|---|
data | string | - | 伝達するシグナルデータの情報 |
構文
構文例は次の通りです。
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": "ちわ"}}
この記事は役に立ちましたか?