首页 » 排名链接 » Spring AI 应用开发中设置访问 Ollama 的超时时间(超时的是时间开发请求)

Spring AI 应用开发中设置访问 Ollama 的超时时间(超时的是时间开发请求)

admin 2024-11-22 01:29:34 0

扫一扫用手机浏览

文章目录 [+]

Ollama

那怎么做呢?OllamaChatModel 使用 OllamaApi 与 Ollama 服务器交互。
非流式接口使用的是 Spring 的 RestClient,流式接口使用的是 Spring 的 WebClient。
OllamaApi 的构造器接受一个 RestClient.Builder 对象,用来创建 RestClient。
所以,我们只需要提供一个自定义的 RestClient.Builder 对象即可。

这里需要一个 ClientHttpRequestFactory 实现,用来创建 HTTP 请求对象。
不同的 ClientHttpRequestFactory 有各自独有的设置请求超时时间的方式。
这里使用的是 JdkClientHttpRequestFactory,也就是使用 JDK 自带的 HttpClient 来发送请求,这样可以避免引入不必要的外部依赖。
使用 setReadTimeout 方法来设置超时时间即可。
在创建 OllamaApi 时,使用自定义的 RestClient.Builder 对象即可。

Spring AI 应用开发中设置访问 Ollama 的超时时间(超时的是时间开发请求) 排名链接
(图片来自网络侵删)

完整的 Spring 配置如下面所示。
这里把超时时间设置为 3 分钟。

public class AppConfiguration { @Bean @Qualifier("OllamaRestClientBuilder") public RestClient.Builder ollamaRestClientBuilder() { JdkClientHttpRequestFactory requestFactory = new JdkClientHttpRequestFactory( HttpClient.newHttpClient()); requestFactory.setReadTimeout(Duration.ofMinutes(3)); return RestClient.builder().requestFactory(requestFactory); } @Bean public OllamaApi ollamaApi(OllamaConnectionDetails connectionDetails, @Qualifier("OllamaRestClientBuilder") RestClient.Builder restClientBuilder) { return new OllamaApi(connectionDetails.getBaseUrl(), restClientBuilder); }}

添加了上述配置之后,OllamaChatModel 在与 Ollama 服务器交互时,会使用配置提供的超时时间,避免了频繁出现的超时错误。

相关文章