Commit fa44ec3a authored by alex yao's avatar alex yao

feat:默认知识库

parent 342c934c
package cn.com.poc.knowledge.cache;
import cn.com.poc.common.utils.SpringUtils;
import cn.com.poc.common.utils.StringUtils;
import cn.com.yict.framemax.frame.service.FmxParamConfigService;
import org.apache.commons.lang3.ArrayUtils;
import java.util.Arrays;
/**
* @author alex.yao
* @date 2025/9/1
*/
public class KnowledgeDefaultCache {
private FmxParamConfigService fmxParamConfigService;
public KnowledgeDefaultCache() {
fmxParamConfigService = SpringUtils.getBean(FmxParamConfigService.class);
}
public Integer[] getDefaultKnowledgeId() {
String param = fmxParamConfigService.getParam("knowledge.default.id");
if (StringUtils.isNotBlank(param)) {
String[] knowledgeId = param.split(";");
if (ArrayUtils.isNotEmpty(knowledgeId)) {
return (Integer[]) Arrays.stream(knowledgeId).map(Integer::valueOf).toArray();
}
}
return ArrayUtils.EMPTY_INTEGER_OBJECT_ARRAY;
}
}
...@@ -29,4 +29,5 @@ public interface KnowledgeConstant { ...@@ -29,4 +29,5 @@ public interface KnowledgeConstant {
String MEMBER = "member"; //微信用户 String MEMBER = "member"; //微信用户
} }
} }
...@@ -12,6 +12,7 @@ public class BizKnowledgeInfoConvert { ...@@ -12,6 +12,7 @@ public class BizKnowledgeInfoConvert {
entity.setId(model.getId()); entity.setId(model.getId());
entity.setKnowledgeName(model.getKnowledgeName()); entity.setKnowledgeName(model.getKnowledgeName());
entity.setKnowledgeType(model.getKnowledgeType()); entity.setKnowledgeType(model.getKnowledgeType());
entity.setKnowledgeOwner(model.getKnowledgeOwner());
entity.setMemberId(model.getMemberId()); entity.setMemberId(model.getMemberId());
entity.setKdIds(model.getKdIds()); entity.setKdIds(model.getKdIds());
entity.setTrainStatus(model.getTrainStatus()); entity.setTrainStatus(model.getTrainStatus());
...@@ -31,6 +32,7 @@ public class BizKnowledgeInfoConvert { ...@@ -31,6 +32,7 @@ public class BizKnowledgeInfoConvert {
model.setId(entity.getId()); model.setId(entity.getId());
model.setKnowledgeType(entity.getKnowledgeType()); model.setKnowledgeType(entity.getKnowledgeType());
model.setKnowledgeName(entity.getKnowledgeName()); model.setKnowledgeName(entity.getKnowledgeName());
model.setKnowledgeOwner(entity.getKnowledgeOwner());
model.setMemberId(entity.getMemberId()); model.setMemberId(entity.getMemberId());
model.setKdIds(entity.getKdIds()); model.setKdIds(entity.getKdIds());
model.setTrainStatus(entity.getTrainStatus()); model.setTrainStatus(entity.getTrainStatus());
...@@ -50,6 +52,7 @@ public class BizKnowledgeInfoConvert { ...@@ -50,6 +52,7 @@ public class BizKnowledgeInfoConvert {
dto.setId(entity.getId()); dto.setId(entity.getId());
dto.setKnowledgeName(entity.getKnowledgeName()); dto.setKnowledgeName(entity.getKnowledgeName());
dto.setKnowledgeType(entity.getKnowledgeType()); dto.setKnowledgeType(entity.getKnowledgeType());
dto.setKnowledgeOwner(entity.getKnowledgeOwner());
dto.setMemberId(entity.getMemberId()); dto.setMemberId(entity.getMemberId());
dto.setIsOpen(entity.getIsOpen()); dto.setIsOpen(entity.getIsOpen());
dto.setKdIds(entity.getKdIds()); dto.setKdIds(entity.getKdIds());
...@@ -64,6 +67,7 @@ public class BizKnowledgeInfoConvert { ...@@ -64,6 +67,7 @@ public class BizKnowledgeInfoConvert {
entity.setId(dto.getId()); entity.setId(dto.getId());
entity.setKnowledgeType(dto.getKnowledgeType()); entity.setKnowledgeType(dto.getKnowledgeType());
entity.setKnowledgeName(dto.getKnowledgeName()); entity.setKnowledgeName(dto.getKnowledgeName());
entity.setKnowledgeOwner(dto.getKnowledgeOwner());
entity.setMemberId(dto.getMemberId()); entity.setMemberId(dto.getMemberId());
entity.setKdIds(dto.getKdIds()); entity.setKdIds(dto.getKdIds());
entity.setIsOpen(dto.getIsOpen()); entity.setIsOpen(dto.getIsOpen());
......
...@@ -45,6 +45,20 @@ public class BizKnowledgeInfoDto { ...@@ -45,6 +45,20 @@ public class BizKnowledgeInfoDto {
this.knowledgeType = knowledgeType; this.knowledgeType = knowledgeType;
} }
/**
* knowledge_owner
* 知识库拥有类型: corp-集团,company-企业,personal-个人
*/
private String knowledgeOwner;
public String getKnowledgeOwner() {
return knowledgeOwner;
}
public void setKnowledgeOwner(String knowledgeOwner) {
this.knowledgeOwner = knowledgeOwner;
}
/** /**
* member_id * member_id
* 用户ID * 用户ID
......
...@@ -43,6 +43,20 @@ public class BizKnowledgeInfoEntity { ...@@ -43,6 +43,20 @@ public class BizKnowledgeInfoEntity {
this.knowledgeType = knowledgeType; this.knowledgeType = knowledgeType;
} }
/**
* knowledge_owner
* 知识库拥有
*/
private String knowledgeOwner;
public String getKnowledgeOwner() {
return knowledgeOwner;
}
public void setKnowledgeOwner(String knowledgeOwner) {
this.knowledgeOwner = knowledgeOwner;
}
/** member_id /** member_id
*用户ID *用户ID
*/ */
......
...@@ -79,6 +79,22 @@ public class BizKnowledgeInfoModel extends BaseModelClass implements Serializabl ...@@ -79,6 +79,22 @@ public class BizKnowledgeInfoModel extends BaseModelClass implements Serializabl
super.addValidField("knowledgeType"); super.addValidField("knowledgeType");
} }
/**
* knowledge_owner
* 知识库拥有者
*/
private String knowledgeOwner;
@Column(name = "knowledge_owner")
public String getKnowledgeOwner() {
return knowledgeOwner;
}
public void setKnowledgeOwner(String knowledgeOwner) {
this.knowledgeOwner = knowledgeOwner;
super.addValidField("knowledgeOwner");
}
/** /**
* member_id * member_id
* 用户ID * 用户ID
......
select select id,
id, knowledge_name,
knowledge_name, knowledge_type,
knowledge_type, knowledge_owner,
member_id, member_id,
kd_ids, kd_ids,
train_status, train_status,
knowledge_desc, knowledge_desc,
is_open, is_open,
is_deleted, is_deleted,
CREATOR, CREATOR,
CREATED_TIME, CREATED_TIME,
MODIFIER, MODIFIER,
MODIFIED_TIME MODIFIED_TIME
from from biz_knowledge_info
biz_knowledge_info where is_deleted = 'N' << and member_id = :memberId >>
where << and knowlege_owner = : knowledgeOwner >>
is_deleted = 'N'
<< and member_id = :memberId>>
<< and LOCATE(:query ,knowledge_name) >> << and LOCATE(:query ,knowledge_name) >>
<< and train_status = :trainStatus>> << and train_status = :trainStatus>>
<< and knowledge_type = :knowledgeType>> << and knowledge_type = :knowledgeType>>
order by MODIFIED_TIME or (member_id = 1 and is_deleted = 'N')
\ No newline at end of file order by MODIFIED_TIME
package cn.com.poc.knowledge.query; package cn.com.poc.knowledge.query;
import java.io.Serializable; import java.io.Serializable;
/** /**
* Query Condition class for KnowledgeInfosQuery * Query Condition class for KnowledgeInfosQuery
*/ */
public class KnowledgeInfosQueryCondition implements Serializable{ public class KnowledgeInfosQueryCondition implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private java.lang.String memberId; private java.lang.String memberId;
public java.lang.String getMemberId(){ public java.lang.String getMemberId() {
return this.memberId; return this.memberId;
} }
public void setMemberId(java.lang.String memberId){ public void setMemberId(java.lang.String memberId) {
this.memberId = memberId; this.memberId = memberId;
} }
private java.lang.String query; private java.lang.String query;
...@@ -32,12 +32,12 @@ public class KnowledgeInfosQueryCondition implements Serializable{ ...@@ -32,12 +32,12 @@ public class KnowledgeInfosQueryCondition implements Serializable{
} }
private java.lang.String trainStatus; private java.lang.String trainStatus;
public java.lang.String getTrainStatus(){ public java.lang.String getTrainStatus() {
return this.trainStatus; return this.trainStatus;
} }
public void setTrainStatus(java.lang.String trainStatus){ public void setTrainStatus(java.lang.String trainStatus) {
this.trainStatus = trainStatus; this.trainStatus = trainStatus;
} }
...@@ -50,4 +50,14 @@ public class KnowledgeInfosQueryCondition implements Serializable{ ...@@ -50,4 +50,14 @@ public class KnowledgeInfosQueryCondition implements Serializable{
public void setKnowledgeType(String knowledgeType) { public void setKnowledgeType(String knowledgeType) {
this.knowledgeType = knowledgeType; this.knowledgeType = knowledgeType;
} }
private String knowledgeOwner;
public String getKnowledgeOwner() {
return knowledgeOwner;
}
public void setKnowledgeOwner(String knowledgeOwner) {
this.knowledgeOwner = knowledgeOwner;
}
} }
\ No newline at end of file
select bki.knowledge_owner from biz_knowledge_info bki where bki.knowledge_owner is not null group by bki.knowledge_owner order by bki.knowledge_owner
\ No newline at end of file
package cn.com.poc.knowledge.query;
import java.io.Serializable;
/**
* Query Condition class for KnowledgeOwnerListQuery
*/
public class KnowledgeOwnerListQueryCondition implements Serializable{
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package cn.com.poc.knowledge.query;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import cn.com.yict.framemax.data.model.BaseItemClass;
/**
* Query Item class for KnowledgeOwnerListQuery
*/
@Entity
public class KnowledgeOwnerListQueryItem extends BaseItemClass implements Serializable{
private static final long serialVersionUID = 1L;
/** knowledge_owner
*knowledge_owner
*/
private java.lang.String knowledgeOwner;
@Column(name = "knowledge_owner")
public java.lang.String getKnowledgeOwner(){
return this.knowledgeOwner;
}
public void setKnowledgeOwner(java.lang.String knowledgeOwner){
this.knowledgeOwner = knowledgeOwner;
}
}
\ No newline at end of file
...@@ -87,15 +87,23 @@ public interface KnowledgeRest extends BaseRest { ...@@ -87,15 +87,23 @@ public interface KnowledgeRest extends BaseRest {
/** /**
* 获取知识库详情 * 获取知识库详情
*/ */
BizKnowledgeInfoDto getKnowledgeDetail(@RequestParam Integer knowledgeInfoId) ; BizKnowledgeInfoDto getKnowledgeDetail(@RequestParam Integer knowledgeInfoId);
/** /**
* 获取用户知识库列表 * 获取用户知识库列表
* *
* @param search 搜索条件 * @param search 搜索条件
* @param trainStatus 训练状态 * @param trainStatus 训练状态
* @param knowledgeOwner 用户者标签
*/ */
List<QueryKnowledgeDocumentDto> getKnowledgeList(@RequestParam(required = false) String search, @RequestParam(required = false) String trainStatus, PagingInfo pagingInfo) throws Exception; List<QueryKnowledgeDocumentDto> getKnowledgeList(@RequestParam(required = false) String search, @RequestParam(required = false) String trainStatus,
@RequestParam(required = false) String knowledgeOwner,
PagingInfo pagingInfo) throws Exception;
/**
* 获取知识库owner标签列表
*/
List<String> getKnowledgeOwnerList();
/** /**
* 获取用户知识库列表 * 获取用户知识库列表
......
...@@ -15,6 +15,7 @@ import cn.com.poc.knowledge.entity.BizKnowledgeDocumentEntity; ...@@ -15,6 +15,7 @@ import cn.com.poc.knowledge.entity.BizKnowledgeDocumentEntity;
import cn.com.poc.knowledge.entity.BizKnowledgeInfoEntity; import cn.com.poc.knowledge.entity.BizKnowledgeInfoEntity;
import cn.com.poc.knowledge.query.KnowledgeInfosQueryCondition; import cn.com.poc.knowledge.query.KnowledgeInfosQueryCondition;
import cn.com.poc.knowledge.query.KnowledgeInfosQueryItem; import cn.com.poc.knowledge.query.KnowledgeInfosQueryItem;
import cn.com.poc.knowledge.query.KnowledgeOwnerListQueryItem;
import cn.com.poc.knowledge.rest.KnowledgeRest; import cn.com.poc.knowledge.rest.KnowledgeRest;
import cn.com.poc.knowledge.service.BizKnowledgeInfoService; import cn.com.poc.knowledge.service.BizKnowledgeInfoService;
import cn.com.poc.support.security.oauth.entity.UserBaseEntity; import cn.com.poc.support.security.oauth.entity.UserBaseEntity;
...@@ -202,7 +203,7 @@ public class KnowledgeRestImpl implements KnowledgeRest { ...@@ -202,7 +203,7 @@ public class KnowledgeRestImpl implements KnowledgeRest {
} }
@Override @Override
public List<QueryKnowledgeDocumentDto> getKnowledgeList(String search, String trainStatus, PagingInfo pagingInfo) throws Exception { public List<QueryKnowledgeDocumentDto> getKnowledgeList(String search, String trainStatus, String knowledgeOwner, PagingInfo pagingInfo) throws Exception {
List<QueryKnowledgeDocumentDto> result = new ArrayList<>(); List<QueryKnowledgeDocumentDto> result = new ArrayList<>();
UserBaseEntity userBaseEntity = BlContext.getCurrentUserNotException(); UserBaseEntity userBaseEntity = BlContext.getCurrentUserNotException();
KnowledgeInfosQueryCondition condition = new KnowledgeInfosQueryCondition(); KnowledgeInfosQueryCondition condition = new KnowledgeInfosQueryCondition();
...@@ -213,6 +214,9 @@ public class KnowledgeRestImpl implements KnowledgeRest { ...@@ -213,6 +214,9 @@ public class KnowledgeRestImpl implements KnowledgeRest {
if (StringUtils.isNoneBlank(trainStatus)) { if (StringUtils.isNoneBlank(trainStatus)) {
condition.setTrainStatus(trainStatus); condition.setTrainStatus(trainStatus);
} }
if (StringUtils.isNotBlank(knowledgeOwner)) {
condition.setKnowledgeOwner(knowledgeOwner);
}
List<KnowledgeInfosQueryItem> items = bizKnowledgeInfoService.knowledgeInfos(condition, pagingInfo); List<KnowledgeInfosQueryItem> items = bizKnowledgeInfoService.knowledgeInfos(condition, pagingInfo);
if (CollectionUtils.isNotEmpty(items)) { if (CollectionUtils.isNotEmpty(items)) {
result = items.stream().map(item -> { result = items.stream().map(item -> {
...@@ -233,6 +237,12 @@ public class KnowledgeRestImpl implements KnowledgeRest { ...@@ -233,6 +237,12 @@ public class KnowledgeRestImpl implements KnowledgeRest {
return result; return result;
} }
@Override
public List<String> getKnowledgeOwnerList() {
List<KnowledgeOwnerListQueryItem> knowledgeOwnerListQueryItems = bizKnowledgeInfoService.queryKnowledgeOwner();
return knowledgeOwnerListQueryItems.stream().map(KnowledgeOwnerListQueryItem::getKnowledgeOwner).collect(Collectors.toList());
}
@Override @Override
public List<QueryKnowledgeDocumentDto> getKnowledgeListByKnowledgeInfoIds(List<Integer> knowledgeInfoIds) throws Exception { public List<QueryKnowledgeDocumentDto> getKnowledgeListByKnowledgeInfoIds(List<Integer> knowledgeInfoIds) throws Exception {
Assert.notEmpty(knowledgeInfoIds); Assert.notEmpty(knowledgeInfoIds);
......
...@@ -2,6 +2,7 @@ package cn.com.poc.knowledge.service; ...@@ -2,6 +2,7 @@ package cn.com.poc.knowledge.service;
import cn.com.poc.knowledge.query.KnowledgeInfosQueryCondition; import cn.com.poc.knowledge.query.KnowledgeInfosQueryCondition;
import cn.com.poc.knowledge.query.KnowledgeInfosQueryItem; import cn.com.poc.knowledge.query.KnowledgeInfosQueryItem;
import cn.com.poc.knowledge.query.KnowledgeOwnerListQueryItem;
import cn.com.poc.knowledge.query.KnowledgeQueryItem; import cn.com.poc.knowledge.query.KnowledgeQueryItem;
import cn.com.yict.framemax.core.service.BaseService; import cn.com.yict.framemax.core.service.BaseService;
import cn.com.poc.knowledge.entity.BizKnowledgeInfoEntity; import cn.com.poc.knowledge.entity.BizKnowledgeInfoEntity;
...@@ -26,4 +27,6 @@ public interface BizKnowledgeInfoService extends BaseService { ...@@ -26,4 +27,6 @@ public interface BizKnowledgeInfoService extends BaseService {
void removeDocument(Integer knowledgeInfoId, Integer kdId); void removeDocument(Integer knowledgeInfoId, Integer kdId);
List<KnowledgeOwnerListQueryItem> queryKnowledgeOwner();
} }
\ No newline at end of file
...@@ -4,6 +4,8 @@ import cn.com.poc.common.utils.JsonUtils; ...@@ -4,6 +4,8 @@ import cn.com.poc.common.utils.JsonUtils;
import cn.com.poc.common.utils.StringUtils; import cn.com.poc.common.utils.StringUtils;
import cn.com.poc.knowledge.query.KnowledgeInfosQueryCondition; import cn.com.poc.knowledge.query.KnowledgeInfosQueryCondition;
import cn.com.poc.knowledge.query.KnowledgeInfosQueryItem; import cn.com.poc.knowledge.query.KnowledgeInfosQueryItem;
import cn.com.poc.knowledge.query.KnowledgeOwnerListQueryCondition;
import cn.com.poc.knowledge.query.KnowledgeOwnerListQueryItem;
import cn.com.yict.framemax.core.service.impl.BaseServiceImpl; import cn.com.yict.framemax.core.service.impl.BaseServiceImpl;
import cn.com.poc.knowledge.service.BizKnowledgeInfoService; import cn.com.poc.knowledge.service.BizKnowledgeInfoService;
import cn.com.poc.knowledge.model.BizKnowledgeInfoModel; import cn.com.poc.knowledge.model.BizKnowledgeInfoModel;
...@@ -131,4 +133,9 @@ public class BizKnowledgeInfoServiceImpl extends BaseServiceImpl ...@@ -131,4 +133,9 @@ public class BizKnowledgeInfoServiceImpl extends BaseServiceImpl
} }
} }
} }
@Override
public List<KnowledgeOwnerListQueryItem> queryKnowledgeOwner() {
return this.sqlDao.query(new KnowledgeOwnerListQueryCondition(), KnowledgeOwnerListQueryItem.class);
}
} }
\ No newline at end of file
...@@ -2,6 +2,7 @@ package cn.com.poc.portal.rest.impl; ...@@ -2,6 +2,7 @@ package cn.com.poc.portal.rest.impl;
import cn.com.poc.common.utils.Assert; import cn.com.poc.common.utils.Assert;
import cn.com.poc.common.utils.BlContext; import cn.com.poc.common.utils.BlContext;
import cn.com.poc.knowledge.cache.KnowledgeDefaultCache;
import cn.com.poc.portal.aggregate.PortalService; import cn.com.poc.portal.aggregate.PortalService;
import cn.com.poc.portal.convert.PortalConvert; import cn.com.poc.portal.convert.PortalConvert;
import cn.com.poc.portal.dto.PortalDialoguesDto; import cn.com.poc.portal.dto.PortalDialoguesDto;
...@@ -10,9 +11,11 @@ import cn.com.poc.portal.rest.PortalRest; ...@@ -10,9 +11,11 @@ import cn.com.poc.portal.rest.PortalRest;
import cn.com.poc.support.security.oauth.entity.UserBaseEntity; import cn.com.poc.support.security.oauth.entity.UserBaseEntity;
import cn.com.yict.framemax.core.exception.BusinessException; import cn.com.yict.framemax.core.exception.BusinessException;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import org.apache.commons.lang3.ArrayUtils;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Arrays;
/** /**
* @author alex.yao * @author alex.yao
...@@ -33,7 +36,13 @@ public class PortalRestImpl implements PortalRest { ...@@ -33,7 +36,13 @@ public class PortalRestImpl implements PortalRest {
if (ObjectUtil.isEmpty(userBaseEntity)) { if (ObjectUtil.isEmpty(userBaseEntity)) {
throw new BusinessException("用户未登录"); throw new BusinessException("用户未登录");
} }
KnowledgeDefaultCache knowledgeDefaultCache = new KnowledgeDefaultCache();
Integer[] defaultKnowledgeId = knowledgeDefaultCache.getDefaultKnowledgeId();
Integer[] knowledgeId = (Integer[]) Arrays.stream(ArrayUtils.addAll(defaultKnowledgeId, dto.getKnowledgeIds())).distinct()
.toArray();
PortalDialoguesCallEntity callEntity = PortalConvert.callDtoToEntity(dto); PortalDialoguesCallEntity callEntity = PortalConvert.callDtoToEntity(dto);
callEntity.setKnowledgeIds(knowledgeId);
portalService.call(callEntity, userBaseEntity.getUserId()); portalService.call(callEntity, userBaseEntity.getUserId());
} }
} }
...@@ -2,14 +2,17 @@ package cn.com.poc.writing.rest.impl; ...@@ -2,14 +2,17 @@ package cn.com.poc.writing.rest.impl;
import cn.com.poc.common.utils.Assert; import cn.com.poc.common.utils.Assert;
import cn.com.poc.common.utils.BlContext; import cn.com.poc.common.utils.BlContext;
import cn.com.poc.knowledge.cache.KnowledgeDefaultCache;
import cn.com.poc.support.security.oauth.entity.UserBaseEntity; import cn.com.poc.support.security.oauth.entity.UserBaseEntity;
import cn.com.poc.writing.aggregate.AiWritingService; import cn.com.poc.writing.aggregate.AiWritingService;
import cn.com.poc.writing.dto.*; import cn.com.poc.writing.dto.*;
import cn.com.poc.writing.rest.AiWritingRest; import cn.com.poc.writing.rest.AiWritingRest;
import cn.com.yict.framemax.core.exception.BusinessException; import cn.com.yict.framemax.core.exception.BusinessException;
import org.apache.commons.lang3.ArrayUtils;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
...@@ -32,8 +35,13 @@ public class AiWritingRestImpl implements AiWritingRest { ...@@ -32,8 +35,13 @@ public class AiWritingRestImpl implements AiWritingRest {
if (userBaseEntity == null) { if (userBaseEntity == null) {
throw new BusinessException("用户未登录"); throw new BusinessException("用户未登录");
} }
KnowledgeDefaultCache knowledgeDefaultCache = new KnowledgeDefaultCache();
Integer[] defaultKnowledgeId = knowledgeDefaultCache.getDefaultKnowledgeId();
Integer[] knowledgeId = (Integer[]) Arrays.stream(ArrayUtils.addAll(defaultKnowledgeId, aiWritingDto.getKnowledgeIds())).distinct()
.toArray();
aiWritingService.call(aiWritingDto.getDialoguesId(), aiWritingDto.getFileUrl(), aiWritingService.call(aiWritingDto.getDialoguesId(), aiWritingDto.getFileUrl(),
aiWritingDto.getInput(), aiWritingDto.getKnowledgeIds(), userBaseEntity.getUserId(), aiWritingDto.getInput(), knowledgeId, userBaseEntity.getUserId(),
aiWritingDto.getEnableSearchEngine(), aiWritingDto.getEnableDeepThinking()); aiWritingDto.getEnableSearchEngine(), aiWritingDto.getEnableDeepThinking());
} }
......
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