Class OcrEventListener

java.lang.Object
com.bytedesk.ai.ocr.OcrEventListener

@Component public class OcrEventListener extends Object
  • Field Details

  • Constructor Details

    • OcrEventListener

      public OcrEventListener()
  • Method Details

    • onUploadCreateEvent

      @EventListener @Async public void onUploadCreateEvent(UploadCreateEvent event)
      监听上传创建事件,判断是否图片类型,进行OCR识别
      Parameters:
      event - 上传创建事件
    • isImageFile

      private boolean isImageFile(UploadEntity upload)
      判断是否为图片文件
      Parameters:
      upload - 上传实体
      Returns:
      是否为图片文件
    • processOcrResultToChunks

      private void processOcrResultToChunks(String extractedText, UploadEntity upload)
      处理OCR结果,将提取的文字转换为Documents并存储到chunks
      Parameters:
      extractedText - OCR提取的文字
      upload - 上传实体
    • findOrCreateFileRecord

      private FileResponse findOrCreateFileRecord(UploadEntity upload, String extractedText)
      查找或创建文件记录
    • convertTextToDocuments

      private List<org.springframework.ai.document.Document> convertTextToDocuments(String extractedText, UploadEntity upload)
      将OCR提取的文字转换为Document列表
    • simpleTextSplit

      private List<org.springframework.ai.document.Document> simpleTextSplit(String text, Map<String,Object> metadata)
      简单的文字分割方法(fallback)
    • cleanOcrText

      private String cleanOcrText(String text)
      清理OCR文字
    • createChunksFromDocuments

      private List<String> createChunksFromDocuments(List<org.springframework.ai.document.Document> documents, FileResponse fileResponse)
      从Documents创建Chunk记录
    • isValidOcrContent

      private boolean isValidOcrContent(String content)
      验证OCR内容是否有效
    • updateFileDocIdList

      private void updateFileDocIdList(String fileUid, List<String> chunkUids)
      更新文件记录的docIdList