devsite/docs-site-interne/04-api-llm-et-chatbot.md
2026-04-01 21:50:57 +02:00

35 lines
1.4 KiB
Markdown

# API LLM et chatbot (GrasBot)
**Dernière mise à jour :** 2026-04-01
## Chaîne côté navigateur
1. `app/components/ChatBot.js` appelle `askAI(question)` (`app/utils/askAI.js`).
2. `askAI` envoie un **GET** vers **`/api/proxy?q=...`** (route Next.js App Router).
3. `app/api/proxy/route.js` appelle en dur **`https://llmapi.fernandgrascalvet.com/ask?q=...`** et renvoie le corps JSON tel quel.
**Conséquence :** en développement local, le chatbot s'appuie sur l'**API LLM déployée** sur ce domaine, pas sur `uvicorn` local (`http://localhost:8000`) tant que l'URL n'est pas rendue configurable.
## Réponse attendue par le front
- Dans `askAI.js`, le texte affiché est lu via **`data.response`**. Le flux Ollama (`/api/generate`) renvoie en général un champ `response` dans le JSON ; si l'API distante ou le format change, vérifier ce mapping.
## FastAPI local (`llm-api/api.py`)
- Endpoint **GET** `/ask`, paramètre query **`q`**.
- Requête **POST** vers Ollama : `http://localhost:11434/api/generate` avec JSON `model: "mistral"`, `prompt`, `stream: false`.
- Dépendances : voir `CONFIGURATION_SITE.md` (FastAPI, uvicorn, requests).
## Fichiers clés
```
app/utils/askAI.js
app/api/proxy/route.js
app/components/ChatBot.js
llm-api/api.py
```
## Piste d'évolution
- Variable d'environnement (ex. URL LLM côté serveur) pour pointer vers `http://localhost:8000` en dev et vers la prod en déploiement, au lieu d'une URL figée dans `route.js`.