(mai 2021) Cela fait environ 8 ans que la question initiale a été posée et, depuis, plusieurs modifications ont été apportées au produit. Les nouveaux développeurs qui arrivent ici et qui cherchent à utiliser l'API Google Translate sur Python App Engine ont donc quelques changements à faire :
-
Informations sur les produits/coûts : L'API de Google Translate est maintenant disponible en tant que API de traduction Google Cloud . Il n'est pas gratuit (ce qui signifie que vous devez créer un compte de facturation adossé à un instrument financier comme une carte de crédit), mais vous disposez d'un quota de caractères traduits par mois. Voir sa page de prix pour plus d'informations. De même, alors que vous pouviez auparavant créer une application App Engine sans d'une carte de crédit, vous ne pouvez plus le faire via l'application nouvelle politique à partir de novembre 2019 . Il a toujours un généreux Quota du niveau "Toujours gratuit". que vous devez dépasser pour encourir des frais. Consultez également le Page de prix d'App Engine pour plus d'informations.
-
Bibliothèques clientes : Plutôt que d'utiliser apiclient
o googleapiclient
qui font partie de la Bibliothèque client des API de Google qui est un multi-produit de bas niveau, plateforme -nous recommandons la bibliothèque client de niveau Bibliothèques client Google Cloud qui sont de niveau supérieur et produit -ciblée. Cela signifie qu'il existe une bibliothèque client spécifique à Cloud Translation (en fait deux : basic/v2/Python 2 o avancé/v3/Python 3 ) - ceux-ci sont de plus haut niveau et beaucoup plus faciles à utiliser :
- Ajouter la librairie du client :
pip install -U pip google-cloud-translate
(ou pip3
)
-
Avec lui, votre échantillon de code peut être aussi simple que :
'translate_demo.py - demo the Cloud Translation API'
from future import print_function
import google.auth
from google.cloud import translate
TRANSLATE = translate.TranslationServiceClient()
_, PROJECT_ID = google.auth.default()
PARENT = 'projects/{}'.format(PROJECT_ID)
TARGET_LANG = 'es'
TEXT = 'Hello world'
DATA = {
'parent': PARENT,
'contents': [TEXT],
'target_language_code': TARGET_LANG,
}
try: # Python 3/advanced/v3
rsp = TRANSLATE.translate_text(request=DATA)
except TypeError: # Python 2/basic/v2
rsp = TRANSLATE.translate_text(**DATA)
print(TEXT, '=', rsp.translations[0].translated_text)
Il fonctionne également sur Python 2 et 3 sans aucune modification :
$ python2 translate_demo.py
Hello world = Hola Mundo
$ python3 translate_demo.py
Hello world = Hola Mundo
Cet extrait de code peut être adapté à App Engine assez facilement (voir ci-dessous), surtout si vous faites du prototypage, car vous pouvez tirer parti de l'option compte de service par défaut afin de ne pas avoir à s'embrouiller avec des comptes de service, comme en créer un nouveau, créer une paire de clés publique/privée, et devoir télécharger le fichier d'informations d'identification JSON et faire pointer l'adresse de l'utilisateur. GOOGLE_APPLICATION_CREDENTIALS
la variable d'environnement, etc. Lorsque vous êtes prêt à passer en production et que vous avez besoin de créer votre propre compte de service, consultez le site suivant cette page dans les docs .
En outre, des changements importants ont été apportés à App Engine lui-même : le service App Engine Python 2 original comportait un grand nombre d'API propriétaires intégrées (Datastore, Memcache, Task Queues, etc.). En raison des réactions des utilisateurs concernant le "verrouillage des fournisseurs", la prochaine génération de service Python 3 App Engine a été conçue pour libérer les développeurs de ces services. Au lieu de cela, vous utiliserez les services productifs équivalents, c'est-à-dire.., Datastore en nuage , Cloud Memorystore y Tâches dans le nuage à la place. L'équipe de Google Cloud a créé un guide de migration et j'ai complété ce guide avec des didacticiels pratiques, des échantillons de code et des vidéos pour aider les gens à migrer vers ces services dégroupés lorsque vous portez votre application vers Python 3.
Si vous envisagez Plateformes de calcul sans serveur Google Cloud au-delà de App Engine, tels que Fonctions du nuage (FaaS) ou Course aux nuages (CaaS conteneurisé/géré), puis jetez un œil à Cet exemple d'application Translation API que j'ai créé (d'où j'ai essentiellement volé l'extrait de code ci-dessus) qui peut être déployé de 8 façons différentes, Python 2 et 3, localement avec le serveur de développement de Flask, vers App Engine, Cloud Functions, ou Cloud Run, le tout avec des changements de configuration mineurs. L'objectif est de montrer la flexibilité de nos plateformes et d'aider les utilisateurs à mieux comprendre les différences entre elles.