Administrator
2025-08-27 83b6ee65a7d3c1f37d8ec896902b5189132d59c7
src/main/java/cc/mrbird/febs/ai/service/AiMemberTalkService.java
@@ -1,8 +1,15 @@
package cc.mrbird.febs.ai.service;
import cc.mrbird.febs.ai.entity.AiMemberTalk;
import cc.mrbird.febs.ai.req.memberTalk.*;
import cc.mrbird.febs.ai.res.ai.AiResponse;
import cc.mrbird.febs.common.entity.FebsResponse;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
import reactor.core.publisher.Flux;
import java.util.Date;
import java.util.function.Consumer;
/**
 * AI用户对话训练记录 Service接口
@@ -12,73 +19,24 @@
 */
public interface AiMemberTalkService extends IService<AiMemberTalk> {
    /**
     * 根据ID查询对话记录
     * @param id 对话记录ID
     * @return 对话记录信息
     */
    AiMemberTalk getById(String id);
    /**
     * 根据用户ID查询对话记录
     * @param memberId 用户ID
     * @return 对话记录列表
     */
    List<AiMemberTalk> getByMemberId(String memberId);
    FebsResponse start(ApiMemberTalkDto dto);
    /**
     * 根据产品ID查询对话记录
     * @param productId 产品ID
     * @return 对话记录列表
     */
    List<AiMemberTalk> getByProductId(String productId);
    FebsResponse reload(ApiMemberTalkReloadDto dto);
    /**
     * 根据角色ID查询对话记录
     * @param productRoleId 角色ID
     * @return 对话记录列表
     */
    List<AiMemberTalk> getByProductRoleId(String productRoleId);
    void startStream(ApiMemberTalkDto dto, Consumer<AiResponse> callback);
    /**
     * 根据公司ID查询对话记录
     * @param companyId 公司ID
     * @return 对话记录列表
     */
    List<AiMemberTalk> getByCompanyId(String companyId);
    AiMemberTalk getByQuery(LambdaQueryWrapper<AiMemberTalk> query);
    /**
     * 保存对话记录
     * @param aiMemberTalk 对话记录实体
     * @return 是否保存成功
     */
    boolean saveTalk(AiMemberTalk aiMemberTalk);
    void updateTimeUpdate(Date nowTime, String id);
    /**
     * 批量保存对话记录
     * @param talks 对话记录列表
     * @return 是否保存成功
     */
    boolean saveBatchTalks(List<AiMemberTalk> talks);
    FebsResponse answer(ApiMemberTalkAnswerDto dto);
    /**
     * 更新对话记录
     * @param aiMemberTalk 对话记录实体
     * @return 是否更新成功
     */
    boolean updateTalk(AiMemberTalk aiMemberTalk);
    AiMemberTalk add(String memberUuid, String productId, Date nowTime);
    /**
     * 根据ID删除对话记录
     * @param id 对话记录ID
     * @return 是否删除成功
     */
    boolean deleteById(String id);
    FebsResponse historyPage(ApiMemberTalkItemPageDto dto);
    /**
     * 根据用户ID删除对话记录
     * @param memberId 用户ID
     * @return 是否删除成功
     */
    boolean deleteByMemberId(String memberId);
    Flux<FebsResponse> answerStream(String question);
}