# byom-design 🎨 Service de génération d'images par intelligence artificielle développé en Rust. Ce système permet la création et la gestion d'œuvres graphiques à partir de descriptions textuelles, en s'appuyant sur les modèles d'OpenAI. ## Fonctionnalités principales - Génération d'images via API (OpenAI DALL-E ✅) : - Gestion des styles artistiques personnalisés - Stockage persistant des designs avec traçabilité utilisateur - API REST pour l'intégration avec d'autres services - Système de logging complet pour le suivi opérationnel ## Déploiement 🐳 ### Prérequis - Docker Engine (version 20.10.0 ou supérieure) - Docker Compose (version 2.0.0 ou supérieure) - Une clé API OpenAI valide ### Configuration 1. Cloner le dépôt : ```bash git clone https://git.linuxforward.com/byom/byom-design.git cd byom-design ``` 2. Créer le fichier de configuration `.env` : ```env OPENAI_API_KEY=votre_clé_api OPENAI_API_URL=https://api.openai.com/v1/images/generations OPENAI_MODEL=dall-e-3 ``` 3. Démarrer les services : ```bash docker compose up -d ``` ### Structure des conteneurs - **app**: Service principal Rust - Port exposé : 8080 - Accès à la base de données via volume partagé - **db**: Service SQLite - Persistance des données via volume Docker - Partagé avec le service principal ### Vérification du déploiement ```bash # Vérifier l'état des conteneurs docker compose ps # Consulter les logs docker compose logs -f app ``` Vous pouvez ensuite exécuter la commande suivante selon vos paramètres pour tester le bon fonctionnement ```bash curl -X POST -H "Content-Type: application/json" -d '{"style": "minamilist drawing chinese ink style", "prompt": "cat fishing on river", "user_id": "user_123"}' http://127.0.0.1:8080/design -vvv ``` ## API REST 🌐 ### Points d'accès #### Création d'un design ```http POST /design Content-Type: application/json { "style": "minamlist drawing chinese ink style", "prompt": "cat fishing on river", "user_id": "user_123" } ``` ![cat fishing](assets/cat_fishing.png) #### Consultation d'un design ```http GET /design/{id} ``` ### Modèle de données ```rust Design { id: UUID, style: String, prompt: String, image: String, created_at: DateTime, user_id: String } ``` ## Logging et monitoring 📊 - Niveaux de log configurables via variable d'environnement - Traçage des opérations de génération d'images - Suivi des performances de la base de données - Logs structurés pour intégration avec des outils d'analyse ## Configuration 🔧 Le système est configurable via variables d'environnement : ``` DATABASE_PATH # Chemin de la base SQLite SERVER_ADDRESS # Adresse du serveur HTTP OPENAI_API_KEY # Clé d'API OpenAI OPENAI_API_URL # URL de l'API OpenAI OPENAI_MODEL # Modèle DALL-E à utiliser LOG_LEVEL # Niveau de logging ``` ## Licence Ce projet est sous licence MIT.