ja
API Reference
Ask AI
💬無料相談を予約

Ask AI

ⓘ

この機能をご利用いただける方

  • Pro または Plus プランの管理者が API キーを作成できます。キーには conversations:write が必要です。
  • ストアの AI アシスタントが有効で、AI の利用枠が残っている必要があります。

Public API のベース URL で POST /ai/ask を使用します。このエンドポイントは回答を生成し、質問と回答の両方を Chatty に保存します。既存のライブチャットの会話に返信を送る操作とは別です。

リクエスト

X-Api-Key と Content-Type: application/json を指定してください。

フィールド必須内容
messageはい空白だけではないテキスト。前後の空白を除去する前の長さが 5,000 文字以内である必要があります。
conversationIdいいえ最初の質問では省略します。続けて質問する場合は、以前に成功した /ai/ask が返した ID を指定します。
customerいいえ最初の質問時の連絡先情報です。email、phone、name はそれぞれ任意です。メールアドレスを指定する場合は有効な形式が必要です。2 回目以降の質問では連絡先は更新されません。
curl -s -X POST "https://app.chatty.net/v1/ai/ask" \
  -H "X-Api-Key: $CHATTY_KEY" \
  -H "Content-Type: application/json" \
  -d '{"message":"What is your return policy?","customer":{"name":"Example customer","email":"[email protected]"}}'

200 レスポンスの例:

{
  "data": {
    "answer": "Here is the return policy for this store.",
    "conversationId": "conv_123",
    "sources": {},
    "traceId": "trace_123",
    "handoffRequested": false
  }
}

answer の内容はストアのナレッジによって異なります。sources には参照元のデータが入りますが、空の場合もあります。traceId は null の場合があります。handoffRequested は AI が有人対応を要求したことを示します。担当者が引き継ぎを受け付けた、または完了したことを示すものではありません。

会話を続ける

CRM のスレッドに data.conversationId を保存し、次の質問と一緒に送信します。

curl -s -X POST "https://app.chatty.net/v1/ai/ask" \
  -H "X-Api-Key: $CHATTY_KEY" \
  -H "Content-Type: application/json" \
  -d '{"conversationId":"conv_123","message":"Does that also apply to discounted items?"}'

レスポンスの形式は同じです。Chatty はメモなどの内部コンテンツを除く直近 30 件までのメッセージを読み込み、続きの回答を準備します。解決済みの Public API の会話は、新しい質問を受け取ると再開されます。

!

このエンドポイントが返した ID を使用してください。 会話が存在しない場合、別のストアの会話の場合、通常のライブチャットの会話の場合は 404 NOT_FOUND を返します。Webhook の conversationId が、そのまま有効な AI セッションになるわけではありません。ライブチャットの ID と AI セッションの ID は別々に保持してください。

最初の質問では、配信チャネルのない会話が作成されます。回答はサーバーに返され、Chatty に保存されます。メールや、顧客との元のライブチャットに自動送信されることはありません。確認した回答をそこへ送るには、Chat Conversations API を使用してください。

エラーと利用枠

HTTPコード対処
400VALIDATION_FAILEDメッセージ、顧客のメールアドレス、または ID の形式を修正してください。
401UNAUTHENTICATED / INVALID_API_KEYAPI キーとヘッダーを確認してください。
402AI_USAGE_LIMIT_REACHEDAI の自動再試行を止め、チームに対応を引き継いでください。利用枠が使えるようになってから再開します。
403AI_DISABLEDAI アシスタントを有効にしてから再試行してください。
403FORBIDDENこのスコープ付きキーに conversations:write を付与してください。
404NOT_FOUND同じストアの AI セッションであることを確認してください。自動的に別のセッションを開始すると、それまでの文脈が失われます。
429RATE_LIMITED待機時間を延ばしながら再試行してください。レート制限の期間は 60 秒です。このエンドポイントには、Public API 共通の制限に加え、キーごとに 1 分間 20 質問の制限があります。
500EMPTY_AI_ANSWER空白以外の回答が生成されませんでした。空の返信を成功として表示しないでください。
500INTERNAL_ERRORAI プロバイダーまたは他のサービスでエラーが発生しました。処理結果が不明なリクエストを再試行する前に、保存済みメッセージを確認してください。

利用枠の上限に達した場合の例:

{"error":{"code":"AI_USAGE_LIMIT_REACHED","message":"AI usage limit reached"}}

AI が有効かどうかと利用枠の確認は、質問への回答生成や保存の前に実行されます。課金対象の使用量は会話のライフサイクルを通じて確定され、質問のたびに 1 回ずつ加算されるものではありません。今回成功しても、次の質問に必要な利用枠が残っているとは限りません。

この書き込みには冪等性キーがありません。タイムアウト後に再試行すると、質問と回答が重複して作成される場合があります。conversationId を省略した場合は、別の会話が作成される可能性もあります。CRM 連携の例 と Errors and rate limits もご覧ください。

MCP から利用する

MCP の ask_ai では message と任意の conversationId を指定できます。API キーでは customer も指定できますが、OAuth ではこのフィールドが無視され、指定した顧客情報は紐付きません。どちらも conversations:write が必要で、OAuth ではメンバーの現在の会話編集権限も確認されます。返り値は HTTP のレスポンスではなく MCP のツールレスポンスです。セッション ID を保存する前にエラーを確認してください。MCP tool reference で詳細をご案内しています。