O serviço Vertex AI Translation permite-lhe traduzir texto escrito num idioma para qualquer um dos outros idiomas suportados.
Esta página mostra como traduzir um texto de exemplo usando a API Vertex AI Translation no Google Distributed Cloud (GDC) isolado.
Antes de começar
Antes de poder começar a usar a API Vertex AI Translation, tem de ter um projeto com a API Vertex AI Translation ativada e as credenciais adequadas. Também pode instalar bibliotecas cliente para ajudar a fazer chamadas para a API. Para mais informações, consulte o artigo Configure um projeto de tradução.
Traduz o texto
O método translateText recebe texto de entrada num idioma específico e devolve o texto traduzido noutro idioma. Pode introduzir texto simples ou HTML como entrada.
Se introduzir texto HTML, o método translateText traduz apenas o texto entre as etiquetas HTML sem traduzir as etiquetas. No entanto, traduz os atributos nas etiquetas HTML5, como os atributos alt. Um exemplo de utilização de etiquetas e atributos HTML5 é usado na sintaxe para excluir texto da tradução.
A saída retém as etiquetas HTML não traduzidas e inclui o texto traduzido entre elas.
Faça um pedido curl à API Vertex AI Translation pré-preparada. Caso contrário, interaja com a API pré-treinada Vertex AI Translation a partir de um script Python para traduzir texto de um idioma para outro.
Os exemplos seguintes mostram como traduzir um texto de entrada de um idioma para outro:
curl
Siga estes passos para fazer um pedido curl:
Faça o pedido:
curl -vv -X POST -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID:translateText -d '{"parent": "projects/PROJECT_ID", "source_language_code": "SOURCE_LANGUAGE", "target_language_code": "TARGET_LANGUAGE", "contents": ["INPUT_TEXT"]}'
Substitua o seguinte:
TOKEN: o token de autenticação que obteve.ENDPOINT: o ponto final da Vertex AI Translation que usa para a sua organização. Para mais informações, consulte o estado do serviço e os pontos finais.PROJECT_ID: o ID do projeto.SOURCE_LANGUAGE: o código do idioma do texto de entrada. Consulte a lista de idiomas suportados e os respetivos códigos de idioma.TARGET_LANGUAGE: o código do idioma para o qual quer traduzir o texto. Consulte a lista de idiomas suportados e os respetivos códigos de idioma.INPUT_TEXT: o texto de entrada no idioma de origem.
Use o campo mime_type para especificar um tipo de ficheiro. Defina o campo mime_type
para um dos seguintes valores:
text/plain: a sua entrada é texto simples.text/html: a sua entrada é texto HTML.
Se o campo mime_type estiver vazio, text/html é o valor predefinido.
O exemplo seguinte usa o campo mime_type:
curl -vv -X POST -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID:translateText -d '{"mime_type": "text/html", "parent": "projects/PROJECT_ID", "source_language_code": "SOURCE_LANGUAGE", "target_language_code": "TARGET_LANGUAGE", "contents": ["INPUT_TEXT"]}'
O resultado devolve o texto traduzido.
Python
Siga estes passos para usar o serviço Vertex AI Translation a partir de um script Python:
Instale a versão mais recente da biblioteca cliente da Vertex AI Translation.
Defina as variáveis de ambiente necessárias num script Python.
Adicione o seguinte código ao script Python que criou:
from google.cloud import translate import google.auth from google.auth.transport import requests from google.api_core.client_options import ClientOptions audience = "https://ENDPOINT:443" api_endpoint="ENDPOINT:443" def translate_client(creds): opts = ClientOptions(api_endpoint=api_endpoint) return translate.TranslationServiceClient(credentials=creds, client_options=opts) def main(): creds = None try: creds, project_id = google.auth.default() creds = creds.with_gdch_audience(audience) req = requests.Request() creds.refresh(req) print("Got token: ") print(creds.token) except Exception as e: print("Caught exception" + str(e)) raise e return creds def translate_func(creds): tc = translate_client(creds) req = { "parent": "projects/PROJECT_ID", "source_language_code": "SOURCE_LANGUAGE", "target_language_code": "TARGET_LANGUAGE", "mime_type": "text/plain", "contents": ["INPUT_TEXT"] } resp = tc.translate_text(req) print(resp) if __name__=="__main__": creds = main() translate_func(creds)Substitua o seguinte:
ENDPOINT: o ponto final da Vertex AI Translation que usa para a sua organização. Para mais informações, consulte o estado do serviço e os pontos finais.PROJECT_ID: o ID do projeto.SOURCE_LANGUAGE: o código do idioma do texto de entrada. Consulte a lista de idiomas suportados e os respetivos códigos de idioma.TARGET_LANGUAGE: o código do idioma para o qual quer traduzir o texto. Consulte a lista de idiomas suportados e os respetivos códigos de idioma.INPUT_TEXT: o texto de entrada no idioma de origem.
Use o campo
mime_typepara especificar um tipo de ficheiro. Defina o campomime_typepara um dos seguintes valores:text/plain: a sua entrada é texto simples.text/html: a sua entrada é texto HTML.
Se o campo
mime_typeestiver vazio,text/htmlé o valor predefinido.Guarde o script Python.
Execute o script Python para traduzir o texto:
python SCRIPT_NAMESubstitua
SCRIPT_NAMEpelo nome que deu ao seu script Python, comotranslation.py.
Para mais informações sobre o método translateText, consulte a biblioteca cliente Python.
Exclua texto da tradução
Use uma das seguintes etiquetas HTML no campo contents de pedidos para excluir partes do texto da tradução:
<span translate="no">"TEXT"</span><span class="notranslate">"TEXT"</span>
Substitua TEXT pela parte do texto que quer excluir da tradução.
Por exemplo, se tiver o seguinte texto de entrada em espanhol:
Hola, esto es una prueba.
Em seguida, esse texto é traduzido para inglês na seguinte frase:
Hello, this is a test.
Suponhamos que só quer traduzir a seguinte parte do texto, excluindo
Hola, do texto de entrada:
esto es una prueba.
Essa parte do texto é traduzida para inglês na seguinte frase:
this is a test.
Use as etiquetas HTML para excluir texto da tradução. Por exemplo, o pedido curl seguinte usa a etiqueta <span class="notranslate">"TEXT"</span> para excluir Hola, do texto de entrada anterior em espanhol quando traduz o texto para inglês:
curl -vv -X POST -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID:translateText -d '{"parent": "projects/PROJECT_ID", "source_language_code": "es", "target_language_code": "en", "contents": ["<span class=\"notranslate\">\"Hola,\"</span>\"esto es una prueba.\""]}'
Traduza com um glossário
Para traduzir texto com palavras de um glossário, tem de criar um glossário:
Guarde o seguinte ficheiro
request_glossary.json:cat <<- EOF > request_glossary.json { "sourceLanguageCode": "SOURCE_LANGUAGE", "targetLanguageCode": "SOURCE_LANGUAGE", "contents": "TEXT", "glossaryConfig": { "glossary": "projects/PROJECT_ID/glossaries/GLOSSARY_ID", "ignoreCase": IGNORE_CASE_BOOLEAN, "contextual_translation_enabled": CONTEXTUAL_BOOLEAN } } EOFSubstitua o seguinte:
PROJECT_ID: o ID do projeto.SOURCE_LANGUAGE: o idioma em que o documento está escrito. Consulte a lista de idiomas suportados e os respetivos códigos de idioma.TARGET_LANGUAGE: o idioma ou os idiomas para os quais quer traduzir o seu documento. Consulte a lista de idiomas suportados e os respetivos códigos de idioma.TEXT: traduzir texto que inclui palavras do glossárioGLOSSARY_ID: o ID do glossário. Exemplo:G11111111114524
Faça o pedido:
curl -vv -X POST -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID:translateText -d @request_glossary.json
Exemplo e resultado esperado:
Pedido:
{
"sourceLanguageCode": "es",
"targetLanguageCode": "en",
"contents": "La novela cuenta la historia de una joven que viaja a Madrid",
"glossaryConfig": {
"glossary": "projects/test-project/glossaries/GLOSSARY_ID",
"ignoreCase": true,
"contextual_translation_enabled": true
}
}
Resposta:
{"translations":[
{
"translatedText":"The novel tells the story of a young woman who travels to Madrid"}],
"glossaryTranslations":[{"translatedText":"The novel account the story of a young woman who travels to Madrid",
"glossaryConfig":
{
"glossary":"projects/test-project/glossaries/GLOSSARY_ID"
}}
]}
O campo translations contém a tradução automática normal antes de o glossário ser aplicado;
o campo glossaryTranslations contém a tradução depois de o glossário ser aplicado.
Quando define o campo contextual_translation_enabled como true, a resposta contém apenas o campo glossaryTranslations e não o campo translations.
Detetar idioma
O método detectLanguage devolve o idioma de uma string de texto através do envio de um pedido HTTP.
Por exemplo, o pedido seguinte deteta o inglês como o idioma do texto de entrada Hello, this is a test:
curl
curl -vv -X POST -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID:detectLanguage -d '{"parent": "projects/PROJECT_ID", "content": "Hello, this is a test"}'
Obtenha uma operação
O método getOperation devolve o estado mais recente de uma operação de longa duração.
Use este método para obter o resultado da operação gerado pelo serviço da API Vertex AI Translation. Para usar este método, especifique o ID do projeto e o ponto final do Vertex AI Translation.
Por exemplo, o pedido seguinte devolve o estado de uma operação de longa duração, como criar um glossário, que está a ser executada no seu projeto:
curl
curl -vv -X GET -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID/operations/PROJECT_ID
Apresentar operações
O método listOperations devolve uma lista das operações de longa duração
que correspondem a um filtro especificado no pedido. Para usar este método, especifique o ID do projeto e o ponto final do Vertex AI Translation.
Por exemplo, o seguinte pedido devolve a lista de operações em execução no seu projeto e limita o tamanho da página a dez resultados por página:
curl
curl -vv -X GET -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID/operations?page_size=10
Obtenha idiomas suportados
O método supportedLanguages devolve a lista de idiomas suportados pela API Vertex AI Translation.
Por exemplo, o pedido seguinte devolve os idiomas suportados especificando o ponto final da Vertex AI Translation:
curl
curl -vv -X GET -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID/locations/PROJECT_ID/supportedLanguages
Para ver a lista completa dos idiomas suportados, consulte o artigo Idiomas suportados para a Vertex AI Translation.