【问题标题】:Increase Azure Translate limit to more than 10000 chars per call将 Azure 翻译限制增加到每次调用超过 10000 个字符
【发布时间】:2021-06-08 09:11:41
【问题描述】:

我想通过标准订阅或自定义订阅来增加 Azure 中文本翻译的 10,000 个字符的限制,但我找不到方法。如果不可能,请提出任何解决方法。

目前我多次调用以确保不超过限制,但这变得复杂并且需要更多时间,我正在寻找更有效的方法

【问题讨论】:

  • 我重新措辞了一下,使它更像 SO 指南,尽管这里不允许替换请求(这是一种意见)。问题的前半部分没有结束投票。

标签: language-translation microsoft-translator


【解决方案1】:

目前,Azure Translator 的限制是每个请求 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
}

【讨论】:

    猜你喜欢
    • 2019-11-27
    • 1970-01-01
    • 1970-01-01
    • 2018-08-26
    • 1970-01-01
    • 2019-08-16
    • 1970-01-01
    • 2018-06-29
    • 1970-01-01
    相关资源
    最近更新 更多