前两天对接了一下百度千帆的ERNIE-Bot-Turbo, 然后超时时间直接整不会了
从网上搜到的解决方案都是
通过HttpClient来修改, 但是此方案行不通.
我的解决方案是
package kim.nzxy.ai.rest;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.web.reactive.function.client.WebClient;
import org.springframework.web.reactive.function.client.support.WebClientAdapter;
import org.springframework.web.service.invoker.HttpServiceProxyFactory;
import java.time.Duration;
/**
* @author ly-chn
*/
@Configuration
public class RestServiceConfiguration {
@Bean
public QianFanApi qianFanRestService() {
WebClient webClient = WebClient.builder().baseUrl("https://aip.baidubce.com/")
.defaultHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE)
.defaultHeader(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON_VALUE)
.build();
HttpServiceProxyFactory factory = HttpServiceProxyFactory.builder(WebClientAdapter.forClient(webClient))
.blockTimeout(Duration.ofSeconds(900))
.build();
return factory.createClient(QianFanApi.class);
}
}
只需要在HttpServiceProxyFactory中设置blockTimeout即可
blockTimeout解释:
配置同步方法(阻塞方法)签名的HTTP请求响应等待时间, 默认5秒