#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.