Les interfaces utilisateur en streaming avec du contenu à la demande généré par l’IA peuvent débloquer de nouvelles expériences utilisateur.
Jusqu'à présent, la plupart des interfaces pour le contenu dynamique provenant de grands modèles de langage (LLM) étaient des interfaces de chat ou de saisie semi-automatique de texte. Grâce aux sorties structurées, nous pouvons désormais diffuser du contenu complexe et l'afficher de manière incrémentielle dans des composants d'interface utilisateur tels que des listes et des tableaux.
Dans ce didacticiel, nous allons créer un planificateur d'activités de voyage avec Next.js qui utilise GPT-4 pour générer une liste d'activités pour une destination et une durée de séjour données. La liste d'activités sera diffusée vers le client et affichée dans un composant React.
Voici un aperçu du tutoriel :
Commençons.
Le planificateur d'activités de voyage est une application simple qui utilise GPT-4 pour générer une liste d'activités pour une destination et une durée de séjour données. La liste d'activités est diffusée vers le client et affichée dans un composant React. Voici un screencast de l’application finale :
L'architecture est assez simple. Sur le front-end, il y a une page qui contient les entrées et un bouton de soumission. Il affiche également la liste des activités. La page utilise un hook React pour appeler une route API, qui à son tour appelle GPT-4 et diffuse la liste d'activités au client :
Ce tutoriel vous guidera dans la création de l'application. Il est divisé en parties suivantes :
La prochaine étape consiste à créer la structure fondamentale de notre projet Next.js. Next.js 14 sera utilisé pour créer le frontend et la route API de notre application.
Voici les étapes pour créer le projet Next.js :
npx create-next-app@latest nextjs-openai-object-streamingSouhaitez-vous utiliser TypeScript ? Oui Souhaitez-vous utiliser ESLint ? Oui Souhaitez-vous utiliser Tailwind CSS ? Oui Souhaitez-vous utiliser le répertoire `src/` ? Oui Souhaitez-vous utiliser App Router ? (recommandé) Oui Souhaitez-vous personnaliser l'alias d'importation par défaut ? NonCes paramètres activent TypeScript pour une vérification de type robuste, ESLint pour la qualité du code et Tailwind CSS pour le style. L'utilisation du répertoire src/ et d'App Router améliore la structure du projet et les capacités de routage.
cd nextjs-openai-object-streamingasync_hooksdans Node.js. Cela peut entraîner des problèmes avec la compilation Next.js des ressources du navigateur. Pour résoudre ce problème, remplacez le contenu desuivant.config.mjsavec:/** @type {import('next').NextConfig} */ const nextConfig = { webpack: (config, { isServer }) => { if (isServer) { return config; } config.resolve = config.resolve ?? {} ; config.resolve.fallback = config.resolve.fallback ?? {} ; // Les hooks asynchrones ne sont pas disponibles dans le navigateur : config.resolve.fallback.async_hooks = false ; retourner la configuration ; }, }; exporter la nextConfig par...
[Courte citation de 8% de l'article original]