Décembre 2022 — Janvier 2023
Générateur de Contenu IA — Nuxt 3 + OpenAI
Exploration de l'API OpenAI juste après le lancement de ChatGPT, pour comprendre comment intégrer la génération de texte dans une vraie application web.
// niveau de départ
- Vue 3 — jamais touché Nuxt 3 ni la Composition API
- Les LLMs : utilisateur de ChatGPT depuis son lancement, zéro expérience API
- API REST basiques — pas de gestion sécurisée de clés API côté serveur
- ChatGPT et sont API venaient de sortir, j'étais curieux de voir comment intégrer ça dans une vraie app web
Contexte
Fin 2022, ChatGPT venait de sortir et l’écosystème OpenAI API commençait à être accessible. J’ai voulu comprendre concrètement comment intégrer la génération de texte dans une vraie application web — pas juste appeler l’API dans un script, mais construire une interface utilisateur autour.
J’ai choisi Nuxt 3 car je voulais aussi apprendre ses nouvelles fonctionnalités : server routes, Composition API, déploiement hybride.
Comment ça fonctionne
L’utilisateur entre des mots-clés et choisit un type de contenu (slogan publicitaire, description produit, histoire courte, poème). Une requête est envoyée à une server route Nuxt (pas directement à OpenAI côté client), qui construit le prompt et appelle l’API GPT.
// server/api/generate.post.ts
export default defineEventHandler(async (event) => {
const { keywords, type } = await readBody(event);
const prompt = buildPrompt(keywords, type); // structuration du prompt
const response = await openai.createCompletion({ model: 'text-davinci-003', prompt });
return response.data.choices[0].text;
});
La clé API reste côté serveur — un principe de sécurité fondamental avec les LLMs.
Ce que j’ai appris sur le prompt engineering
La qualité du résultat dépend énormément de la formulation du prompt. J’ai appris à :
- Donner un rôle au modèle (“Tu es un copywriter expert…”)
- Contraindre le format de la réponse (longueur, structure)
- Utiliser des exemples dans le prompt (few-shot prompting)
// points forts
- Génération de slogans, descriptions produits, histoires et poèmes
- Interface utilisateur avec sélection du type de contenu et de la tonalité
- Appels à l'API GPT-3 via le serveur Nuxt (pas d'exposition de clé côté client)
- Déploiement automatique sur Vercel via GitHub
- TypeScript sur toute la stack (Nuxt 3 + Composition API)
// ce que j'ai appris
- Nuxt 3 : routing automatique, composables, server routes, SSR vs SSG
- Bonnes pratiques de sécurité avec une clé API (côté serveur uniquement)
- Prompt engineering : structurer les prompts pour des résultats cohérents
- Composition API Vue 3 avec TypeScript strict
- Déploiement Vercel et variables d'environnement en production