diff --git a/docker/服务部署文档.md b/docker/服务部署文档.md index afc9f3d5..4279674a 100644 --- a/docker/服务部署文档.md +++ b/docker/服务部署文档.md @@ -11,6 +11,16 @@ 7. minio对象存储服务 8. redis服务 +# 准备网络 如果是使用network模式则非必要 +```shell + +# 查看现有网络 +docker network list + +# 创建新网络 +docker network create virtual-patient-network + +``` ## mysql数据库 @@ -23,6 +33,9 @@ docker pull mysql:5.7 # 启动服务 docker run -d -p 3306:3306 -v /var/lib/mysql:/var/lib/mysql --name vp-mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7 + + # **启用网络环境服务,可选** + docker run -d -p 3306:3306 -v /var/lib/mysql:/var/lib/mysql --name virtual-patient-mysql -e MYSQL_ROOT_PASSWORD=123456 --network virtual-patient-network mysql:5.7 ~~~ @@ -103,6 +116,10 @@ mv virtual-patient-bucket-prod /data/vp/minio/data docker images | grep virtual-patient-rasa-manager # 运行容器 docker run --name virtual-patient-rasa-manager -p 5050:5050 -p 8990:8890 -d virtual-patient-rasa-manager:1.0.0 + + # **启用网络环境服务,可选** + docker run --name virtual-patient-rasa-manager -p 5050:5050 -p 8990:8890 --network virtual-patient-network -d virtual-patient-rasa-manager:1.0.0 --spring.profile.active=network + # 验证容器运行 docker ps | grep virtual-patient-rasa-manager # 查看日志是否正常 @@ -124,6 +141,10 @@ mv virtual-patient-bucket-prod /data/vp/minio/data # 运行容器 docker run --name virtual-patient-web -p 8899:8899 -d virtual-patient-web + + # **启用网络环境服务,可选** + docker run --name virtual-patient-web -p 8899:8899 --network virtual-patient-network -d virtual-patient-web --spring.profile.active=network + # 验证容器运行 docker ps | grep virtual-patient-web # 查看日志是否正常 @@ -143,6 +164,9 @@ mv virtual-patient-bucket-prod /data/vp/minio/data docker images | grep virtual-patient-manage # 运行容器 docker run --name virtual-patient-manage -p 8891:8891 -d virtual-patient-manage + # **启用网络环境服务,可选** + docker run --name virtual-patient-manage -p 8891:8891 --network virtual-patient-network -d virtual-patient-manage --spring.profile.active=network + # 验证容器运行 docker ps | grep virtual-patient-manage # 查看日志是否正常 @@ -160,9 +184,12 @@ mv virtual-patient-bucket-prod /data/vp/minio/data # 验证镜像是否存在 docker images | grep virtual-patient-nginx # 运行容器 - docker run --name virtual-patient-nginx -p 80:80 -d -e UPSTREAM_WEB_SERVERS= -e UPSTREAM_MANAGE_SERVERS=ip:port virtual-patient-nginx:1.0.0 + docker run --name virtual-patient-nginx -p 80:80 -d -e UPSTREAM_WEB_SERVERS=ip:port -e UPSTREAM_MANAGE_SERVERS=ip:port virtual-patient-nginx:1.0.0 - UPSTREAM_WEB_SERVERS:虚拟病人问诊系统服务的ip:port - UPSTREAM_MANAGE_SERVERS:虚拟病人后端管理系统服务的ip:port + + # **启用网络环境服务,可选** + docker run --name virtual-patient-nginx -p 80:80 --network virtual-patient-network -d -e UPSTREAM_WEB_SERVERS=virtual-patient-web:8899 -e UPSTREAM_MANAGE_SERVERS=virtual-patient-manage:8891 virtual-patient-nginx:1.0.0 # 验证容器运行 docker ps # 查看日志是否正常 diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/controller/config/AncillaryItemManageController.java b/virtual-patient-manage/src/main/java/com/supervision/manage/controller/config/AncillaryItemManageController.java index f6db2f2c..5012f2bf 100644 --- a/virtual-patient-manage/src/main/java/com/supervision/manage/controller/config/AncillaryItemManageController.java +++ b/virtual-patient-manage/src/main/java/com/supervision/manage/controller/config/AncillaryItemManageController.java @@ -12,7 +12,6 @@ import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import java.util.ArrayList; import java.util.List; @Api(tags = "辅助检查项管理") diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/AskQuestionLibraryManageServiceImpl.java b/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/AskQuestionLibraryManageServiceImpl.java index 82a23882..9be34576 100644 --- a/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/AskQuestionLibraryManageServiceImpl.java +++ b/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/AskQuestionLibraryManageServiceImpl.java @@ -1,5 +1,6 @@ package com.supervision.manage.service.impl; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.lang.Assert; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -15,6 +16,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import java.util.List; +import java.util.Objects; @Service @RequiredArgsConstructor @@ -64,6 +66,7 @@ public class AskQuestionLibraryManageServiceImpl implements AskQuestionLibraryMa askTemplateQuestionLibrary.setCode(nextCode); askTemplateQuestionLibrary.setDefaultAnswerCode(nextDefaultCode); + askTemplateQuestionLibrary.setQuestion(CollUtil.newArrayList(askTemplateQuestionLibrary.getDescription())); askTemplateQuestionLibraryService.save(askTemplateQuestionLibrary); return askTemplateQuestionLibrary.getId(); } @@ -73,6 +76,7 @@ public class AskQuestionLibraryManageServiceImpl implements AskQuestionLibraryMa Assert.notEmpty(askTemplateQuestionLibrary.getId(),"id不能为空"); assertSave(askTemplateQuestionLibrary); + askTemplateQuestionLibrary.setQuestion(CollUtil.newArrayList(askTemplateQuestionLibrary.getDescription())); return askTemplateQuestionLibraryService.updateById(askTemplateQuestionLibrary); } diff --git a/virtual-patient-manage/src/main/resources/application-network.yml b/virtual-patient-manage/src/main/resources/application-network.yml new file mode 100644 index 00000000..19ac7f7c --- /dev/null +++ b/virtual-patient-manage/src/main/resources/application-network.yml @@ -0,0 +1,63 @@ +#服务器端口 +server: + port: 8891 + servlet: + context-path: /virtual-patient-manage + undertow: + # HTTP post内容的最大大小。当值为-1时,默认值为大小是无限的 + max-http-post-size: -1 + # 以下的配置会影响buffer,这些buffer会用于服务器连接的IO操作,有点类似netty的池化内存管理 + # 每块buffer的空间大小,越小的空间被利用越充分 + buffer-size: 512 + # 是否分配的直接内存 + direct-buffers: true + +spring: + application: + name: virtual-patient-manage + servlet: + multipart: + max-file-size: 100MB + max-request-size: 100MB + ##数据源配置 + datasource: + type: com.alibaba.druid.pool.DruidDataSource + druid: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://virtual-patient-mysql:3306/virtual_patient?useUnicode=true&characterEncoding=utf-8&useSSL=true&nullCatalogMeansCurrent=true&serverTimezone=GMT%2B8 + username: root + password: '123456' + initial-size: 5 # 初始化大小 + min-idle: 10 # 最小连接数 + max-active: 20 # 最大连接数 + max-wait: 60000 # 获取连接时的最大等待时间 + min-evictable-idle-time-millis: 300000 # 一个连接在池中最小生存的时间,单位是毫秒 + time-between-eviction-runs-millis: 60000 # 多久才进行一次检测需要关闭的空闲连接,单位是毫秒 + filters: stat,wall # 配置扩展插件:stat-监控统计,log4j-日志,wall-防火墙(防止SQL注入),去掉后,监控界面的sql无法统计 + validation-query: SELECT 1 # 检测连接是否有效的 SQL语句,为空时以下三个配置均无效 + test-on-borrow: true # 申请连接时执行validationQuery检测连接是否有效,默认true,开启后会降低性能 + test-on-return: true # 归还连接时执行validationQuery检测连接是否有效,默认false,开启后会降低性能 + test-while-idle: true # 申请连接时如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效,默认false,建议开启,不影响性能 + stat-view-servlet: + enabled: false # 是否开启 StatViewServlet + filter: + stat: + enabled: true # 是否开启 FilterStat,默认true + log-slow-sql: true # 是否开启 慢SQL 记录,默认false + slow-sql-millis: 5000 # 慢 SQL 的标准,默认 3000,单位:毫秒 + merge-sql: false # 合并多个连接池的监控数据,默认false + redis: + host: virtual-patient-redis + port: 6379 + password: 123456 + +mybatis-plus: + mapper-locations: classpath*:mapper/**/*.xml + configuration: + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl + +minio: + url: http://virtual-patient-minio:9002 + accessKey: admin + secretKey: 12345678 + bucketName: virtual-patient-bucket-prod \ No newline at end of file diff --git a/virtual-patient-rasa/src/main/resources/application-network.yml b/virtual-patient-rasa/src/main/resources/application-network.yml new file mode 100644 index 00000000..fb8ed9f5 --- /dev/null +++ b/virtual-patient-rasa/src/main/resources/application-network.yml @@ -0,0 +1,66 @@ +server: + port: 8890 + servlet: + context-path: /virtual-patient-rasa + undertow: + # HTTP post内容的最大大小。当值为-1时,默认值为大小是无限的 + max-http-post-size: -1 + # 以下的配置会影响buffer,这些buffer会用于服务器连接的IO操作,有点类似netty的池化内存管理 + # 每块buffer的空间大小,越小的空间被利用越充分 + buffer-size: 512 + # 是否分配的直接内存 + direct-buffers: true + +rasa: + data-path: /data/vp/rasa/model_resource/ # 文件解压后存放位置 + models-path: /data/vp/rasa/models/ + endpoints: /rasa/endpoints.yml # 启动的配置项,应该是写在配置文件里面 + config: /rasa/config-local.yml # 启动rasa需要的配置文件,在配置文件中配置 + url: 127.0.0.1:{}/webhooks/rest/webhook + wakeup: + cron: 0 */10 * * * ? #每十分钟执行一次 + +text2vec: + service: + domain: http://127.0.0.1:5000/ + +spring: + application: + name: virtual-patient + servlet: + multipart: + max-file-size: 100MB + max-request-size: 100MB + + ##数据源配置 + datasource: + type: com.alibaba.druid.pool.DruidDataSource + druid: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://virtual-patient-mysql:3306/virtual_patient?useUnicode=true&characterEncoding=utf-8&useSSL=true&nullCatalogMeansCurrent=true&serverTimezone=GMT%2B8 + username: root + password: '123456' + initial-size: 5 # 初始化大小 + min-idle: 10 # 最小连接数 + max-active: 20 # 最大连接数 + max-wait: 60000 # 获取连接时的最大等待时间 + min-evictable-idle-time-millis: 300000 # 一个连接在池中最小生存的时间,单位是毫秒 + time-between-eviction-runs-millis: 60000 # 多久才进行一次检测需要关闭的空闲连接,单位是毫秒 + filters: stat,wall # 配置扩展插件:stat-监控统计,log4j-日志,wall-防火墙(防止SQL注入),去掉后,监控界面的sql无法统计 + validation-query: SELECT 1 # 检测连接是否有效的 SQL语句,为空时以下三个配置均无效 + test-on-borrow: true # 申请连接时执行validationQuery检测连接是否有效,默认true,开启后会降低性能 + test-on-return: true # 归还连接时执行validationQuery检测连接是否有效,默认false,开启后会降低性能 + test-while-idle: true # 申请连接时如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效,默认false,建议开启,不影响性能 + stat-view-servlet: + enabled: false # 是否开启 StatViewServlet + filter: + stat: + enabled: true # 是否开启 FilterStat,默认true + log-slow-sql: true # 是否开启 慢SQL 记录,默认false + slow-sql-millis: 5000 # 慢 SQL 的标准,默认 3000,单位:毫秒 + merge-sql: false # 合并多个连接池的监控数据,默认false + +mybatis-plus: + mapper-locations: classpath*:mapper/**/*.xml + configuration: + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl \ No newline at end of file diff --git a/virtual-patient-rasa/src/test/java/com/supervision/rasa/VirtualPatientRasaApplicationTests.java b/virtual-patient-rasa/src/test/java/com/supervision/rasa/VirtualPatientRasaApplicationTests.java index 36720faa..100327c2 100644 --- a/virtual-patient-rasa/src/test/java/com/supervision/rasa/VirtualPatientRasaApplicationTests.java +++ b/virtual-patient-rasa/src/test/java/com/supervision/rasa/VirtualPatientRasaApplicationTests.java @@ -4,6 +4,7 @@ import com.supervision.rasa.pojo.dto.QuestionAnswerDTO; import com.supervision.rasa.pojo.dto.Text2vecDataVo; import com.supervision.rasa.service.RasaCmdService; import com.supervision.rasa.service.Text2vecService; +import com.supervision.util.RedisSequenceUtil; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @@ -26,11 +27,21 @@ class VirtualPatientRasaApplicationTests { /*Map<String, QuestionAnswerDTO> questionAnswerDTOMap = rasaCmdService.generateRasaYml("F:\\tmp\\rasa"); System.out.println(questionAnswerDTOMap);*/ - Map<String, QuestionAnswerDTO> questionAnswerDTOMap = rasaCmdService.generateRasaYml(String.join(File.separator, "F:\\tmp\\rasa")); + /* Map<String, QuestionAnswerDTO> questionAnswerDTOMap = rasaCmdService.generateRasaYml(String.join(File.separator, "F:\\tmp\\rasa")); List<Text2vecDataVo> text2vecDataVoList = questionAnswerDTOMap.entrySet().stream() .flatMap(entry -> entry.getValue().getQuestionList().stream() .map(question -> new Text2vecDataVo(entry.getKey(), question))).collect(Collectors.toList()); - text2vecService.updateDataset(text2vecDataVoList); + text2vecService.updateDataset(text2vecDataVoList);*/ + + String complexDiseaseNo = RedisSequenceUtil.getComplexDiseaseNo(); + + String processNo = RedisSequenceUtil.getProcessNo(); + + String questionLibraryCode = RedisSequenceUtil.getQuestionLibraryCode(()->0L); + + String questionLibraryCode1 = RedisSequenceUtil.getQuestionLibraryDefaultAnswerCode(() -> 0L); + + System.out.println("complexDiseaseNo"+complexDiseaseNo+" processNo"+processNo+" questionLibraryCode"+questionLibraryCode+" questionLibraryCode1"+questionLibraryCode1); } } diff --git a/virtual-patient-web/src/main/resources/application-network.yml b/virtual-patient-web/src/main/resources/application-network.yml new file mode 100644 index 00000000..c3bd1526 --- /dev/null +++ b/virtual-patient-web/src/main/resources/application-network.yml @@ -0,0 +1,88 @@ +#服务器端口 +server: + port: 8899 + servlet: + context-path: /virtual-patient + undertow: + # HTTP post内容的最大大小。当值为-1时,默认值为大小是无限的 + max-http-post-size: -1 + # 以下的配置会影响buffer,这些buffer会用于服务器连接的IO操作,有点类似netty的池化内存管理 + # 每块buffer的空间大小,越小的空间被利用越充分 + buffer-size: 512 + # 是否分配的直接内存 + direct-buffers: true + +spring: + application: + name: virtual-patient + servlet: + multipart: + max-file-size: 100MB + max-request-size: 100MB + ##数据源配置 + datasource: + type: com.alibaba.druid.pool.DruidDataSource + druid: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://virtual-patient-mysql:3306/virtual_patient?useUnicode=true&characterEncoding=utf-8&useSSL=true&nullCatalogMeansCurrent=true&serverTimezone=GMT%2B8 + username: root + password: '123456' + initial-size: 5 # 初始化大小 + min-idle: 10 # 最小连接数 + max-active: 20 # 最大连接数 + max-wait: 60000 # 获取连接时的最大等待时间 + min-evictable-idle-time-millis: 300000 # 一个连接在池中最小生存的时间,单位是毫秒 + time-between-eviction-runs-millis: 60000 # 多久才进行一次检测需要关闭的空闲连接,单位是毫秒 + filters: stat,wall # 配置扩展插件:stat-监控统计,log4j-日志,wall-防火墙(防止SQL注入),去掉后,监控界面的sql无法统计 + validation-query: SELECT 1 # 检测连接是否有效的 SQL语句,为空时以下三个配置均无效 + test-on-borrow: true # 申请连接时执行validationQuery检测连接是否有效,默认true,开启后会降低性能 + test-on-return: true # 归还连接时执行validationQuery检测连接是否有效,默认false,开启后会降低性能 + test-while-idle: true # 申请连接时如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效,默认false,建议开启,不影响性能 + stat-view-servlet: + enabled: false # 是否开启 StatViewServlet + filter: + stat: + enabled: true # 是否开启 FilterStat,默认true + log-slow-sql: true # 是否开启 慢SQL 记录,默认false + slow-sql-millis: 5000 # 慢 SQL 的标准,默认 3000,单位:毫秒 + merge-sql: false # 合并多个连接池的监控数据,默认false + redis: + host: virtual-patient-redis + port: 6379 + password: 123456 + +minio: + url: http://virtual-patient-minio:9002 + accessKey: admin + secretKey: 12345678 + bucketName: virtual-patient-bucket-prod + + +mybatis-plus: + mapper-locations: classpath*:mapper/**/*.xml + configuration: + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl + +paddle-speech: + # https://github.com/PaddlePaddle/PaddleSpeech/wiki/PaddleSpeech-Server-RESTful-API + tts: http://virtual-patient-paddle-speech:8090/paddlespeech/tts + asr: http://virtual-patient-paddle-speech:8090/paddlespeech/asr +rasa: + base-url: http://virtual-patient-rasa:8890/virtual-patient-rasa/ + talk: rasa/talkRasa + saveRasaFile: rasaFile/saveRasaFile + train: rasaCmd/trainExec + run: rasaCmd/runExec +human: + base-url: https://digital-human.jd.com + room-id: /getRoomId + text-driven: /text_driven + talk-status: /talkStatus + resourceMaxNumber: 5 +ws: + # nginx的wss地址(如果是wss的,那么带不带s都可以访问) + nginx-ip: virtual-patient-nginx + nginx-port: 443 +answer: + # 对于没有匹配上的缺省回答ID,关联的是vp_file_resource的ID + defaultNoMatchId: 1739173836351885313 \ No newline at end of file diff --git a/virtual-patient-web/src/test/java/com/supervision/AskTemplateIdTest.java b/virtual-patient-web/src/test/java/com/supervision/AskTemplateIdTest.java index b6bb1eec..0660732f 100644 --- a/virtual-patient-web/src/test/java/com/supervision/AskTemplateIdTest.java +++ b/virtual-patient-web/src/test/java/com/supervision/AskTemplateIdTest.java @@ -19,6 +19,7 @@ import com.supervision.model.CommonDic; import com.supervision.service.AskPatientAnswerService; import com.supervision.service.AskTemplateQuestionLibraryService; import com.supervision.service.CommonDicService; +import com.supervision.util.RedisSequenceUtil; import lombok.extern.slf4j.Slf4j; import org.junit.Test; import org.junit.runner.RunWith;