テキスト生成と対話
Nex N2.6 でテキストを生成します。3 つのプロトコルの例は、同じモデルとプロンプトを使用します。既存の SDK がある場合は対応するプロトコルを選び、初めて連携する場合は Chat Completions から始められます。
API キーとモデルを準備する
Nex N2.6は期間限定無料で、呼び出しで消費されるクレジットは0です。有効なMOSS APIキーであれば、どれでも呼び出せます。本番環境のHTTPリクエストはhttps://api.mosi.cnを使用します。以下の例を実行する前に、MOSS_API_ORIGINをhttps://api.mosi.cnに、MOSS_API_KEYをお使いのMOSS APIキーに設定してください。OpenAI SDKのbase_urlにはhttps://api.mosi.cn/v1を指定します。
通常は nex-n2.6 を使用し、バージョンを固定する場合は nex-n2.6-2026-11-05 を指定します。version は省略できます。明示する場合は 2026-11-05 を指定し、model で選択したスナップショットと一致させてください。
プロトコルの選択
| 既存のクライアント | API | 認証 |
|---|---|---|
| OpenAI Chat Completions を使用している場合、または新規連携 | POST /v1/chat/completions | Authorization: Bearer <API Key> |
| OpenAI Responses | POST /v1/responses | Authorization: Bearer <API Key> |
| Anthropic Messages | POST /v1/messages | x-api-keyとanthropic-version: 2023-06-01 |
最初のリクエストの送信
プロトコルを 1 つ選び、リクエストを送信します。3 つの例は同じプロンプトを使用します。選択したプロトコルの形式に従って応答を読み取ってください。
Chat Completions
いずれかの言語を選んで例を実行します。Python の例では requests を使用します。TypeScript の例には fetch に対応した Node.js 環境が必要です。
curl -X POST "$MOSS_API_ORIGIN/v1/chat/completions" \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $MOSS_API_KEY" \
-d '{
"model": "nex-n2.6",
"messages": [
{
"role": "user",
"content": "17 × 23 の結果だけを答えてください。"
}
],
"max_tokens": 1024
}'応答はchoices[0].message.contentから読み取ります。
Responses
curl -X POST "$MOSS_API_ORIGIN/v1/responses" \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $MOSS_API_KEY" \
-d '{
"model": "nex-n2.6",
"input": "17 × 23 の結果だけを答えてください。",
"max_output_tokens": 1024,
"store": false
}'output の中から type が message の項目を探し、その output_text コンテンツブロックから text を取得します。status が completed なら正常終了です。incomplete の場合は、生成済みの内容と取得可能な usage を読み取ります。
Messages
curl -X POST "$MOSS_API_ORIGIN/v1/messages" \
-H 'Content-Type: application/json' \
-H "x-api-key: $MOSS_API_KEY" \
-H 'anthropic-version: 2023-06-01' \
-d '{
"model": "nex-n2.6",
"messages": [
{
"role": "user",
"content": "17 × 23 の結果だけを答えてください。"
}
],
"max_tokens": 1024
}'content 配列を走査し、type が text のブロックを読み取ります。入力使用量は事前に Count Tokens で見積もれます。実際の使用量は生成レスポンスの usage を参照してください。
ストリーミングと対話の継続
リクエストボディに stream: true を追加します。curl で差分を受信するたびに表示するには -N を付けます。Chat Completions では choice とテキストの差分が両方ある場合にだけ読み取ります。使用量チャンクでは choices が空なので、usage を別に処理します。まず HTTP ステータスを確認し、ストリーム開始後もエラーイベントと正常終了マーカーを確認してください。途中で接続が切れた場合は、未完了の応答として扱います。
| プロトコル | テキスト差分 | 終了と使用量 |
|---|---|---|
| Chat Completions | choices[].delta.content | [DONE] を受信したら読み取りを終了します。ストリームの末尾で使用量を取得するには stream_options.include_usage を指定します。 |
| Responses | response.output_text.delta の delta | response.completed は正常終了を示します。使用量は response.usage から取得します。response.incomplete を受信した場合は、返された出力と使用量を保持します。 |
| Messages | content_block_delta内のtext_delta | message_stop を受信したら読み取りを終了します。使用量は message_start と message_delta を参照してください。 |
対話を続ける場合は、Chat Completions と Messages では messages に必要な履歴を含めます。ステートレスな Responses では input に履歴を含めます。
メディア、ツール、モデルバージョン
3 つの生成プロトコルはいずれもテキストと画像に対応しています。Chat Completions と Responses は video_url で MP4 と WebM を受け付けます。Messages は動画に対応していません。現在、ファイル、file_id、アセットライブラリの参照には対応していません。公開メディア URL は MOSS からアクセスできる必要があります。エンコード済みメディアを含むリクエストボディ全体は 10 MiB 以下にしてください。Chat Completions と Messages では、クライアントが関数を実行して結果を返します。