---
title: "Chat Completions API（OpenAI 互換）"
description: "OpenAI-compatible /v1/chat/completions。parameters、stream、tools、usage/cache fields。"
source: https://lazu.ai/docs/ja/endpoints/chat
updated: 2026-10-02
---

# Chat completions

**POST** `/v1/chat/completions`

Lazu 経由で OpenAI-compatible chat request を送ります。Base URL、認証、必須 body fields、stream、tools、response usage、troubleshooting をこのページで確認できます。

## リクエスト例

```bash
curl https://api.lazu.ai/v1/chat/completions \
  -H "Authorization: Bearer $LAZU_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-6-luna",
    "messages": [
      {"role": "user", "content": "Say hello from Lazu"}
    ]
  }'
```

## レスポンス例

```json
{
  "id": "chatcmpl-9aZx",
  "model": "gpt-6-luna",
  "choices": [
    {
      "index": 0,
      "message": { "role": "assistant", "content": "Hello!" },
      "finish_reason": "stop"
    }
  ],
  "usage": { "prompt_tokens": 11, "completion_tokens": 3 }
}
```

## 基本設定

- **Base URL** — OpenAI SDK では `https://api.lazu.ai/v1`&#x20;
  を使います。直接呼ぶ場合は
  `https://api.lazu.ai/v1/chat/completions` です。
- **モデル検出** — 実行時に `GET /api/models/catalog` を読み、
  `supported_endpoint_types` に `chat`&#x20;
  を含むモデルを選びます。

## Request body

- `model` `string` (必須) — model ID、route alias、または route policy name。明示的な model は
  `GET /api/models/catalog` から選びます。
- `messages` `object[]` (必須) — OpenAI shape の会話メッセージ配列です。

  - `role` `string` — system、user、assistant、tool のいずれか。
  - `content` `string | content_part[]` — plain text または multimodal content parts。
  - `tool_call_id` `string` — tool message を先行 tool call と関連付けます。
- `stream` `boolean` (任意) — `true` の場合、Server-Sent Events stream を返し、最後に
  `data: [DONE]` を送ります。
- `tools` `object[]` (任意) — tool 定義です。送信前に catalog の `parameters.tools`&#x20;
  を確認してください。

  - `type` `"function"` — 現在は function tools を扱います。
  - `function.name` `string` — モデルが呼べる tool name。
  - `function.parameters` `object` — tool arguments の JSON Schema。
- `tool_choice` `string | object` (任意) — `auto`、`none`、指定 tool object など。
- `response_format` `object` (任意) — structured output control。例：`{"type":"json_object"}`。
- `temperature` `number` (任意) — sampling temperature。多くの model は `0` から `2`&#x20;
  を受け付けます。
- `max_tokens` `integer` (任意) — 生成 token の上限です。

## Vision input

画像入力は OpenAI-compatible content parts を使います。HTTPS image URL または data URL
を送れます。

**Image input**

```json
{
"model": "gpt-6-luna",
"messages": [
  {
    "role": "user",
    "content": [
      {"type": "text", "text": "What's in this image?"},
      {
        "type": "image_url",
        "image_url": {"url": "data:image/png;base64,..."}
      }
    ]
  }
]
}
```

PDF や大きな document は [Files](https://lazu.ai/docs/ja/endpoints/files) で upload し、
[Responses](https://lazu.ai/docs/ja/endpoints/responses) で参照してください。Chat completions は

`file_id` を自動 dereference しません。

## Response

- `id` `string` — Lazu または provider response ID。
- `choices` `object[]` — assistant output choices。Streaming では incremental `delta`&#x20;
  です。
- `usage.prompt_tokens` `integer` — input token count。
- `usage.completion_tokens` `integer` — generated output token count。
- `usage.prompt_tokens_details.cached_tokens` `integer` (任意) — provider が報告した cache read tokens。

完全な照合には [リクエスト詳細](https://lazu.ai/docs/ja/endpoints/usage-requests) を使ってください。
