package cc.mrbird.febs.ai.service; import cc.mrbird.febs.ai.req.ai.AiMessage; import cc.mrbird.febs.ai.req.ai.AiRequest; import cc.mrbird.febs.ai.req.talk.AiTalkAnswerStream; import cc.mrbird.febs.ai.res.ai.AiResponse; import cc.mrbird.febs.ai.res.ai.Report; import cc.mrbird.febs.common.entity.FebsResponse; import reactor.core.publisher.Flux; import java.util.List; import java.util.function.Consumer; /** * @author Administrator */ public interface AiService { Integer getSystemSetAiType(); String getSystemSetLTAiPrompt(); AiResponse start(List aiMessageDtoList,Integer type, String productRoleId, String answer, String question); AiResponse question(AiRequest aiRequest); void streamQuestion(AiRequest aiRequest, Consumer callback); /** * 从模型输出中提取并解析报告数据 * @param modelOutput 模型原始输出 * @return 解析后的报告对象 */ Report extractReportData(String modelOutput); Flux answerStream(String question); Flux answerStreamV2(AiTalkAnswerStream dto); }