Skip to main content

有赞文档处理 SDK - 支持多格式文档加载与切分

Project description

YZ-Doc

有赞文档处理 SDK - 支持多格式文档加载与智能切分

安装

pip install yz-doc

快速开始

from yz_doc import YZDoc

# 创建文档处理器
doc_processor = YZDoc()

# 加载文档
doc = doc_processor.load("path/to/file.md")

# 切分文档
chunks = doc_processor.split(doc, chunk_size=500, chunk_overlap=100)

# 查看结果
for chunk in chunks:
    print(f"Chunk {chunk.index}: {chunk.content[:100]}...")

支持的文档格式

格式 扩展名 加载器 说明
文本 .txt LangChain 支持本地和URL
Markdown .md, .markdown LangChain 支持本地和URL
Excel .xlsx, .xls LangChain 仅支持本地文件
PDF .pdf AIGC 仅支持URL
Word .doc, .docx AIGC 仅支持URL
图片 .png, .jpg, .jpeg, .gif, .bmp, .webp, .jp2 AIGC 仅支持URL
飞书文档 飞书URL Feishu 需配置飞书应用

使用示例

1. 加载本地文件

from yz_doc import YZDoc

doc_processor = YZDoc()

# Markdown 文件
doc = doc_processor.load("README.md")
print(f"内容: {doc.content[:200]}...")

# Excel 文件
doc = doc_processor.load("data.xlsx")

2. 加载网络文件

doc = doc_processor.load("https://img.yzcdn.cn/upload_files/2025/12/31/image.jpg")

3. 加载飞书文档

# 基础配置(不处理图片)
doc_processor = YZDoc(
    loader_config={
        "feishu": {
            "app_id": "your_app_id",
            "app_secret": "your_app_secret",
        }
    }
)

# 加载飞书文档
doc = doc_processor.load("https://youzan.feishu.cn/wiki/xxx")

处理飞书文档中的图片

如果需要下载并上传飞书文档中的图片到 CDN,需要额外配置:

doc_processor = YZDoc(
    loader_config={
        "feishu": {
            "app_id": "your_app_id",
            "app_secret": "your_app_secret",
            "download_images": True,  # 启用图片下载
            "cdn": {
                "operator_id": 123456,  # 操作员ID
                "channel": "your_channel",  # 渠道
                "operator_type": 1,  # 操作员类型(可选,默认1)
                "from_app": "your_app",  # 来源应用(可选)
                "max_size": 10485760,  # 最大文件大小(可选,默认10MB)
            }
        }
    }
)

# 加载飞书文档,图片会自动下载并上传到七牛云
doc = doc_processor.load("https://youzan.feishu.cn/wiki/xxx")

4. 切分文档

# 文本切分
chunks = doc_processor.split(
    doc,
    splitter_type="text",
    chunk_size=500,
    chunk_overlap=100
)

# Markdown 按标题切分
chunks = doc_processor.split(
    doc,
    splitter_type="markdown",
    chunk_size=500,
    chunk_overlap=100
)

# 查看切片信息
for chunk in chunks:
    print(f"Chunk {chunk.index}: {len(chunk.content)} 字符")

5. 一站式处理

# 直接加载并切分
chunks = doc_processor.process(
    "file.md",
    splitter_type="text",
    chunk_size=500,
    chunk_overlap=100
)

print(f"共切分为 {len(chunks)} 个片段")

文档对象

doc.doc_id        # 文档唯一 ID
doc.content       # 文档内容
doc.doc_type      # 文档类型
doc.source        # 来源路径或 URL
doc.metadata      # 元数据字典
doc.created_at    # 创建时间

切片对象

chunk.chunk_id      # 切片唯一 ID
chunk.content       # 切片内容
chunk.doc_id        # 所属文档 ID
chunk.index         # 在文档中的索引
chunk.metadata      # 元数据字典

测试

# 运行所有测试
pytest tests/ -v

# 运行特定测试
pytest tests/test_langchain.py -v -s
pytest tests/test_aigc.py -v -s
pytest tests/test_feishu.py -v -s

YZ-Doc - 让文档处理更简单 🚀

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

yz_doc-0.1.2.tar.gz (31.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

yz_doc-0.1.2-py3-none-any.whl (35.4 kB view details)

Uploaded Python 3

File details

Details for the file yz_doc-0.1.2.tar.gz.

File metadata

  • Download URL: yz_doc-0.1.2.tar.gz
  • Upload date:
  • Size: 31.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for yz_doc-0.1.2.tar.gz
Algorithm Hash digest
SHA256 7e5b3c263906e13154433c91e551c9e80aa2b35bf1fdfb76164b023585a3aa61
MD5 3ba1e32e3c29862c3ffe8ce7d1e8cf34
BLAKE2b-256 9023f4e22ed082d77c3fae11b1a747588278076553b302dc13d073aa06fd0c94

See more details on using hashes here.

File details

Details for the file yz_doc-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: yz_doc-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 35.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for yz_doc-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7fa0073356be4617bbced566f6d5599b3a0ce142a63ab76b118dddaa33cf8207
MD5 997c2d68dd56637e301415ddb231327b
BLAKE2b-256 eb4b9e83d8d4476a8631948215d5d6bfbac7800ddc5abbb032cff364831d3257

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page