Customer API which generates Runpod Images

loic boulet 6319663248 use serverless 3 months ago
assets 506267b9f0 first try api 3 months ago
src 6319663248 use serverless 3 months ago
.env.sample 506267b9f0 first try api 3 months ago
.gitignore 506267b9f0 first try api 3 months ago
Cargo.lock 506267b9f0 first try api 3 months ago
Cargo.toml 506267b9f0 first try api 3 months ago
Dockerfile 506267b9f0 first try api 3 months ago
README.md d416f1b6f7 ajout oubli readme 3 months ago
docker-compose.yaml 506267b9f0 first try api 3 months ago

README.md

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 :

    git clone https://git.linuxforward.com/byom/byom-design.git
    cd byom-design
    
  2. Créer le fichier de configuration .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 :

    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

# 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

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

POST /design
Content-Type: application/json

{
    "style": "minamlist drawing chinese ink style",
    "prompt": "cat fishing on river",
    "user_id": "user_123"
}

cat fishing

Consultation d'un design

GET /design/{id}

Modèle de données

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.