概要
Chat APIは、Fess のAI検索モード機能にプログラムからアクセスするためのRESTful APIです。 検索結果を基にしたAI支援の回答を取得できます。
このAPIは2つのエンドポイントを提供します:
非ストリーミングAPI: 完全な回答を一度に取得
ストリーミングAPI: Server-Sent Events(SSE)形式でリアルタイムに回答を取得
前提条件
Chat APIを使用するには、以下の設定が必要です:
AI検索モード機能が有効になっていること(
rag.chat.enabled=true)LLMプロバイダーが設定されていること
詳細な設定方法は AI検索モード機能の設定 を参照してください。
非ストリーミングAPI
エンドポイント
リクエストパラメーター
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
message | String | はい | ユーザーのメッセージ(質問) |
sessionId | String | いいえ | セッションID。会話を継続する場合に指定 |
clear | String | いいえ | "true" を指定するとセッションをクリア |
レスポンス
成功時(HTTP 200)
エラー時
HTTPステータスコード
| コード | 説明 |
|---|---|
| 200 | リクエスト成功 |
| 400 | リクエストパラメーターが不正(messageが空など) |
| 404 | エンドポイントが見つからない |
| 405 | 許可されていないHTTPメソッド(POSTのみ許可) |
| 500 | サーバー内部エラー |
使用例
cURL
JavaScript
Python
ストリーミングAPI
エンドポイント
リクエストパラメーター
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
message | String | はい | ユーザーのメッセージ(質問) |
sessionId | String | いいえ | セッションID。会話を継続する場合に指定 |
レスポンス形式
ストリーミングAPIは text/event-stream 形式(Server-Sent Events)でレスポンスを返します。
各イベントは以下の形式です:
SSEイベント
session
セッション情報を通知します。ストリームの開始時に送信されます。
phase
処理フェーズの開始/完了を通知します。
フェーズの種類:
intent_analysis- 意図解析search- 検索実行evaluation- 結果評価generation- 回答生成
chunk
生成されたテキストの断片を通知します。
sources
参照元ドキュメントの情報を通知します。
done
処理完了を通知します。
error
エラーを通知します。
使用例
cURL
JavaScript(EventSource)
Python
エラーハンドリング
APIを使用する際は、適切なエラーハンドリングを実装してください。
レート制限
Chat APIにはレート制限が適用されます。
デフォルト設定:
1分あたり10リクエスト
レート制限を超えた場合、HTTP 429エラーが返されます。
レート制限の設定は AI検索モード機能の設定 を参照してください。
セキュリティ
Chat APIを使用する際のセキュリティ上の注意点:
認証: 現在のバージョンではAPIに認証は不要ですが、本番環境では適切なアクセス制御を検討してください
レート制限: DoS攻撃を防ぐため、レート制限を有効にしてください
入力検証: クライアント側でも入力の検証を行ってください
CORS: 必要に応じてCORS設定を確認してください
参考情報
AI検索モード機能の設定 - AI検索モード機能の設定
LLM統合の概要 - LLM統合の概要
AI検索モード - エンドユーザー向けチャット検索ガイド
APIの概要 - API概要