初始化dify调用功能

This commit is contained in:
zhangfan
2024-12-13 10:23:42 +08:00
parent b53fe2c24e
commit 91ef35ae9e
28 changed files with 1129 additions and 7 deletions

View File

@@ -13,10 +13,9 @@
<description>ai project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<java.encoding>UTF-8</java.encoding>
</properties>
<dependencies>
<!--API依赖-->
<dependency>
<groupId>com.volvo.aicenter</groupId>
@@ -30,22 +29,38 @@
</dependency>
<!--注册中心客户端-->
<dependency>
<!--<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
</dependency>-->
<!--配置中心客户端-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
@@ -100,6 +115,11 @@
<artifactId>pagehelper</artifactId>
<version>5.3.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
</dependencies>
<build>

View File

@@ -1,6 +1,7 @@
package com.volvo.ai.analytic.center;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
@@ -12,6 +13,7 @@ import com.volvo.common.feign.annotation.EnableVolvoFeignClients;
@SpringBootApplication(scanBasePackages = {"com.volvo"})
@EnableVolvoFeignClients
@EnableScheduling
@MapperScan({"com.volvo.ai.analytic.center.mapper"})
public class AiAnalyticCenterServiceApplication {
public static void main(String[] args) {

View File

@@ -0,0 +1,9 @@
package com.volvo.ai.analytic.center.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.volvo.ai.analytic.center.entity.DataMaskingRule;
import org.springframework.stereotype.Repository;
@Repository
public interface DataMaskingRuleMapper extends BaseMapper<DataMaskingRule> {
}

View File

@@ -0,0 +1,9 @@
package com.volvo.ai.analytic.center.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.volvo.ai.analytic.center.entity.DiffdefeatApprove;
import org.springframework.stereotype.Repository;
@Repository
public interface DiffdefeatApproveMapper extends BaseMapper<DiffdefeatApprove> {
}

View File

@@ -0,0 +1,9 @@
package com.volvo.ai.analytic.center.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.volvo.ai.analytic.center.entity.MqMessageRecord;
import org.springframework.stereotype.Repository;
@Repository
public interface MqMessageRecordMapper extends BaseMapper<MqMessageRecord> {
}

View File

@@ -0,0 +1,19 @@
package com.volvo.ai.analytic.center.rabbitMq;
import com.volvo.ai.analytic.center.constant.Constant;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;
@Slf4j
@Component
public class MessageListener {
//默认情况下,当使用@RabbitListener注解时消息确认模式通常是自动的AcknowledgeMode.AUTO可以在yaml文件中更改
// 消息一旦被消费者接收并处理完成即方法执行完成就会自动发送ack确认给RabbitMQ。
@RabbitListener(queues = Constant.rabbitMqFormQueue)
public void onMessage(String message) {
log.info("Received message: " + message);
}
}

View File

@@ -0,0 +1,18 @@
package com.volvo.ai.analytic.center.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.volvo.ai.analytic.center.dto.req.RunMaskingRuleInput;
import com.volvo.ai.analytic.center.entity.DataMaskingRule;
import java.util.List;
public interface DataMaskingRuleService extends IService<DataMaskingRule> {
//根据适用渠道applicationChannel获取数据脱敏规则List
List<DataMaskingRule> getDataMaskingRuleListByApplicationChannel(String applicationChannel);
//脱敏规则执行
String runMaskingRule(RunMaskingRuleInput input);
}

View File

@@ -0,0 +1,7 @@
package com.volvo.ai.analytic.center.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.volvo.ai.analytic.center.entity.DiffdefeatApprove;
public interface DiffdefeatApproveService extends IService<DiffdefeatApprove> {
}

View File

@@ -0,0 +1,7 @@
package com.volvo.ai.analytic.center.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.volvo.ai.analytic.center.entity.MqMessageRecord;
public interface MqMessageRecordService extends IService<MqMessageRecord> {
}

View File

@@ -0,0 +1,33 @@
package com.volvo.ai.analytic.center.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.volvo.ai.analytic.center.constant.YesOrNoConstants;
import com.volvo.ai.analytic.center.dto.req.RunMaskingRuleInput;
import com.volvo.ai.analytic.center.entity.DataMaskingRule;
import com.volvo.ai.analytic.center.mapper.DataMaskingRuleMapper;
import com.volvo.ai.analytic.center.service.DataMaskingRuleService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.List;
@Slf4j
@Service
public class DataMaskingRuleServiceImpl extends ServiceImpl<DataMaskingRuleMapper, DataMaskingRule> implements DataMaskingRuleService {
@Override
public List<DataMaskingRule> getDataMaskingRuleListByApplicationChannel(String applicationChannel) {
//根据适用渠道applicationChannel获取数据脱敏规则List
log.info("getDataMaskingRuleListByApplicationChannel applicationChannel:{}", applicationChannel);
List<DataMaskingRule> dataMaskingRuleList = this.lambdaQuery()
.eq(DataMaskingRule::getApplicationChannel, applicationChannel)
.eq(DataMaskingRule::getRuleStatus, YesOrNoConstants.YES)
.eq(DataMaskingRule::getIsDeleted, YesOrNoConstants.NO)
.list();
return dataMaskingRuleList;
}
@Override
public String runMaskingRule(RunMaskingRuleInput input) {
return "";
}
}

View File

@@ -0,0 +1,13 @@
package com.volvo.ai.analytic.center.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.volvo.ai.analytic.center.entity.DiffdefeatApprove;
import com.volvo.ai.analytic.center.mapper.DiffdefeatApproveMapper;
import com.volvo.ai.analytic.center.service.DiffdefeatApproveService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@Slf4j
@Service
public class DiffdefeatApproveServiceImpl extends ServiceImpl<DiffdefeatApproveMapper, DiffdefeatApprove> implements DiffdefeatApproveService {
}

View File

@@ -0,0 +1,13 @@
package com.volvo.ai.analytic.center.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.volvo.ai.analytic.center.entity.MqMessageRecord;
import com.volvo.ai.analytic.center.mapper.MqMessageRecordMapper;
import com.volvo.ai.analytic.center.service.MqMessageRecordService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@Slf4j
@Service
public class MqMessageRecordServiceImpl extends ServiceImpl<MqMessageRecordMapper, MqMessageRecord> implements MqMessageRecordService {
}

View File

@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds">
<!--为了防止进程退出时,内存中的数据丢失,请加上此选项-->
<shutdownHook class="ch.qos.logback.core.hook.DelayingShutdownHook"/>
<property resource="bootstrap.yml"/>
<springProperty scope="context" name="appName" source="spring.application.name" defaultValue="app-default-center"/>
<!-- 文件输出格式 -->
<property name="PATTERN"
value="%-12(%d{yyyy-MM-dd HH:mm:ss.SSS}) | [${appName}] | gtraceid: %X{apm-gtraceid} | traceid: %X{apm-traceid} | spanId: %X{apm-spanid} | [%level] | [%thread] %c#%L | %msg%n"/>
<!-- Console output -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoder defaults to ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
<encoder>
<pattern>%red(%d{yyyy-MM-dd HH:mm:ss.SSS}) | [${appName}] | gtraceid: %X{apm-gtraceid} | traceid: %X{apm-traceid} | spanId: %X{apm-spanid} | %-5level | %blue(${PID:-}) --- [%t] %logger{50} %L- %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="STDOUT"/>
</root>
</configuration>

View File

@@ -0,0 +1,71 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds">
<property resource="bootstrap.yml" />
<springProperty scope="context" name="appName" source="spring.application.name" defaultValue="2c-community-service"/>
<!--统一引入apollo中Logback Appender的参数配置-->
<springProperty scope="context" name="endPoint" source="spring.log-back.endpoint"/>
<springProperty scope="context" name="accessKeyId" source="spring.log-back.accessKeyId"/>
<springProperty scope="context" name="accessKeySecret" source="spring.log-back.accessKeySecret"/>
<springProperty scope="context" name="project" source="spring.log-back.project"/>
<springProperty scope="context" name="logStore" source="spring.log-back.logStore"/>
<!-- 文件输出格式 -->
<property name="PATTERN" value="%-12(%d{yyyy-MM-dd HH:mm:ss.SSS}) [${appName}] [%tid] [%level] [%thread] %c#%L | %msg%n" />
<!-- Console output -->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoder defaults to ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
<Pattern>${PATTERN}</Pattern>
</layout>
</encoder>
</appender>
<!--阿里云日志服务配置 测试环境-->
<!--为了防止进程退出时,内存中的数据丢失,请加上此选项-->
<shutdownHook class="ch.qos.logback.core.hook.DelayingShutdownHook"/>
<appender name="ALIYUN_DEV" class="com.aliyun.openservices.log.logback.LoghubAppender">
<!--必选项-->
<!-- 账号及网络配置 -->
<endpoint>${endPoint}</endpoint>
<accessKeyId>${accessKeyId}</accessKeyId>
<accessKeySecret>${accessKeySecret}</accessKeySecret>
<!-- sls 项目配置 -->
<project>${project}</project>
<logStore>${logStore}</logStore>
<!--必选项 (end)-->
<!-- 可选项 -->
<topic>${appName}-log</topic>
<!-- 可选项 详见 '参数说明'-->
<totalSizeInBytes>104857600</totalSizeInBytes>
<maxBlockMs>0</maxBlockMs>
<ioThreadCount>8</ioThreadCount>
<batchSizeThresholdInBytes>524288</batchSizeThresholdInBytes>
<batchCountThreshold>4096</batchCountThreshold>
<lingerMs>2000</lingerMs>
<retries>10</retries>
<baseRetryBackoffMs>100</baseRetryBackoffMs>
<maxRetryBackoffMs>50000</maxRetryBackoffMs>
<!-- 可选项 通过配置 encoder 的 pattern 自定义 log 的格式 -->
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
<Pattern>${PATTERN}</Pattern>
</layout>
</encoder>
<!-- 可选项 设置 time 字段呈现的格式 -->
<timeFormat>yyyy-MM-dd'T'HH:mmZ</timeFormat>
<!-- 可选项 设置 time 字段呈现的时区 -->
<timeZone>Asia/Shanghai</timeZone>
</appender>
<root level="INFO">
<appender-ref ref="CONSOLE" />
<appender-ref ref="ALIYUN_DEV" />
</root>
</configuration>