# Felo ウェブ検索付きチャット

POST /api/v1/data/chat

質問を送信すると、Web ソース付きの生成回答を 1 回のレスポンスで受け取れます。

すべての例は [概要](https://openapi.felo.ai/ja/docs/data-api/guides/felo-overview.md) の `FELO_API_KEY` を使用します。呼び出しには **プラットフォーム残高** が使われ、Felo Pro クレジットは使われません。レスポンス例は説明用であり、実際の内容や任意フィールドは変動します。

## エンドポイント

`POST /api/v1/data/chat`

これはプラットフォーム残高のエンドポイントです。[Felo Search API](https://openapi.felo.ai/ja/docs/api-reference/chat.md) の `/v2/chat` は Pro クレジットを使用し、レスポンスのエンベロープが異なります。

## リクエスト

| フィールド | 型 | 必須 | 意味 |
|---|---|---|---|
| `query` | string | はい | 質問、1〜2,000 文字 |
| `accept_language` | string | いいえ | 希望する回答言語。`en`、`ja`、`zh-CN` など。最大 64 文字 |
| `stream` | boolean | いいえ | `false` である必要があります。既定値は `false` |

2〜8 文字の言語コードと、必要に応じたハイフン区切りのサブタグを持つ言語タグを使用してください。たとえば `zh-TW` です。このサービスはこの希望を生成リクエストに追加します。省略した場合は上流サービスが言語を選択します。固定の既定値はなく、英語の質問だからといって英語の回答が返るとは限りません。この設定は生成される回答に適用され、ソースのタイトルと抜粋は元の言語のままです。

このエンドポイントは非ストリーミング JSON を返します。`stream: true`、SSE、`messages` 配列、モデル選択はサポートしません。

```bash
curl -sS --request POST "https://openapi.felo.ai/api/v1/data/chat" \
  -H "Authorization: Bearer $FELO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query":"Explain retrieval augmented generation and cite sources.","accept_language":"en","stream":false}'
```

## レスポンス

HTTP 200 は `status: "ok"` と `data` オブジェクトを返します:

```json
{
  "status": "ok",
  "data": {
    "id": "example-chat-id",
    "message_id": "example-message-id",
    "answer": "Retrieval augmented generation adds retrieved context to a model request...",
    "resources": [
      {"title":"Example reference","link":"https://example.com/guide","snippet":"An overview of retrieval augmented generation."}
    ],
    "query_analysis": {"queries":["retrieval augmented generation"]}
  }
}
```

| フィールド | 意味 |
|---|---|
| `data.answer` | 生成された回答 |
| `data.resources` | タイトル、リンク、スニペットを含むソースページ |
| `data.query_analysis` | 任意のクエリ分析。null の場合があります |
| `data.id`, `data.message_id` | レスポンス識別子 |

まず HTTP ステータスを確認し、その後で回答とソースを読み取ってください。`/v2/chat` のように数値の `status: 200` をテストしないでください。

## 課金

`chat` はモデルのトークン数ではなく、リクエストごとに課金されます。[現在の価格](https://openapi.felo.ai/api/v1/data/prices) と [課金とエラー](https://openapi.felo.ai/ja/docs/data-api/guides/felo-billing.md) を参照してください。
