Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions app-builder/jane/plugins/aipp-plugin/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,10 @@
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-api</artifactId>
</dependency>
<dependency>
<groupId>com.opencsv</groupId>
<artifactId>opencsv</artifactId>
</dependency>
<dependency>
<groupId>modelengine.jade.service</groupId>
<artifactId>aipp-prompt-builder-service</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,8 @@ List<QueryChatRsp> selectChatList(@Param("requestParam") QueryChatRequest reques
* @param chatId 会话ID
* @return 会话记录数目
*/
long getChatListCount(@Param("requestParam") QueryChatRequest request, @Param("chatId") String chatId, @Param("createBy") String createBy);
long getChatListCount(@Param("requestParam") QueryChatRequest request, @Param("chatId") String chatId,
@Param("createBy") String createBy);

/**
* 查询会话
Expand Down Expand Up @@ -115,6 +116,7 @@ List<ChatDto> selectChat(@Param("chatId") String chatId, @Param("offset") Intege

/**
* 根据instance id列表批量查询对话消息
*
* @param instanceIds instance id列表
* @return 对应会话信息
*/
Expand Down Expand Up @@ -178,4 +180,43 @@ List<ChatDto> selectChat(@Param("chatId") String chatId, @Param("offset") Intege
*/
List<QueryChatRsp> selectChatByCondition(@Param("condition") Map<String, String> condition,
@Param("requestParam") QueryChatInfoRequest queryChatInfoRequest);

/**
* 获取超期的对话唯一标识。
*
* @param expiredDays 表示超期时长的 {@code int}。
* @param limit 表示查询数量的 {@code int}。
* @return 表示对话唯一标识列表的 {@link List}{@code <}{@link String}{@code >}。
*/
List<String> getExpiredChatIds(int expiredDays, int limit);

/**
* 根据对话标识列表强制删除对话。
*
* @param chatIds 表示对话唯一标识列表的 {@link List}{@code <}{@link String}{@code >}。
*/
void forceDeleteChat(List<String> chatIds);

/**
* 根据对话标识列表强制删除对话和任务实例关系。
*
* @param chatIds 表示对话唯一标识列表的 {@link List}{@code <}{@link String}{@code >}。
*/
void deleteWideRelationshipByChatIds(List<String> chatIds);

/**
* 根据对话唯一标识列表批量查询会话记录实体。
*
* @param chatIds 表示对话唯一标识列表的 {@link List}{@code <}{@link String}{@code >}。
* @return 表示会话记录实体列表的 {@link List}{@code <}{@link ChatInfo}{@code >}。
*/
List<ChatInfo> selectByChatIds(@Param("chatIds") List<String> chatIds);

/**
* 根据对话唯一标识列表批量查询会话记录和任务实例的关系。
*
* @param chatIds 表示对话唯一标识列表的 {@link List}{@code <}{@link String}{@code >}。
* @return 表示会话记录和任务实例的关系的 {@link List}{@code <}{@link ChatAndInstanceMap}{@code >}。
*/
List<ChatAndInstanceMap> selectTaskInstanceRelationsByChatIds(@Param("chatIds") List<String> chatIds);
}
Original file line number Diff line number Diff line change
Expand Up @@ -195,4 +195,28 @@ List<String> selectRecentInstanceIdByAippIds(List<String> aippIds, String aippTy
* @param logIds 表示指定的历史记录 id 的 {@link List}{@code <}{@link Long}{@code >}。
*/
void deleteInstanceLogs(@Param("logIds") List<Long> logIds);

/**
* 获取超期的调试对话记录唯一标识列表。
*
* @param expiredDays 表示超期时间的 {@code int}。
* @param limit 表示查询条数的 {@code int}。
* @return 表示历史会话记录的id列表的 {@link List}{@code <}{@link Long}{@code >}。
*/
List<Long> getExpireInstanceLogIds(String aippType, int expiredDays, int limit);

/**
* 根据实例唯一标识列表强制删除会话记录。
*
* @param logIds 表示会话实例id列表的 {@link List}{@code <}{@link Long}{@code >}。
*/
void forceDeleteInstanceLogsByIds(List<Long> logIds);

/**
* 根据日志唯一标识列表查询会话历史记录。
*
* @param logIds 标识日志唯一标识列表的 {@link List}{@code <}{@link Long}{@code >}。
* @return 表示实例历史记录列表的 {@link List}{@code <}{@link AippInstLog}{@code >}。
*/
List<AippInstLog> selectByLogIds(@Param("logIds") List<Long> logIds);
}
Original file line number Diff line number Diff line change
Expand Up @@ -31,4 +31,20 @@ public interface AppBuilderRuntimeInfoMapper {
* @param appBuilderRuntimeInfoPO {@link AppBuilderRuntimeInfoPo} 对象.
*/
void insertOne(AppBuilderRuntimeInfoPo appBuilderRuntimeInfoPO);

/**
* 获取超期的运行时信息唯一标识列表。
*
* @param expiredDays 表示超期时间的 {@code int}。
* @param limit 表示查询条数的 {@code int}。
* @return 表示运行时信息唯一标识列表的 {@link List}{@code <}{@link Long}{@code >}。
*/
List<Long> getExpiredRuntimeInfos(int expiredDays, int limit);

/**
* 根据运行时信息唯一标识列表强制删除会话记录。
*
* @param runtimeInfoIds 表示运行时信息唯一标识列表的 {@link List}{@code <}{@link Long}{@code >}。
*/
void deleteRuntimeInfos(List<Long> runtimeInfoIds);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) 2025 Huawei Technologies Co., Ltd. All rights reserved.
* This file is a part of the ModelEngine Project.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/

package modelengine.fit.jober.aipp.repository;

import modelengine.fit.jober.aipp.entity.ChatAndInstanceMap;
import modelengine.fit.jober.aipp.entity.ChatInfo;

import java.util.List;

/**
* 应用对话的存储仓库。
*
* @author 杨祥宇
* @since 2025-04-09
*/
public interface AippChatRepository {
/**
* 获取超期的对话唯一标识列表。
*
* @param expiredDays 表示超期时长的 {@code int}。
* @param limit 表示查询数量的 {@code int}。
* @return 表示对话唯一标识列表的 {@link List}{@code <}{@link String}{@code >}。
*/
List<String> getExpiredChatIds(int expiredDays, int limit);

/**
* 根据对话标识列表强制删除对话。
*
* @param chatIds 表示对话唯一标识列表的 {@link List}{@code <}{@link String}{@code >}。
*/
void forceDeleteChat(List<String> chatIds);

/**
* 根据对话唯一标识列表批量查询会话记录实体。
*
* @param chatIds 表示对话唯一标识列表的 {@link List}{@code <}{@link String}{@code >}。
* @return 表示会话记录实体列表的 {@link List}{@code <}{@link ChatInfo}{@code >}。
*/
List<ChatInfo> selectByChatIds(List<String> chatIds);

/**
* 根据对话唯一标识列表批量查询会话记录和任务实例的关系。
*
* @param chatIds 表示对话唯一标识列表的 {@link List}{@code <}{@link String}{@code >}。
* @return 表示会话记录和任务实例的关系的 {@link List}{@code <}{@link ChatAndInstanceMap}{@code >}。
*/
List<ChatAndInstanceMap> selectTaskInstanceRelationsByChatIds(List<String> chatIds);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) 2025 Huawei Technologies Co., Ltd. All rights reserved.
* This file is a part of the ModelEngine Project.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/

package modelengine.fit.jober.aipp.repository;

import modelengine.fit.jober.aipp.entity.AippInstLog;

import java.util.List;

/**
* 应用实例历史记录的存储仓库。
*
* @author 杨祥宇
* @since 2025-04-09
*/
public interface AippInstanceLogRepository {
/**
* 获取调试类型的应用过期历史记录。
*
* @param expiredDays 表示超期天数的 {@code int}。
* @param limit 表示查询条数的 {@code int}。
* @return 表示超期历史记录id的 {@link List}{@code <}{@link Long}{@code >}。
*/
List<Long> getExpireInstanceLogIds(String aippType, int expiredDays, int limit);

/**
* 根据日志唯一标识列表强制删除历史记录。
*
* @param logIds 表示历史记录的唯一标识列表的 {@link List}{@code <}{@link Long}{@code >}。
*/
void forceDeleteInstanceLogs(List<Long> logIds);

/**
* 根据日志唯一标识列表查询会话历史记录
*
* @param logIds 标识日志唯一标识列表的 {@link List}{@code <}{@link Long}{@code >}。
* @return 表示实例历史记录列表的 {@link List}{@code <}{@link AippInstLog}{@code >}。
*/
List<AippInstLog> selectByLogIds(List<Long> logIds);
}
Original file line number Diff line number Diff line change
Expand Up @@ -31,4 +31,20 @@ public interface AppBuilderRuntimeInfoRepository {
* @param info {@link AppBuilderRuntimeInfo} 运行时信息.
*/
void insertOne(AppBuilderRuntimeInfo info);

/**
* 获取运行时信息过期历史记录。
*
* @param expiredDays 表示超期天数的 {@code int}。
* @param limit 表示查询条数的 {@code int}。
* @return 表示超期运行时信息id的 {@link List}{@code <}{@link Long}{@code >}。
*/
List<Long> getExpiredRuntimeInfos(int expiredDays, int limit);

/**
* 根据运行时信息id列表强制删除历史记录。
*
* @param runtimeInfoIds 表示历史记录的id列表的 {@link List}{@code <}{@link Long}{@code >}。
*/
void deleteRuntimeInfos(List<Long> runtimeInfoIds);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) 2025 Huawei Technologies Co., Ltd. All rights reserved.
* This file is a part of the ModelEngine Project.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/

package modelengine.fit.jober.aipp.repository.impl;

import modelengine.fit.jober.aipp.entity.ChatAndInstanceMap;
import modelengine.fit.jober.aipp.entity.ChatInfo;
import modelengine.fit.jober.aipp.mapper.AippChatMapper;
import modelengine.fit.jober.aipp.repository.AippChatRepository;
import modelengine.fitframework.annotation.Component;
import modelengine.fitframework.transaction.Transactional;
import modelengine.fitframework.util.CollectionUtils;

import java.util.ArrayList;
import java.util.List;

/**
* {@link AippChatRepository} 对应实现类。
*
* @author 杨祥宇
* @since 2025-04-09
*/
@Component
public class AippChatRepositoryImpl implements AippChatRepository {
private final AippChatMapper aippChatMapper;

/**
* 表示用对话持久层构造 {@link AippChatRepositoryImpl} 的实例。
*
* @param aippChatMapper 表示对话持久层实例的 {@link AippChatMapper}。
*/
public AippChatRepositoryImpl(AippChatMapper aippChatMapper) {this.aippChatMapper = aippChatMapper;}

@Override
public List<String> getExpiredChatIds(int expiredDays, int limit) {
return this.aippChatMapper.getExpiredChatIds(expiredDays, limit);
}

@Override
@Transactional
public void forceDeleteChat(List<String> chatIds) {
if (CollectionUtils.isEmpty(chatIds)) {
return;
}
this.aippChatMapper.forceDeleteChat(chatIds);
this.aippChatMapper.deleteWideRelationshipByChatIds(chatIds);
}

@Override
public List<ChatInfo> selectByChatIds(List<String> chatIds) {
if (CollectionUtils.isEmpty(chatIds)) {
return new ArrayList<>();
}
return this.aippChatMapper.selectByChatIds(chatIds);
}

@Override
public List<ChatAndInstanceMap> selectTaskInstanceRelationsByChatIds(List<String> chatIds) {
if (CollectionUtils.isEmpty(chatIds)) {
return new ArrayList<>();
}
return this.aippChatMapper.selectTaskInstanceRelationsByChatIds(chatIds);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) 2025 Huawei Technologies Co., Ltd. All rights reserved.
* This file is a part of the ModelEngine Project.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/

package modelengine.fit.jober.aipp.repository.impl;

import modelengine.fit.jober.aipp.entity.AippInstLog;
import modelengine.fit.jober.aipp.mapper.AippLogMapper;
import modelengine.fit.jober.aipp.repository.AippInstanceLogRepository;
import modelengine.fitframework.annotation.Component;
import modelengine.fitframework.util.CollectionUtils;

import java.util.List;

/**
* {@link AippInstanceLogRepository} 对应实现类。
*
* @author 杨祥宇
* @since 2025-04-09
*/
@Component
public class AippInstanceLogRepositoryImpl implements AippInstanceLogRepository {
private final AippLogMapper aippLogMapper;

/**
* 表示用日志持久层构造 {@link AippInstanceLogRepositoryImpl} 的实例。
*
* @param aippLogMapper 表示日志持久层实例的 {@link AippLogMapper}。
*/
public AippInstanceLogRepositoryImpl(AippLogMapper aippLogMapper) {this.aippLogMapper = aippLogMapper;}

@Override
public List<Long> getExpireInstanceLogIds(String aippType, int expiredDays, int limit) {
return this.aippLogMapper.getExpireInstanceLogIds(aippType, expiredDays, limit);
}

@Override
public void forceDeleteInstanceLogs(List<Long> logIds) {
if (CollectionUtils.isEmpty(logIds)) {
return;
}
this.aippLogMapper.forceDeleteInstanceLogsByIds(logIds);
}

@Override
public List<AippInstLog> selectByLogIds(List<Long> logIds) {
return this.aippLogMapper.selectByLogIds(logIds);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import modelengine.fit.jober.aipp.repository.AppBuilderRuntimeInfoRepository;
import modelengine.fit.jober.aipp.serializer.impl.AppBuilderRuntimeInfoSerializer;
import modelengine.fitframework.annotation.Component;
import modelengine.fitframework.util.CollectionUtils;

import java.util.List;
import java.util.stream.Collectors;
Expand Down Expand Up @@ -44,4 +45,17 @@ public List<AppBuilderRuntimeInfo> selectByTraceId(String traceId) {
public void insertOne(AppBuilderRuntimeInfo info) {
this.mapper.insertOne(this.serializer.serialize(info));
}

@Override
public List<Long> getExpiredRuntimeInfos(int expiredDays, int limit) {
return this.mapper.getExpiredRuntimeInfos(expiredDays, limit);
}

@Override
public void deleteRuntimeInfos(List<Long> runtimeInfoIds) {
if (CollectionUtils.isEmpty(runtimeInfoIds)) {
return;
}
this.mapper.deleteRuntimeInfos(runtimeInfoIds);
}
}
Loading
Loading