チャット補完
チャット補完エンドポイントは、会話に対するモデルのレスポンスを生成します。OpenAI互換であるため、リクエストとレスポンスの形式はOpenAI Chat Completions APIと一致します。
POST https://api.shisa.ai/openai/v1/chat/completions
| メソッド | POST |
| 認証 | Authorization: Bearer YOUR_API_KEY |
| Content-Type | application/json |
リクエストボディ
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
model | string | 必須 | Shisaのモデル ID。例: shisa-ai/shisa-v2.1-llama3.3-70b。モデルを参照してください。 |
messages | array | 必須 | これまでの会話。メッセージオブジェクトの順序付きリストとして指定します。 |
stream | boolean | 任意 | trueの場合、部分的なトークンがServer-Sent Eventsとしてストリーミングされます。デフォルトはfalse。 |
temperature | number | 任意 | サンプリング温度。高いほどランダムになり、低いほど決定論的になります。 |
エンドポイントはOpenAI互換であるため、標準的なサンプリングパラメータ(top_p、max_tokens、stop、presence_penalty、frequency_penaltyなど)も受け付けられ、OpenAI APIと同様に動作します。
メッセージオブジェクト
messagesの各エントリにはroleとcontentがあります。
| フィールド | 型 | 説明 |
|---|---|---|
role | string | system、user、assistantのいずれか。 |
content | string | メッセージのテキスト。 |
{
"model": "shisa-ai/shisa-v2.1-llama3.3-70b",
"messages": [
{ "role": "system", "content": "You are a helpful assistant fluent in Japanese and English." },
{ "role": "user", "content": "日本の四季について教えてください。" }
],
"temperature": 0.7,
"stream": false
}
レスポンス
"stream": falseの場合、エンドポイントは単一のチャット補完オブジェクトを返します。生成された返信はchoices[0].message.contentにあります。
{
"id": "chatcmpl-...",
"object": "chat.completion",
"created": 1700000000,
"model": "shisa-ai/shisa-v2.1-llama3.3-70b",
"choices": [
{
"index": 0,
"message": { "role": "assistant", "content": "日本には四つの季節があります……" },
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 32,
"completion_tokens": 128,
"total_tokens": 160
}
}
上記の例の値は説明用です — ID、タイムスタンプ、トークン数はリクエストごとに異なります。
ストリーミングレスポンス
"stream": trueの場合、エンドポイントはServer-Sent Eventsを返します。各イベントはチャンクであり、その新しいテキストはchoices[0].delta.contentにあります。ストリームはdata: [DONE]センチネルで終了します。
data: {"id":"chatcmpl-...","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"日本"}}]}
data: {"id":"chatcmpl-...","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"には"}}]}
data: {"id":"chatcmpl-...","object":"chat.completion.chunk","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
data: [DONE]
公式のOpenAI SDKはこのフレーミングを自動で処理します — PythonとNodeでのストリーミング例についてはクイックスタートを参照してください。
エラー
認証エラーおよびリクエストエラーは、標準的なHTTPステータスコードとJSONボディとともに返されます。共通のエラー形式とステータスコードについてはエラーを、ヘッダー要件については認証を参照してください。