wangzhinan 10 bulan lalu
induk
melakukan
e97311fb69

+ 30 - 0
business/base-service/pom.xml

@ -15,6 +15,24 @@
    <version>${project.parent.version}</version>
    <dependencies>
        <!-- https://mvnrepository.com/artifact/com.alibaba/dashscope-sdk-java -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>dashscope-sdk-java</artifactId>
            <version>2.8.2</version>
        </dependency>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.8.9</version> <!-- 请使用最新的稳定版本 -->
        </dependency>
        <!--okhttp3 依赖-->
        <dependency>
            <groupId>com.squareup.okhttp3</groupId>
            <artifactId>okhttp</artifactId>
            <version>4.9.3</version>
        </dependency>
        <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
@ -181,6 +199,12 @@
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>${version.lombok}</version>
            <exclusions>
                <exclusion>
                    <groupId>com.google.code.gson</groupId>
                    <artifactId>gson</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
@ -219,6 +243,12 @@
            <groupId>cn.jpush.api</groupId>
            <artifactId>jpush-client</artifactId>
            <version>${version.jpush-client}</version>
            <exclusions>
                <exclusion>
                    <groupId>com.google.code.gson</groupId>
                    <artifactId>gson</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

+ 21 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/PrescriptionService.java

@ -13,6 +13,9 @@ import cn.jpush.api.push.model.audience.AudienceTarget;
import cn.jpush.api.push.model.notification.AndroidNotification;
import cn.jpush.api.push.model.notification.IosNotification;
import cn.jpush.api.push.model.notification.Notification;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.fastjson.JSON;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.jw.dict.dao.*;
@ -53,6 +56,7 @@ import com.yihu.jw.entity.hospital.message.SystemMessageDO;
import com.yihu.jw.entity.hospital.prescription.*;
import com.yihu.jw.entity.order.BusinessOrderDO;
import com.yihu.jw.entity.third.ylzinfo.OauthYlzConfigDO;
import com.yihu.jw.exception.ApiException;
import com.yihu.jw.file_upload.FileUploadService;
import com.yihu.jw.healthCare.service.HealthCareNewService;
import com.yihu.jw.healthCare.service.HealthCareService;
@ -109,6 +113,7 @@ import com.yihu.jw.util.wechat.WeixinMessagePushUtils;
import com.yihu.jw.utils.*;
import com.yihu.jw.utils.Pkis.PKIService_PortType;
import com.yihu.jw.utils.Pkis.PKIService_ServiceLocator;
import com.yihu.jw.utils.assistantUtil.AliyunApi;
import com.yihu.jw.utils.hibernate.HibenateUtils;
import com.yihu.jw.utils.sfutils.HttpClientUtils;
import com.yihu.jw.wechat.dao.BasePatientWechatDao;
@ -124,6 +129,7 @@ import com.ylzinfo.ehc.EhcHandler;
import com.ylzinfo.ehc.common.utils.DateUtils;
import com.ylzinfo.ehc.trans.TransRequest;
import com.ylzinfo.ehc.trans.TransResponse;
import io.reactivex.Flowable;
import jxl.format.VerticalAlignment;
import jxl.write.*;
import net.sf.json.JSONArray;
@ -16003,4 +16009,19 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
        return addressInfoDOS;
    }
    //通义千问api对接
    public com.alibaba.fastjson.JSONObject aIassistant(String content) throws Exception {
        com.alibaba.fastjson.JSONObject object = new com.alibaba.fastjson.JSONObject();
        try{
            GenerationResult result = AliyunApi.callWithMessage(content);
            object.put("result",result);
        }catch (ApiException | NoApiKeyException | InputRequiredException e) {
            // 使用日志框架记录异常信息
            System.err.println("An error occurred while calling the generation service: " + e.getMessage());
        }
        return object;
    }
}

+ 45 - 0
business/base-service/src/main/java/com/yihu/jw/utils/assistantUtil/AliyunApi.java

@ -0,0 +1,45 @@
package com.yihu.jw.utils.assistantUtil;
import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.aigc.generation.models.QwenParam;
import com.alibaba.dashscope.common.Message;
import com.alibaba.dashscope.common.MessageManager;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.utils.Constants;
import com.yihu.jw.exception.ApiException;
public class AliyunApi {
    public static GenerationResult callWithMessage(String content)
      throws NoApiKeyException, ApiException, InputRequiredException {
        Generation gen = new Generation();
        Constants.apiKey = "sk-145c771b72714ce58b7e5ef347c35e1d";//这里填写自己申请的APIKEY
        MessageManager msgManager = new MessageManager(10);
        Message systemMsg =
                Message.builder().role(Role.SYSTEM.getValue()).content("You are a helpful assistant.").build();
        Message userMsg = Message.builder().role(Role.USER.getValue()).content(content).build();//这里填写对话内容
        msgManager.add(systemMsg);
        msgManager.add(userMsg);
        QwenParam param =
                QwenParam.builder().model(Generation.Models.QWEN_TURBO).messages(msgManager.get())
                        .resultFormat(QwenParam.ResultFormat.MESSAGE)
                        .topP(0.8)
                        .enableSearch(true)
                        .build();
        GenerationResult result = gen.call(param);
        System.out.println(result);
        return result;
    }
    public static void main(String[] args){
        try {
            callWithMessage("如何做西红柿鸡蛋?");
        } catch (ApiException | NoApiKeyException | InputRequiredException e) {
            System.out.println(e.getMessage());
        }
        System.exit(0);
    }
}

+ 11 - 0
svr/svr-internet-hospital/pom.xml

@ -50,9 +50,15 @@
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.8.9</version> <!-- 请使用最新的稳定版本 -->
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <!--注释掉就不会读取git的配置,只会读取yml中的配置-->
        <dependency>
@ -216,6 +222,10 @@
                    <groupId>xalan</groupId>
                    <artifactId>xalan</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.google.code.gson</groupId>
                    <artifactId>gson</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!--<dependency>-->
@ -260,6 +270,7 @@
            <groupId>com.yihu.jw</groupId>
            <artifactId>es-service</artifactId>
            <version>${version.wlyy-common}</version>
        </dependency>

+ 10 - 0
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/prescription/PrescriptionEndpoint.java

@ -3956,5 +3956,15 @@ public class PrescriptionEndpoint extends EnvelopRestEndpoint {
                                      @RequestParam(value = "size",required = false)Integer size) throws Exception {
        return success("请求成功",dsyyPrescriptionService.selectInspectReportList(idcard,cardNo,startTime,endTime,reportId,page,size));
    }
    @GetMapping("/aIassistant")
    @ApiOperation(value = "ai助手", notes = "ai助手")
    public Envelop aIassistant(
            @ApiParam(name = "content", value = "输入文本", required = false)
            @RequestParam(value = "content",required = false)String  content) throws Exception {
            return success("操作成功", prescriptionService.aIassistant(content));
    }
}