- 添加多种文档解析器 (PDF, Word, Excel, Markdown 等) - 添加基础解析器和链式解析器 - 添加存储和注册机制 - 添加 gRPC 服务实现 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
29 lines
884 B
Python
29 lines
884 B
Python
import base64
|
|
import logging
|
|
import os
|
|
|
|
from docreader.models.document import Document
|
|
from docreader.parser.base_parser import BaseParser
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
class ImageParser(BaseParser):
|
|
"""Parser for standalone image files.
|
|
|
|
Returns the image as a markdown reference with the raw image data
|
|
in Document.images so that the Go-side ImageResolver (or main.py's
|
|
_resolve_images) can handle storage upload.
|
|
"""
|
|
|
|
def parse_into_text(self, content: bytes) -> Document:
|
|
logger.info("Parsing image file=%s, size=%d bytes", self.file_name, len(content))
|
|
|
|
ext = os.path.splitext(self.file_name)[1].lower() or ".png"
|
|
ref_path = f"images/{self.file_name}"
|
|
|
|
text = f""
|
|
images = {ref_path: base64.b64encode(content).decode()}
|
|
|
|
return Document(content=text, images=images)
|