网站打开空白 重启iis就好了开发一个网站需要多少钱
2026/5/13 23:44:39 网站建设 项目流程
网站打开空白 重启iis就好了,开发一个网站需要多少钱,大淘客联盟做网站,电子商务网站建设完整详细流程对于高专业性或企业级的知识问答应用#xff0c;RAGFlow是各个开发团队的常用框架#xff0c;它提供的工具链简化了从知识库搭建、向量检索到生成的RAG流水线开发。RAG这条务实的路径让LLM能实时查询私有知识库#xff0c;显著提升回答相关性和可控性#xff0c;避免直接调…对于高专业性或企业级的知识问答应用RAGFlow是各个开发团队的常用框架它提供的工具链简化了从知识库搭建、向量检索到生成的RAG流水线开发。RAG这条务实的路径让LLM能实时查询私有知识库显著提升回答相关性和可控性避免直接调用LLM产生的知识更新慢、回答不准或数据安全风险。构建健壮的RAG系统尤其是企业级应用涉及复杂组件集成与优化。如何在RAGFlow基础上实现性能优化也成为大家关注的课题。从RAG链路出发首要关键因素即是文档解析的质量。解析输出的数据是AI应用的“基础燃料”影响后续分块、检索和最终结果。而在应用RAGFlow框架时其自研的DeepDoc解析算法表现经常不尽如人意。如下图中对于同一份文件的连续两页目录DeepDoc将其中一页识别为正文另一页识别为表格这也导致了后续分块的错误。图1图2在实际使用中发现的解析问题还包括对学术论文等分栏文档内容顺序存在错乱如从左栏跳至右栏深度嵌套表格或跨页合并单元格导致数据结构丢失标题层级识别错乱模糊、倾斜或阴影干扰的扫描件OCR错误率较高书籍装订区附近的文字因弯曲变形无法识别为了优化解析效果避免文档中的关键信息在导入知识库时就发生损耗我们采用了自定义解析工具的策略。本文将说明文档解析工具的类型与适用性、TextIn的性能、在RAGFlow框架下使用自定义解析的方法、实战教程与完整代码。了解文档解析工具简单来说文档解析工具的核心任务是将非结构化文档如PDF、图片、扫描件中的文本、表格、图片等内容识别并提取出来转化为结构化数据以供机器处理和分析。从社区或商业化、使用方法上可以区分几种类型是否开源文档解析工具可分为开源和闭源两大类它们在开放性、可控性、成本和功能深度上存在着差异。开源工具如PyMuPDF、MinerU、Marker等商业化产品例如本文实战应用中使用的TextIn xParse。开源产品的优势在于1、最为显然的用户不需要支付软件许可费用。2、高透明度且可以根据自身需求自由修改、扩展源代码。3、活跃的开源社区可以贡献代码、修复漏洞、提供支持加速工具的发展和问题解决。另一方面其劣势主要体现在1、技术门槛高需要具备相当的开发、运维和系统集成能力才能有效部署、配置、定制和维护对非技术团队或资源有限的组织挑战较大。2、集成与维护负担用户需自行解决依赖关系、环境配置、版本升级、性能调优、安全补丁等运维工作耗费时间和人力。3、专业支持有限主要依赖社区支持响应速度和问题解决的专业性、保障性通常不如商业闭源产品的官方支持。4、特定场景功能不足针对特定行业场景例如复杂的财务表格、医疗报告结构化的预训练模型或精细化处理能力可能不如成熟的商业闭源产品。商业化产品的劣势在于使用成本与低透明度用户无法直接修改核心代码。而优势则包括1、开箱即用易于集成通常提供完善的前端界面、软件开发工具包SDK、清晰的文档和示例集成相对简单快捷使用技术门槛低。2、专业支持与服务提供专业的技术支持、问题响应、培训服务减轻用户运维负担。3、深度优化与特定功能厂商投入大量资源进行核心算法研发、模型训练尤其在特定领域如法律合同、医学文献、复杂表格识别和性能优化往往在精度、特定场景覆盖和功能深度上具备优势。4、持续更新与维护 专业厂商负责产品的迭代更新、功能增强、漏洞修复和性能优化用户无需操心底层技术细节。API调用 vs. 本地部署在使用方法这个维度主要有API调用和本地化部署两类特点如下API调用方法便于1、快速启动零运维 无需购置、配置和管理服务器基础设施注册账号、获取API密钥即可立即使用大幅缩短上线时间。2、持续获取最新能力 用户自动获得供应商发布的最新模型、功能和性能优化无需手动升级。3、降低初始投入 通常按需付费避免了前期高昂的硬件和软件许可投资。但同时风险项在于1、不符合部分企业的数据安全要求。2、解析速度和稳定性受网络状况影响。3、 API提供的是标准化的功能接口功能定制相对受限。本地部署模式能够保障1、数据安全与合规性 文档数据完全保留在用户自己的基础设施如私有云、数据中心内部处理最大程度降低数据风险更容易满足严格的合规和监管要求。2、性能与延迟可控 处理过程在本地网络进行不受公网质量影响通常延迟更低。对于超大文件或批处理本地资源更可控。而其劣势体现在1、高初始投入与运维负担 需采购、配置和维护服务器硬件、存储、网络以及软件环境包括可能的GPU资源需要专业的IT运维团队。2、部署复杂上线周期长 安装、配置、测试和优化本地部署的解决方案需要较长时间和专业知识。3、更新滞后 用户需要主动关注并手动执行版本升级来获取新功能和修复过程可能繁琐且存在兼容性风险。总体来说最佳选择往往取决于具体需求和资源情况。这一期RAGFlow实战演示中我们对复杂文档的解析精度有较高要求同时考虑调用便捷程度选择了TextIn xParse支持直接API调用。TextIn xParse聊一下为何选择TextIn。TextIn xParse文档解析是一款大模型友好的解析工具能够精准还原pdf、word、excel、ppt、图片等十余种格式的非结构化文件将其快速转换为Markdown或JSON格式返回同时包含精确的页面元素和坐标信息。支持识别文本、图像、表格、公式、手写体、表单字段、页眉页脚等各种元素并支持印章、二维码、条形码等子类型能满足绝大部分复杂文档的解析需求。根据官方文档核心能力包括多种版面元素高精度解析精准识别标题、公式、图表、手写体、印章、页眉页脚、跨页段落实现高精度坐标还原并捕捉版面元素间的语义关系提升大模型应用表现。行业领先的表格识别能力轻松解决合并单元格、跨页表格、无线表格、密集表格等识别难题。阅读顺序还原准理解、还原文档结构和元素排列确保阅读顺序的准确性支持多栏布局的论文、年报、业务报告等。自研文档树引擎基于语义提取段落embedding值预测标题层级关系通过构造文档树提高检索召回效果。支持多种扫描内容能良好处理各类图片与扫描文档包括手机照片、截屏等内容。支持多种语言支持简体中文/繁体中文/英文/数字/西欧主流语言/东欧主流语言等共50种语言。集成强大的图像处理能力文件带水印、图片有弯曲都能一键解决排除图像质量干扰。开发者友好提供清晰的API文档和灵活的集成方式包括MCP Server、Coze、Dify插件支持FastGPT、CherryStudio、Cursor等主流平台。实际的解析效果可以通过一些样本实测初步判断。对于不同的文档集文档解析工具的效果可能有所差异大家在调用之前也可在官网上用免费额度测一下自己的样本https://cc.co/16YSWs密集少线表格识别效果很好官网前端支持选中表格并在原图上显示模型预测的单元格TextIn这套前端工具已经开源了项目地址https://github.com/intsig-textin/textin-ocr-frontend。跨页表格合并效果好也能精准识别页眉页脚。多栏学术论文的阅读顺序还原很准确。对于没有精确数值标注的图表会通过测量给出预估数值这个功能对金融分析类工作会很有帮助。TextIn解析内置有图像处理算法能解决弯折、倾斜、阴影、模糊这些常见的图像质量问题。RAGFlowTextIn知识库构建方法要在RAG流程中实现自定义解析我们可以考虑两种方案便捷程度和效果有所差异下面具体讨论方法1解析后上传知识库较为简易的方案直接调用自定义解析接口解析完成后通过API导入RAGFlow知识库。可以在导入后使用RAGFlow分块策略也可自行完成Chunking后输入知识库。这种方法最大的好处在于简便快捷但由于RAGFlow的API导入有一定缺陷会产生上传信息不完整如缺少图片、位置信息、分块顺序紊乱等问题因而在知识库预览时也无法联动PDF源文件位置快速进行对应查看和校对。如下图3是解析后上传知识库的效果图图4是在RAGFlow框架内完成解析后的效果对比可以看到差异。图3图4因此该方案适合少量文件补充处理如果要建立更完善的知识库搭建全流程我们还需要另寻他法。方法2修改RAGFlow代码改变解析策略通过代码修改我们能从结构上改变解析策略也能够解决方法1中的不适配问题实现更彻底的流程搭建。下面我们来看具体的实战教程如何快速实现解析方法替换。1分钟实战教程1、启动服务测试的镜像版本为 infiniflow/ragflow:v0.20.1 docker compose -f docker-compose-gpu.yml up -d2、textin.com获取 app-id和secret-code信息3、替换镜像中的 /ragflow/rag/app/naive.py 文件 注意修改438行、439行的 x-ti-app-id 和 x-ti-secret-code完整代码文件地址https://dllf.textin.com/download/2025/CustomService/naive.pydocker cp naive.py ragflow-server:/ragflow/rag/app/naive.py4、重启服务docker compose restart进阶方案详解我们来详细解读方案逻辑。首先需要厘清Ragflow的解析分块过程。流程源码路径清单总览解析和分块代码分析以native分块策略调用DeepDOC解析PDF文件为例对应的源码路径为ragflow/rag/app/naive.py。首先调用PDF解析器classPdf(PdfParser): def__init__(self): def__call__(self, filename, binaryNone, from_page0, to_page100000, zoomin3, callbackNone, separate_tables_figuresFalse): start timer() first_start start callback(msgOCR started) # ocr识别 self.__images__( filename ifnot binary else binary, zoomin, from_page, to_page, callback ) callback(msgOCR finished ({:.2f}s).format(timer() - start)) start timer() # 布局分析 识别标题/段落等层级 self._layouts_rec(zoomin) callback(0.63, Layout analysis ({:.2f}s).format(timer() - start)) start timer() # 使用 transformer 进行表格检测与识别 self._table_transformer_job(zoomin) callback(0.65, Table analysis ({:.2f}s).format(timer() - start)) start timer() self._text_merge() callback(0.67, Text merged ({:.2f}s).format(timer() - start)) # 是否分离表格和图形 if separate_tables_figures: tbls, figures self._extract_table_figure(True, zoomin, True, True, True) self._concat_downward() logging.info(layouts cost: {}s.format(timer() - first_start)) # 返回文本块表格图形 return [(b[text], self._line_tag(b, zoomin)) for b in self.boxes], tbls, figures else: tbls self._extract_table_figure(True, zoomin, True, True) # self._naive_vertical_merge() self._concat_downward() # self._filter_forpages() logging.info(layouts cost: {}s.format(timer() - first_start)) return [(b[text], self._line_tag(b, zoomin)) for b in self.boxes], tblspdf解析器返回的数据结构后续将调用以下两个方法分别处理段落和表格的分块res tokenize_table(tables, doc, is_english)处理表格分块res.extend(tokenize_chunks_with_images(chunks, doc, is_english, images))处理文本段落分块分块逻辑位于ragflow/rag/nlp整体策略如下优先结构分块基于章节的层级关系如标题编号、目录结构划分文本。提取结构化标题作为内容边界实现更合理的语义组织。结构不足时退化为语义分块使用标点符如。切分内容。自动组合短句控制每块文本token数量接近预设值避免碎片或过长。图文与表格信息补充表格内容按行或批次合并为一个文本块。每个块附带原始图像PIL.Image及位置信息页码与坐标。文本块可拼接多个图像支持图文联合处理提升展示效果。chunk分块返回的数据结构通过分析解析分块过程只需要构造对应的数据结构和修改相应的代码就可以替换解析和分块。将DeepDoc解析替换为TextIn解析1、跳过版面分析修改文件/ragflow/rag/app/naive.py修改PDF类的call方法提前返回仅保留对images的调用。classPdf(PdfParser):def__init__(self):super().__init__()def__call__(self, filename, binaryNone, from_page0, to_page100000, zoomin3, callbackNone, separate_tables_figuresFalse): start timer() first_start start callback(msgOCR started) self.__images__( filename ifnot binary else binary, zoomin, from_page, to_page, callback ) callback(msgOCR finished ({:.2f}s).format(timer() - start)) logging.info(OCR({}~{}): {:.2f}s.format(from_page, to_page, timer() - start))return [], [] # 提前结束返回2、跳过OCR识别该操作会影响块保存的截图不影响定位到原文档也可不跳过修改文件/ragflow/deepdoc/parser/pdf_parser.py保留前面通过pypdf获取文本判断是否为英文文档的部分只跳过OCR识别。asyncdef__img_ocr(i, id, img, chars, limiter):return# 提前结束返回3、将解析部分替换为TextIn调用修改文件/ragflow/rag/app/naive.py修改chunk函数if layout_recognizer DeepDOC:分支下的代码。if layout_recognizer DeepDOC: pdf_parser Pdf()# 下面是替换的代码import jsonimport requests sections, tables pdf_parser(filename ifnot binary else binary, from_pagefrom_page, to_pageto_page, callbackcallback) headers {x-ti-app-id: ***,x-ti-secret-code: ***,Content-Type: application/octet-stream }# 这里不需要latex格式的公式formula_level设为2 result requests.post(https://api.textin.com/ai/service/v1/pdf_to_markdown, databinary, headersheaders, params {paratext_mode: none,formula_level: 2,page_start: from_page 1,page_count: to_page - from_page } ) json_data result.json() detail json_data.get(result, {}).get(detail, {}) sections[] tables[]for item in detail: page_id item.get(page_id) text item.get(text) text re.sub(r\*\*(.?)\*\*, r\1, text) # 去除加粗格式例如 **text** → text text re.sub(r\*(.?)\*, r\1, text) # 去除斜体格式例如 *text* → text text re.sub(r_(.?)_, r\1, text) # 去除下划线斜体格式例如 _text_ → text text re.sub(r!\[.*?\]\((.*?)\), , text) # 删除图片标记例如 ![alt](url) → 空type item.get(type) sub_type item.get(sub_type) position item.get(position) x0, y0, x1, y1 position[0]/2.0, position[1]/2.0, position[4]/2.0, position[5]/2.0# TextIn解析默认ppi 144, DeepDOC默认ppi 72iftype paragraph:if sub_type notin [text, text_title, table_title, sidebar]: # 按需保留需要的类型continue sections.append((text, f{page_id - from_page}\t{x0}\t{x1}\t{y0}\t{y1}##))eliftype table: text text.replace(br, ) # 按需处理文本这里移除表格单元格内的换行符 text text.replace(border1, ) tables.append(((None, text), [(page_id-1, x0, x1, y0, y1)])) callback(0.6, TextIn parsing)# 上面是替换的代码 res tokenize_table(tables, doc, is_english) callback(0.8, Finish parsing.)解析效果对比从知识库查看分块结果可以明显看出解析效果提升文本和表格识别准确率提高。DeepDoc解析分段结果TextIn解析分段结果如图可以看到DeepDoc将行间距较大的文本、小标题识别为表格这也影响了后续的分段。TextIn能够准确识别标题、段落使系统获得完整的结构信息实现更合理分段。DeepDoc解析分段结果TextIn解析分段结果如上图所示DeepDoc解析未能准确识别表格而表格是文档中数据密集的所在往往含有关键信息准确的表格识别对RAG问答性能有相当大的影响。TextIn解析后的分段实现了准确、完整的语义提取。写在最后RAG优化方案进一步探讨RAG系统的优化是一项环环相扣的工程。优质的文档解析结果提供了系统运行的基础接下来切片也是影响RAG能力的重要因素。切片策略目前业界也有很多思考其实际应用受制于输入的结构化文件、上下文窗口长度等因素。我们在此提出一些可能性与大家一起探讨保留文档结构通过目录树Root/Heading/Text/Table等节点维护标题层级关系和语义上下文实现标题层级递归切片保留文档内在逻辑结构的完整性。动态处理长内容超长文本/表格按固定窗口切分标题节点合并子内容。优化检索效率以最小内容单元子段落作为检索主体提升匹配精度。总结**本文介绍了基于RAGFlow自定义解析工具的实战经验通过优化文档解析环节提升RAG系统整体性能。**高质量的文档解析对RAG应用性能的影响已经得到验证它决定了知识被结构化、理解和检索的效率。之后我们将持续关注企业级RAG应用的效能的提升探索更优的语义理解、结果精炼策略。想入门 AI 大模型却找不到清晰方向备考大厂 AI 岗还在四处搜集零散资料别再浪费时间啦2025 年AI 大模型全套学习资料已整理完毕从学习路线到面试真题从工具教程到行业报告一站式覆盖你的所有需求现在全部免费分享扫码免费领取全部内容​一、学习必备100本大模型电子书26 份行业报告 600 套技术PPT帮你看透 AI 趋势想了解大模型的行业动态、商业落地案例大模型电子书这份资料帮你站在 “行业高度” 学 AI1. 100本大模型方向电子书2. 26 份行业研究报告覆盖多领域实践与趋势报告包含阿里、DeepSeek 等权威机构发布的核心内容涵盖职业趋势《AI 职业趋势报告》《中国 AI 人才粮仓模型解析》商业落地《生成式 AI 商业落地白皮书》《AI Agent 应用落地技术白皮书》领域细分《AGI 在金融领域的应用报告》《AI GC 实践案例集》行业监测《2024 年中国大模型季度监测报告》《2025 年中国技术市场发展趋势》。3. 600套技术大会 PPT听行业大咖讲实战PPT 整理自 2024-2025 年热门技术大会包含百度、腾讯、字节等企业的一线实践安全方向《端侧大模型的安全建设》《大模型驱动安全升级腾讯代码安全实践》产品与创新《大模型产品如何创新与创收》《AI 时代的新范式构建 AI 产品》多模态与 Agent《Step-Video 开源模型视频生成进展》《Agentic RAG 的现在与未来》工程落地《从原型到生产AgentOps 加速字节 AI 应用落地》《智能代码助手 CodeFuse 的架构设计》。二、求职必看大厂 AI 岗面试 “弹药库”300 真题 107 道面经直接抱走想冲字节、腾讯、阿里、蔚来等大厂 AI 岗这份面试资料帮你提前 “押题”拒绝临场慌1. 107 道大厂面经覆盖 Prompt、RAG、大模型应用工程师等热门岗位面经整理自 2021-2025 年真实面试场景包含 TPlink、字节、腾讯、蔚来、虾皮、中兴、科大讯飞、京东等企业的高频考题每道题都附带思路解析2. 102 道 AI 大模型真题直击大模型核心考点针对大模型专属考题从概念到实践全面覆盖帮你理清底层逻辑3. 97 道 LLMs 真题聚焦大型语言模型高频问题专门拆解 LLMs 的核心痛点与解决方案比如让很多人头疼的 “复读机问题”三、路线必明 AI 大模型学习路线图1 张图理清核心内容刚接触 AI 大模型不知道该从哪学起这份「AI大模型 学习路线图」直接帮你划重点不用再盲目摸索路线图涵盖 5 大核心板块从基础到进阶层层递进一步步带你从入门到进阶从理论到实战。L1阶段:启航篇丨极速破界AI新时代L1阶段了解大模型的基础知识以及大模型在各个行业的应用和分析学习理解大模型的核心原理、关键技术以及大模型应用场景。L2阶段攻坚篇丨RAG开发实战工坊L2阶段AI大模型RAG应用开发工程主要学习RAG检索增强生成包括Naive RAG、Advanced-RAG以及RAG性能评估还有GraphRAG在内的多个RAG热门项目的分析。L3阶段跃迁篇丨Agent智能体架构设计L3阶段大模型Agent应用架构进阶实现主要学习LangChain、 LIamaIndex框架也会学习到AutoGPT、 MetaGPT等多Agent系统打造Agent智能体。L4阶段精进篇丨模型微调与私有化部署L4阶段大模型的微调和私有化部署更加深入的探讨Transformer架构学习大模型的微调技术利用DeepSpeed、Lamam Factory等工具快速进行模型微调并通过Ollama、vLLM等推理部署框架实现模型的快速部署。L5阶段专题集丨特训篇 【录播课】四、资料领取全套内容免费抱走学 AI 不用再找第二份不管你是 0 基础想入门 AI 大模型还是有基础想冲刺大厂、了解行业趋势这份资料都能满足你现在只需按照提示操作就能免费领取扫码免费领取全部内容​2025 年想抓住 AI 大模型的风口别犹豫这份免费资料就是你的 “起跑线”

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询