Zenika / cookeo-a-retro-lite

MIT License
0 stars 0 forks source link

Le Cookeo à Rétro

Description

Le Cookeo à Rétro est une application Flask qui permet aux utilisateurs de générer des plans personnalisés pour des ateliers de rétrospective. Elle utilise l'API de Vertex AI, le modèle Gemini 1.5 Pro pour créer des suggestions dynamiques basées sur les entrées des utilisateurs.

Fonctionnalités

Prérequis

A propos du prompt

Paramétrage du prompt

Définition du prompt

La définition du prompt est lisible ici

Installation

Cloner le dépôt

git clone https://votre-repository/votre-projet.git
cd votre-projet

Installer les dépendances

pip install -r requirements.txt

Installation de Java >= 8 pour l'emulateur google-cloud-firestore

Téléchargez et installez la dernière version de Java 8 ou supérieure à partir du site Web d'Oracle : https://www.oracle.com/java/technologies/javase-downloads.html

Ajoutez le JRE à votre variable d'environnement PATH:
Windows:
macOS/Linux:

Configurer les variables d'environnement

Créez un fichier .env.local dans le répertoire env/ avec les variables d'environnement suivantes :

PROJECT_ID
REGION
GAR_REPOSITORY
MAILGUN_USERNAME
MAILGUN_DOMAIN
MAILGUN_SERVER
MAILGUN_API_KEY_NOPROD
MAILGUN_API_KEY_PROD
SECRET_KEY
FIRESTORE_EMULATOR_HOST
IMAGE_NAME
SERVICE_NAME

Vous pouvez trouver les valeurs pour ces variables dans Secret Manager

Usage

Lancer l'application

export FLASK_APP=app.py
export FLASK_ENV=development
flask run

Ouvrez votre navigateur et accédez à http://127.0.0.1:5000/ pour utiliser l'application.

Développement

Structure du projet

Ajouter de nouvelles fonctionnalités

Pour ajouter de nouvelles fonctionnalités, vous pouvez modifier app.py et les templates associés. Assurez-vous de suivre les bonnes pratiques de développement Flask et de documenter vos changements.

Démarrez l'émulateur Google-Cloud-Firestore

Mac OS/Linux

Lancez l'émulateur google-cloud-firestore avec la commande :

gcloud emulators firestore start --host-port=localhost:8080&

Déploiement

Automatique

Sous Mac OS X ou Linux

Déploiement
bash cicd/macosx_linux/build_push_deploy.sh
Nettoyage
bash cicd/macosx_linux/clean-env.sh

Sous Windows

Déploiement
bash deploy_branch.bat

Manuel

Tester votre branche

Préparation
source env/.env.local
export BRANCH_NAME=$(git branch --show-current)
export SERVICE_NAME=cookeo-a-retro-${BRANCH_NAME}
export SECRETS=(
    "MAILGUN_USERNAME"
    "MAILGUN_DOMAIN"
    "MAILGUN_SERVER"
    "MAILGUN_API_KEY_NOPROD"
    "SECRET_KEY"
)
gcloud auth print-access-token \
| docker login \
  -u oauth2accesstoken \
  --password-stdin https://${REGION}-docker.pkg.dev
Buildez votre conteneur

Pour builder votre conteneur de test, utilisez la commande :

docker build \
    -t ${GAR_REPOSITORY}/${IMAGE_NAME}-${BRANCH_NAME}:latest \
    . \
    --platform linux/amd64
Poussez votre conteneur dans la registry

Poussez votre image dans la registry :

docker push ${GAR_REPOSITORY}/${IMAGE_NAME}-${BRANCH_NAME}:latest
Déployez votre conteneur dans Cloud Run
gcloud run deploy ${SERVICE_NAME} \
  --region ${REGION} \
  --image ${GAR_REPOSITORY}/${IMAGE_NAME}-${BRANCH_NAME}:latest \
  --platform managed \
  --port 5000 \
  --set-secrets=$( \
        for secret_name in "${SECRETS[@]}"; do 
            secret_path=$(gcloud secrets versions access latest --project $PROJECT_ID --secret $secret_name --format='value(name)')
            echo "$secret_name=$secret_path" 
        done | paste -sd, - \
    ) \
--set-env-vars=REGION=${REGION},BRANCH_NAME=${BRANCH_NAME} \
--allow-unauthenticated
Nettoyez la registry et cloud run après vos tests

Afin de ne pas trop consommer de ressources GCP, il est nécessaire de nettoyer les artefacts de sa branches une fois les tests effectués

gcloud run services delete ${SERVICE_NAME} --region ${REGION}
gcloud artifacts docker images delete ${GAR_REPOSITORY}/${IMAGE_NAME}-${BRANCH_NAME}
Suppression des collections Firestore

Supprimez les collections firestore créées temporairement dans la console Firestore

Déploiement en production

Préparation
git checkout main
git pull -r
export IMAGE_TAG=<votre-tag-au-format-X.Y.Z>
git tag -a v${IMAGE_TAG} -m "<Votre commentaire>"
git push push origin tag v${IMAGE_TAG}
export SERVICE_NAME=cookeo-a-retro
export SECRETS=(
    "MAILGUN_USERNAME"
    "MAILGUN_DOMAIN"
    "MAILGUN_SERVER"
    "MAILGUN_API_KEY_PROD"
    "SECRET_KEY"
)
gcloud auth print-access-token \
| docker login \
  -u oauth2accesstoken \
  --password-stdin https://${REGION}-docker.pkg.dev
Buildez le conteneur

Pour builder le conteneur, utilisez la commande :

docker build \
    -t ${GAR_REPOSITORY}/${IMAGE_NAME}:${IMAGE_TAG} \
    . \
    --platform linux/amd64
Poussez votre conteneur dans la registry

Poussez votre image dans la registry :

docker push ${GAR_REPOSITORY}/${IMAGE_NAME}:${IMAGE_TAG}
Déployez votre conteneur dans Cloud Run
gcloud run deploy ${SERVICE_NAME} \
  --region ${REGION} \
  --image ${GAR_REPOSITORY}/${IMAGE_NAME}:${IMAGE_TAG} \
  --platform managed \
  --port 5000 \
  --set-secrets=$( \
        for secret_name in "${SECRETS[@]}"; do 
            secret_path=$(gcloud secrets versions access latest --project $PROJECT_ID --secret $secret_name --format='value(name)') 
            echo "$secret_name=$secret_path" 
        done | paste -sd, - \
    ) \
--set-env-vars=REGION=${REGION} \
--allow-unauthenticated

Contribution

Les contributions sont les bienvenues. Veuillez ouvrir une issue pour discuter de ce que vous aimeriez changer ou soumettre directement une pull request.

Licence

MIT

Deployment

For Unix :

Use the command line :

./deploy_branch.sh

For Windows :

Use the command line :

deploy_branch.bat