Installation
Avec Python
Section intitulée « Avec Python »Assurez-vous d’avoir Python >= 3.8 installé, puis depuis un terminal exécutez :
pip install libretranslatelibretranslate [args]Ensuite, ouvrez un navigateur web vers http://localhost:5000
Par défaut, LibreTranslate installera le support pour toutes les langues disponibles. Pour ne charger que certaines langues et réduire le temps de démarrage, vous pouvez utiliser l’argument --load-only :
libretranslate --load-only en,es,frVérifiez la liste des arguments pour plus d’options.
Pour utiliser le détecteur de limites de phrases plus rapide (MiniSBD) utilisez :
ARGOS_CHUNK_TYPE=MINISBD libretranslate [...]Avec Docker
Section intitulée « Avec Docker »Vous pouvez également exécuter l’application avec docker. Clonez d’abord le dépôt :
git clone https://github.com/LibreTranslate/LibreTranslatecd LibreTranslateEnsuite sur Linux/macOS exécutez ./run.sh [args], sur Windows exécutez run.bat [args].
Vous pouvez utiliser l’accélération matérielle pour accélérer les traductions sur un système équipé d’un GPU avec CUDA 12.4.1 et nvidia-docker installés.
Exécutez cette version avec :
docker compose -f docker-compose.cuda.yml up -d --buildAvec WSGI et Gunicorn
Section intitulée « Avec WSGI et Gunicorn »pip install gunicorngunicorn --bind 0.0.0.0:5000 'wsgi:app()'Vous pouvez passer des arguments d’application directement à Gunicorn via :
gunicorn --bind 0.0.0.0:5000 'wsgi:app(api_keys=True)'Avec Kubernetes
Section intitulée « Avec Kubernetes »Voir l’article Medium de JM Robles et le k8s.yaml amélioré par @rasos.
Helm Chart
Section intitulée « Helm Chart »Basé sur le travail de @rasos, vous pouvez maintenant installer LibreTranslate sur Kubernetes en utilisant Helm.
Un graphique Helm est maintenant disponible dans le dépôt helm-chart où vous pouvez trouver plus de détails.
Vous pouvez installer rapidement LibreTranslate sur Kubernetes en utilisant Helm avec la commande suivante :
helm repo add libretranslate https://libretranslate.github.io/helm-chart/helm repo updatehelm search repo libretranslate
helm install libretranslate libretranslate/libretranslate --namespace libretranslate --create-namespaceArguments
Section intitulée « Arguments »| Argument | Description | Défaut |
|---|---|---|
--host | Définir l’hôte auquel lier le serveur | 127.0.0.1 |
--port | Définir le port auquel lier le serveur | 5000 |
--char-limit | Définir la limite de caractères | No limit |
--req-limit | Définir le nombre maximum de requêtes par minute par client (en dehors des limites définies par les clés API) | No limit |
--req-limit-storage | URI de stockage à utiliser pour le stockage des données de limite de requête. Voir Flask Limiter | memory:// |
--req-time-cost | Considère un coût de temps (en secondes) pour les besoins de limitation des requêtes. Si une requête prend 10 secondes et que cette valeur est définie à 5, le coût de la requête est de 2. | No cost |
--batch-limit | Définir le nombre maximum de textes à traduire dans une requête groupée | No limit |
--frontend-language-source | Définir la langue par défaut du frontend - source | auto |
--frontend-language-target | Définir la langue par défaut du frontend - cible | locale |
--frontend-title | Définir le titre du frontend | Pas de titre |
--frontend-timeout | Définir le délai d’expiration de la traduction du frontend | 500 |
--api-keys-db-path | Utiliser un chemin spécifique à l’intérieur du conteneur pour la base de données locale. Peut être absolu ou relatif | db/api_keys.db |
--api-keys-remote | Utiliser ce endpoint distant pour interroger les clés API valides au lieu d’utiliser la base de données locale | Use local db |
--get-api-key-link | Afficher un lien dans l’interface utilisateur pour diriger les utilisateurs vers l’obtention d’une clé API | No API link displayed |
--shared-storage | URI de stockage partagé à utiliser pour le partage de données multi-processus (par ex. lors de l’utilisation de gunicorn) | memory:// |
--secondary | Marquer cette instance comme une instance secondaire pour éviter les conflits avec le nœud primaire dans les configurations multi-nœuds | Primary |
--load-only | Définir les langues disponibles | All |
--threads | Définir le nombre de threads | 4 |
--metrics-auth-token | Protéger le endpoint /metrics en autorisant uniquement les clients qui ont un jeton d’autorisation Bearer valide | No auth |
--url-prefix | Ajouter un préfixe à l’URL : example.com:5000/url-prefix/ | / |
--debug | Activer l’environnement de débogage | Disabled |
--ssl | Activer SSL | Disabled |
--api-keys | Activer la base de données des clés API pour les limites de taux par client lorsque —req-limit est atteint | Disabled |
--require-api-key-origin | Exiger l’utilisation d’une clé API pour l’accès programmatique à l’API, sauf si l’origine de la requête correspond à ce domaine | Disabled |
--require-api-key-secret | Exiger l’utilisation d’une clé API pour l’accès programmatique à l’API, sauf si le client envoie également une correspondance secrète | Disabled |
--require-api-key-fingerprint | Exiger l’utilisation d’une clé API pour l’accès programmatique à l’API, sauf si le client correspond également à une empreinte | Disabled |
--under-attack | Activer le mode sous attaque. Lorsqu’il est activé, les requêtes doivent être faites avec une clé API | Disabled |
--suggestions | Autoriser les suggestions des utilisateurs | Disabled |
--disable-files-translation | Désactiver la traduction de fichiers | Enabled |
--disable-web-ui | Désactiver l’interface web | Enabled |
--update-models | Mettre à jour les modèles de langue au démarrage | Disabled |
--metrics | Activer le endpoint /metrics pour exporter les métriques d’utilisation Prometheus | Disabled |
--translation-cache | Mettre en cache la sortie de traduction pour les utilisateurs avec une clé API particulière (ou ‘all’ pour mettre en cache toutes les traductions) | Disabled |
Chaque argument a une variable d’environnement équivalente qui peut être utilisée à la place. Les variables d’environnement surchargent les valeurs par défaut mais ont une priorité inférieure aux arguments de la ligne de commande et sont particulièrement utiles si elles sont utilisées avec Docker. Les noms des variables d’environnement sont en majuscule_snake_case du nom de l’argument de commande équivalent avec un préfixe LT. Par exemple --char-limit —> LT_CHAR_LIMIT.
Mise à jour
Section intitulée « Mise à jour »Logiciel
Section intitulée « Logiciel »Si vous avez installé avec pip :
pip install -U libretranslate
Si vous utilisez docker :
docker pull libretranslate/libretranslate
Modèles de langue
Section intitulée « Modèles de langue »Démarrez le programme avec l’argument --update-models. Par exemple : libretranslate --update-models ou ./run.sh --update-models. Définir --update-models mettra à jour les modèles, que des mises à jour soient disponibles ou non.
Alternativement, vous pouvez également exécuter le script scripts/install_models.py.
Métriques Prometheus
Section intitulée « Métriques Prometheus »LibreTranslate a des capacités d’exportateur Prometheus lorsque vous passez l’argument --metrics au démarrage (désactivé par défaut). Lorsque les métriques sont activées, un endpoint /metrics est monté sur l’instance :
# HELP libretranslate_http_requests_in_flight Multiprocess metric# TYPE libretranslate_http_requests_in_flight gaugelibretranslate_http_requests_in_flight{api_key="",endpoint="/translate",request_ip="127.0.0.1"} 0.0# HELP libretranslate_http_request_duration_seconds Multiprocess metric# TYPE libretranslate_http_request_duration_seconds summarylibretranslate_http_request_duration_seconds_count{api_key="",endpoint="/translate",request_ip="127.0.0.1",status="200"} 0.0libretranslate_http_request_duration_seconds_sum{api_key="",endpoint="/translate",request_ip="127.0.0.1",status="200"} 0.0Vous pouvez ensuite configurer prometheus.yml pour lire les métriques :
scrape_configs: - job_name: "libretranslate"
# Needed only if you use --metrics-auth-token #authorization: #credentials: "mytoken"
static_configs: - targets: ["localhost:5000"]Pour sécuriser le endpoint /metrics, vous pouvez également utiliser --metrics-auth-token mytoken.
Si vous utilisez Gunicorn, assurez-vous de créer un répertoire pour stocker les métriques de données multiprocessus et définissez PROMETHEUS_MULTIPROC_DIR :
mkdir -p /tmp/prometheus_datarm /tmp/prometheus_data/*export PROMETHEUS_MULTIPROC_DIR=/tmp/prometheus_datagunicorn -c scripts/gunicorn_conf.py --bind 0.0.0.0:5000 'wsgi:app(metrics=True)'