Chat
メッセージのリストを送信し、assistant の返答をストリーミングで受け取ります。スマートルーターがモデルを選択します(固定も可能)。複数ターンを一つの conversation にまとめることで、マルチターンの文脈を維持できます。
1 回の呼び出し
POST/v1/workspaces/{workspace_id}/chat — メッセージのリストを送信し、assistant の返答をストリーミングで返します。リクエストボディ:
messages(必須)——{role, content}の配列;roleはsystem、user、assistant、toolのいずれか。model——任意;省略(または空)すると Nexevo のルーターが最適なモデルを選択します。特定のものを強制したい場合のみ指定してください。max_tokens——デフォルト4096(1–128000)。temperature——デフォルト0.7(0–2)。intent_hint——短いタスク種別のヒント。呼び出し元がリクエストの種類をすでに把握している場合、インテント分類器をバイパスします。conversation_id——このターンを既存の conversation 配下に紐付けます。設定するとサーバー側で過去の履歴がデータベースから再構築されるため、messagesには新しいユーザーターンのみを含めればよいです。project_id——あるプロジェクト内で実行;その指示とナレッジファイルがサーバー側で注入されます(アクセス権がチェックされます)。images——ビジョンチャット用に最大 4 つの画像 URL(OSS);ルーターはビジョン対応モデルを選択し、最後のユーザーターンをマルチモーダルメッセージに変換します。
返答は Server-Sent Events としてストリーミングされます——data: 行ごとに 1 つの JSON オブジェクト:assistant のテキストは {delta: "..."}、思考の連鎖は {reasoning: "..."}、過去のターンが要約された場合は先頭に {context_compacted: {summary, turns_folded}} が付き、失敗時は {error: "..."} となります。ストリームは data: [DONE] で終了します。(これは agent runs とは異なる通信フォーマットです——後者のイベントには type フィールドがあります。)
curl -N https://nexevo.ai/v1/workspaces/$NEXEVO_WORKSPACE/chat \
-H "Authorization: Bearer $NEXEVO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"messages": [{"role": "user", "content": "Explain SEPA Instant in two sentences."}]
}'model を空のままにすると、Nexevo のルーターがタスクに最適なモデルを選択します(品質/コスト/レイテンシのバランス)。特定のモデルが必要な場合のみ model を固定してください。
Conversations(マルチターン)
ターンをまたいで文脈を維持するには、conversation を作成し、そこにメッセージを追加します:
POST
/v1/workspaces/{workspace_id}/conversations——スレッドを作成(title、任意のproject_id)。POST
/v1/workspaces/{workspace_id}/conversations/{conversation_id}/messages——メッセージを追加(role、content)。GET
/v1/workspaces/{workspace_id}/conversations/GET/v1/workspaces/{workspace_id}/conversations/{conversation_id}——スレッドを一覧/取得。PATCH
/v1/workspaces/{workspace_id}/conversations/{conversation_id}——名前変更/アーカイブ。POST
/v1/workspaces/{workspace_id}/conversations/{conversation_id}/share/DELETE/v1/workspaces/{workspace_id}/conversations/{conversation_id}/share——読み取り専用の公開リンクを作成/失効。DELETE
/v1/workspaces/{workspace_id}/conversations/{conversation_id}——スレッドを削除。
conversation の project_id を渡すと、そのスレッドをあるプロジェクトの指示とファイルに基づかせることができます。