Commit ba875f4c authored by alex yao's avatar alex yao

feat: 新增AI写作接口

parent 12c2db22
......@@ -8,7 +8,9 @@ public enum AiDialoguesTypeEnum {
PORTAL("portal", "门户页对话"),
LONG_TEXT_DOCUMENT("long_text_document", "长文本文档"),
LONG_TEXT_DOCUMENT("long_text_document", "长文本文档"),
AI_WRITING("ai_writing", "AI写作"),
;
......
......@@ -23,7 +23,6 @@ import cn.com.poc.long_document.domain.LongtextDialoguesResult;
import cn.com.poc.long_document.dto.LongTextExampleDto;
import cn.com.poc.long_document.dto.LongTextSummaryDto;
import cn.com.poc.long_document.entity.BizLongTextSummaryCacheEntity;
import cn.com.poc.long_document.model.BizLongTextDialoguesRecordModel;
import cn.com.poc.long_document.model.BizLongTextExampleModel;
import cn.com.poc.long_document.service.BizLongTextExampleService;
import cn.com.poc.long_document.service.BizLongTextSummaryCacheService;
......
package cn.com.poc.writing.aggregate;
/**
* @author alex.yao
* @date 2025/6/20
*/
public interface AiWritingService {
/**
* 调用AI写作
*
* @param dialoguesId
* @param fileUrl
* @param input
* @param knowledgeIds
* @param userId
*/
void call(String dialoguesId, String fileUrl, String input, Integer[] knowledgeIds, Long userId) throws Exception;
}
package cn.com.poc.writing.dto;
/**
* @author alex.yao
* @date 2025/6/20
*/
public class AiWritingDto {
/**
* 对话id
*/
private String dialoguesId;
/**
* 文件地址
*/
private String fileUrl;
/**
* 输入内容
*/
private String input;
/**
* 知识库id
*/
private Integer[] knowledgeIds;
public String getDialoguesId() {
return dialoguesId;
}
public void setDialoguesId(String dialoguesId) {
this.dialoguesId = dialoguesId;
}
public String getFileUrl() {
return fileUrl;
}
public void setFileUrl(String fileUrl) {
this.fileUrl = fileUrl;
}
public String getInput() {
return input;
}
public void setInput(String input) {
this.input = input;
}
public Integer[] getKnowledgeIds() {
return knowledgeIds;
}
public void setKnowledgeIds(Integer[] knowledgeIds) {
this.knowledgeIds = knowledgeIds;
}
}
package cn.com.poc.writing.rest;
import cn.com.poc.writing.dto.AiWritingDto;
import cn.com.yict.framemax.core.rest.BaseRest;
import cn.com.yict.framemax.web.permission.Access;
import cn.com.yict.framemax.web.permission.Permission;
import org.springframework.web.bind.annotation.RequestBody;
/**
* @author alex.yao
* @date 2025/6/20
*/
@Permission(Access.Safety)
public interface AiWritingRest extends BaseRest {
void call(@RequestBody AiWritingDto aiWritingDto) throws Exception;
}
package cn.com.poc.writing.rest.impl;
import cn.com.poc.common.utils.Assert;
import cn.com.poc.common.utils.BlContext;
import cn.com.poc.support.security.oauth.entity.UserBaseEntity;
import cn.com.poc.writing.aggregate.AiWritingService;
import cn.com.poc.writing.dto.AiWritingDto;
import cn.com.poc.writing.rest.AiWritingRest;
import cn.com.yict.framemax.core.exception.BusinessException;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
/**
* @author alex.yao
* @date 2025/6/20
*/
@Component
public class AiWritingRestImpl implements AiWritingRest {
@Resource
private AiWritingService aiWritingService;
@Override
public void call(AiWritingDto aiWritingDto) throws Exception {
Assert.notNull(aiWritingDto, "aiWritingDto is null");
Assert.notBlank(aiWritingDto.getInput(), "input is null");
Assert.notBlank(aiWritingDto.getDialoguesId(), "dialogues id is null");
UserBaseEntity userBaseEntity = BlContext.getCurrentUserNotException();
if (userBaseEntity == null) {
throw new BusinessException("用户未登录");
}
aiWritingService.call(aiWritingDto.getDialoguesId(), aiWritingDto.getFileUrl(),
aiWritingDto.getInput(), aiWritingDto.getKnowledgeIds(), userBaseEntity.getUserId());
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment