Skip to content

技术亮点

1. AI前沿技术加持

Free2AI采用当前最先进的人工智能技术和大数据处理方案,构建了一个既具备高速采集能力,又能深度理解语义的智能系统。主要技术架构包括:

  • 大模型与自然语言处理

利用最新文本大模型、多模态大模型,对海量文本信息进行语义解析和情感分析,实现智能问答、语义匹配和内容推荐。技术指标媲美国际顶尖水平,为用户提供最为精准的信息检索服务。

  • 大数据分布式架构

采用最新的分布式存储与计算技术,支持大规模数据的并行处理和实时查询。系统具备高可用性、高并发处理能力,确保在短时间内处理海量数据,快速响应用户请求。

  • 自适应智能算法

系统内置智能优化算法,能根据不同应用场景和用户行为自动调节策略,实现个性化服务和自我进化,从而不断提升服务质量和用户体验。

2. 模块化设计

Free2AI采用模块化设计理念,每个功能模块均独立封装,用户可以根据具体需求进行灵活定制与扩展。主要模块包括:

  • 数据采集模块

包括网页智能采集、API数据接入、RSS订阅等多种采集方式,无需模板配置,即可适配各种数据源。

  • 文档解析模块

支持多种文件格式自动解析、内容分类、标签生成等功能,为后续知识库构建提供精准数据支撑。当前已经支持的文档包括:pdf、doc、docx、ppt、pptx、xls、xlsx、html、txt、markdown、jpg、png、bmp、gif、tif、webp。

  • FAQ智能问答模块

集成FAQ构建、智能匹配、自动问答生成与反馈自学习机制,打造高效、精准的智能问答系统。

  • 接入与接口模块

提供一键JS代码生成和多平台SDK接口,支持网站、APP、小程序等多终端无缝接入,实现统一服务和数据共享。

3. 技术实现

3.1 网页智能采集

  • 依赖微软开源的PlayWright,实现headless方式的网页渲染后快速采集;

  • 参考python实现的FireCrawl,基于java完整实现了大部分功能;

  • 基于网页节点宽高实现了自适应的网页内容智能抽取算法,对于资讯、产品类网站抽取精度极高;

  • 结合LLM实现网页图片的精准识别,识别后结果和原网页内容保持顺序一致;

  • 实现自定义的HTML到MarkDown的转换;

  • 将网页一键转变为LLM-ready的markdown格式

3.2 文档上传

  • 集成百度开源的文件上传组件Webuploader;

  • 单文件上传;

  • 批量文件上传;

  • 文件断点续传;

  • 大文件分片上传;

  • 上传前重复文档检测

3.3 文档智能解析

各种类型文档解析是非常复杂的事情。Free2AI充分利用大模型实现智能抽取,包括:

  • 支持各种pdf文件格式,包括文字版本、扫描版本、幻灯片格式(由ppt转为pdf的);

  • 支持各种docx文件格式,包括文字版本、纯图片版本、幻灯片格式(由ppt转为docx的);

  • 支持旧版本doc(自动转为doc进行解析);

  • 支持旧版本ppt(自动转为pptx进行解析)、新版本pptx;

  • 支持旧版本xls(自动转为xlsx进行解析)、新版xlsx;

  • 支持各类图片:png、jpg、tif、webp、gif、bmp;

  • 支持markdown文件解析;

  • 支持htm/html文件解析;

  • 支持text文件。

对于pdf、pptx,一般批量转为图片,再调用大模型视觉接口批量识别。大模型目前的OCR水平远远高于各种本地部署的OCR模型,只有最新开源的olmOCR勉强接近大模型的水准。但是大模型可通过 提示词自动化去掉水印、页面、页码、公章等干扰信息,这是各种本地OCR远远不能比的。

所有文件解析结果输出为LLM-ready**的markdown格式。

3.4 文档分片(chunking)

文档分片复杂度不下于文档解析。目前各种RAG应用里,各种产品实现了不同的切片方式,没有一种统一的方式能证明是最佳的,总会和文档内容相关。目前我们实现的切片方式为:

  • 网页切片:将html转为markdown后,参照markdown结构进行切片。将标题和后续的段落合并在一起;如果当前段落超长需要切分开,则每部分分片前都加上本层级的标题;代码段、引用、表格不切分开。由于爬虫是java实现的,所以目前网页切片是java实现。

  • 文档抽取内容分片:文档解析后结果进行切片,也是主要按照markdown结构进行,标题和后续内容合并,代码段、引用、表格不切分开。但是考虑到切片连续性,上一个分片的最后两句会自动插入到下一个分片的前面,确保语义连贯。文档切片有python实现。

3.5 索引、搜索、重排序

目前索引存储在milvus中,同时存储了稀疏向量和稠密向量。检索时,同时按BM25算法查询关键词、按向量进行语义检索。排序阶段按照两种检索的结果,针对query重新进行语义计算,确定顺序,最后输入到大模型生成答案。