diff --git a/virtual-patient-common/pom.xml b/virtual-patient-common/pom.xml index 419cb110..dc8aa355 100644 --- a/virtual-patient-common/pom.xml +++ b/virtual-patient-common/pom.xml @@ -42,6 +42,13 @@ <artifactId>spring-ai-ollama-spring-boot-starter</artifactId> </dependency> + <!--将http客户端引入httpclient,以提供给spring-ai使用,因为minio引入了okhttp,如果不引入httpclient,会导致自动使用okhttp(okhttp超时时间短,会导致大模型来不及回答消息)--> + <dependency> + <groupId>org.apache.httpcomponents.client5</groupId> + <artifactId>httpclient5</artifactId> + <version>5.3.1</version> <!-- 使用时请替换为最新的版本 --> + </dependency> + <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId> diff --git a/virtual-patient-common/src/main/java/com/supervision/config/MinioConfig.java b/virtual-patient-common/src/main/java/com/supervision/config/MinioConfig.java index 92329f17..d073db40 100644 --- a/virtual-patient-common/src/main/java/com/supervision/config/MinioConfig.java +++ b/virtual-patient-common/src/main/java/com/supervision/config/MinioConfig.java @@ -1,11 +1,13 @@ package com.supervision.config; import io.minio.MinioClient; -import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; +import okhttp3.OkHttpClient; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import java.util.concurrent.TimeUnit; + @Configuration public class MinioConfig { @@ -13,9 +15,14 @@ public class MinioConfig { * 创建基于Java端的MinioClient */ @Bean - @ConditionalOnProperty(prefix = "minio",name = "url") + @ConditionalOnProperty(prefix = "minio", name = "url") public MinioClient minioClient(MinioProperties minioProperties) { + OkHttpClient.Builder builder = new OkHttpClient.Builder(); + builder.connectTimeout(60, TimeUnit.SECONDS); + builder.readTimeout(120, TimeUnit.SECONDS); + builder.callTimeout(120, TimeUnit.SECONDS); return MinioClient.builder().endpoint(minioProperties.getUrl()) + .httpClient(builder.build()) .credentials(minioProperties.getAccessKey(), minioProperties.getSecretKey()) .build(); } diff --git a/virtual-patient-common/src/main/java/com/supervision/util/AiChatUtil.java b/virtual-patient-common/src/main/java/com/supervision/util/AiChatUtil.java index 1bf0382e..299d93f9 100644 --- a/virtual-patient-common/src/main/java/com/supervision/util/AiChatUtil.java +++ b/virtual-patient-common/src/main/java/com/supervision/util/AiChatUtil.java @@ -70,7 +70,7 @@ public class AiChatUtil { String s = submit.get(); return Optional.ofNullable(JSONUtil.toBean(s, clazz)); } catch (ExecutionException | InterruptedException e) { - log.error("调用大模型生成失败"); + log.error("调用大模型生成失败", e); } return Optional.empty(); } diff --git a/virtual-patient-web/pom.xml b/virtual-patient-web/pom.xml index 1db38fa7..e56a1c36 100644 --- a/virtual-patient-web/pom.xml +++ b/virtual-patient-web/pom.xml @@ -69,18 +69,18 @@ </exclusions> </dependency> -<!-- 用来生成yml文件,jakson的模板库满足不了多行文本|管道符的需求--> + <!-- 用来生成yml文件,jakson的模板库满足不了多行文本|管道符的需求--> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> </dependency> -<!-- 文字转拼音--> + <!-- 文字转拼音--> <dependency> <groupId>io.github.biezhi</groupId> <artifactId>TinyPinyin</artifactId> </dependency> -<!-- excel操作--> + <!-- excel操作--> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> @@ -108,11 +108,6 @@ <scope>test</scope> </dependency> - <!-- 引入ollama的依赖.版本号来自于 dependencyManagement中 spring-ai-bom中的版本号.--> - <dependency> - <groupId>io.springboot.ai</groupId> - <artifactId>spring-ai-ollama-spring-boot-starter</artifactId> - </dependency> </dependencies> diff --git a/virtual-patient-web/src/main/java/com/supervision/service/impl/AiServiceImpl.java b/virtual-patient-web/src/main/java/com/supervision/service/impl/AiServiceImpl.java index 38943b2c..78a88148 100644 --- a/virtual-patient-web/src/main/java/com/supervision/service/impl/AiServiceImpl.java +++ b/virtual-patient-web/src/main/java/com/supervision/service/impl/AiServiceImpl.java @@ -29,7 +29,7 @@ public class AiServiceImpl implements AiService { 我们现在来进行一个角色扮演连续对话场景。 你现在扮演一个病人的角色,我来扮演医生,我们进行模拟问诊。 我会给你设定病人的病历,你根据给定病历内容进行回复。 - 如果病历中信息不能回问题,则回复'我不知道/没注意/不清楚'",所有问话都必须给回复! + 如果病历中的信息不能回该问题,则回复'没有注意过'或'不清楚'或'不知道',但所有问话都必须给回复! 如果医生说'你好'等礼貌用语,你就回复'你好,医生'!!! """;