package com.qingjian.module.ai.controller; import com.qingjian.common.model.ai.entity.AppChatModel; import com.qingjian.common.model.ai.query.ChatRequest; import com.qingjian.module.ai.service.AiService; import org.noear.solon.annotation.*; import org.noear.solon.core.util.MimeType; import reactor.core.publisher.Flux; import java.util.List; @Controller @Mapping("/ai") public class AiController { @Inject private AiService aiService; /** * 更新或者创建 模型 * * @param model 模型信息 */ @Post @Mapping("/create") public void createModel(AppChatModel model) { aiService.createModel(model); } /** * 处理AI聊天请求 * * @param chatRequest 聊天请求参数,包含会话ID、内容和模型信息 * @return 流式响应的聊天结果 */ @Post @Mapping(path = "/chat_test", produces = MimeType.TEXT_EVENT_STREAM_UTF8_VALUE) public Flux chat_test(ChatRequest chatRequest) { return aiService.chat(chatRequest); } /** * 测试AI聊天接口 * * @param input 输入内容 * @param sessionId 会话ID * @return 流式响应的聊天结果 */ @Get @Mapping(path = "/chat", produces = MimeType.TEXT_EVENT_STREAM_UTF8_VALUE) public Flux chat_test(String input, String sessionId) { ChatRequest chatRequest = new ChatRequest(); chatRequest.setContent(input); chatRequest.setSessionId(sessionId); return aiService.chat(chatRequest); } @Get @Mapping("/qs") public List qs() { return aiService.qs(); } }