From 2166c1a14f9629aa49a5f3bb849ce878df4c4892 Mon Sep 17 00:00:00 2001 From: yangbin <yangbin@qq.com> Date: 星期三, 28 八月 2024 17:23:25 +0800 Subject: [PATCH] 2 --- lxzn-module-ai/src/main/java/org/jeecg/modules/ai/entity/LanguageModel.java | 61 ++++++++++++ lxzn-module-ai/src/main/java/org/jeecg/modules/ai/service/imp/WebSocketAiService.java | 4 lxzn-module-system/lxzn-system-start/src/main/resources/application-dev.yml | 6 lxzn-module-ai/src/main/java/org/jeecg/modules/ai/service/ILanguageModelService.java | 35 +++++++ lxzn-module-ai/src/main/java/org/jeecg/modules/ai/mapper/xml/LanguageModelMapper.xml | 5 + lxzn-module-system/lxzn-system-start/src/main/java/org/jeecg/JeecgSystemApplication.java | 2 lxzn-module-ai/src/main/java/org/jeecg/modules/ai/service/imp/LanguageModelServiceImpl.java | 92 ++++++++++++++++++ lxzn-module-ai/src/main/java/org/jeecg/modules/ai/mapper/LanguageModelMapper.java | 11 ++ lxzn-module-ai/src/main/java/org/jeecg/modules/ai/controller/LanguageModelController.java | 78 +++++++++++++++ 9 files changed, 289 insertions(+), 5 deletions(-) diff --git a/lxzn-module-ai/src/main/java/org/jeecg/modules/ai/controller/LanguageModelController.java b/lxzn-module-ai/src/main/java/org/jeecg/modules/ai/controller/LanguageModelController.java new file mode 100644 index 0000000..c2f6fdf --- /dev/null +++ b/lxzn-module-ai/src/main/java/org/jeecg/modules/ai/controller/LanguageModelController.java @@ -0,0 +1,78 @@ +package org.jeecg.modules.ai.controller; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.aspect.annotation.AutoLog; +import org.jeecg.common.system.base.controller.JeecgController; +import org.jeecg.modules.ai.entity.LanguageModel; +import org.jeecg.modules.ai.service.ILanguageModelService; +import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +/** + * @author clown + * * @date 2024/8/19 + */ +@Slf4j +@Api(tags = "闂瓟") +@RestController +@RequestMapping("/ai/languageModel") +public class LanguageModelController extends JeecgController<LanguageModel, ILanguageModelService> { + + /** + * 鏂板 + * + * @param languageModel + * @return + */ + @AutoLog("闂瓟-鏂板") + @ApiOperation(value = "闂瓟-鏂板", notes = "闂瓟-鏂板") + @PostMapping("/addLanguage") + public Result<?> addLanguageModel(@RequestBody LanguageModel languageModel) { + Boolean flag = super.service.addLanguageModel(languageModel); + return flag ? Result.OK("鏂板鎴愬姛") : Result.error("鏂板澶辫触"); + } + + @AutoLog("闂瓟-浼氳瘽鍒楄〃") + @ApiOperation(value = "闂瓟-浼氳瘽鍒楄〃", notes = "闂瓟-浼氳瘽鍒楄〃") + @GetMapping("/languageTitles") + public Result<?> languageModelTitles() { + List<LanguageModel> languageModels = super.service.findListAiTitles(); + return Result.OK(languageModels); + } + + + + @AutoLog("闂瓟-鍒楄〃") + @ApiOperation(value = "闂瓟-鍒楄〃", notes = "闂瓟-鍒楄〃") + @GetMapping("/languageProblems") + public Result<?> languageProblems(String id) { + List<LanguageModel> models = super.service.languageProblems(id); + return Result.OK(models); + } + @AutoLog("闂瓟-鍒犻櫎") + @ApiOperation(value = "闂瓟-鍒犻櫎", notes = "闂瓟-鍒犻櫎") + @RequestMapping(value = "/deleteLanguage", method = RequestMethod.DELETE) + public Result deleteLanguage(@RequestParam("id") String id) { + if (StringUtils.isNotBlank(id)) { + List<LanguageModel> models = super.service.languageProblems(id); + if (models == null || models.isEmpty()){ + super.service.removeById(id); + } + List<String> strings = new ArrayList<>(); + strings.add(id); + for (LanguageModel model : models) { + strings.add(model.getId()); + } + super.service.removeBatchByIds(strings); + } + return Result.ok("鍒犻櫎鎴愬姛"); + } + +} diff --git a/lxzn-module-ai/src/main/java/org/jeecg/modules/ai/entity/LanguageModel.java b/lxzn-module-ai/src/main/java/org/jeecg/modules/ai/entity/LanguageModel.java new file mode 100644 index 0000000..bd818fa --- /dev/null +++ b/lxzn-module-ai/src/main/java/org/jeecg/modules/ai/entity/LanguageModel.java @@ -0,0 +1,61 @@ +package org.jeecg.modules.ai.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + +/** + * @author clown + * * @date 2024/8/19 + */ +@Data +@TableName("ai_language_model") +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +public class LanguageModel implements Serializable { + + private static final long serialVersionUID = 1519876512924700514L; + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "涓婚敭") + private String id; + + private String aiId; + + private String parentId; + /*闂*/ + private String problem; + /*鍥炵瓟*/ + private String answer; + /*绫诲瀷 1 鍒楄〃 2 闂瓟 3 鍥炵瓟*/ + private Integer aiType; + + + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty("鍒涘缓鏃堕棿") + private Date createTime; + @Excel(name = "鍒涘缓浜�",width = 15) + @ApiModelProperty("鍒涘缓浜�") + private String createBy; + + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty("鏇存柊鏃堕棿") + private Date updateTime; + @Excel(name = "鏇存柊浜�",width = 15) + @ApiModelProperty("鏇存柊浜�") + private String updateBy; + @Excel(name = "鍒犻櫎鐘舵��", width = 15, dicCode = "del_flag") + @ApiModelProperty(value = "鍒犻櫎鐘舵�侊紙0锛屾甯革紝1宸插垹闄わ級") + private String delFlag; +} diff --git a/lxzn-module-ai/src/main/java/org/jeecg/modules/ai/mapper/LanguageModelMapper.java b/lxzn-module-ai/src/main/java/org/jeecg/modules/ai/mapper/LanguageModelMapper.java new file mode 100644 index 0000000..34095f6 --- /dev/null +++ b/lxzn-module-ai/src/main/java/org/jeecg/modules/ai/mapper/LanguageModelMapper.java @@ -0,0 +1,11 @@ +package org.jeecg.modules.ai.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.ai.entity.LanguageModel; + +/** + * @author clown + * * @date 2024/8/19 + */ +public interface LanguageModelMapper extends BaseMapper<LanguageModel> { +} diff --git a/lxzn-module-ai/src/main/java/org/jeecg/modules/ai/mapper/xml/LanguageModelMapper.xml b/lxzn-module-ai/src/main/java/org/jeecg/modules/ai/mapper/xml/LanguageModelMapper.xml new file mode 100644 index 0000000..e152e28 --- /dev/null +++ b/lxzn-module-ai/src/main/java/org/jeecg/modules/ai/mapper/xml/LanguageModelMapper.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="org.jeecg.modules.ai.mapper.LanguageModelMapper"> + +</mapper> \ No newline at end of file diff --git a/lxzn-module-ai/src/main/java/org/jeecg/modules/ai/service/ILanguageModelService.java b/lxzn-module-ai/src/main/java/org/jeecg/modules/ai/service/ILanguageModelService.java new file mode 100644 index 0000000..04ca292 --- /dev/null +++ b/lxzn-module-ai/src/main/java/org/jeecg/modules/ai/service/ILanguageModelService.java @@ -0,0 +1,35 @@ +package org.jeecg.modules.ai.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.ai.entity.LanguageModel; + +import java.util.List; + +/** + * @author clown + * * @date 2024/8/19 + */ +public interface ILanguageModelService extends IService<LanguageModel> { + + boolean addLanguageModel(LanguageModel languageModel); + + /** + * 鏌ヨ鍒楄〃鏁版嵁 + * @param aiType + * @param aiId + * @return + */ + LanguageModel selectParentId(Integer aiType,String aiId); + + /** + * + * @return + */ + List<LanguageModel> findListAiTitles(); + + /** + * + * @return + */ + List<LanguageModel> languageProblems(String id); +} diff --git a/lxzn-module-ai/src/main/java/org/jeecg/modules/ai/service/imp/LanguageModelServiceImpl.java b/lxzn-module-ai/src/main/java/org/jeecg/modules/ai/service/imp/LanguageModelServiceImpl.java new file mode 100644 index 0000000..b708af3 --- /dev/null +++ b/lxzn-module-ai/src/main/java/org/jeecg/modules/ai/service/imp/LanguageModelServiceImpl.java @@ -0,0 +1,92 @@ +package org.jeecg.modules.ai.service.imp; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.apache.shiro.SecurityUtils; +import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.modules.ai.entity.LanguageModel; +import org.jeecg.modules.ai.mapper.LanguageModelMapper; +import org.jeecg.modules.ai.service.ILanguageModelService; +import org.jeecg.modules.system.util.SecurityUtil; +import org.jeecg.modules.utils.BeanMapper; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @author clown + * * @date 2024/8/19 + */ +@Service +public class LanguageModelServiceImpl extends ServiceImpl<LanguageModelMapper,LanguageModel> implements ILanguageModelService { + + @Override + public boolean addLanguageModel(LanguageModel languageModel) { + if (languageModel == null || languageModel.getAiType() == null) { + return false; + } + LanguageModel model = new LanguageModel(); + if (languageModel.getAiType() == 1) { + boolean one =super.save(languageModel); + if (one) { + model.setProblem(languageModel.getProblem()); + model.setParentId(languageModel.getId()); + model.setAiType(2); + super.save(model); + return true; + } + } + else if (languageModel.getAiType() == 2 || languageModel.getAiType() == 3) { + //鏌ヨ鐖剁被ID + super.save(languageModel); + return true; + } + return false; + } + + @Override + public LanguageModel selectParentId(Integer aiType, String aiId) { + LanguageModel info = new LanguageModel(); + List<LanguageModel> list = super.list(new LambdaQueryWrapper<LanguageModel>(). + eq(LanguageModel::getAiType, aiType). + eq(LanguageModel::getAiId, aiId). + orderByDesc(LanguageModel::getCreateTime) + ); + if (list == null || list.isEmpty()) { + return null; + } + BeanMapper.copy(list.get(0),info); + return info; + } + + @Override + public List<LanguageModel> findListAiTitles() { + LoginUser user = (LoginUser)SecurityUtils.getSubject().getPrincipal(); + List<LanguageModel> list = super.list(new LambdaQueryWrapper<LanguageModel>(). + eq(LanguageModel::getAiType, 1). + eq(LanguageModel::getCreateBy, user.getUsername()). + orderByDesc(LanguageModel::getCreateTime) + ); + if (list == null || list.isEmpty()) { + return null; + } + return list; + } + + @Override + public List<LanguageModel> languageProblems(String id) { + LoginUser user = (LoginUser)SecurityUtils.getSubject().getPrincipal(); + LambdaQueryWrapper<LanguageModel> wrapperL = new LambdaQueryWrapper<>(); + wrapperL.eq(LanguageModel::getCreateBy, user.getUsername()); + wrapperL.eq(LanguageModel::getParentId, id); + wrapperL.and((wrapper)->wrapper.eq(LanguageModel::getAiType, 2). + or(). + eq(LanguageModel::getAiType, 3)); + wrapperL.orderByAsc(LanguageModel::getCreateTime); + List<LanguageModel> list = super.list(wrapperL); + if (list == null || list.isEmpty()) { + return null; + } + return list; + } +} diff --git a/lxzn-module-ai/src/main/java/org/jeecg/modules/ai/service/imp/WebSocketAiService.java b/lxzn-module-ai/src/main/java/org/jeecg/modules/ai/service/imp/WebSocketAiService.java index eb287ea..f9629a9 100644 --- a/lxzn-module-ai/src/main/java/org/jeecg/modules/ai/service/imp/WebSocketAiService.java +++ b/lxzn-module-ai/src/main/java/org/jeecg/modules/ai/service/imp/WebSocketAiService.java @@ -15,12 +15,12 @@ @Override - @Scheduled(cron = "0/10 * * * * ?") + /*@Scheduled(cron = "0/10 * * * * ?")*/ public void selectChatIA() { String name = "{\"id\":\"683a65fd-8feb-4446-ad32-714c4785f667\",\"messages\":[{\"role\":\"user\",\"content\":\"缁欐垜璁蹭釜鏁呬簨锛焅"}],\"stream\":true,\"max_tokens\":500}"; // JSON鏁版嵁 String url = "https://836u458t54.vicp.fun/chat/test_chat"; String aiPost = AiTestUils.sendJsonToHttpsPost(url, name); - System.out.println(aiPost); + /*System.out.println(aiPost);*/ for (String s : AiWebSocket.getSessionPoolAi().keySet()) { AiWebSocket.pushMessage(s,aiPost); } diff --git a/lxzn-module-system/lxzn-system-start/src/main/java/org/jeecg/JeecgSystemApplication.java b/lxzn-module-system/lxzn-system-start/src/main/java/org/jeecg/JeecgSystemApplication.java index 633249d..237ed0b 100644 --- a/lxzn-module-system/lxzn-system-start/src/main/java/org/jeecg/JeecgSystemApplication.java +++ b/lxzn-module-system/lxzn-system-start/src/main/java/org/jeecg/JeecgSystemApplication.java @@ -8,6 +8,7 @@ import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.core.env.Environment; +import org.springframework.scheduling.annotation.EnableScheduling; import java.net.InetAddress; import java.net.UnknownHostException; @@ -19,6 +20,7 @@ @Slf4j @SpringBootApplication //@EnableAutoConfiguration(exclude={MongoAutoConfiguration.class}) +@EnableScheduling public class JeecgSystemApplication extends SpringBootServletInitializer { @Override diff --git a/lxzn-module-system/lxzn-system-start/src/main/resources/application-dev.yml b/lxzn-module-system/lxzn-system-start/src/main/resources/application-dev.yml index aa1777e..6759d7e 100644 --- a/lxzn-module-system/lxzn-system-start/src/main/resources/application-dev.yml +++ b/lxzn-module-system/lxzn-system-start/src/main/resources/application-dev.yml @@ -103,9 +103,9 @@ connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000 datasource: master: - url: jdbc:postgresql://192.168.253.133:5432/ai_service?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai + url: jdbc:postgresql://192.168.3.184:5432/ai_service_weiyi?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai username: postgres - password: ABC@13579 + password: 123456 driverClassName: org.postgresql.Driver #redis 閰嶇疆 redis: @@ -147,7 +147,7 @@ pc: http://localhost:3100 app: http://localhost:8051 path: - #鏂囦欢涓婁紶鏍圭洰褰� 璁剧疆 + #鏂囦欢涓婁紶鏍圭洰褰� 璁剧疆 /home/weiyi/anaconda3/envs/aiservice upload: C://opt//upFiles #webapp鏂囦欢璺緞 webapp: C://opt//upFiles -- Gitblit v1.9.3