SuperAPI AI 工具集

syncfusion-dotnet-document-chunking

数据与分析

查看项目

更新于 10-16 14:07

技能介绍

该技能用于为 RAG(检索增强生成)和向量索引场景生成结构感知的文档分块代码。

【用途】 使用 Syncfusion Document Chunking 库,将 Word、PDF、PowerPoint、Excel 和 Markdown 文档切分为受令牌数量约束、且保持文档结构的分块,供嵌入与向量索引使用。该技能为用户项目生成 C# 代码,本身不执行 CSX 脚本,也不代替用户产出分块结果文件。

【主要能力】

  • 多格式分块:Word(.doc/.docx)、PDF(.pdf)、PowerPoint(.ppt/.pptx/.pptm/.potx)、Excel(.xlsx/.xls/.xlsm/.xlsb)、Markdown(.md/.markdown)。
  • API:支持路径与流输入,支持同步与异步(Chunk / ChunkAsync)并带取消功能。
  • 选项:MaxTokens、OverlapTokens、IncludeMetadata、IncludeCitation、自定义 ITokenCounter,以及按格式的 SourceOptions。
  • 格式模式:Auto 以及 page、paragraph、heading、worksheet、slide、notes、table、section 等格式粒度。
  • RAG 溯源:确定性的 ChunkId / SourceDocumentId,引用 DisplayText 与 LocationDetails。
  • 校验:对无效选项、不支持的扩展名、流 sourceName 缺少扩展名等情况抛出明确的异常。

【使用方式】 命名空间为 Syncfusion.DocumentChunking,入口点为实现 IChunkingService 的 ChunkingService。技能工作流为: 第一步,检测应用类型并推荐正确的 NuGet 包:检查工作区项目文件(.csproj、web.config、App.config、Startup.cs、Program.cs 等),依据 references/nuget-packages.md 中的检测信号表识别应用类型,并从该文件查找正确的包,提示用户先安装再生成代码。 第二步,仅从参考文件生成代码:不得臆造参考文件中不存在的 API、方法、属性、类或命名空间;读取所需功能对应的 references/*.md 文件,严格依据其中的 API 与代码片段构建 C# 代码。Windows 专用 / .NET Framework 应用使用面向 Framework 的包与说明;跨平台应用(ASP.NET Core、.NET Core/.NET 5+ 控制台、Blazor、MAUI)使用 Syncfusion.DocumentChunking.Net.Core 代码片段。不创建、不运行、不建议 .csx 脚本;不代替用户执行分块或写出结果文件。

【适用场景】 当用户希望查看、编写、审查、重构、集成或学习与文档分块相关的 C# 代码时适用,常见触发词包括 code、snippet、how to、Program.cs、show me、sample、example、NuGet、add to project、integrate、implementation、API example、ChunkingService、ChunkingOptions、IChunk、RAG indexing code,以及 ASP.NET、Blazor、WPF、WinForms、MAUI、控制台应用等。示例:用户询问“如何以 page 模式为 RAG 切分 PDF”,结果为用户项目生成 C# 代码片段(不创建文件,不执行脚本)。

【前置条件】 .NET SDK 8+(或所选 NuGet 包支持的合适目标);Syncfusion 许可证。

【限制与注意事项】

  • 仅生成代码,不创建或运行 CSX/临时脚本,不代替用户执行分块。
  • 不得臆造 references/*.md 中不存在的 API。
  • 不应使用 Python 库(如 langchain 文本分割器、pypdf)完成此类任务,应使用 Syncfusion Document Chunking。
  • 交付时需提醒用户在其宿主应用中注册 Syncfusion 许可证。
  • 常见错误:流 sourceName 缺扩展名(如 "report")会触发 NotSupportedException 或路由失败,应使用 "report.pdf" 或 Path.GetFileName(path);IncludeCitation = true 且 IncludeMetadata = false 会触发 ArgumentException,启用引用时必须同时启用元数据;OverlapTokens >= MaxTokens 会触发 ArgumentException,重叠必须严格小于最大值;MaxTokens <= 0 或负重叠会触发 ArgumentOutOfRangeException,需 MaxTokens > 0、OverlapTokens >= 0;不支持的扩展名(.txt、.html 等)会触发 NotSupportedException;SourceOptions 类型与文件不匹配会导致模式被忽略并使用 Auto;默认计数器与模型分词器的差异会导致分块大小不符,应为目标分词器实现 ITokenCounter。

【代码参考文件】 references/ 目录下提供:nuget-packages.md(按应用类型的 NuGet 包映射)、getting-started.md(安装、最小路径/流/异步示例、默认值)、api-reference.md(IChunkingService、结果/分块/元数据/引用、令牌计数器)、chunking-options.md(MaxTokens、重叠、标志、校验、SourceOptions)、format-modes.md(各格式模式枚举与指引)、supported-formats.md(扩展名表、路径与流路由、sourceName 规则)、metadata-and-citations.md(标志矩阵、位置键、DisplayText、确定性 ID)、examples.md(各格式可复制模式与索引循环)、troubleshooting.md(异常目录、常见错误、RAG 检查清单)。