Intelligence artificielle
Intégrer Claude, OpenAI ou Gemini avec le Vercel AI SDK — clés en .env, pas de vault par user.
Le boilerplate ne ship pas d'UI de gestion des clés AI par user (stocker des secrets utilisateurs sans vault chiffré crée plus de problèmes qu'autre chose). Tu configures ton AI globalement via les variables d'env.
Configuration
Dans .env :
ANTHROPIC_API_KEY="sk-ant-..."
OPENAI_API_KEY="sk-..."
GOOGLE_GENERATIVE_AI_API_KEY="AIza..."Exemple — Réponse en streaming
import { streamText } from "ai";
import { anthropic } from "@ai-sdk/anthropic";
const result = streamText({
model: anthropic("claude-sonnet-4-6"),
prompt: "Explique Next.js en une phrase.",
});
return result.toDataStreamResponse();Changer de provider
Remplace simplement le provider sans changer la logique :
import { openai } from "@ai-sdk/openai";
model: openai("gpt-4o"),Gérer des clés par user (si vraiment nécessaire)
Le pattern recommandé si tu veux que chaque user fournisse sa clé :
- Stocke chiffrée — AES-GCM avec une clé d'app dans KMS / Vault / env
- Décrypte à l'usage, jamais en plain text dans la DB
- Ne jamais retourner la clé au client après save (read-only "Configurée ✓")
- Logger qui a fait quel call (pour quotas / facturation)
Le stub app/api/settings/ai/route.ts retourne 501 pour rappeler que
ce n'est pas implémenté — branche-le quand tu auras choisi ton vault.