问题描述
我想通过标准订阅或自定义订阅来增加 Azure 中文本翻译的 10,000 个字符限制,但我找不到方法。如果不可能,请提出任何解决方法。
目前我进行多次调用以确保不超过限制,但这变得复杂且需要更多时间,我正在寻找一种更有效的方法
解决方法
目前,Azure 翻译器的限制为每个请求 10,000 个字符,并且不能超过 Official Documentation
您可以将源文本分解为 10,000 个字符的块,然后将它们并行发送到 Azure 翻译器。您如何执行此操作取决于您使用的编程语言。例如,您将在 Go 中执行类似的操作。
首先,按照 this example
将源文本分成每批 10,000 个字符的批次然后,用这样的方式并行翻译每个块。请注意,callMicrosoftTranslation
是此处用于实际调用 Azure Translator API 的代码的存根。
microsoftTranslationResponses := make(map[string]*microsoft.TranslationResponse)
g,_ := errgroup.WithContext(ctx)
for chunkKey,chunkValue := range chunkMap {
// bind to each iteration to work with closures
// https://golang.org/doc/faq#closures_and_goroutines
chunkKey := chunkKey
chunkValue := chunkValue
g.Go(func() error {
translationResponse,err := callMicrosoftTranslation(chunkValue)
if err != nil {
return err
}
mutex.Lock()
microsoftTranslationResponses[chunkKey] = translationEngineResponse
mutex.Unlock()
return nil
})
}
if err := g.Wait(); err != nil {
return nil,err
}