- Vue d'ensemble du projet
- Architecture technique
- Instructions de configuration
- Dépendances et prérequis
- Configuration
- Documentation de l'API
- Cas d'utilisation courants
- Guide de dépannage
- Considérations de sécurité
- Optimisations de performance
- Lignes directrices pour les tests
- Processus de déploiement
- Procédures de maintenance
- Informations de contact
Le projet AI Chatbot est une application web développée avec Next.js, React, et Supabase. Elle permet aux utilisateurs de gérer et d'interagir avec des chats via une interface utilisateur intuitive. Le projet utilise des technologies modernes pour offrir une expérience utilisateur fluide et sécurisée.
graph TD
A[Client] --> B[Next.js]
B --> C[React Components]
B --> D[API Routes]
D --> E[Supabase]
D --> F[OpenAI]
E --> G[Database]
F --> H[AI Models]
- Next.js : Utilisé pour le rendu côté serveur et les fonctionnalités de l'API.
- React : Utilisé pour la construction des composants UI.
- Supabase : Utilisé pour l'authentification et la gestion de la base de données.
- OpenAI : Utilisé pour les interactions avec les modèles de langage.
/api/auth/callback: Gère le callback d'authentification./api/chat: Gère les interactions avec les chats.
SidebarList: Affiche la liste des chats.Sidebar: Composant de la barre latérale.ChatPanel: Gère l'interface de chat.
// Exemple de composant React
import { useState, useEffect } from 'react';
const ChatPanel = ({ initialMessages }) => {
const [messages, setMessages] = useState(initialMessages);
useEffect(() => {
// Logique de chargement des messages
}, []);
return (
<div>
{messages.map((msg, index) => (
<div key={index}>{msg}</div>
))}
</div>
);
};
export default ChatPanel;.env.example: Fichier de configuration des variables d'environnement.next.config.js: Configuration de Next.js.
- Node.js : Version 14 ou supérieure.
- npm ou yarn : Gestionnaire de paquets.
- Supabase : Compte et projet configurés.
- OpenAI : Clé API.
-
Cloner le dépôt :
git clone <repository-url> cd <repository-directory>
-
Installer les dépendances :
npm install # ou yarn install -
Configurer les variables d'environnement :
- Copier
.env.exampleen.env. - Remplir les valeurs nécessaires.
- Copier
-
Lancer l'application :
npm run dev # ou yarn dev
| Dépendance | Version | Description |
|---|---|---|
next |
12.0.7 | Framework React pour le rendu côté serveur |
react |
17.0.2 | Bibliothèque JavaScript pour l'interface utilisateur |
supabase |
1.0.0 | Service de base de données et d'authentification |
openai |
1.0.0 | API pour les modèles de langage |
tailwindcss |
2.2.19 | Framework CSS utilitaire |
- Node.js : Version 14 ou supérieure.
- npm ou yarn : Gestionnaire de paquets.
- Supabase : Compte et projet configurés.
- OpenAI : Clé API.
.env: Variables d'environnement.next.config.js: Configuration de Next.js.tailwind.config.js: Configuration de Tailwind CSS.
// next.config.js
module.exports = {
reactStrictMode: true,
experimental: {
serverActions: true,
},
images: {
remotePatterns: [
{
protocol: 'https',
hostname: 'githubusercontent.com',
},
],
},
};/api/auth/callback: Gère le callback d'authentification./api/chat: Gère les interactions avec les chats.
POST /api/chat
Content-Type: application/json
{
"message": "Bonjour, comment puis-je vous aider?"
}{
"response": "Bonjour! Je suis là pour vous aider."
}- Connexion : Utilisateur se connecte via GitHub OAuth.
- Session : Session gérée par Supabase.
- Affichage des chats : Utilisateur voit la liste des chats.
- Création de chat : Utilisateur peut créer un nouveau chat.
- Suppression de chat : Utilisateur peut supprimer un chat.
- Erreur de connexion : Vérifiez les variables d'environnement.
- Problème de rendu : Vérifiez les logs du serveur.
- Erreur de connexion : Assurez-vous que les clés API sont correctes.
- Problème de rendu : Vérifiez les dépendances et les configurations.
- Gestion des clés API : Ne jamais exposer les clés API.
- Authentification : Utiliser Supabase pour l'authentification sécurisée.
- Validation des entrées : Toujours valider les entrées utilisateur.
// Exemple de validation des entrées
const validateInput = (input) => {
if (typeof input !== 'string' || input.length > 100) {
throw new Error('Invalid input');
}
return input;
};- Utiliser le rendu côté serveur : Pour améliorer les temps de chargement.
- Optimiser les images : Utiliser des formats d'image modernes.
- Mettre en cache les données : Utiliser des stratégies de mise en cache.
// next.config.js
module.exports = {
images: {
remotePatterns: [
{
protocol: 'https',
hostname: 'githubusercontent.com',
},
],
},
};- Tests unitaires : Pour les composants individuels.
- Tests d'intégration : Pour les interactions entre composants.
- Tests end-to-end : Pour l'expérience utilisateur complète.
// Exemple de test unitaire avec Jest
import { render, screen } from '@testing-library/react';
import ChatPanel from '../components/ChatPanel';
test('renders chat panel', () => {
render(<ChatPanel initialMessages={[]} />);
expect(screen.getByText('Chat Panel')).toBeInTheDocument();
});-
Build : Construire l'application.
npm run build # ou yarn build -
Déploiement : Déployer sur Vercel.
vercel --prod
-
Vérification : Vérifier le déploiement.
#!/bin/bash
npm run build
vercel --prod- Mettre à jour les dépendances : Régulièrement.
- Corriger les bugs : Suivre les rapports de bugs.
- Logs : Surveiller les logs pour les erreurs.
- Performance : Surveiller les temps de réponse.
- Sauvegardes régulières : De la base de données.
- Procédures de récupération : Tester régulièrement.
- Nettoyage des données : Supprimer les données obsolètes.
- Mises à jour de sécurité : Appliquer les correctifs de sécurité.
- Nom : [Nom du contributeur]
- Email : [Email du contributeur]
- Forker le dépôt : Créez une branche pour vos modifications.
- Créer une Pull Request : Décrivez les modifications apportées.
- Revue de code : Attendez la revue de code et les commentaires.
Note : Cette documentation est un guide complet pour le projet AI Chatbot. Pour toute question ou assistance supplémentaire, veuillez contacter les contributeurs listés ci-dessus.