Google翻译APIPOST延迟11秒?

Google translate API POST 11second delay?

编辑:28 条消息需要 11.5 秒

单个请求工作正常。下面这段代码需要 11 秒,使用 API 中的邮递员设置路由来访问。

我是不是做错了什么?我觉得即使没有缓存也不应该花11秒。

$xs = ChatMessage::where('chat_room_id','=',$roomId)
->with('user')
->orderBy('created_at','DESC')
->get();



    foreach($xs as $r){
            
        $translate = new TranslateClient([
            'key' => 'xxxxxxxxxxxxxxxxxxxxxxx'
        ]);
        
        $result = $translate->translate($r->message_english, [
            'target' =>'es',
            'source' => 'en',
        ]);
        
        $r->message = $result['text'];
    }

return $xs;

我认为您只需将客户端移出 for each 循环即可轻松加快该过程。每次迭代时,您都在创建一个客户端。那不是最优的。您应该能够在每次翻译调用时重用客户端。这应该会加快您的翻译过程。您可以在官方 github client project

中找到这种用法的示例

这是一个伪代码示例:

client = new TranslateClient()

foreach(message in messages)
   result = client.translate(message)
   print(result)

另外,你的翻译文本有多长?您应该将要翻译的整个文本传递到单个调用中(只要支持的库允许)这样您还可以减少对 API.

的调用

如果您仍有问题,可以按照评论中提到的并行使用多个请求。

关于此的一些有用链接: