# Felo Chat Berbasis Pencarian

POST /api/v1/data/chat

Kirim pertanyaan dan terima jawaban yang dihasilkan dengan sumber web dalam satu respons.

Semua contoh menggunakan `FELO_API_KEY` dari [gambaran umum](https://openapi.felo.ai/id/docs/data-api/guides/felo-overview.md). Panggilan menggunakan **saldo platform**, bukan kredit Felo Pro. Contoh respons bersifat ilustratif; konten langsung dan bidang opsional bervariasi.

## Endpoint

`POST /api/v1/data/chat`

Ini adalah endpoint saldo-platform. [Felo Search API](https://openapi.felo.ai/id/docs/api-reference/chat.md) di `/v2/chat` menggunakan kredit Pro dan memiliki pembungkus respons yang berbeda.

## Permintaan

| Bidang | Tipe | Wajib | Arti |
|---|---|---|---|
| `query` | string | Ya | Pertanyaan, 1–2.000 karakter |
| `accept_language` | string | Tidak | Bahasa jawaban yang diinginkan, seperti `en`, `ja`, atau `zh-CN`; maksimal 64 karakter |
| `stream` | boolean | Tidak | Harus `false`; default `false` |

Gunakan tag bahasa dengan kode bahasa 2–8 huruf dan subtag opsional yang dipisahkan tanda hubung, seperti `zh-TW`. Layanan menambahkan preferensi ini ke permintaan pembuatan. Jika dihilangkan, layanan upstream memilih bahasa; tidak ada default tetap, dan pertanyaan berbahasa Inggris tidak menjamin jawaban berbahasa Inggris. Preferensi ini berlaku untuk jawaban yang dihasilkan; judul dan cuplikan sumber tetap dalam bahasa aslinya.

Endpoint ini mengembalikan JSON non-streaming. Ini tidak mendukung `stream: true`, SSE, array `messages`, atau pemilihan model.

```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}'
```

## Respons

HTTP 200 mengembalikan `status: "ok"` dan objek `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"]}
  }
}
```

| Bidang | Arti |
|---|---|
| `data.answer` | Jawaban yang dihasilkan |
| `data.resources` | Halaman sumber dengan judul, tautan, dan cuplikan |
| `data.query_analysis` | Analisis kueri opsional; dapat bernilai null |
| `data.id`, `data.message_id` | Pengenal respons |

Periksa status HTTP terlebih dahulu, lalu baca jawaban dan sumbernya. Jangan menguji `status: 200` numerik seperti yang mungkin Anda lakukan pada `/v2/chat`.

## Penagihan

`chat` ditagihkan per permintaan, bukan berdasarkan token model. Lihat [harga terkini](https://openapi.felo.ai/api/v1/data/prices) dan [Penagihan dan Kesalahan](https://openapi.felo.ai/id/docs/data-api/guides/felo-billing.md).
