diff --git a/virtual-patient-rasa/src/main/java/com/superversion/rasa/config/ResponseConfig.java b/virtual-patient-rasa/src/main/java/com/superversion/rasa/config/ResponseConfig.java
new file mode 100644
index 00000000..9358b16a
--- /dev/null
+++ b/virtual-patient-rasa/src/main/java/com/superversion/rasa/config/ResponseConfig.java
@@ -0,0 +1,102 @@
+package com.superversion.rasa.config;
+
+import cn.hutool.json.JSONUtil;
+import com.superversion.rasa.domian.GlobalResult;
+import com.superversion.rasa.exception.BusinessException;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.core.MethodParameter;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.converter.HttpMessageConverter;
+import org.springframework.http.server.ServerHttpRequest;
+import org.springframework.http.server.ServerHttpResponse;
+import org.springframework.lang.Nullable;
+import org.springframework.validation.BindException;
+import org.springframework.web.bind.MethodArgumentNotValidException;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.RestControllerAdvice;
+import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice;
+
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+/**
+ * 统一返回
+ *
+ * @author wb
+ * @date 2022/3/10 13:24
+ */
+@Slf4j
+@RestControllerAdvice(annotations = RestController.class, basePackages = {"com.**.controller"})
+public class ResponseConfig implements ResponseBodyAdvice<Object> {
+
+
+    @Override
+    public boolean supports(@Nullable MethodParameter methodParameter,
+                            @Nullable Class<? extends HttpMessageConverter<?>> aClass) {
+        assert methodParameter != null;
+        return !methodParameter.getDeclaringClass().getName().contains("swagger");
+    }
+
+    @Override
+    public Object beforeBodyWrite(Object o, @Nullable MethodParameter methodParameter, @Nullable MediaType mediaType,
+                                  @Nullable Class<? extends HttpMessageConverter<?>> aClass, @Nullable ServerHttpRequest serverHttpRequest,
+                                  @Nullable ServerHttpResponse serverHttpResponse) {
+
+
+        if (Objects.isNull(o)) {
+            return JSONUtil.toJsonStr(GlobalResult.ok(null, "success"));
+        }
+        if (o instanceof GlobalResult) {
+            return o;
+        }
+        // 对于String类型的返回值需要进行特殊处理
+        if (o instanceof String) {
+            return JSONUtil.toJsonStr(GlobalResult.ok(o, "success"));
+        }
+        return GlobalResult.ok(o, "success");
+    }
+
+    /**
+     * 业务异常处理
+     *
+     * @param exception 业务异常
+     * @return 通用返回值
+     */
+    @ExceptionHandler(BusinessException.class)
+    public GlobalResult<?> businessExceptionResponse(BusinessException exception) {
+        log.error(exception.getMessage(), exception);
+        return GlobalResult.error(HttpStatus.INTERNAL_SERVER_ERROR.value(), exception.getMessage(), "业务异常");
+    }
+
+
+    /**
+     * 参数验证异常处理
+     *
+     * @param exception 参数验证异常
+     * @return 通用返回值
+     */
+    @ExceptionHandler({MethodArgumentNotValidException.class, BindException.class})
+    public GlobalResult<?> validationExceptionResponse(MethodArgumentNotValidException exception) {
+        log.error(exception.getMessage(), exception);
+        // 格式化错误信息
+        String errorMsg = exception.getBindingResult().getFieldErrors().stream()
+                .map(e -> e.getField() + ":" + e.getDefaultMessage()).collect(Collectors.joining("、"));
+        return GlobalResult.error(HttpStatus.INTERNAL_SERVER_ERROR.value(), "参数验证异常", errorMsg);
+    }
+
+
+    /**
+     * 未知异常处理
+     *
+     * @param exception 未知异常
+     * @return 通用返回值
+     */
+    @ExceptionHandler(Exception.class)
+    public GlobalResult<?> validationExceptionResponse(Exception exception) {
+        log.error(exception.getMessage(), exception);
+        return GlobalResult.error(HttpStatus.INTERNAL_SERVER_ERROR.value(), "未知错误", exception.getMessage());
+    }
+
+}
diff --git a/virtual-patient-rasa/src/main/java/com/superversion/rasa/controller/RasaCmdController.java b/virtual-patient-rasa/src/main/java/com/superversion/rasa/controller/RasaCmdController.java
index 34eeaf94..275ef2c8 100644
--- a/virtual-patient-rasa/src/main/java/com/superversion/rasa/controller/RasaCmdController.java
+++ b/virtual-patient-rasa/src/main/java/com/superversion/rasa/controller/RasaCmdController.java
@@ -1,5 +1,7 @@
 package com.superversion.rasa.controller;
 
+import cn.hutool.core.util.StrUtil;
+import com.superversion.rasa.exception.BusinessException;
 import com.superversion.rasa.pojo.vo.RasaArgument;
 import com.superversion.rasa.service.RasaCmdService;
 import io.swagger.annotations.Api;
@@ -32,7 +34,11 @@ public class RasaCmdController {
     @PostMapping("/runExec")
     public String runExec(@RequestBody RasaArgument argument) throws ExecutionException, InterruptedException, TimeoutException {
 
-        return rasaCmdService.runExec(argument);
+        String outString = rasaCmdService.runExec(argument);
+        if (StrUtil.isEmptyIfStr(outString) || !outString.contains("Rasa server is up and running")){
+            throw new BusinessException("任务执行异常。详细日志:"+outString);
+        }
+        return outString;
 
     }
 
diff --git a/virtual-patient-rasa/src/main/java/com/superversion/rasa/domian/GlobalResult.java b/virtual-patient-rasa/src/main/java/com/superversion/rasa/domian/GlobalResult.java
new file mode 100644
index 00000000..74fab7d9
--- /dev/null
+++ b/virtual-patient-rasa/src/main/java/com/superversion/rasa/domian/GlobalResult.java
@@ -0,0 +1,49 @@
+package com.superversion.rasa.domian;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.http.HttpStatus;
+
+@Data
+@ApiModel
+public class GlobalResult<T> {
+
+    private int code = 200;
+
+    private String msg = "success";
+
+    @ApiModelProperty
+    private T data;
+
+
+    public static <T> GlobalResult<T> ok() {
+        return ok(null);
+    }
+
+    public static <T> GlobalResult<T> ok(T data) {
+        GlobalResult<T> globalResult = new GlobalResult<>();
+        globalResult.setData(data);
+        return globalResult;
+    }
+
+    public static <T> GlobalResult<T> ok(T data, String message) {
+        GlobalResult<T> globalResult = new GlobalResult<>();
+        globalResult.setMsg(message);
+        globalResult.setData(data);
+        return globalResult;
+    }
+
+    public static <T> GlobalResult<T> error(String msg) {
+        return error(HttpStatus.INTERNAL_SERVER_ERROR.value(), null, msg);
+    }
+
+
+    public static <T> GlobalResult<T> error(int code, T data, String msg) {
+        GlobalResult<T> globalResult = new GlobalResult<>();
+        globalResult.setCode(code);
+        globalResult.setData(data);
+        globalResult.setMsg(msg);
+        return globalResult;
+    }
+}
diff --git a/virtual-patient-rasa/src/main/java/com/superversion/rasa/exception/BusinessException.java b/virtual-patient-rasa/src/main/java/com/superversion/rasa/exception/BusinessException.java
new file mode 100644
index 00000000..78b52081
--- /dev/null
+++ b/virtual-patient-rasa/src/main/java/com/superversion/rasa/exception/BusinessException.java
@@ -0,0 +1,76 @@
+/*
+ * 文 件 名:  CustomException
+ * 版    权:
+ * 描    述:  <描述>
+ * 修 改 人:  RedName
+ * 修改时间:  2022/8/5
+ * 跟踪单号:  <跟踪单号>
+ * 修改单号:  <修改单号>
+ * 修改内容:  <修改内容>
+ */
+package com.superversion.rasa.exception;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.http.HttpStatus;
+
+/**
+ * <功能详细描述>
+ * 自定义异常
+ *
+ * @author ljt
+ * @version [版本号, 2022/8/5]
+ * @see [相关类/方法]
+ * @since [产品/模块版本]
+ */
+@Slf4j
+public class BusinessException extends RuntimeException {
+    /**
+     * 异常编码
+     */
+    private final Integer code;
+
+    /**
+     * 异常信息
+     */
+    private final String message;
+
+    public BusinessException(Throwable cause) {
+        super(cause);
+        this.code = HttpStatus.INTERNAL_SERVER_ERROR.value();
+        this.message = null;
+
+    }
+
+    public BusinessException(Throwable cause, String message) {
+        super(cause);
+        this.code = HttpStatus.INTERNAL_SERVER_ERROR.value();
+        this.message = message;
+
+    }
+
+    public BusinessException(String message) {
+        this.code = HttpStatus.INTERNAL_SERVER_ERROR.value();
+        this.message = message;
+    }
+
+    public BusinessException(String message, Integer code) {
+        this.message = message;
+        this.code = code;
+    }
+
+    public BusinessException(String message, Throwable e) {
+        super(message, e);
+        log.error(message, e);
+        this.code = HttpStatus.INTERNAL_SERVER_ERROR.value();
+        this.message = message;
+    }
+
+    @Override
+    public String getMessage() {
+        return message;
+    }
+
+    public Integer getCode() {
+        return code;
+    }
+}
diff --git a/virtual-patient-rasa/src/main/java/com/superversion/rasa/service/impl/RasaCmdServiceImpl.java b/virtual-patient-rasa/src/main/java/com/superversion/rasa/service/impl/RasaCmdServiceImpl.java
index a1830732..dd4a845c 100644
--- a/virtual-patient-rasa/src/main/java/com/superversion/rasa/service/impl/RasaCmdServiceImpl.java
+++ b/virtual-patient-rasa/src/main/java/com/superversion/rasa/service/impl/RasaCmdServiceImpl.java
@@ -55,7 +55,6 @@ public class RasaCmdServiceImpl implements RasaCmdService {
         cmds.add(argument.getFixedModelName());
 
         log.info("trainExec cmd : {}",StrUtil.join(" ",cmds));
-        System.out.println("trainExec cmd sout:"+StrUtil.join(" ",cmds));
         return String.join("\r\n",execCmd(cmds,s->false,90));
     }
 
@@ -69,7 +68,6 @@ public class RasaCmdServiceImpl implements RasaCmdService {
         List<String> cmds = ListUtil.toList(shellEnv, runShell,mPath,endpoints,argument.getPort());
 
         log.info("runExec cmd : {}",StrUtil.join(" ",cmds));
-        System.out.println("runExec cmd sout:"+StrUtil.join(" ",cmds));
         return String.join("\r\n",execCmd(cmds,s-> StrUtil.isNotBlank(s)&& s.contains("Rasa server is up and running"),90));
     }
 
@@ -88,13 +86,13 @@ public class RasaCmdServiceImpl implements RasaCmdService {
             BufferedReader bufferedReader = new BufferedReader(reader);
             List<String> outString = new ArrayList<>();
             String resultLines = bufferedReader.readLine();
-            while(resultLines != null) {
+            while( resultLines != null) {
                 resultLines = bufferedReader.readLine(); // 读取下一行
                 log.info("resultLines:{}",resultLines);
+                outString.add(resultLines);
                 if (endPredicate.test(resultLines)){
                     break;
                 }
-                outString.add(resultLines);
             }
             bufferedReader.close();
             return outString;
diff --git a/virtual-patient-rasa/src/main/resources/application.yml b/virtual-patient-rasa/src/main/resources/application.yml
index c86024bf..fd682266 100644
--- a/virtual-patient-rasa/src/main/resources/application.yml
+++ b/virtual-patient-rasa/src/main/resources/application.yml
@@ -1,5 +1,5 @@
 server:
-  port: 8081
+  port: 8082
   servlet:
     context-path: /