> ## Documentation Index
> Fetch the complete documentation index at: https://docs.acedata.cloud/llms.txt
> Use this file to discover all available pages before exploring further.

# AI Chat v2 API 連携説明

> AI Dialogue API guide - Ace Data Cloud

AI Chat v2 API（`/aichat2/conversations`）は新世代の対話インターフェースであり、[AI Chat API](https://platform.acedata.cloud/documents/aichat-conversations) の全面アップグレード版です。v1 のシンプルでホスト型のマルチターン対話を基盤として、以下を拡張しています：

* **マルチモーダルなユーザー入力**：構造化された `message` フィールドを通じて、テキスト + 画像 + ファイルブロックを直接渡せます。まず `references` を使用して間接的に添付する必要はありません。
* **Agent 化されたツール呼び出し**：Web 検索、Web ページの取得、ファイル読み取りなどのツールセットを内蔵しており、ユーザーが認可した MCP サーバー（Google Drive、Notion、Slack、GitHub など）も接続できます。モデルは1回のリクエスト内で複数回自律的にツールを呼び出し、複雑なタスクを完了できます。
* **構造化ストリーミングイベント**：`accept: text/event-stream` または `application/x-ndjson` により、トークン単位の `text_delta`、`tool_use`、`tool_result`、`thinking`、`citation`、`card`、`artifact` などのイベントを取得でき、フロントエンドで対応する型ごとに個別にレンダリングできます。
* **中断 / 再開可能**：モデルはユーザーによる情報補足が必要な際に `ask_user_question` イベントを発行して一時停止します。次回の呼び出し時に `tool_results` を通じて回答を返すことで継続できます。
* **新しい CRUD アクション**：同一の endpoint 上で `action` フィールドにより `retrieve` / `retrieve_batch` / `update` / `delete` を完了でき、追加の会話管理 API は不要です。
* **継続的に更新されるモデルリスト**：デフォルトで GPT-5.4、Claude Opus 4.8、Claude Sonnet 4.6、Gemini 3.1 Pro、GLM 5.1、DeepSeek V4、Kimi K3 などの現代的なモデルに対応しています。

同時に、リクエストボディのレベルでは**完全に v1 と後方互換**です。`model` + `question`（+ オプションの `stateful` / `id` / `references` / `preset`）のみを渡すことで、v1 と同等の `{answer, id}` JSON レスポンスを取得できます。そのため、`/aichat/conversations` から移行する際にクライアントを書き直す必要はなく、パスを `/aichat2/conversations` に変更するだけです。

> 現在 `/aichat/conversations` を使用している場合、旧インターフェースも引き続き提供されるため、ご自身のペースで移行できます。

## 申請手順

AI Chat v2 API を使用するには、まず [Ace Data Cloud コンソール](https://platform.acedata.cloud/console/applications) で API Token を取得し、控えておいてください。

![](https://cdn.acedata.cloud/dvc3cg.jpg)

まだログインまたは登録していない場合は、ログインページに自動的にリダイレクトされ、登録とログインを促されます。完了後、自動的に現在のページへ戻ります。

**1つの API Token でプラットフォーム上のすべてのサービスを呼び出せるため、サービスごとに個別で申請する必要はありません。** 初回申請時には無料クレジットが付与され、無料で体験できます。クレジットが不足した場合は、[コンソール](https://platform.acedata.cloud/console/coin) で共通残高をチャージできます。

> 📘 完全なドキュメント：[AI Chat v2 API →](https://platform.acedata.cloud/documents/aichat2-conversations)

## 基本的な使用方法

最もシンプルな使い方は v1 と完全に同じです：`model` + `question` を渡し、`{answer, id}` を取得します。

CURL の例：

```shell theme={null}
curl -X POST 'https://api.acedata.cloud/aichat2/conversations' \
  -H 'accept: application/json' \
  -H 'authorization: Bearer {token}' \
  -H 'content-type: application/json' \
  -d '{
    "model": "gpt-5.4",
    "question": "用一句话介绍下 AceDataCloud。"
  }'
```

返却結果：

```json theme={null}
{
  "answer": "AceDataCloud 是一个聚合主流 AI 模型与多模态服务的统一 API 平台，开发者通过一个密钥即可调用 GPT、Claude、Gemini、Midjourney、Suno、Veo 等多家服务。",
  "id": "f2f4b3e8-0c0a-4d3a-aaa2-7ff80c0a1c44"
}
```

Python の例：

```python theme={null}
import requests

url = "https://api.acedata.cloud/aichat2/conversations"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json",
}

payload = {
    "model": "gpt-5.4",
    "question": "用一句话介绍下 AceDataCloud。",
}

response = requests.post(url, json=payload, headers=headers)
print(response.json())
```

利用可能な `model` の値は、右側の Try パネルのドロップダウンで直接確認できます。一般的なカテゴリには以下が含まれます：

* OpenAI：`gpt-5.4-mini`、`gpt-5.4-nano`、`gpt-5.2-pro`、`gpt-5.1-all`、`gpt-5-all`、`gpt-4.1`、`gpt-4o`、`gpt-4o-image`、`o3`、`o4-mini` など
* Anthropic：`claude-opus-4-8`、`claude-opus-4-7`、`claude-opus-4-6`、`claude-opus-4-5-20251101`、`claude-sonnet-4-6`、`claude-sonnet-4-5-20250929`、`claude-haiku-4-5-20251001` など
* Google：`gemini-3.1-pro-preview`、`gemini-3.1-pro-preview`、`gemini-3.1-flash-image`、`gemini-3.1-pro-preview`、`gemini-2.5-flash-lite` など
* xAI：`grok-4` など
* DeepSeek：`deepseek-v4-pro`、`deepseek-v4.1-flash`、`deepseek-v4-flash`、`deepseek-v3.2-exp`、`deepseek-r1-0528` など
* Moonshot：`kimi-k3`、`kimi-k2.6`、`kimi-k2.5` など
* Zhipu：`glm-5.3`、`glm-5.2`、`glm-5.1`、`glm-5`、`glm-5-turbo`、`glm-4.7`、`glm-4.5v` など

具体的な料金ルールについては、サービスページの Pricing カードを参照してください。

## マルチターン対話

v1 と同様に、`stateful: true` を渡すことで会話保存を有効化できます。API は `id` を返し、後続のリクエストで `id` を渡し戻すことで対話を継続できます。自分で messages 履歴を管理する必要はありません。

最初のリクエスト：

```shell theme={null}
curl -X POST 'https://api.acedata.cloud/aichat2/conversations' \
  -H 'accept: application/json' \
  -H 'authorization: Bearer {token}' \
  -H 'content-type: application/json' \
  -d '{
    "model": "gpt-5.4",
    "stateful": true,
    "question": "记住一个数字：42。"
  }'
```

返却：

```json theme={null}
{
  "answer": "好的，我已经记住了 42。需要我用它做什么吗？",
  "id": "f2f4b3e8-0c0a-4d3a-aaa2-7ff80c0a1c44"
}
```

2回目のリクエストでは、同じ `id` を渡します：

```shell theme={null}
curl -X POST 'https://api.acedata.cloud/aichat2/conversations' \
  -H 'accept: application/json' \
  -H 'authorization: Bearer {token}' \
  -H 'content-type: application/json' \
  -d '{
    "model": "gpt-5.4",
    "stateful": true,
    "id": "f2f4b3e8-0c0a-4d3a-aaa2-7ff80c0a1c44",
    "question": "我刚才让你记住的数字是多少？"
  }'
```

```json theme={null}
{
  "answer": "你让我记住的数字是 42。",
  "id": "f2f4b3e8-0c0a-4d3a-aaa2-7ff80c0a1c44"
}
```

> `stateful` のデフォルトは `true` であり、省略した場合と明示的に `true` を渡す場合は同等です。サーバー側でこのラウンドの会話を保存したくない場合は、明示的に `stateful: false` を設定できます。

## ストリーミングレスポンス

v2 は 2 種類のストリーミング形式をサポートしており、`accept` ヘッダーに応じて選択します：

| シナリオ | `accept` | データ形式 |
| - | - | - |
| Web フロントエンド / EventSource | `text/event-stream` | `data: {json}\n\n`、最終行は `data: [DONE]\n\n` |
| サーバーサイド / CLI / Node のストリーミング解析 | `application/x-ndjson` | 1 行につき 1 つの JSON オブジェクト |
| ストリーミング不要 | `application/json`（デフォルト） | 一度に `{answer, id}` を返す |

### NDJSON の例

```python theme={null}
import json
import requests

url = "https://api.acedata.cloud/aichat2/conversations"

headers = {
    "accept": "application/x-ndjson",
    "authorization": "Bearer {token}",
    "content-type": "application/json",
}

payload = {
    "model": "gpt-5.4",
    "stateful": True,
    "question": "用三句话介绍杭州。",
}

with requests.post(url, json=payload, headers=headers, stream=True) as resp:
    answer = ""
    for line in resp.iter_lines():
        if not line:
            continue
        event = json.loads(line)
        if event.get("type") == "text_delta":
            # 与 v1 兼容：增量片段同时通过 delta_answer 字段提供
            answer += event["content"]
            print(event["delta_answer"], end="", flush=True)
        elif event.get("type") == "done":
            print()
            print("usage =", event.get("usage"))
```

NDJSON の各行は構造化イベントであり、最も一般的なのは `text_delta` です：

```json theme={null}
{"type":"text_delta","content":"杭","delta_answer":"杭","id":"f2f4b3e8-..."}
{"type":"text_delta","content":"州","delta_answer":"州","id":"f2f4b3e8-..."}
{"type":"text_delta","content":"是","delta_answer":"是","id":"f2f4b3e8-..."}
...
{"type":"done","conversation_id":"f2f4b3e8-...","usage":{"prompt_tokens":21,"completion_tokens":58,"total_tokens":79},"terminal_reason":"natural_stop"}
```

### SSE の例

ブラウザ側では `EventSource` はカスタムリクエストボディをサポートしていないため、`fetch` + 手動で `\n\n` ごとに分割して解析することを推奨します：

```javascript theme={null}
const resp = await fetch("https://api.acedata.cloud/aichat2/conversations", {
  method: "POST",
  headers: {
    accept: "text/event-stream",
    authorization: "Bearer {token}",
    "content-type": "application/json",
  },
  body: JSON.stringify({
    model: "gpt-5.4",
    stateful: true,
    question: "用三句话介绍杭州。",
  }),
});

const reader = resp.body.getReader();
const decoder = new TextDecoder();
let buffer = "";
while (true) {
  const { value, done } = await reader.read();
  if (done) break;
  buffer += decoder.decode(value, { stream: true });
  const blocks = buffer.split("\n\n");
  buffer = blocks.pop() ?? "";
  for (const block of blocks) {
    const dataLine = block.split("\n").find((l) => l.startsWith("data: "));
    if (!dataLine) continue;
    const payload = dataLine.slice(6);
    if (payload === "[DONE]") return;
    const event = JSON.parse(payload);
    if (event.type === "text_delta") process.stdout.write(event.content);
  }
}
```

### ストリーミングイベントの種類

| `type` | 意味 |
| - | - |
| `text_delta` | アシスタントの回答の増分テキスト断片。`content` は追加された内容です。v1 との互換性のため、同じイベントには `delta_answer`（`content` と等しい）と `id` も含まれます。 |
| `thinking` | モデルの思考過程（選択したモデルが reasoning を公開する場合にのみ出現します）。 |
| `tool_use` | モデルがツールを呼び出すことを決定した際のイベントで、`tool_id`、`tool_name`、`input` を含みます。 |
| `tool_result` | ツールの実行結果。前の `tool_use` と `tool_id` によって対応付けられ、`is_error` は失敗したかどうかを示します。 |
| `card` | ツールによって生成された構造化カード（画像、リンクプレビューなど）で、直接レンダリングするのに適しています。 |
| `citation` | 対応するテキスト断片の引用元 URL を補足するために使用されます。 |
| `ask_user_question` | モデルがユーザーに追加情報を求める際に発行され、会話は `awaiting_user_input` 状態になります。詳細は下記の [一時停止した会話を再開する](#一時停止した会話を再開する) を参照してください。 |
| `artifact` | モデルが生成した独立した成果物（コードブロック、ドキュメントなど）で、保存またはダウンロードできます。 |
| `system_message` | システム通知情報（ユーザーおよびアシスタントの内容ではない）であり、UI 通知のみに使用されます。 |
| `compact` | 内部コンテキストが圧縮されたイベントであり、特別な処理は不要です。 |
| `error` | このラウンドでエラーが発生し、`message` がエラー内容を説明します。 |
| `done` | ストリーミングレスポンスの終了。`usage`（`prompt_tokens` / `completion_tokens` / `total_tokens` を含む）および `terminal_reason` を含みます。 |

最終回答のみを必要とするクライアントでは、すべての `text_delta` の `content` を連結すれば、`application/json` モードでの `answer` と同等になります。

## マルチモーダル入力

ユーザー入力に画像またはファイルが含まれる場合は、`question` の代わりに `message`（配列）を渡します。各配列要素はコンテンツブロックです：

```json theme={null}
{
  "model": "gpt-5.4",
  "stateful": true,
  "message": [
    { "type": "text", "text": "这张图片里有几只猫？" },
    { "type": "image_url", "image_url": { "url": "https://cdn.acedata.cloud/cats.jpg" } }
  ]
}
```

サポートされるブロックタイプ：

* `text` — 通常のテキスト。`text` フィールドが必須です。
* `image_url` — 画像。`image_url.url` が必須です。
* `file_url` — ファイル（PDF、CSV、TXT など）。`file_url.url` が必須です。

### v1 の `references` との関係

旧クライアントとの互換性のため、v2 でも引き続き `references: ["https://...", ...]` フィールドを認識します：

* URL の末尾が `jpg / jpeg / png / gif / bmp / webp / svg / heic / heif` の場合、自動的に `image_url` ブロックへ変換します；
* その他の拡張子は `file_url` ブロックへ変換します；
* さらに同時に `question` が提供されている場合は、それを `text` ブロックとして先頭に配置します。

したがって、v1 から移行したいだけでリクエストボディを変更したくない場合は、パスを `/aichat2/conversations` に置き換えるだけでよく、元の `references` の使い方はそのまま機能します。

より細かい制御が必要な場合（たとえば複数の画像をテキストの間に配置する、または順序が重要な場合）は、直接 `message` 配列を使用してください。

## ツール呼び出しと MCP

v2 の中核的な強化点は、モデルがツールを自律的に呼び出して複数ステップのタスクを完了できることであり、**これはデフォルトで有効です**。クライアント側でリクエストに追加の設定を行う必要はありません。一般的なシナリオ：

* ユーザーが「最近上海でどんな新しい展覧会があるか調べて」→ モデルが組み込みの web search を呼び出す → 結果を整理して回答します。
* ユーザーが「この PDF を読んで要約を書いて」→ モデルが file\_read を呼び出す → 要約を書きます。
* ユーザーが [Connections](https://platform.acedata.cloud/connections) で Google Drive / GitHub / Notion などを認可済み → モデルが対応する MCP ツールを呼び出してそのデータを読み書きできます。

NDJSON / SSE ストリームでは、ツール呼び出しは `tool_use` と `tool_result` の2種類のイベントで表現されます。例：

```json theme={null}
{"type":"tool_use","tool_id":"toolu_01ABCDEF","tool_name":"web_search","input":{"query":"上海 2026 春季展览"},"id":"f2f4b3e8-..."}
{"type":"tool_result","tool_id":"toolu_01ABCDEF","output":"...","is_error":false,"id":"f2f4b3e8-..."}
{"type":"text_delta","content":"目前","delta_answer":"目前","id":"f2f4b3e8-..."}
{"type":"text_delta","content":"上海","delta_answer":"上海","id":"f2f4b3e8-..."}
...
```

フロントエンドでツール呼び出しの詳細を表示したくない場合は、`tool_use` / `tool_result` / `card` / `citation` といったイベントを無視すればよく、モデルの最終出力は引き続き `text_delta` を通じてストリーミングされます。

`max_turns` では、今回のリクエスト内でモデルが自らツールを呼び出せる最大ラウンド数を制限できます。デフォルトの上限はプラットフォームによって決まります。これを小さく設定する（たとえば `max_turns: 1`）ことで、単一の回答を強制し、ツール呼び出しを一切許可しないようにできます。

## 非同期実行と無人認可

呼び出し元がアラート Webhook、CI/CD、監視システム、またはその他のバックグラウンドタスクである場合、`async: true` を設定すると、インターフェースは直ちにタスク ID を返し、バックグラウンドで実行を継続します：

```json theme={null}
{
  "model": "gpt-5.5",
  "async": true,
  "question": "我的服务报警了，用个人微信通知微信群「AceDataCloud团队」……"
}
```

返却例：

```json theme={null}
{
  "task_id": "f2f4b3e8-0c0a-4d3a-aaa2-7ff80c0a1c44",
  "conversation_id": "f2f4b3e8-0c0a-4d3a-aaa2-7ff80c0a1c44",
  "id": "f2f4b3e8-0c0a-4d3a-aaa2-7ff80c0a1c44",
  "status": "queued"
}
```

その後、`action: retrieve` + `id` を使用して会話結果を照会できます；また、`callback_url` を提供することもでき、タスク完了後にプラットフォームが `{ status, answer, usage, error }` をコールバックアドレスへ POST します。`callback_url` は `http` / `https` を使用する必要があり、`localhost` またはプライベート IP のリテラルアドレスを直接指定することはできません。

バックグラウンドタスクでは通常、確認をクリックできる人がいません。特定の Skill または MCP Server に無人モードで送信、公開、書き込みなどのアクションを実行させたい場合は、リクエストボディで事前認可リストを明示的に渡してください：

```json theme={null}
{
  "model": "gpt-5.5",
  "async": true,
  "allowed_skills": ["acedatacloud/personal-wechat"],
  "allowed_mcp_servers": [],
  "question": "我的服务报警了，用个人微信通知微信群「AceDataCloud团队」……"
}
```

`allowed_skills` 内の値は、接続済み Skill の slug です；`allowed_mcp_servers` 内の値は、接続済み MCP Server の slug です。事前認可リストに含まれていない Skill / MCP Server は、無人モードでは引き続きプレビュー、dry-run、または書き込み操作の実行拒否のみとなります。

より細かな制御が必要な場合は、同等の `unattended_policy` オブジェクトを使用することもできます：

```json theme={null}
{
  "unattended_policy": {
    "allowed_skills": ["acedatacloud/personal-wechat"],
    "allowed_mcp_servers": [],
    "expires_at": 1790000000
  }
}
```

事前認可とはこの2つのリスト自体のことです：リストが空であれば、いかなる機能も認可されません。追加のスイッチフィールドは不要です。

注意：事前認可は「今回のリクエストで、これらの機能が無人モードにおいて人による確認をスキップすることを許可する」ことのみを意味します。具体的な Skill は依然として `--unattended-confirm` または対応するセキュリティ機構をサポートしている必要があります；そうでなければ、引き続き dry-run となり、書き込み操作が直接実行されることはありません。

## 一時停止した会話を再開する

一部のツールでは、モデルが「ユーザーに質問を返す」ことがあり、その際モデルは `ask_user_question` イベントを発行し、会話は `awaiting_user_input` 状態で凍結されます：

```json theme={null}
{
  "type": "ask_user_question",
  "tool_id": "toolu_01XYZW",
  "tool_name": "ask_user_question",
  "question": "你希望生成的报告是中文还是英文？",
  "options": ["中文", "英文"],
  "id": "f2f4b3e8-..."
}
```

フロントエンドでこのイベントをカードとしてレンダリングし、ユーザーに回答を選択させた後、同じ `id` を使用して次のリクエストを開始し、回答を `tool_results` 経由で返します：

```shell theme={null}
curl -X POST 'https://api.acedata.cloud/aichat2/conversations' \
  -H 'accept: text/event-stream' \
  -H 'authorization: Bearer {token}' \
  -H 'content-type: application/json' \
  -d '{
    "model": "gpt-5.4",
    "stateful": true,
    "id": "f2f4b3e8-0c0a-4d3a-aaa2-7ff80c0a1c44",
    "tool_results": [
      {
        "tool_use_id": "toolu_01XYZW",
        "output": "中文"
      }
    ]
  }'
```

リクエストボディ内の `tool_use_id` は、一時停止時の `tool_id` と**完全に**一致している必要があります；一致しない場合は 400 が返されます。リクエスト内に `tool_results` が同時に存在する場合、`question` / `message` / `references` はすべて無視されます。

ユーザーがこの質問を放棄することを決めた場合は、新しい `question` / `message` を直接渡せばよく、プラットフォームは一時停止中のツール呼び出しを自動的に「ユーザーがスキップ」とマークします。

## 会話管理（CRUD）

v2 では、同じ endpoint 上で `action` フィールドを通じて軽量な会話管理を提供しており、別途 API を用意する必要はありません。

### `action: retrieve` —— 会話を1件取得する

```shell theme={null}
curl -X POST 'https://api.acedata.cloud/aichat2/conversations' \
  -H 'accept: application/json' \
  -H 'authorization: Bearer {token}' \
  -H 'content-type: application/json' \
  -d '{
    "action": "retrieve",
    "id": "f2f4b3e8-0c0a-4d3a-aaa2-7ff80c0a1c44"
  }'
```

完全な会話ドキュメント（`messages` 履歴、`model`、`title`、`tools_used` などを含む）を返します。

### `action: retrieve_batch` —— 会話サマリーを一覧表示

```json theme={null}
{
  "action": "retrieve_batch",
  "model_group": "chatgpt",
  "limit": 20,
  "offset": 0
}
```

`{ items: [...], total }` を返します。**サマリーには `messages` は含まれません**。サイドバーの一覧に適しています。ユーザーが特定の会話を開いた場合は、`action: retrieve` を使用してその完全なメッセージを個別に取得します。

任意のフィルターパラメーター：`user_id`、`application_id`、`model_group`、`model`。

### `action: update` —— タイトルの変更または履歴の書き換え

```json theme={null}
{
  "action": "update",
  "id": "f2f4b3e8-0c0a-4d3a-aaa2-7ff80c0a1c44",
  "title": "杭州旅行計画"
}
```

`messages` も渡せますが、サーバー側で厳格な schema 検証が行われます（折りたたまれた `ToolUseContent` 形式である必要があります）。条件に合わない場合は 400 が返されます。通常は `title` の変更にのみ使用することを推奨します。

### `action: delete` —— 会話を1件削除

```json theme={null}
{
  "action": "delete",
  "id": "f2f4b3e8-0c0a-4d3a-aaa2-7ff80c0a1c44"
}
```

`{ id, success: true }` を返します。削除後は復元できないため、確認してから呼び出してください。

## v1 からのスムーズな移行

すでに [`/aichat/conversations`](https://platform.acedata.cloud/documents/aichat-conversations) を使用している場合、v2 への移行にはほとんどコード変更が必要ありません：

1. URL を `https://api.acedata.cloud/aichat/conversations` から `https://api.acedata.cloud/aichat2/conversations` に変更します。
2. 以前に v1 のモデル名（`gpt-3.5`、`gpt-4-browsing` など）を渡していた場合は、v2 への切り替え時に現代的なモデル（`gpt-5.4`、`claude-opus-4-8`、`gemini-3.1-pro-preview` など）へアップグレードすることを推奨します。
3. NDJSON ストリームのフィールドは後方互換性を維持しています。各 `text_delta` イベントには引き続き `delta_answer` と `id` が含まれるため、従来行単位で `delta_answer` を解析していたクライアントは変更不要です。

移行後は必要に応じて v2 の新機能（マルチモーダル `message`、SSE、ツール呼び出し、`action` CRUD）を有効にし、段階的に進めることができます。

## エラー処理

エラーレスポンスは統一して以下の形式です：

```json theme={null}
{
  "error": {
    "code": "chat_error",
    "message": "model service returned an error"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}
```

よくあるエラー：

* `400 bad_request`：必須フィールドの欠落、`tool_use_id` の不一致、`messages` schema の不正など。
* `401 invalid_token`：`authorization` ヘッダーが正しくありません。
* `404 not_found`：`action: retrieve / update / delete` 実行時に、`id` に対応する会話が存在しません。
* `429 too_many_requests`：レート制限に達しました。
* `500 chat_error`：上流 LLM のエラー、またはこのラウンドの `completion_tokens=0`（未消費として扱われ、課金されません）。

ストリーミングレスポンスでは、エラーは `{"type":"error","message":"..."}` イベントとして送信され、その直後にストリームが終了します。

## 結論

AI Chat v2 API は、v1 との後方互換性を保ちながら、対話を「単発 / 複数ターンの質疑応答」から「Agent 化された観測可能な対話」へとアップグレードします：マルチモーダル入力、ツール呼び出し、一時停止 / 再開、ストリーミング構造化イベント、組み込み CRUD。新規導入では直接 v2 を使用することを推奨します。既存の v1 統合は段階的にスムーズに移行できます。ご不明な点がございましたら、いつでも技術サポートチームまでお問い合わせください。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.