有赞文档处理 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 |
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
Release history Release notifications | RSS feed
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)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
yz_doc-0.1.2-py3-none-any.whl
(35.4 kB
view details)
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7e5b3c263906e13154433c91e551c9e80aa2b35bf1fdfb76164b023585a3aa61
|
|
| MD5 |
3ba1e32e3c29862c3ffe8ce7d1e8cf34
|
|
| BLAKE2b-256 |
9023f4e22ed082d77c3fae11b1a747588278076553b302dc13d073aa06fd0c94
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7fa0073356be4617bbced566f6d5599b3a0ce142a63ab76b118dddaa33cf8207
|
|
| MD5 |
997c2d68dd56637e301415ddb231327b
|
|
| BLAKE2b-256 |
eb4b9e83d8d4476a8631948215d5d6bfbac7800ddc5abbb032cff364831d3257
|