APIリファレンス
3つのエンドポイント でWidget会話フローを完結
Widgetはバックエンドと3つのHTTP APIだけで通信:設定取得(config)、ハートビート(ping)、メッセージ送信(message)。以下に完全spec、各エンドポイントに即実行可能なcURL例付き。
Base URL
所有 endpoint 都掛在
https://aibot.chungtair.com...認證方式
Token-based:每個 Bot 有獨立的
widget_token...Endpoint 列表
GET/api/widget/config
Botのカスタマイズ設定(メインカラー、ボタン位置、Bot名、アバター、ウェルカムメッセージ、プレースホルダー、有効フラグ)を取得。Widget読み込み時に1回自動呼び出し。
Request
Query string:
token (string, required) — 32文字小文字hex widget tokenResponse
200 OK:
{
"success": true,
"config": {
"primary_color": "#00d4ff",
"position": "br",
"bot_name": "AIアシスタント",
"avatar_url": "",
"welcome": "こんにちは、ご用件は?",
"placeholder": "メッセージを入力...",
"enabled": true
}
}Errors
404 tokenが存在しない/形式エラーcURL
curl 'https://aibot.chungtair.com/api/widget/config?token=YOUR_TOKEN_HERE'
POST/api/widget/ping
Widget読み込み完了のハートビート。バックエンドが widget_last_seen_at(時刻)と widget_last_domain(Originヘッダから解析)を書き込み。1ページ読み込みにつき1回のみ発火。
Request
Headers:
Body:
Content-Type: application/jsonBody:
{ "token": "YOUR_TOKEN" }Response
200 OK:
{ "success": true }Errors
404 invalid token・429 同一IPから1分間に30回超のpingcURL
curl -X POST 'https://aibot.chungtair.com/api/widget/ping' \
-H 'Content-Type: application/json' \
-d '{"token":"YOUR_TOKEN"}'
POST/api/widget/message
訪問者がAIにメッセージ送信。バックエンドがRAGを実行 → AI返答(および追加返答の可能性)を返却。会話はRedisに書き込まれ、管理画面の人間オペレーターが閲覧可能。
Request
Headers:
Body:
Content-Type: application/jsonBody:
{
"token": "YOUR_TOKEN",
"message": "こんにちは", // 1-300字
"history": [...], // 直近10件の会話
"chat_id": "web_xxxxxxxx" // 任意、prefix web_ + 8-32字hex
}Response
200 OK(成功):
{
"success": true,
"reply": "こんにちは!...",
"extra_replies": [{ "text": "..." }, ...]
}200 OK(サービス停止中):{ "success": false, "reply": "サービス停止中" }Errors
400 message空/非文字列/300字超・404 invalid token・429 同一IPから1分間に20件超のメッセージ・500 AI層エラーcURL
curl -X POST 'https://aibot.chungtair.com/api/widget/message' \
-H 'Content-Type: application/json' \
-d '{"token":"YOUR_TOKEN","message":"こんにちは","history":[],"chat_id":"web_abcd1234"}'