Re:Member est une plateforme web intelligente qui vous permet de stocker, organiser et interagir avec vos souvenirs quotidiens grĂące Ă l'intelligence artificielle.
Téléchargez quotidiennement différents types de médias pour créer votre journal de souvenirs personnel. La plateforme prend en charge les formats suivants :
- Photos : JPG, PNG, GIF, WebP
- Vidéos : MP4, MOV, AVI, MKV, WebM
- Audio : MP3, WAV, OGG, M4A
- Texte : TXT, MD
Les fichiers peuvent atteindre jusqu'à 100 Mo et sont organisés automatiquement par date.
L'IA analyse vos médias quotidiens et génÚre un résumé structuré comprenant :
- Localisation : Extraction automatique des données GPS ou inférence basée sur le contenu
- Date et heure : Métadonnées temporelles précises
- Personnes : Identification des personnes mentionnées ou présentes
- ĂvĂ©nements : ActivitĂ©s et moments clĂ©s de la journĂ©e
- Ămotions : Analyse du ton Ă©motionnel global
- Tags : Catégorisation automatique pour une recherche facilitée
Le résumé est stocké au format JSON et optimisé pour une récupération rapide.
La plateforme génÚre automatiquement une image composite représentant votre journée en combinant les éléments visuels marquants de vos médias uploadés. Cette fonctionnalité utilise Google Gemini Flash 2.5 pour créer une composition artistique unique.
Grùce à l'intégration d'ElevenLabs Voice API, Re:Member peut :
- Extraire l'audio des fichiers vidéo avec ffmpeg
- Créer des profils vocaux personnalisés via le clonage instantané
- Sauvegarder et gérer les voix extraites localement
- Permettre l'étiquetage et l'organisation des profils vocaux
Les profils vocaux peuvent ensuite ĂȘtre utilisĂ©s pour la synthĂšse vocale personnalisĂ©e.
Interagissez naturellement avec vos souvenirs grĂące Ă un assistant IA conversationnel qui :
- Recherche dans vos résumés structurés pour trouver des informations pertinentes
- Répond à vos questions sur des événements passés, des personnes ou des lieux
- Utilise le contexte de vos entrées pour fournir des réponses précises
- Maintient un historique des conversations pour une continuité optimale
Le systÚme utilise un LLM compatible OpenAI (GPT-4.1-mini) pour générer des réponses contextuelles.
Un espace dédié pour gérer la configuration de votre plateforme :
- Gestion des clés API : Configuration sécurisée des clés ElevenLabs et Google Gemini
- Personnalisation du prompt systÚme : Ajustez le comportement de l'IA selon vos préférences
- Statistiques d'utilisation : Visualisez vos métriques d'activité
- Authentification JWT : Sécurité renforcée avec tokens d'authentification
Les clĂ©s API sont chiffrĂ©es avant d'ĂȘtre stockĂ©es en base de donnĂ©es.
- Python 3.11+
- Node.js 22+
- pnpm
- ffmpeg
cd remember-platform/backend
python -m venv venv
source venv/bin/activate # Sur Windows: venv\Scripts\activate
pip install -r requirements.txtcd remember-platform/frontend
pnpm installCréez un fichier .env dans le dossier backend avec vos clés API :
OPENAI_API_KEY=votre_cle_openaiLes clĂ©s ElevenLabs et Gemini peuvent ĂȘtre configurĂ©es directement depuis le panneau d'administration aprĂšs connexion.
Backend :
cd backend
source venv/bin/activate
python src/main.pyLe serveur démarre sur http://localhost:5000
Frontend :
cd frontend
pnpm run devLe serveur de développement démarre sur http://localhost:5173
# Build du frontend
cd frontend
pnpm run build
# Copier le build dans le dossier static du backend
cp -r dist/* ../backend/src/static/
# Le backend servira automatiquement le frontend
cd ../backend
source venv/bin/activate
python src/main.pyL'application complĂšte est accessible sur http://localhost:5000
Lors de votre premiÚre visite, créez un compte avec un nom d'utilisateur et un mot de passe. Une configuration API par défaut est automatiquement créée.
Accédez au Panneau d'Administration pour configurer vos clés API :
- ElevenLabs API Key : Nécessaire pour l'extraction et le clonage vocal
- Google Gemini API Key : Nécessaire pour la génération d'images du jour
Vous pouvez également personnaliser le prompt systÚme pour ajuster le comportement de l'IA.
Depuis la page Upload :
- Sélectionnez la date de l'entrée (par défaut : aujourd'hui)
- Choisissez le type de média (photo, vidéo, audio, texte)
- Glissez-déposez votre fichier ou cliquez pour sélectionner
- Cliquez sur "Uploader"
Les médias sont automatiquement associés à une entrée quotidienne.
Depuis le Dashboard :
- Sélectionnez une entrée quotidienne
- Utilisez l'API
/api/ai/generate-summarypour créer le résumé structuré - Le résumé est automatiquement sauvegardé et disponible pour le chat
AprÚs avoir uploadé vos médias et généré un résumé :
- Utilisez l'API
/api/ai/picture-of-dayavec l'ID de l'entrée - L'image composite est générée et sauvegardée
- Elle apparaĂźt dans votre dashboard
Pour créer un profil vocal depuis une vidéo :
- Uploadez une vidéo contenant de l'audio vocal
- Utilisez l'API
/api/ai/extract-voiceavec le chemin de la vidéo et un nom de profil - Le profil vocal est créé et disponible dans la section Voix
Depuis la page Chat :
- Posez des questions sur vos souvenirs passés
- L'IA recherche dans vos résumés pour trouver des informations pertinentes
- Les réponses incluent des références aux entrées utilisées
- L'historique est sauvegardé automatiquement
Le backend est structuré en modules clairs :
src/models/: ModÚles de base de données SQLAlchemysrc/routes/: Blueprints Flask pour les endpoints APIsrc/services/: Services métier (IA, extraction vocale, chat)src/middleware/: Middleware d'authentification JWTsrc/utils/: Utilitaires et helpers
Base de données : SQLite en développement, facilement migrable vers PostgreSQL en production.
Application React moderne avec :
- React Router : Navigation entre les pages
- Tailwind CSS : Styling responsive et moderne
- shadcn/ui : Composants UI professionnels
- Lucide Icons : IcÎnes élégantes
- OpenAI-compatible LLM : Génération de résumés et réponses chat (GPT-4.1-mini)
- ElevenLabs Voice API : Clonage vocal instantané
- Google Gemini Flash 2.5 : Génération d'images (à implémenter avec Imagen)
La plateforme implémente plusieurs mesures de sécurité :
- Authentification JWT : Tokens avec expiration de 7 jours
- Hashing des mots de passe : bcrypt avec salt
- Chiffrement des clés API : Les clés sensibles sont chiffrées en base
- CORS configurĂ© : Protection contre les requĂȘtes non autorisĂ©es
- Validation des uploads : Vérification des types et tailles de fichiers
POST /api/auth/register- InscriptionPOST /api/auth/login- ConnexionPOST /api/auth/logout- Déconnexion
POST /api/media/upload- Upload de fichierGET /api/media/daily/{date}- Médias d'une dateGET /api/media/entries- Toutes les entréesDELETE /api/media/{id}- Supprimer un média
POST /api/ai/generate-summary- Générer un résuméPOST /api/ai/picture-of-day- Créer l'image du jourPOST /api/ai/extract-voice- Extraire et cloner une voixPOST /api/ai/extract-audio- Extraire l'audio uniquement
POST /api/chat/message- Envoyer un messageGET /api/chat/history- Historique des conversationsDELETE /api/chat/history/{id}- Supprimer un message
GET /api/voices/- Liste des profils vocauxPOST /api/voices/- Créer un profilPUT /api/voices/{id}- Mettre à jour un profilDELETE /api/voices/{id}- Supprimer un profil
GET /api/admin/config- Configuration actuellePUT /api/admin/config- Mettre Ă jour la configurationGET /api/admin/stats- Statistiques d'utilisation
Tous les endpoints (sauf auth) nécessitent un token JWT dans le header Authorization: Bearer <token>.
- Recherche vectorielle : Utiliser des embeddings pour une recherche sémantique avancée
- API Imagen complÚte : Intégration réelle de Google Imagen pour la génération d'images
- Export de données : Téléchargement de vos données en formats variés
- Partage de souvenirs : Fonctionnalités sociales pour partager avec des proches
- Application mobile : Version iOS et Android
- Reconnaissance faciale : Identification automatique des personnes dans les photos
- Timeline interactive : Visualisation chronologique enrichie
- Rappels intelligents : Notifications basées sur vos habitudes
Ce projet est développé à des fins de démonstration. Veuillez consulter les conditions d'utilisation des APIs tierces (OpenAI, ElevenLabs, Google Gemini) avant un déploiement en production.
Pour toute question ou problĂšme :
- Vérifiez que toutes les dépendances sont installées
- Assurez-vous que les clés API sont correctement configurées
- Consultez les logs du backend pour les erreurs détaillées
- Vérifiez que ffmpeg est installé pour l'extraction audio
Développé avec :
- Flask & SQLAlchemy
- React & Tailwind CSS
- OpenAI API
- ElevenLabs Voice API
- Google Gemini API
- shadcn/ui Components
Re:Member - Votre mĂ©moire personnelle, amplifiĂ©e par l'IA đ§ âš