チャット
Chats のドキュメント
Chats
ベースパス: /api/v1/chats
チャットスレッドは AI 駆動のワークフロー作成と実行の主要な対話面です。各スレッドには会話履歴があり、オプションでワークフロー下書きまたは決定ルール下書きにリンクされます。
すべてのエンドポイントには JWT 認証(Authorization: Bearer <token> または Cookie: token=<jwt>)と x-active-org ヘッダーが必要です。
エンドポイント概要
| Method | Path | Description |
|---|---|---|
| POST | /api/v1/chats | 新しい空のチャットスレッドを作成 |
| POST | /api/v1/chats/from-workflow | ワークフローバージョンにリンクしたスレッドを作成 |
| GET | /api/v1/chats | チャットスレッドを一覧(ページネーション) |
| GET | /api/v1/chats/:threadId/messages | スレッド内のメッセージを取得 |
| POST | /api/v1/chats/:threadId/messages | メッセージを送信(SSE ストリームレスポンス) |
| DELETE | /api/v1/chats/:threadId | スレッドを削除 |
| PATCH | /api/v1/chats/:threadId/sharing | チーム共有を更新 |
| PATCH | /api/v1/chats/:threadId/title | スレッドタイトルを生成して設定 |
POST /api/v1/chats
新しい空のチャットスレッドを作成します。
リクエスト
リクエストボディは不要です。
レスポンス 200 OK
| Field | Type | Description |
|---|---|---|
threadId | string (UUID) | 新規作成されたスレッドの ID |
例
POST /api/v1/chats/from-workflow
特定のワークフローバージョンにリンクした新しいチャットスレッドを作成します。指定バージョンはスレッド内編集用に下書きへコピーされます。
リクエストボディ(JSON)
| Field | Type | Required | Description |
|---|---|---|---|
workflowPublicId | string (UUID) | Yes | リンクするワークフローの ID |
versionPublicId | string (UUID) | No | 特定バージョン ID;省略時はデフォルトバージョン |
title | string | No | スレッドのカスタムタイトル |
レスポンス 201 Created
| Field | Type | Description |
|---|---|---|
threadId | string (UUID) | 新規スレッド ID |
workflowPublicId | string (UUID) | リンクしたワークフロー ID |
draftPublicId | string (UUID) | このスレッド用に作成された新しいワークフロー下書き |
visibility | string | 作成時は常に "owner" |
エラー
| Status | Reason |
|---|---|
403 Forbidden | ワークフローへのアクセス権限不足 |
404 Not Found | ワークフローまたはバージョンが見つからない |
GET /api/v1/chats
認証済みユーザーのチャットスレッドを新しい順に一覧します。
クエリパラメータ
| Parameter | Type | Default | Description |
|---|---|---|---|
page | number | 1 | ページ番号 |
limit | number | 20 | 1 ページあたり件数 |
レスポンス 200 OK
スレッドオブジェクトフィールド:
| Field | Type | Description |
|---|---|---|
id | string (UUID) | スレッド ID |
title | string | null | スレッドタイトル |
description | string | null | スレッドの説明 |
workflowId | string (UUID) | null | 関連ワークフロー ID(ワークフロースレッドの場合) |
rule | object | null | 関連ルール情報(ルールスレッドの場合): { id, name, description } |
lastUpdatedAt | string (ISO 8601) | 最終アクティビティのタイムスタンプ |
sharedTeamKeys | string[] | このスレッドを共有しているチーム |
注記: ユーザーのメンバーシップ外のチームと共有されたスレッドは自動的にフィルターされます。
GET /api/v1/chats/:threadId/messages
スレッド内のメッセージと関連ワークフロー/ルールコンテキストを取得します。
パスパラメータ
| Parameter | Type | Description |
|---|---|---|
threadId | string (UUID) | スレッド ID |
クエリパラメータ
| Parameter | Type | Default | Description |
|---|---|---|---|
page | number | 1 | ページ番号 |
limit | number | 20 | 1 ページあたり件数 |
レスポンス 200 OK
メッセージオブジェクトフィールド:
| Field | Type | Description |
|---|---|---|
id | string (UUID) | メッセージ ID |
role | "user" | "assistant" | メッセージの作成者 |
type | string | メッセージタイプ(現在は "text") |
content | string | メッセージ本文 |
createdAt | string (ISO 8601) | 作成タイムスタンプ |
レスポンストップレベルフィールド:
| Field | Type | Description |
|---|---|---|
messages | array | ページネーションされたメッセージ一覧 |
workflow | object | null | プランナー形式の現在のワークフロー定義(ワークフロースレッドの場合) |
workflowPublicId | string (UUID) | null | リンクしたワークフローの ID |
rule | object | null | ルール情報 { id, name, description }(ルールスレッドの場合) |
rulePublicId | string (UUID) | null | リンクしたルールの ID |
POST /api/v1/chats/:threadId/messages
スレッド内の AI アシスタントへメッセージを送信し、SSE でレスポンスをストリームします。
パスパラメータ
| Parameter | Type | Description |
|---|---|---|
threadId | string (UUID) | スレッド ID |
リクエストボディ(multipart/form-data)
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
message | string | Yes | – | ユーザーのメッセージ本文 |
isInterrupt | boolean | No | false | 割り込みへの応答か(AI がユーザー入力待ち) |
interruptType | string | No | "workflow-inputs" | 割り込みタイプ: "workflow-inputs" または "subworkflow-select" |
inputs | JSON object | No | {} | workflow-inputs 割り込み応答時の入力値 |
envs | JSON object | No | {} | 環境変数の上書き(文字列から文字列へのマップ) |
selectedWorkflowId | string | No | – | interruptType が "subworkflow-select" の場合必須 |
attachments | File[] | No | [] | ファイル添付(画像、ドキュメント) |
model | string | No | "GPT-4o" | 使用する AI モデル(利用可能モデルは下記) |
利用可能モデル: GPT-4o、GPT-4o-mini、Claude-3-5-Sonnet、Claude-3-5-Haiku、Gemini-2.0-Flash、Gemini-2.5-Pro、DeepSeek-R1、o3-mini、o4-mini
レスポンス
SSE ストリームを返します(Content-Type: text/event-stream)。
SSE イベント:
| Event | Data | Description |
|---|---|---|
ping | { "content": "ping" } | 9 秒ごとのキープアライブ |
message | { "content": "<text>" } | AI レスポンステキスト |
error | { "content": "<message>" } | ストリーミング中のエラー |
例(JavaScript)
割り込みの処理
AI が一時停止してユーザー入力を要求する場合があります(割り込み)。その場合、SSE ストリームが割り込みタイプを示すメッセージを送出します。isInterrupt: true で別メッセージを送信して再開します。
DELETE /api/v1/chats/:threadId
スレッドとすべてのメッセージをソフト削除します。
パスパラメータ
| Parameter | Type | Description |
|---|---|---|
threadId | string (UUID) | スレッド ID |
レスポンス 200 OK
PATCH /api/v1/chats/:threadId/sharing
スレッドのチームアクセスリストを更新します。既存の共有設定を置き換えます(マージではありません)。
パスパラメータ
| Parameter | Type | Description |
|---|---|---|
threadId | string (UUID) | スレッド ID |
リクエストボディ(JSON)
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
shareWithTeamKeys | string[] | Yes | [] | 共有するチームキーの一覧。[] でオーナーのみに。 |
レスポンス 200 OK
更新された共有結果オブジェクトを返します。
PATCH /api/v1/chats/:threadId/title
提供された会話メッセージに基づき AI でスレッドタイトルを生成し、保存します。
パスパラメータ
| Parameter | Type | Description |
|---|---|---|
threadId | string (UUID) | スレッド ID |
リクエストボディ(JSON)
会話メッセージの配列(1〜20 件):
メッセージオブジェクト:
| Field | Type | Required | Description |
|---|---|---|---|
role | "user" | "assistant" | Yes | メッセージロール |
content | array | Yes | コンテンツパーツの配列: [{ "type": "text", "text": "..." }] |
制約: 最小 1 件、最大 20 件のメッセージ。