# Chat ancré sur la recherche

Générer une réponse avec des sources web en utilisant le solde de plateforme.

Envoyez une question et recevez en une seule réponse une réponse générée avec des sources web.

Tous les exemples utilisent `FELO_API_KEY` depuis l'[aperçu](https://openapi.felo.ai/fr/docs/data-api/guides/felo-overview.md). Les appels utilisent **le solde de plateforme**, et non les crédits Felo Pro. Les exemples de réponse sont illustratifs ; le contenu réel et les champs facultatifs varient.

## Point de terminaison

`POST /api/v1/data/chat`

Il s'agit du point de terminaison à solde de plateforme. L'[API de recherche Felo](https://openapi.felo.ai/fr/docs/api-reference/chat.md) sur `/v2/chat` utilise des crédits Pro et possède une enveloppe de réponse différente.

## Requête

| Champ | Type | Requis | Signification |
|---|---|---|---|
| `query` | string | Oui | Question, 1–2 000 caractères |
| `accept_language` | string | Non | Langue de réponse préférée, par exemple `en`, `ja` ou `zh-CN` ; 64 caractères max |
| `stream` | boolean | Non | Doit être `false` ; `false` par défaut |

Utilisez une balise de langue avec un code de langue de 2 à 8 lettres et des sous-balises facultatives séparées par des tirets, par exemple `zh-TW`. Le service ajoute cette préférence à la requête de génération. Si elle est omise, le service amont choisit la langue ; il n'existe pas de valeur par défaut fixe, et une question en anglais ne garantit pas une réponse en anglais. La préférence s'applique à la réponse générée ; les titres et extraits des sources conservent leur langue d'origine.

Ce point de terminaison renvoie du JSON non diffusé. Il ne prend pas en charge `stream: true`, SSE, un tableau `messages` ni la sélection de modèle.

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

## Réponse

HTTP 200 renvoie `status: "ok"` et un objet `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"]}
  }
}
```

| Champ | Signification |
|---|---|
| `data.answer` | Réponse générée |
| `data.resources` | Pages sources avec titres, liens et extraits |
| `data.query_analysis` | Analyse de requête facultative ; elle peut être nulle |
| `data.id`, `data.message_id` | Identifiants de réponse |

Vérifiez d'abord le statut HTTP, puis lisez la réponse et les sources. Ne testez pas `status: 200` comme un nombre, comme vous le feriez avec `/v2/chat`.

## Facturation

`chat` est facturé par requête, et non selon les jetons du modèle. Consultez les [prix actuels](https://openapi.felo.ai/api/v1/data/prices) et [Facturation et erreurs](https://openapi.felo.ai/fr/docs/data-api/guides/felo-billing.md).
