Как перевести длинный текст с помощью Google Cloud translate v3

#google-cloud-platform #google-cloud-translate

#google-облачная платформа #google-cloud-translate

Вопрос:

Среда: API: Google Cloud Translate V3, размер текста: 12 000 слов

С помощью этого метода можно переводить слова и короткие предложения translateText() , но когда я запускаю весь текст, я сталкиваюсь с ошибкой «Текст слишком длинный».

 "message": "Text is too long.",
    "code": 3,
    "status": "INVALID_ARGUMENT",
    "details": [
        {
            "@type": 0,
            "data": "type.googleapis.com/google.rpc.BadRequest"
        },
        {
            "@type": 0,
            "data": [
                {
                    "field": "contents",
                    "description": "The total codepoints in the request must be less than 30720, actual: 90005"
                }
            ]
        }
    ]
}
  

Ответ №1:

Вы можете либо разделить текст на несколько частей (несколько запросов) с максимальным количеством кодовых точек 30 тыс. contents[] , как указано в API: https://cloud.google.com/translate/docs/reference/rest/v3/projects.locations/translateText

 // Request 1
{
  "sourceLanguageCode": "en",
  "targetLanguageCode": "de",
  "contents": ["Text part one..."]
}

// Request 2
{
  "sourceLanguageCode": "en",
  "targetLanguageCode": "de",
  "contents": ["...text part two..."]
}

// Request n
{
  "sourceLanguageCode": "en",
  "targetLanguageCode": "de",
  "contents": ["...text part n."]
}
  

Или используйте пакетный перевод, который переводит большой объем текста в асинхронном пакетном режиме: https://cloud.google.com/translate/docs/reference/rest/v3/projects.locations/batchTranslateText . Этот вариант немного сложнее, потому что вам нужно загрузить свои файлы в облачное хранилище Google.