mirror of
https://gitee.com/270580156/weiyu.git
synced 2026-05-15 19:58:00 +00:00
update modules/kbase: add 13 mod 16 files
This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
@NonNullApi
|
||||
package com.bytedesk.kbase.faq;
|
||||
|
||||
import org.springframework.lang.NonNullApi;
|
||||
@@ -0,0 +1,4 @@
|
||||
@NonNullApi
|
||||
package com.bytedesk.kbase.kbase;
|
||||
|
||||
import org.springframework.lang.NonNullApi;
|
||||
@@ -2,7 +2,7 @@
|
||||
* @Author: jackning 270580156@qq.com
|
||||
* @Date: 2024-05-11 18:14:28
|
||||
* @LastEditors: jackning 270580156@qq.com
|
||||
* @LastEditTime: 2025-04-29 08:36:42
|
||||
* @LastEditTime: 2025-04-29 16:19:26
|
||||
* @Description: bytedesk.com https://github.com/Bytedesk/bytedesk
|
||||
* Please be aware of the BSL license restrictions before installing Bytedesk IM –
|
||||
* selling, reselling, or hosting Bytedesk IM as a service is a breach of the terms and automatically terminates your rights under the license.
|
||||
@@ -49,19 +49,19 @@ import lombok.experimental.SuperBuilder;
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@EntityListeners({SplitEntityListener.class})
|
||||
@Table(name = "bytedesk_kbase_llm_split")
|
||||
public class SplitEntity extends BaseEntity {
|
||||
@EntityListeners({ChunkEntityListener.class})
|
||||
@Table(name = "bytedesk_kbase_llm_chunk")
|
||||
public class ChunkEntity extends BaseEntity {
|
||||
|
||||
private String name;
|
||||
|
||||
// split 之后可能不需要这么长的 content,待优化
|
||||
// chunk 之后可能不需要这么长的 content,待优化
|
||||
@Column(columnDefinition = TypeConsts.COLUMN_TYPE_TEXT)
|
||||
private String content;
|
||||
|
||||
@Builder.Default
|
||||
@Column(name = "split_type")
|
||||
private String type = SplitTypeEnum.TEXT.name();
|
||||
@Column(name = "chunk_type")
|
||||
private String type = ChunkTypeEnum.TEXT.name();
|
||||
|
||||
@Builder.Default
|
||||
@Convert(converter = StringListConverter.class)
|
||||
@@ -18,9 +18,9 @@ import org.springframework.util.SerializationUtils;
|
||||
|
||||
import com.bytedesk.core.config.BytedeskEventPublisher;
|
||||
import com.bytedesk.core.utils.ApplicationContextHolder;
|
||||
import com.bytedesk.kbase.llm_chunk.event.SplitCreateEvent;
|
||||
import com.bytedesk.kbase.llm_chunk.event.SplitDeleteEvent;
|
||||
import com.bytedesk.kbase.llm_chunk.event.SplitUpdateEvent;
|
||||
import com.bytedesk.kbase.llm_chunk.event.ChunkCreateEvent;
|
||||
import com.bytedesk.kbase.llm_chunk.event.ChunkDeleteEvent;
|
||||
import com.bytedesk.kbase.llm_chunk.event.ChunkUpdateEvent;
|
||||
|
||||
import jakarta.persistence.PostPersist;
|
||||
import jakarta.persistence.PostUpdate;
|
||||
@@ -28,29 +28,29 @@ import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Slf4j
|
||||
@Component
|
||||
public class SplitEntityListener {
|
||||
public class ChunkEntityListener {
|
||||
|
||||
@PostPersist
|
||||
public void onPostPersist(SplitEntity split) {
|
||||
log.info("SplitEntityListener onPostPersist: {}", split.getName());
|
||||
SplitEntity clonedSplit = SerializationUtils.clone(split);
|
||||
public void onPostPersist(ChunkEntity chunk) {
|
||||
log.info("ChunkEntityListener onPostPersist: {}", chunk.getName());
|
||||
ChunkEntity clonedChunk = SerializationUtils.clone(chunk);
|
||||
//
|
||||
BytedeskEventPublisher publisher = ApplicationContextHolder.getBean(BytedeskEventPublisher.class);
|
||||
publisher.publishEvent(new SplitCreateEvent(clonedSplit));
|
||||
publisher.publishEvent(new ChunkCreateEvent(clonedChunk));
|
||||
}
|
||||
|
||||
@PostUpdate
|
||||
public void onPostUpdate(SplitEntity split) {
|
||||
log.info("SplitEntityListener onPostUpdate: {}", split.getName());
|
||||
SplitEntity clonedSplit = SerializationUtils.clone(split);
|
||||
public void onPostUpdate(ChunkEntity chunk) {
|
||||
log.info("ChunkEntityListener onPostUpdate: {}", chunk.getName());
|
||||
ChunkEntity clonedChunk = SerializationUtils.clone(chunk);
|
||||
//
|
||||
BytedeskEventPublisher publisher = ApplicationContextHolder.getBean(BytedeskEventPublisher.class);
|
||||
if (split.isDeleted()) {
|
||||
log.info("SplitEntityListener onPostUpdate: Split is deleted");
|
||||
publisher.publishEvent(new SplitDeleteEvent(clonedSplit));
|
||||
if (chunk.isDeleted()) {
|
||||
log.info("ChunkEntityListener onPostUpdate: Chunk is deleted");
|
||||
publisher.publishEvent(new ChunkDeleteEvent(clonedChunk));
|
||||
}else {
|
||||
log.info("SplitEntityListener onPostUpdate: Split is update");
|
||||
publisher.publishEvent(new SplitUpdateEvent(clonedSplit));
|
||||
log.info("ChunkEntityListener onPostUpdate: Chunk is update");
|
||||
publisher.publishEvent(new ChunkUpdateEvent(clonedChunk));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -21,7 +21,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||
@Slf4j
|
||||
@Component
|
||||
@AllArgsConstructor
|
||||
public class SplitEventListener {
|
||||
public class ChunkEventListener {
|
||||
|
||||
// @EventListener
|
||||
// public void onFileCreateEvent(FileCreateEvent event) {
|
||||
@@ -19,10 +19,10 @@ import com.alibaba.excel.annotation.write.style.ColumnWidth;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* Split导出Excel实体类
|
||||
* Chunk导出Excel实体类
|
||||
*/
|
||||
@Data
|
||||
public class SplitExcel {
|
||||
public class ChunkExcel {
|
||||
|
||||
@ExcelProperty(value = "名称")
|
||||
@ColumnWidth(30)
|
||||
@@ -13,10 +13,10 @@
|
||||
*/
|
||||
package com.bytedesk.kbase.llm_chunk;
|
||||
|
||||
public class SplitPermissions {
|
||||
public class ChunkPermissions {
|
||||
|
||||
public static final String SPLIT_PREFIX = "SPLIT_";
|
||||
// Split permissions
|
||||
// Chunk permissions
|
||||
public static final String SPLIT_CREATE = "hasAuthority('SPLIT_CREATE')";
|
||||
public static final String SPLIT_READ = "hasAuthority('SPLIT_READ')";
|
||||
public static final String SPLIT_UPDATE = "hasAuthority('SPLIT_UPDATE')";
|
||||
@@ -19,13 +19,13 @@ import java.util.Optional;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
||||
|
||||
public interface SplitRepository extends JpaRepository<SplitEntity, Long>, JpaSpecificationExecutor<SplitEntity> {
|
||||
public interface ChunkRepository extends JpaRepository<ChunkEntity, Long>, JpaSpecificationExecutor<ChunkEntity> {
|
||||
|
||||
Optional<SplitEntity> findByUid(String uid);
|
||||
Optional<ChunkEntity> findByUid(String uid);
|
||||
|
||||
Optional<SplitEntity> findByDocId(String docId);
|
||||
Optional<ChunkEntity> findByDocId(String docId);
|
||||
|
||||
// Boolean existsByPlatform(String platform);
|
||||
|
||||
List<SplitEntity> findByKbase_Uid(String kbUid);
|
||||
List<ChunkEntity> findByKbase_Uid(String kbUid);
|
||||
}
|
||||
@@ -32,7 +32,7 @@ import lombok.experimental.SuperBuilder;
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class SplitRequest extends BaseRequest {
|
||||
public class ChunkRequest extends BaseRequest {
|
||||
|
||||
private String name;
|
||||
|
||||
@@ -31,7 +31,7 @@ import lombok.experimental.Accessors;
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class SplitResponse extends BaseResponse {
|
||||
public class ChunkResponse extends BaseResponse {
|
||||
|
||||
private String name;
|
||||
|
||||
@@ -26,74 +26,74 @@ import jakarta.servlet.http.HttpServletResponse;
|
||||
import lombok.AllArgsConstructor;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/api/v1/llm/split")
|
||||
@RequestMapping("/api/v1/llm/chunk")
|
||||
@AllArgsConstructor
|
||||
public class SplitRestController extends BaseRestController<SplitRequest> {
|
||||
public class ChunkRestController extends BaseRestController<ChunkRequest> {
|
||||
|
||||
private final SplitRestService splitRestService;
|
||||
private final ChunkRestService chunkRestService;
|
||||
|
||||
@PreAuthorize("hasAuthority('KBASE_READ')")
|
||||
@Override
|
||||
public ResponseEntity<?> queryByOrg(SplitRequest request) {
|
||||
public ResponseEntity<?> queryByOrg(ChunkRequest request) {
|
||||
|
||||
Page<SplitResponse> splits = splitRestService.queryByOrg(request);
|
||||
Page<ChunkResponse> chunks = chunkRestService.queryByOrg(request);
|
||||
|
||||
return ResponseEntity.ok(JsonResult.success(splits));
|
||||
return ResponseEntity.ok(JsonResult.success(chunks));
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAuthority('KBASE_READ')")
|
||||
@Override
|
||||
public ResponseEntity<?> queryByUser(SplitRequest request) {
|
||||
public ResponseEntity<?> queryByUser(ChunkRequest request) {
|
||||
|
||||
Page<SplitResponse> splits = splitRestService.queryByUser(request);
|
||||
Page<ChunkResponse> chunks = chunkRestService.queryByUser(request);
|
||||
|
||||
return ResponseEntity.ok(JsonResult.success(splits));
|
||||
return ResponseEntity.ok(JsonResult.success(chunks));
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAuthority('KBASE_READ')")
|
||||
@Override
|
||||
public ResponseEntity<?> queryByUid(SplitRequest request) {
|
||||
public ResponseEntity<?> queryByUid(ChunkRequest request) {
|
||||
// TODO Auto-generated method stub
|
||||
throw new UnsupportedOperationException("Unimplemented method 'queryByUid'");
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAuthority('KBASE_CREATE')")
|
||||
@Override
|
||||
public ResponseEntity<?> create(SplitRequest request) {
|
||||
public ResponseEntity<?> create(ChunkRequest request) {
|
||||
|
||||
SplitResponse split = splitRestService.create(request);
|
||||
ChunkResponse chunk = chunkRestService.create(request);
|
||||
|
||||
return ResponseEntity.ok(JsonResult.success(split));
|
||||
return ResponseEntity.ok(JsonResult.success(chunk));
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAuthority('KBASE_UPDATE')")
|
||||
@Override
|
||||
public ResponseEntity<?> update(SplitRequest request) {
|
||||
public ResponseEntity<?> update(ChunkRequest request) {
|
||||
|
||||
SplitResponse split = splitRestService.update(request);
|
||||
ChunkResponse chunk = chunkRestService.update(request);
|
||||
|
||||
return ResponseEntity.ok(JsonResult.success(split));
|
||||
return ResponseEntity.ok(JsonResult.success(chunk));
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAuthority('KBASE_DELETE')")
|
||||
@Override
|
||||
public ResponseEntity<?> delete(SplitRequest request) {
|
||||
public ResponseEntity<?> delete(ChunkRequest request) {
|
||||
|
||||
splitRestService.delete(request);
|
||||
chunkRestService.delete(request);
|
||||
|
||||
return ResponseEntity.ok(JsonResult.success());
|
||||
}
|
||||
|
||||
@PreAuthorize("hasAuthority('KBASE_EXPORT')")
|
||||
@Override
|
||||
public Object export(SplitRequest request, HttpServletResponse response) {
|
||||
public Object export(ChunkRequest request, HttpServletResponse response) {
|
||||
return exportTemplate(
|
||||
request,
|
||||
response,
|
||||
splitRestService,
|
||||
SplitExcel.class,
|
||||
chunkRestService,
|
||||
ChunkExcel.class,
|
||||
"分词",
|
||||
"split"
|
||||
"chunk"
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -37,9 +37,9 @@ import lombok.extern.slf4j.Slf4j;
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class SplitRestService extends BaseRestServiceWithExcel<SplitEntity, SplitRequest, SplitResponse, SplitExcel> {
|
||||
public class ChunkRestService extends BaseRestServiceWithExcel<ChunkEntity, ChunkRequest, ChunkResponse, ChunkExcel> {
|
||||
|
||||
private final SplitRepository splitRepository;
|
||||
private final ChunkRepository chunkRepository;
|
||||
|
||||
private final ModelMapper modelMapper;
|
||||
|
||||
@@ -50,20 +50,20 @@ public class SplitRestService extends BaseRestServiceWithExcel<SplitEntity, Spli
|
||||
private final KbaseRestService kbaseRestService;
|
||||
|
||||
@Override
|
||||
public Page<SplitEntity> queryByOrgEntity(SplitRequest request) {
|
||||
public Page<ChunkEntity> queryByOrgEntity(ChunkRequest request) {
|
||||
Pageable pageable = request.getPageable();
|
||||
Specification<SplitEntity> spec = SplitSpecification.search(request);
|
||||
return splitRepository.findAll(spec, pageable);
|
||||
Specification<ChunkEntity> spec = ChunkSpecification.search(request);
|
||||
return chunkRepository.findAll(spec, pageable);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Page<SplitResponse> queryByOrg(SplitRequest request) {
|
||||
Page<SplitEntity> page = queryByOrgEntity(request);
|
||||
public Page<ChunkResponse> queryByOrg(ChunkRequest request) {
|
||||
Page<ChunkEntity> page = queryByOrgEntity(request);
|
||||
return page.map(this::convertToResponse);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Page<SplitResponse> queryByUser(SplitRequest request) {
|
||||
public Page<ChunkResponse> queryByUser(ChunkRequest request) {
|
||||
UserEntity user = authService.getUser();
|
||||
if (user == null) {
|
||||
throw new RuntimeException("User not found");
|
||||
@@ -73,16 +73,16 @@ public class SplitRestService extends BaseRestServiceWithExcel<SplitEntity, Spli
|
||||
return queryByOrg(request);
|
||||
}
|
||||
|
||||
@Cacheable(value = "split", key = "#uid", unless = "#result==null")
|
||||
@Cacheable(value = "chunk", key = "#uid", unless = "#result==null")
|
||||
@Override
|
||||
public Optional<SplitEntity> findByUid(String uid) {
|
||||
return splitRepository.findByUid(uid);
|
||||
public Optional<ChunkEntity> findByUid(String uid) {
|
||||
return chunkRepository.findByUid(uid);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SplitResponse create(SplitRequest request) {
|
||||
// log.info("SplitRestService create: {}", request);
|
||||
SplitEntity entity = SplitEntity.builder()
|
||||
public ChunkResponse create(ChunkRequest request) {
|
||||
// log.info("ChunkRestService create: {}", request);
|
||||
ChunkEntity entity = ChunkEntity.builder()
|
||||
.uid(uidUtils.getUid())
|
||||
.name(request.getName())
|
||||
.content(request.getContent())
|
||||
@@ -113,19 +113,19 @@ public class SplitRestService extends BaseRestServiceWithExcel<SplitEntity, Spli
|
||||
throw new RuntimeException("kbaseUid not found");
|
||||
}
|
||||
//
|
||||
SplitEntity savedEntity = save(entity);
|
||||
ChunkEntity savedEntity = save(entity);
|
||||
if (savedEntity == null) {
|
||||
throw new RuntimeException("Create split failed");
|
||||
throw new RuntimeException("Create chunk failed");
|
||||
}
|
||||
return convertToResponse(savedEntity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SplitResponse update(SplitRequest request) {
|
||||
public ChunkResponse update(ChunkRequest request) {
|
||||
//
|
||||
Optional<SplitEntity> optional = splitRepository.findByUid(request.getUid());
|
||||
Optional<ChunkEntity> optional = chunkRepository.findByUid(request.getUid());
|
||||
if (optional.isPresent()) {
|
||||
SplitEntity entity = optional.get();
|
||||
ChunkEntity entity = optional.get();
|
||||
// modelMapper.map(request, entity);
|
||||
entity.setName(request.getName());
|
||||
entity.setContent(request.getContent());
|
||||
@@ -139,18 +139,18 @@ public class SplitRestService extends BaseRestServiceWithExcel<SplitEntity, Spli
|
||||
// entity.setType(request.getType());
|
||||
// entity.setDocId(request.getDocId());
|
||||
//
|
||||
SplitEntity savedEntity = save(entity);
|
||||
ChunkEntity savedEntity = save(entity);
|
||||
if (savedEntity == null) {
|
||||
throw new RuntimeException("Update split failed");
|
||||
throw new RuntimeException("Update chunk failed");
|
||||
}
|
||||
return convertToResponse(savedEntity);
|
||||
} else {
|
||||
throw new RuntimeException("Split not found");
|
||||
throw new RuntimeException("Chunk not found");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public SplitEntity save(SplitEntity entity) {
|
||||
public ChunkEntity save(ChunkEntity entity) {
|
||||
try {
|
||||
return doSave(entity);
|
||||
} catch (ObjectOptimisticLockingFailureException e) {
|
||||
@@ -158,18 +158,18 @@ public class SplitRestService extends BaseRestServiceWithExcel<SplitEntity, Spli
|
||||
}
|
||||
}
|
||||
|
||||
protected SplitEntity doSave(SplitEntity entity) {
|
||||
return splitRepository.save(entity);
|
||||
protected ChunkEntity doSave(ChunkEntity entity) {
|
||||
return chunkRepository.save(entity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SplitEntity handleOptimisticLockingFailureException(ObjectOptimisticLockingFailureException e,
|
||||
SplitEntity entity) {
|
||||
public ChunkEntity handleOptimisticLockingFailureException(ObjectOptimisticLockingFailureException e,
|
||||
ChunkEntity entity) {
|
||||
try {
|
||||
log.warn("处理乐观锁冲突: {}", entity.getUid());
|
||||
Optional<SplitEntity> latest = splitRepository.findByUid(entity.getUid());
|
||||
Optional<ChunkEntity> latest = chunkRepository.findByUid(entity.getUid());
|
||||
if (latest.isPresent()) {
|
||||
SplitEntity latestEntity = latest.get();
|
||||
ChunkEntity latestEntity = latest.get();
|
||||
// 合并需要保留的数据
|
||||
latestEntity.setName(entity.getName());
|
||||
latestEntity.setContent(entity.getContent());
|
||||
@@ -185,7 +185,7 @@ public class SplitRestService extends BaseRestServiceWithExcel<SplitEntity, Spli
|
||||
// latestEntity.setStatus(entity.getStatus());
|
||||
latestEntity.setDocId(entity.getDocId());
|
||||
|
||||
return splitRepository.save(latestEntity);
|
||||
return chunkRepository.save(latestEntity);
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
log.error("无法处理乐观锁冲突: {}", ex.getMessage(), ex);
|
||||
@@ -196,39 +196,39 @@ public class SplitRestService extends BaseRestServiceWithExcel<SplitEntity, Spli
|
||||
public void deleteByDocList(List<String> docIdList) {
|
||||
// 遍历 docIdList
|
||||
for (String docId : docIdList) {
|
||||
// 查找 docId 对应的所有 split
|
||||
Optional<SplitEntity> splitList = splitRepository.findByDocId(docId);
|
||||
// 查找 docId 对应的所有 chunk
|
||||
Optional<ChunkEntity> chunkList = chunkRepository.findByDocId(docId);
|
||||
// 删除
|
||||
splitList.ifPresent(split -> {
|
||||
split.setDeleted(true);
|
||||
save(split);
|
||||
chunkList.ifPresent(chunk -> {
|
||||
chunk.setDeleted(true);
|
||||
save(chunk);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteByUid(String uid) {
|
||||
Optional<SplitEntity> optional = splitRepository.findByUid(uid);
|
||||
Optional<ChunkEntity> optional = chunkRepository.findByUid(uid);
|
||||
if (optional.isPresent()) {
|
||||
optional.get().setDeleted(true);
|
||||
save(optional.get());
|
||||
} else {
|
||||
throw new RuntimeException("Split not found");
|
||||
throw new RuntimeException("Chunk not found");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void delete(SplitRequest request) {
|
||||
public void delete(ChunkRequest request) {
|
||||
deleteByUid(request.getUid());
|
||||
}
|
||||
|
||||
@Override
|
||||
public SplitResponse convertToResponse(SplitEntity entity) {
|
||||
return modelMapper.map(entity, SplitResponse.class);
|
||||
public ChunkResponse convertToResponse(ChunkEntity entity) {
|
||||
return modelMapper.map(entity, ChunkResponse.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SplitExcel convertToExcel(SplitEntity split) {
|
||||
return modelMapper.map(split, SplitExcel.class);
|
||||
public ChunkExcel convertToExcel(ChunkEntity chunk) {
|
||||
return modelMapper.map(chunk, ChunkExcel.class);
|
||||
}
|
||||
}
|
||||
@@ -25,9 +25,9 @@ import jakarta.persistence.criteria.Predicate;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Slf4j
|
||||
public class SplitSpecification extends BaseSpecification {
|
||||
public class ChunkSpecification extends BaseSpecification {
|
||||
|
||||
public static Specification<SplitEntity> search(SplitRequest request) {
|
||||
public static Specification<ChunkEntity> search(ChunkRequest request) {
|
||||
log.info("request: {}", request);
|
||||
return (root, query, criteriaBuilder) -> {
|
||||
List<Predicate> predicates = new ArrayList<>();
|
||||
@@ -13,7 +13,7 @@
|
||||
*/
|
||||
package com.bytedesk.kbase.llm_chunk;
|
||||
|
||||
public enum SplitStatusEnum {
|
||||
public enum ChunkStatusEnum {
|
||||
NEW,
|
||||
PROCESSING,
|
||||
SUCCESS,
|
||||
@@ -13,7 +13,7 @@
|
||||
*/
|
||||
package com.bytedesk.kbase.llm_chunk;
|
||||
|
||||
public enum SplitTypeEnum {
|
||||
public enum ChunkTypeEnum {
|
||||
TEXT,
|
||||
FILE,
|
||||
WEBSITE,
|
||||
@@ -15,22 +15,22 @@ package com.bytedesk.kbase.llm_chunk.event;
|
||||
|
||||
import org.springframework.context.ApplicationEvent;
|
||||
|
||||
import com.bytedesk.kbase.llm_chunk.SplitEntity;
|
||||
import com.bytedesk.kbase.llm_chunk.ChunkEntity;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class SplitCreateEvent extends ApplicationEvent {
|
||||
public class ChunkCreateEvent extends ApplicationEvent {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private SplitEntity split;
|
||||
private ChunkEntity chunk;
|
||||
|
||||
public SplitCreateEvent(SplitEntity split) {
|
||||
super(split);
|
||||
this.split = split;
|
||||
public ChunkCreateEvent(ChunkEntity chunk) {
|
||||
super(chunk);
|
||||
this.chunk = chunk;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -15,21 +15,21 @@ package com.bytedesk.kbase.llm_chunk.event;
|
||||
|
||||
import org.springframework.context.ApplicationEvent;
|
||||
|
||||
import com.bytedesk.kbase.llm_chunk.SplitEntity;
|
||||
import com.bytedesk.kbase.llm_chunk.ChunkEntity;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class SplitDeleteEvent extends ApplicationEvent {
|
||||
public class ChunkDeleteEvent extends ApplicationEvent {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private SplitEntity split;
|
||||
private ChunkEntity chunk;
|
||||
|
||||
public SplitDeleteEvent(SplitEntity split) {
|
||||
super(split);
|
||||
this.split = split;
|
||||
public ChunkDeleteEvent(ChunkEntity chunk) {
|
||||
super(chunk);
|
||||
this.chunk = chunk;
|
||||
}
|
||||
}
|
||||
@@ -15,22 +15,22 @@ package com.bytedesk.kbase.llm_chunk.event;
|
||||
|
||||
import org.springframework.context.ApplicationEvent;
|
||||
|
||||
import com.bytedesk.kbase.llm_chunk.SplitEntity;
|
||||
import com.bytedesk.kbase.llm_chunk.ChunkEntity;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class SplitUpdateDocEvent extends ApplicationEvent {
|
||||
public class ChunkUpdateDocEvent extends ApplicationEvent {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private SplitEntity split;
|
||||
private ChunkEntity chunk;
|
||||
|
||||
public SplitUpdateDocEvent(SplitEntity split) {
|
||||
super(split);
|
||||
this.split = split;
|
||||
public ChunkUpdateDocEvent(ChunkEntity chunk) {
|
||||
super(chunk);
|
||||
this.chunk = chunk;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -15,22 +15,22 @@ package com.bytedesk.kbase.llm_chunk.event;
|
||||
|
||||
import org.springframework.context.ApplicationEvent;
|
||||
|
||||
import com.bytedesk.kbase.llm_chunk.SplitEntity;
|
||||
import com.bytedesk.kbase.llm_chunk.ChunkEntity;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class SplitUpdateEvent extends ApplicationEvent {
|
||||
public class ChunkUpdateEvent extends ApplicationEvent {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private SplitEntity split;
|
||||
private ChunkEntity chunk;
|
||||
|
||||
public SplitUpdateEvent(SplitEntity split) {
|
||||
super(split);
|
||||
this.split = split;
|
||||
public ChunkUpdateEvent(ChunkEntity chunk) {
|
||||
super(chunk);
|
||||
this.chunk = chunk;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -2,7 +2,7 @@
|
||||
* @Author: jackning 270580156@qq.com
|
||||
* @Date: 2024-05-11 18:14:28
|
||||
* @LastEditors: jackning 270580156@qq.com
|
||||
* @LastEditTime: 2025-04-23 18:24:21
|
||||
* @LastEditTime: 2025-04-29 16:20:13
|
||||
* @Description: bytedesk.com https://github.com/Bytedesk/bytedesk
|
||||
* Please be aware of the BSL license restrictions before installing Bytedesk IM –
|
||||
* selling, reselling, or hosting Bytedesk IM as a service is a breach of the terms and automatically terminates your rights under the license.
|
||||
@@ -22,7 +22,7 @@ import com.bytedesk.core.constant.TypeConsts;
|
||||
import com.bytedesk.core.converter.StringListConverter;
|
||||
import com.bytedesk.core.upload.UploadEntity;
|
||||
import com.bytedesk.kbase.kbase.KbaseEntity;
|
||||
import com.bytedesk.kbase.llm_chunk.SplitStatusEnum;
|
||||
import com.bytedesk.kbase.llm_chunk.ChunkStatusEnum;
|
||||
|
||||
import jakarta.persistence.Column;
|
||||
import jakarta.persistence.Convert;
|
||||
@@ -88,25 +88,25 @@ public class FileEntity extends BaseEntity {
|
||||
@Column(name = "is_llm_qa_deleted")
|
||||
private boolean llmQaDeleted = false;
|
||||
|
||||
// 是否开启自动llm split切块
|
||||
// 是否开启自动llm Chunk切块
|
||||
@Builder.Default
|
||||
@Column(name = "is_auto_llm_split")
|
||||
private boolean autoLlmSplit = false;
|
||||
@Column(name = "is_auto_llm_Chunk")
|
||||
private boolean autoLlmChunk = false;
|
||||
|
||||
// 是否已经自动llm split切块
|
||||
// 是否已经自动llm Chunk切块
|
||||
@Builder.Default
|
||||
@Column(name = "is_llm_splitted")
|
||||
private boolean llmSplitted = false;
|
||||
@Column(name = "is_llm_Chunkted")
|
||||
private boolean llmChunkted = false;
|
||||
|
||||
// 是否开启自动删除llm split切块
|
||||
// 是否开启自动删除llm Chunk切块
|
||||
@Builder.Default
|
||||
@Column(name = "is_auto_delete_llm_split")
|
||||
private boolean autoDeleteLlmSplit = false;
|
||||
@Column(name = "is_auto_delete_llm_Chunk")
|
||||
private boolean autoDeleteLlmChunk = false;
|
||||
|
||||
// 是否已经删除llm split切块
|
||||
// 是否已经删除llm Chunk切块
|
||||
@Builder.Default
|
||||
@Column(name = "is_llm_split_deleted")
|
||||
private boolean llmSplitDeleted = false;
|
||||
@Column(name = "is_llm_Chunk_deleted")
|
||||
private boolean llmChunkDeleted = false;
|
||||
|
||||
// 有效开始日期
|
||||
@Builder.Default
|
||||
@@ -118,7 +118,7 @@ public class FileEntity extends BaseEntity {
|
||||
private LocalDateTime endDate = LocalDateTime.now().plusYears(100);
|
||||
|
||||
@Builder.Default
|
||||
private String status = SplitStatusEnum.NEW.name();
|
||||
private String status = ChunkStatusEnum.NEW.name();
|
||||
|
||||
private String categoryUid; // 所属分类
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* @Author: jackning 270580156@qq.com
|
||||
* @Date: 2025-02-25 09:44:18
|
||||
* @LastEditors: jackning 270580156@qq.com
|
||||
* @LastEditTime: 2025-04-23 18:04:53
|
||||
* @LastEditTime: 2025-04-29 16:20:45
|
||||
* @Description: bytedesk.com https://github.com/Bytedesk/bytedesk
|
||||
* Please be aware of the BSL license restrictions before installing Bytedesk IM –
|
||||
* selling, reselling, or hosting Bytedesk IM as a service is a breach of the terms and automatically terminates your rights under the license.
|
||||
@@ -48,7 +48,7 @@ public class FileEventListener {
|
||||
.fileName(upload.getFileName())
|
||||
.fileUrl(upload.getFileUrl())
|
||||
.autoGenerateLlmQa(extra.isAutoGenerateLlmQa())
|
||||
.autoLlmSplit(extra.isAutoLlmSplit())
|
||||
.autoLlmChunk(extra.isAutoLlmChunk())
|
||||
.categoryUid(upload.getCategoryUid())
|
||||
.kbUid(upload.getKbUid())
|
||||
.userUid(userProtobuf.getUid())
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* @Author: jackning 270580156@qq.com
|
||||
* @Date: 2024-05-11 18:26:04
|
||||
* @LastEditors: jackning 270580156@qq.com
|
||||
* @LastEditTime: 2025-04-23 18:22:29
|
||||
* @LastEditTime: 2025-04-29 16:20:17
|
||||
* @Description: bytedesk.com https://github.com/Bytedesk/bytedesk
|
||||
* Please be aware of the BSL license restrictions before installing Bytedesk IM –
|
||||
* selling, reselling, or hosting Bytedesk IM as a service is a breach of the terms and automatically terminates your rights under the license.
|
||||
@@ -18,7 +18,7 @@ import java.util.List;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import com.bytedesk.core.base.BaseRequest;
|
||||
import com.bytedesk.kbase.llm_chunk.SplitStatusEnum;
|
||||
import com.bytedesk.kbase.llm_chunk.ChunkStatusEnum;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
@@ -63,21 +63,21 @@ public class FileRequest extends BaseRequest {
|
||||
@Builder.Default
|
||||
private Boolean llmQaDeleted = false;
|
||||
|
||||
// 是否开启自动llm split切块
|
||||
// 是否开启自动llm Chunk切块
|
||||
@Builder.Default
|
||||
private Boolean autoLlmSplit = false;
|
||||
private Boolean autoLlmChunk = false;
|
||||
|
||||
// 是否已经自动llm split切块
|
||||
// 是否已经自动llm Chunk切块
|
||||
@Builder.Default
|
||||
private Boolean llmSplitted = false;
|
||||
private Boolean llmChunkted = false;
|
||||
|
||||
// 是否开启自动删除llm split切块
|
||||
// 是否开启自动删除llm Chunk切块
|
||||
@Builder.Default
|
||||
private Boolean autoDeleteLlmSplit = false;
|
||||
private Boolean autoDeleteLlmChunk = false;
|
||||
|
||||
// 是否已经删除llm split切块
|
||||
// 是否已经删除llm Chunk切块
|
||||
@Builder.Default
|
||||
private Boolean llmSplitDeleted = false;
|
||||
private Boolean llmChunkDeleted = false;
|
||||
|
||||
// 有效开始日期
|
||||
@Builder.Default
|
||||
@@ -89,7 +89,7 @@ public class FileRequest extends BaseRequest {
|
||||
private LocalDateTime endDate = LocalDateTime.now().plusYears(100);
|
||||
|
||||
@Builder.Default
|
||||
private String status = SplitStatusEnum.NEW.name();
|
||||
private String status = ChunkStatusEnum.NEW.name();
|
||||
|
||||
// 所属分类
|
||||
private String categoryUid;
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* @Author: jackning 270580156@qq.com
|
||||
* @Date: 2025-04-23 16:59:08
|
||||
* @LastEditors: jackning 270580156@qq.com
|
||||
* @LastEditTime: 2025-04-23 17:02:46
|
||||
* @LastEditTime: 2025-04-29 16:21:02
|
||||
* @Description: bytedesk.com https://github.com/Bytedesk/bytedesk
|
||||
* Please be aware of the BSL license restrictions before installing Bytedesk IM –
|
||||
* selling, reselling, or hosting Bytedesk IM as a service is a breach of the terms and automatically terminates your rights under the license.
|
||||
@@ -33,7 +33,7 @@ public class FileUploadExtra implements Serializable {
|
||||
private String autoGenerateLlmQa;
|
||||
|
||||
// 使用 "true" 或 "false" 来表示布尔值
|
||||
private String autoLlmSplit;
|
||||
private String autoLlmChunk;
|
||||
|
||||
// 转换为布尔值
|
||||
public boolean isAutoGenerateLlmQa() {
|
||||
@@ -41,8 +41,8 @@ public class FileUploadExtra implements Serializable {
|
||||
}
|
||||
|
||||
// 转换为布尔值
|
||||
public boolean isAutoLlmSplit() {
|
||||
return Boolean.parseBoolean(autoLlmSplit);
|
||||
public boolean isAutoLlmChunk() {
|
||||
return Boolean.parseBoolean(autoLlmChunk);
|
||||
}
|
||||
|
||||
// fromJson
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
|
||||
@NonNullApi
|
||||
package com.bytedesk.kbase.llm_file;
|
||||
|
||||
import org.springframework.lang.NonNullApi;
|
||||
@@ -21,7 +21,7 @@ import com.bytedesk.core.base.BaseEntity;
|
||||
import com.bytedesk.core.constant.TypeConsts;
|
||||
import com.bytedesk.core.converter.StringListConverter;
|
||||
import com.bytedesk.kbase.kbase.KbaseEntity;
|
||||
import com.bytedesk.kbase.llm_chunk.SplitStatusEnum;
|
||||
import com.bytedesk.kbase.llm_chunk.ChunkStatusEnum;
|
||||
import com.bytedesk.core.message.MessageTypeEnum;
|
||||
|
||||
import jakarta.persistence.Column;
|
||||
@@ -61,7 +61,7 @@ public class TextEntity extends BaseEntity {
|
||||
private String type = MessageTypeEnum.TEXT.name();
|
||||
|
||||
@Builder.Default
|
||||
private String status = SplitStatusEnum.NEW.name();
|
||||
private String status = ChunkStatusEnum.NEW.name();
|
||||
|
||||
@Builder.Default
|
||||
@Convert(converter = StringListConverter.class)
|
||||
@@ -93,25 +93,25 @@ public class TextEntity extends BaseEntity {
|
||||
@Column(name = "is_llm_qa_deleted")
|
||||
private boolean llmQaDeleted = false;
|
||||
|
||||
// 是否开启自动llm split切块
|
||||
// 是否开启自动llm Chunk切块
|
||||
@Builder.Default
|
||||
@Column(name = "is_auto_llm_split")
|
||||
private boolean autoLlmSplit = false;
|
||||
@Column(name = "is_auto_llm_Chunk")
|
||||
private boolean autoLlmChunk = false;
|
||||
|
||||
// 是否已经自动llm split切块
|
||||
// 是否已经自动llm Chunk切块
|
||||
@Builder.Default
|
||||
@Column(name = "is_llm_splitted")
|
||||
private boolean llmSplitted = false;
|
||||
@Column(name = "is_llm_Chunkted")
|
||||
private boolean llmChunkted = false;
|
||||
|
||||
// is auto delete llm split
|
||||
// is auto delete llm Chunk
|
||||
@Builder.Default
|
||||
@Column(name = "is_auto_delete_llm_split")
|
||||
private boolean autoDeleteLlmSplit = false;
|
||||
@Column(name = "is_auto_delete_llm_Chunk")
|
||||
private boolean autoDeleteLlmChunk = false;
|
||||
|
||||
// 是否已经删除llm split切块
|
||||
// 是否已经删除llm Chunk切块
|
||||
@Builder.Default
|
||||
@Column(name = "is_llm_split_deleted")
|
||||
private boolean llmSplitDeleted = false;
|
||||
@Column(name = "is_llm_Chunk_deleted")
|
||||
private boolean llmChunkDeleted = false;
|
||||
|
||||
// 有效开始日期
|
||||
@Builder.Default
|
||||
|
||||
@@ -18,7 +18,7 @@ import java.util.List;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import com.bytedesk.core.base.BaseRequest;
|
||||
import com.bytedesk.kbase.llm_chunk.SplitStatusEnum;
|
||||
import com.bytedesk.kbase.llm_chunk.ChunkStatusEnum;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
@@ -66,21 +66,21 @@ public class TextRequest extends BaseRequest {
|
||||
@Builder.Default
|
||||
private Boolean llmQaDeleted = false;
|
||||
|
||||
// 是否开启自动llm split切块
|
||||
// 是否开启自动llm Chunk切块
|
||||
@Builder.Default
|
||||
private Boolean autoLlmSplit = false;
|
||||
private Boolean autoLlmChunk = false;
|
||||
|
||||
// 是否已经自动llm split切块
|
||||
// 是否已经自动llm Chunk切块
|
||||
@Builder.Default
|
||||
private Boolean llmSplitted = false;
|
||||
private Boolean llmChunkted = false;
|
||||
|
||||
// 是否开启自动删除llm split切块
|
||||
// 是否开启自动删除llm Chunk切块
|
||||
@Builder.Default
|
||||
private Boolean autoDeleteLlmSplit = false;
|
||||
private Boolean autoDeleteLlmChunk = false;
|
||||
|
||||
// 是否已经删除llm split切块
|
||||
// 是否已经删除llm Chunk切块
|
||||
@Builder.Default
|
||||
private Boolean llmSplitDeleted = false;
|
||||
private Boolean llmChunkDeleted = false;
|
||||
|
||||
// 有效开始日期
|
||||
@Builder.Default
|
||||
@@ -92,7 +92,7 @@ public class TextRequest extends BaseRequest {
|
||||
private LocalDateTime endDate = LocalDateTime.now().plusYears(100);
|
||||
|
||||
@Builder.Default
|
||||
private String status = SplitStatusEnum.NEW.name();
|
||||
private String status = ChunkStatusEnum.NEW.name();
|
||||
|
||||
private String categoryUid; // 所属分类
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* @Author: jackning 270580156@qq.com
|
||||
* @Date: 2024-05-11 18:26:12
|
||||
* @LastEditors: jackning 270580156@qq.com
|
||||
* @LastEditTime: 2025-04-23 17:13:45
|
||||
* @LastEditTime: 2025-04-29 16:20:27
|
||||
* @Description: bytedesk.com https://github.com/Bytedesk/bytedesk
|
||||
* Please be aware of the BSL license restrictions before installing Bytedesk IM –
|
||||
* selling, reselling, or hosting Bytedesk IM as a service is a breach of the terms and automatically terminates your rights under the license.
|
||||
@@ -18,7 +18,7 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.bytedesk.core.base.BaseResponse;
|
||||
import com.bytedesk.kbase.llm_chunk.SplitStatusEnum;
|
||||
import com.bytedesk.kbase.llm_chunk.ChunkStatusEnum;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
@@ -61,20 +61,20 @@ public class TextResponse extends BaseResponse {
|
||||
// 是否已经删除llm问答
|
||||
private Boolean llmQaDeleted;
|
||||
|
||||
// 是否开启自动llm split切块
|
||||
private Boolean autoLlmSplit;
|
||||
// 是否开启自动llm Chunk切块
|
||||
private Boolean autoLlmChunk;
|
||||
|
||||
// 是否已经自动llm split切块
|
||||
private Boolean llmSplitted;
|
||||
// 是否已经自动llm Chunk切块
|
||||
private Boolean llmChunkted;
|
||||
|
||||
// 是否开启自动删除llm split切块
|
||||
private Boolean autoDeleteLlmSplit;
|
||||
// 是否开启自动删除llm Chunk切块
|
||||
private Boolean autoDeleteLlmChunk;
|
||||
|
||||
// 是否已经删除llm split切块
|
||||
private Boolean llmSplittedDeleted;
|
||||
// 是否已经删除llm Chunk切块
|
||||
private Boolean llmChunktedDeleted;
|
||||
|
||||
@Builder.Default
|
||||
private String status = SplitStatusEnum.NEW.name();
|
||||
private String status = ChunkStatusEnum.NEW.name();
|
||||
|
||||
private String categoryUid; // 所属分类
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
|
||||
@NonNullApi
|
||||
package com.bytedesk.kbase.llm_text;
|
||||
|
||||
import org.springframework.lang.NonNullApi;
|
||||
@@ -2,7 +2,7 @@
|
||||
* @Author: jackning 270580156@qq.com
|
||||
* @Date: 2024-05-11 18:14:28
|
||||
* @LastEditors: jackning 270580156@qq.com
|
||||
* @LastEditTime: 2025-04-23 18:32:26
|
||||
* @LastEditTime: 2025-04-29 16:20:31
|
||||
* @Description: bytedesk.com https://github.com/Bytedesk/bytedesk
|
||||
* Please be aware of the BSL license restrictions before installing Bytedesk IM –
|
||||
* selling, reselling, or hosting Bytedesk IM as a service is a breach of the terms and automatically terminates your rights under the license.
|
||||
@@ -21,7 +21,7 @@ import com.bytedesk.core.base.BaseEntity;
|
||||
import com.bytedesk.core.constant.TypeConsts;
|
||||
import com.bytedesk.core.converter.StringListConverter;
|
||||
import com.bytedesk.kbase.kbase.KbaseEntity;
|
||||
import com.bytedesk.kbase.llm_chunk.SplitStatusEnum;
|
||||
import com.bytedesk.kbase.llm_chunk.ChunkStatusEnum;
|
||||
|
||||
import jakarta.persistence.Column;
|
||||
import jakarta.persistence.Convert;
|
||||
@@ -67,7 +67,7 @@ public class WebsiteEntity extends BaseEntity {
|
||||
// private String type = MessageTypeEnum.TEXT.name();
|
||||
|
||||
@Builder.Default
|
||||
private String status = SplitStatusEnum.NEW.name();
|
||||
private String status = ChunkStatusEnum.NEW.name();
|
||||
|
||||
@Builder.Default
|
||||
@Convert(converter = StringListConverter.class)
|
||||
@@ -99,25 +99,25 @@ public class WebsiteEntity extends BaseEntity {
|
||||
@Column(name = "is_llm_qa_deleted")
|
||||
private boolean llmQaDeleted = false;
|
||||
|
||||
// 是否开启自动llm split切块
|
||||
// 是否开启自动llm Chunk切块
|
||||
@Builder.Default
|
||||
@Column(name = "is_auto_llm_split")
|
||||
private boolean autoLlmSplit = false;
|
||||
@Column(name = "is_auto_llm_Chunk")
|
||||
private boolean autoLlmChunk = false;
|
||||
|
||||
// 是否已经自动llm split切块
|
||||
// 是否已经自动llm Chunk切块
|
||||
@Builder.Default
|
||||
@Column(name = "is_llm_splitted")
|
||||
private boolean llmSplitted = false;
|
||||
@Column(name = "is_llm_Chunkted")
|
||||
private boolean llmChunkted = false;
|
||||
|
||||
// is auto delete llm split
|
||||
// is auto delete llm Chunk
|
||||
@Builder.Default
|
||||
@Column(name = "is_auto_delete_llm_split")
|
||||
private boolean autoDeleteLlmSplit = false;
|
||||
@Column(name = "is_auto_delete_llm_Chunk")
|
||||
private boolean autoDeleteLlmChunk = false;
|
||||
|
||||
// 是否已经删除llm split切块
|
||||
// 是否已经删除llm Chunk切块
|
||||
@Builder.Default
|
||||
@Column(name = "is_llm_split_deleted")
|
||||
private boolean llmSplitDeleted = false;
|
||||
@Column(name = "is_llm_Chunk_deleted")
|
||||
private boolean llmChunkDeleted = false;
|
||||
|
||||
// 有效开始日期
|
||||
@Builder.Default
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
|
||||
@NonNullApi
|
||||
package com.bytedesk.kbase.llm_website;
|
||||
|
||||
import org.springframework.lang.NonNullApi;
|
||||
@@ -0,0 +1,5 @@
|
||||
|
||||
@NonNullApi
|
||||
package com.bytedesk.kbase.quick_reply;
|
||||
|
||||
import org.springframework.lang.NonNullApi;
|
||||
@@ -2,7 +2,7 @@
|
||||
* @Author: jackning 270580156@qq.com
|
||||
* @Date: 2024-01-29 16:17:36
|
||||
* @LastEditors: jackning 270580156@qq.com
|
||||
* @LastEditTime: 2025-04-16 18:09:49
|
||||
* @LastEditTime: 2025-04-29 15:52:59
|
||||
* @Description: bytedesk.com https://github.com/Bytedesk/bytedesk
|
||||
* Please be aware of the BSL license restrictions before installing Bytedesk IM –
|
||||
* selling, reselling, or hosting Bytedesk IM as a service is a breach of the terms and automatically terminates your rights under the license.
|
||||
@@ -240,7 +240,7 @@ public class PageRouteController {
|
||||
/**
|
||||
* visitor
|
||||
* 访客对话窗口
|
||||
* http://127.0.0.1:9003/chat
|
||||
* http://127.0.0.1:9003/chat/
|
||||
*/
|
||||
@GetMapping({
|
||||
"/chat",
|
||||
|
||||
Reference in New Issue
Block a user