メインコンテンツへスキップ

エンドポイント

POST /api/openapi/v1/chat/completions

リクエスト

ヘッダー

ヘッダー必須説明
AuthorizationOBearer {API_KEY}
Content-TypeOapplication/json

ボディ

{
  "model": "shopping-assistant",
  "messages": [
    {"role": "user", "content": "今晩のメニューをおすすめしてください"}
  ],
  "stream": true,
  "metadata": {
    "customer_id": "cust_123",
    "location": {"x": 12.5, "y": 8.3}
  }
}
フィールドタイプ必須説明
modelstringXモデル名(未指定時はデフォルトOpen APIモデル)
messagesarrayO会話メッセージ配列
streambooleanXSSEストリーミング(デフォルト:false)
temperaturenumberX生成温度(0〜2)
max_tokensintegerX最大生成トークン数
metadataobjectXアプリコンテキスト(位置、カートなど)

レスポンス

非ストリーミング(stream: false

{
  "id": "chatcmpl-abc123",
  "choices": [
    {
      "index": 0,
      "message": {"role": "assistant", "content": "カレーライスはいかがでしょうか..."},
      "finish_reason": "stop"
    }
  ],
  "usage": {"prompt_tokens": 25, "completion_tokens": 150, "total_tokens": 175}
}

ストリーミング(stream: true

data: {"choices":[{"delta":{"content":"カレー"},"finish_reason":null}]}

data: [DONE]

コード例

curl

curl -X POST https://api.aika.life/api/openapi/v1/chat/completions \
  -H "Authorization: Bearer $ONESIGHT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"shopping-assistant","messages":[{"role":"user","content":"今晩のメニューをおすすめして"}]}'

Python

import requests

response = requests.post(
    "https://api.aika.life/api/openapi/v1/chat/completions",
    headers={"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"},
    json={"model": "shopping-assistant", "messages": [{"role": "user", "content": "今晩のメニュー"}]},
)
print(response.json()["choices"][0]["message"]["content"])

Swift (iOS)

let url = URL(string: "https://api.aika.life/api/openapi/v1/chat/completions")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer \(apiKey)", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")

let body: [String: Any] = [
    "model": "shopping-assistant",
    "messages": [["role": "user", "content": "今晩のメニュー"]],
    "stream": false
]
request.httpBody = try JSONSerialization.data(withJSONObject: body)
let (data, _) = try await URLSession.shared.data(for: request)

言語設定

レスポンス言語はテナントのデフォルト言語設定default_language)に従います。