Fermer

septembre 18, 2025

Comment créer un pipeline CI / CD pour l’application Genai à l’aide de Jenkins

Comment créer un pipeline CI / CD pour l’application Genai à l’aide de Jenkins


Introduction

Les applications génératrices de l’IA (Genai) deviennent de plus en plus populaires dans les entreprises, alimentant les cas d’utilisation comme les chatbots, le résumé de texte, la génération de code, etc. Cependant, le développement de ces applications n’est que la moitié de la bataille – garantissant un déploiement en douceur, une évolutivité et une amélioration continue est l’endroit où les pipelines CI / CD (intégration continue / déploiement continu) jouent un rôle essentiel.

Dans ce blog, nous vous guiderons à la création d’un pipeline CI / CD basé sur Jenkins pour une application Genai, couvrant l’intégration de code, les tests, la conteneurisation et le déploiement automatisé.

Pourquoi CI / CD pour les applications Genai?

Les applications Genai impliquent souvent:

  • Mises à jour fréquentes du modèle (réglage fin ou ingénierie rapide).
  • L’intégration avec des API comme Openai, anthropic ou étreinte.
  • Déploiement dans plusieurs environnements (Dev, Staging, Prod).

CI / CD aide par:

  • Automatisation des versions, des tests et des déploiements.
  • Réduire l’erreur humaine.
  • Activer des itérations plus rapides.
  • Architecture du pipeline CI / CD

Notre pipeline ressemblera à ceci:

  • Code source: Code hébergé sur github / gitLab.
  • Étape de construction: Configuration de l’environnement Python / Node, installation de dépendance.
  • Étape de test: Tests unitaires pour les points de terminaison de l’API, vérifications de la réponse du modèle.
  • Conteneurisation: Docker l’application Genai.
  • Déploiement: Poussez vers AWS / GCP / AZURE ou KUBERNETES.

Étape 1: Prérequis

Avant de commencer, assurez-vous d’avoir:

  • Jenkins installé (sur VM, Docker ou Kubernetes).
  • Référentiel GitHub avec code d’application Genai.
  • Docker installé sur le serveur Jenkins.
  • Environnement ou serveur cloud pour déployer l’application.

Étape 2: Exemple d’application Genai (Fastapi + OpenAI)

Voici une application Fastapi minimale à l’aide de l’API OpenAI:


# app/main.py
from fastapi import FastAPI
import openai
import os

app = FastAPI()

openai.api_key = os.getenv("OPENAI_API_KEY")

@app.get("/generate")
def generate(prompt: str):
    response = openai.Completion.create(
        engine="text-davinci-003",
        prompt=prompt,
        max_tokens=100
    )
    return {"output": response["choices"][0]["text"]}

Étape 3: Dockerfile:

Nous allons en contracerons l’application afin que Jenkins puisse le déployer n’importe où.


# Dockerfile
FROM python:3.10-slim

WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt

COPY . .
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]

 

Étape 4: Jenkins Pipeline Script (JenkinsFile)

Ce JenkinsFile automatise Build → Test → Docker Build → Déployer.


pipeline {
    agent any

    environment {
        DOCKER_IMAGE = "genai-app:latest"
        REGISTRY = "your-dockerhub-username/genai-app"
    }

    stages {
        stage('Checkout') {
            steps {
                git branch: 'main', url: 'https://github.com/your-repo/genai-app.git'
            }
        }

        stage('Build') {
            steps {
                sh 'pip install -r requirements.txt'
            }
        }

        stage('Test') {
            steps {
                sh 'pytest tests/' // Ensure you have test cases for API
            }
        }

        stage('Docker Build') {
            steps {
                sh 'docker build -t $DOCKER_IMAGE .'
            }
        }

        stage('Push to Registry') {
            steps {
                withCredentials([usernamePassword(credentialsId: 'dockerhub-cred', usernameVariable: 'USER', passwordVariable: 'PASS')]) {
                    sh 'echo $PASS | docker login -u $USER --password-stdin'
                    sh 'docker tag $DOCKER_IMAGE $REGISTRY:latest'
                    sh 'docker push $REGISTRY:latest'
                }
            }
        }

        stage('Deploy') {
            steps {
                sshagent(['server-ssh-cred']) {
                    sh 'ssh user@your-server "docker pull $REGISTRY:latest && docker run -d -p 8000:8000 $REGISTRY:latest"'
                }
            }
        }
    }
}

Étape 5: Tester votre pipeline

  • Engager et pousser le code vers GitHub.
  • Pipeline Jenkins Auto-Triggers.
  • Recherchez les étapes (caisse → Test → Dockingrize → Déployer).
  • Accéder à votre application à http: // your-server-ip: 8000 / generate? inside = bonjour

Meilleures pratiques pour Genai CI / CD

  • Utilisez Secrets Management (Jenkins Indementiels Store, Vault, AWS Secrets Manager) pour les clés API.
  • Exécutez des tests d’intégration sur les réponses IA (par exemple, non vide, dans la latence).
  • Implémentez les mises à jour roulantes ou les déploiements bleu-vert pour la production.
  • Ajouter la surveillance et la journalisation (Prometheus, Elk, OpenTelemetry) pour le suivi des performances du modèle.

Conclusion

La création d’une application Genai est passionnante, mais sans une bonne automatisation, les déploiements peuvent devenir sujets aux erreurs et qui prennent du temps. En utilisant Jenkins CI / CD, vous pouvez rationaliser votre flux de travail – à partir des modifications de code en déploiements conteneurisés – garantissant que votre application Genai est toujours prête à la production.

Avec la configuration dont nous avons discuté, vous avez maintenant un pipeline entièrement automatisé qui peut:

Tirez le dernier code.
Exécutez des tests.
Créer des images Docker.
Déploier sur les serveurs / cloud.
Cette approche fait non seulement gagner du temps, mais garantit également des itérations plus rapides, une fiabilité plus élevée et une mise à l’échelle plus lisse pour vos applications génératrices d’IA.

Vous avez trouvé cela utile? PARTAGEZ-LE






Source link