Chat API
会話をプログラムから駆動する — 同期またはストリーミングで、すべての応答に取得ソースを添えて。
ターンの処理の流れ
すべてのメッセージ(ウィジェット、API、IM チャネルのいずれから来たものでも)は同じパイプラインを通ります。まず認証とメンバーシップ/クォータのゲートが実行され、次に取得(retrieval)が回答を根拠づけ、続いてツールループが走ります。そしてターンはフィールド暗号化された状態で永続化され、メモリの書き込みとチャネル横断の配信はバックグラウンドで行われます。
同期チャット
curl https://chat.agent4.io/chat \
-H "X-API-Key: tk_live_…" \
-H "X-End-User: lead-1024" \
-H "Content-Type: application/json" \
-d '{
"message": "I need a bridge loan for 3 months",
"session_id": null,
"agent": null
}'リクエストフィールド
| フィールド | 型 | 備考 |
|---|---|---|
message | string | ユーザーのメッセージ。 |
session_id | string | null | 省略すると新しいセッションを開始します。継続するには返却された id を渡します。 |
agent | string | null | エージェント名。テナントのデフォルトを使う場合は省略します。 |
k | number | null | 取得するナレッジチャンク数を上書きします。 |
images | string[] | null | このターンに使う Data-URL(base64)画像(マルチモーダル)。 |
audio | string | null | Data-URL 音声。サーバー側で文字起こしされ、メッセージとして使われます。 |
レスポンス
{
"session_id": "6f1e…",
"reply": "For a 3-month bridge loan our current terms are…",
"sources": [
{ "document_id": "a3b4…", "distance": 0.18 }
],
"transcript": null
}sources は回答の根拠となったナレッジベースのドキュメントを列挙します。これを使って引用(citation)をレンダリングしてください。transcript は audio を送信した場合に設定されます。
ストリーミング
POST /chat/stream は同じボディを受け取り、server-sent events を返します。これにより、トークンが届くそばからレンダリングできます。
curl -N https://chat.agent4.io/chat/stream \
-H "X-API-Key: tk_live_…" \
-H "X-End-User: lead-1024" \
-H "Content-Type: application/json" \
-d '{ "message": "Compare your 3 and 6 month terms" }'言語
応答の言語は会話に追従します。システムメッセージやフォローアップメールの言語を指定するには Accept-Language
ヘッダーを送ってください。プラットフォームの 5 言語は en、zh、zh-TW、es、ru です。
エンドポイントの完全なカタログ(セッション、ドキュメント、スペース、使用量)は、コンソールの API docs ページでライブの OpenAPI スキーマからレンダリングされます。