A biblioteca cliente para Python v0.25.1 inclui algumas alterações significativas à forma como as bibliotecas cliente anteriores foram concebidas. Estas alterações podem ser resumidas da seguinte forma:
Consolidação de módulos em menos tipos
Substituir parâmetros não tipados por classes e enumerações fortemente tipadas
Este tópico fornece detalhes sobre as alterações que tem de fazer ao seu código Python para as bibliotecas cliente da API Cloud Vision de forma a usar a biblioteca cliente Python v0.25.1.
Executar versões anteriores da biblioteca cliente
Não tem de atualizar a sua biblioteca cliente Python para a versão 0.25.1. Se quiser continuar a usar uma versão anterior da biblioteca cliente Python e não quiser migrar o seu código, deve especificar a versão da biblioteca cliente Python usada pela sua app. Para especificar uma versão específica da biblioteca, edite o ficheiro requirements.txt, conforme mostrado:
google-cloud-vision==0.25
Módulos removidos
Os seguintes módulos foram removidos no pacote da biblioteca cliente Python v0.25.1.
google.cloud.vision.annotationsgoogle.cloud.vision.batchgoogle.cloud.vision.clientgoogle.cloud.vision.colorgoogle.cloud.vision.crop_hintgoogle.cloud.vision.entitygoogle.cloud.vision.facegoogle.cloud.vision.featuregoogle.cloud.vision.geometrygoogle.cloud.vision.imagegoogle.cloud.vision.likelihoodgoogle.cloud.vision.safe_searchgoogle.cloud.vision.textgoogle.cloud.vision.web
Alterações de código necessárias
Importações
Inclua o novo módulo google.cloud.vision.types para aceder aos novos tipos na biblioteca cliente Python v0.25.1.
O módulo types contém as novas classes necessárias para criar pedidos, como types.Image.
Além disso, o novo módulo google.cloud.vision.enums contém as enumerações úteis para analisar e compreender as respostas da API, como enums.Likelihood.UNLIKELY e enums.FaceAnnotation.Landmark.Type.LEFT_EYE.
Crie um cliente
A classe Client foi substituída pela classe ImageAnnotatorClient. Substitua as referências à turma Client por ImageAnnotatorClient.
Versões anteriores das bibliotecas cliente:
old_client = vision.Client()
Biblioteca cliente Python v0.25.1:
Construir objetos que representam conteúdo de imagem
Para identificar conteúdo de imagem a partir de um ficheiro local, de um URI do Google Cloud Storage ou de um URI da Web, use a nova classe Image.
Construir objetos que representam conteúdo de imagem a partir de um ficheiro local
O exemplo seguinte mostra a nova forma de representar conteúdo de imagem a partir de um ficheiro local.
Versões anteriores das bibliotecas cliente:
with io.open(file_name, 'rb') as image_file:
content = image_file.read()
image = old_client.image(content=content)
Biblioteca cliente Python v0.25.1:
Construir objetos que representam conteúdo de imagem a partir de um URI
O exemplo seguinte mostra a nova forma de representar conteúdo de imagem a partir de um URI do Google Cloud Storage ou de um URI da Web. uri é o URI de um ficheiro de imagem no Google Cloud Storage ou na Web.
Versões anteriores das bibliotecas cliente:
image = old_client.image(source_uri=uri)
Biblioteca cliente Python v0.25.1:
Fazer pedidos e processar respostas
Com a biblioteca cliente Python v.0.25.1, os métodos da API, como face_detection, pertencem ao objeto ImageAnnotatorClient, em vez dos objetos Image.
Os valores devolvidos são diferentes para vários métodos, conforme explicado abaixo.
Em particular, os vértices da caixa delimitadora são agora armazenados em bounding_poly.vertices, em vez de bounds.vertices. As coordenadas de cada vértice são armazenadas em vertex.x e vertex.y, em vez de vertex.x_coordinate e vertex.y_coordinate.
A alteração da caixa delimitadora afeta face_detection, logo_detection, text_detection, document_text_detection e crop_hints.
Fazer um pedido de deteção de caras e processar a resposta
As probabilidades de emoções são agora devolvidas como enumerações armazenadas em face.surprise_likelihood, em vez de face.emotions.surprise. Pode recuperar os nomes das etiquetas de probabilidade importando google.cloud.vision.enums.Likelihood.
Versões anteriores das bibliotecas de cliente::
with io.open(file_name, 'rb') as image_file:
content = image_file.read()
image = old_client.image(content=content)
faces = image.detect_faces()
for face in faces:
print('anger: {}'.format(face.emotions.anger))
print('joy: {}'.format(face.emotions.joy))
print('surprise: {}'.format(face.emotions.surprise))
vertices = (['({},{})'.format(bound.x_coordinate, bound.y_coordinate)
for bound in face.bounds.vertices])
print('face bounds: {}'.format(','.join(vertices)))
Biblioteca cliente Python v0.25.1:
Fazer um pedido de deteção de etiquetas e processar a resposta
Versões anteriores das bibliotecas de cliente::
with io