Merge branch 'dev_2.1.0_docker_network' into dev_2.1.0

dev_2.1.0
xueqingkun 1 year ago
commit fa51965b82

@ -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
# 查看日志是否正常

@ -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 = "辅助检查项管理")

@ -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);
}

@ -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

@ -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

@ -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);
}
}

@ -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

@ -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;

Loading…
Cancel
Save