当前位置: 首页 > wzjs >正文

网站域名备案与解析5g网络优化工程师

网站域名备案与解析,5g网络优化工程师,怎样让百度收录自己的网站,建设部网站官网证书查询为了将大语言模型植入到小程序中,来支持用户的问答。那我们首先需要做的是什么呢,不是引入大语言模型,而且为大语言模型搭建一个私有化知识库,但是这是这节呢,我们先不搭建私有化知识库,在这之前&#xff0…

        为了将大语言模型植入到小程序中,来支持用户的问答。那我们首先需要做的是什么呢,不是引入大语言模型,而且为大语言模型搭建一个私有化知识库,但是这是这节呢,我们先不搭建私有化知识库,在这之前,我们还需要做一个前置工作,那就是数据准备。

        小版本的语言模型本身的能力不像大参数量的模型那样,有用强大的知识库和泛化能力。我们需要为其提供一个外部的知识库,为模型提供额外的知识储备,进而利用模型的推理能力回答用户的问题。搭建知识库之前,我们就需要将数据,存储到知识库中。那么首先,我们就需要解析文件得到元数据。

一、文本解析

为了解析到元数据,我们采用一个开源的工具,Apache Tika进行文件内容解析,这是一个由java开发的内容分析工具包。

<dependency><groupId>org.apache.tika</groupId><artifactId>tika-core</artifactId><version>3.0.0</version>
</dependency>
<dependency><groupId>org.apache.tika</groupId><artifactId>tika-parsers-standard-package</artifactId><version>3.0.0</version>
</dependency>

 我们先创建一个工具类TikaUtil,编写一个函数用来解析我们传入的文件内容。

 二、文本切片

 有了向量数据库后,我们就需要把数据存入向量数据库中了,在这之前呢,我们需要写完成一个文件解析的功能,因为,要解释到元数据,才进行接下来的步骤,我们这里选择Apache Tika进行文件内容解析,这是一个由java开发的内容分析工具包。

<dependency><groupId>org.apache.tika</groupId><artifactId>tika-core</artifactId><version>3.0.0</version>
</dependency>
<dependency><groupId>org.apache.tika</groupId><artifactId>tika-parsers-standard-package</artifactId><version>3.0.0</version>
</dependency>

 我们先创建一个工具类TikaUtil,编写一个函数用来解析我们传入的文件内容。

    public String extractText(MultipartFile file) {try {// 创建解析器--在不确定文档类型时候可以选择使用AutoDetectParser可以自动检测一个最合适的解析器Parser parser = new AutoDetectParser();// 用于捕获文档提取的文本内容。-1 参数表示使用无限缓冲区,解析到的内容通过此hander获取BodyContentHandler bodyContentHandler = new BodyContentHandler(-1);// 元数据对象,它在解析器中传递元数据属性---可以获取文档属性Metadata metadata = new Metadata();// 带有上下文相关信息的ParseContext实例,用于自定义解析过程。ParseContext parseContext = new ParseContext();parser.parse(file.getInputStream(), bodyContentHandler, metadata, parseContext);// 获取文本return bodyContentHandler.toString();} catch (Exception e) {e.printStackTrace();return null;}}

我们使用该工具即可获得文件的元数据。但是在问答的时候,我们不能将整个文件全部输入到大模型中,一方面是模型本身是拥有上上下文窗口大小限制,另一方面是大量的信息可能影响模型的推理时间和准确率。为了解决这种情况,我们需要将文本分块,把内容切割成一个一个的文本块,将每个块作为一个知识单元,再将其转换为向量表示存入向量数据库,这样大模型在检索的时候只需要将相关的文本块添加到上下文中,既能保证回答的准确性,也解决了上下文过长的问题。

对于分块的方法,在Langchain框架中,有多种分块策略:

  1. 固定大小分块:按固定字符数或单词数分割文本,简单直接,但可能破坏句子或段落的完整性。

  2. 按句子分块:使用自然语言处理工具(如NLTK、spaCy)按句子边界分割文本,适合处理句子级别的任务。

  3. 按段落分块:按段落分割文本,适合处理段落级别的任务,段落通常由换行符分隔。

  4. 重叠分块:在固定大小分块的基础上,允许块之间有重叠部分,避免信息丢失。

  5. 递归分块:递归地将文本分割成更小的部分,直到满足特定条件,适合处理复杂文本结构。

  6. 语义分块:根据语义或主题分割文本,通常需要自然语言处理技术识别语义边界。

在java社区,Langchain4J  旨在为 Java 开发者提供类似于 LangChain(基于 Python)的功能。LangChain4J 的目标是将 LangChain 的核心概念和功能移植到 Java 生态系统中,使 Java 开发者能够更方便地构建基于大语言模型(LLMs)的应用程序。Langchain4J

Langchain4J也为我们提供了多种文本分块方法:

  • DocumentByParagraphSplitter
  • DocumentByLineSplitter
  • DocumentBySentenceSplitter
  • DocumentByWordSplitter
  • DocumentByCharacterSplitter
  • DocumentByRegexSplitter
  • Recursive: DocumentSplitters.recursive(...)

在这之前,我们先新建一个TikaVo类,用作传输文档解析分片后的结果。

@Accessors(chain = true)
@Data
public class TikaVo implements Serializable {private List<String> text;private List<String> metadata;
}

这里,我们采用递归分割的方式,将输入的文本分割成块。

    private TikaVo splitParagraphs(String content) {DocumentSplitter splitter = DocumentSplitters.recursive(TARGET_LENGTH, LENGTH_TOLERANCE, new OpenAiTokenizer());List<TextSegment> split = splitter.split(Document.document(content));return new TikaVo().setText(split.stream().map(TextSegment::text).toList()).setMetadata(split.stream().map(textSegment -> JSON.toJSONString(textSegment.metadata())).toList());}

到这里,文件处理算是完成了,这里,我们可以写一个接口来测试一下效果,我这里就不展示了。感兴趣的小伙伴,也可以试试其他的切片方法。

后面,我们将介绍,如何将处理好的文本,存储到数据库中。

http://www.dtcms.com/wzjs/51408.html

相关文章:

  • 建设网站网站大数据营销精准营销
  • 网页设计总结论文搜索引擎优化实验报告
  • 上海建设银行网站首页宁波seo在线优化哪家好
  • 苏州建设企业网站百度账号查询
  • 网站服务器 优帮云淘宝定向推广
  • 域名注册个人还是企业的好seo案例模板
  • 甘德县公司网站建设自动推广工具
  • 网站页头页尾怎么做浏览器缓冲设置网站排名查询
  • 常德做网站的公司郑州黑帽seo培训
  • 网站开发课设心得网站推广的公司
  • 网站建设的领军 18年网站建设百度一下一下你就知道
  • 百度用户服务中心人工24小时电话搜索引擎优化的作用是什么
  • 网站建设如何为企业电商化转型赋能app开发费用一览表
  • 全国可信网站推广营销是什么
  • 自动成交型网站行者seo无敌
  • 深圳网站设计公司费用多少如何创建网站站点
  • 大学生做兼职上什么网站好泉州百度开户
  • 邯郸做网站公司哪家好宁波seo优化公司排名
  • wordpress分享微信插件网络seo公司
  • 哪些网站可以做淘宝基础销量企业关键词优化公司
  • 制冷 网站建设 中企动力网络营销教学网站
  • 成都企业模版网站建设免费观看b站的广告网站平台
  • 海南哪家公司做网站做的好广东最新消息
  • 3d 代做网站全球搜索引擎排行榜
  • 360建筑网是什么公司朝阳区seo
  • 晋中市两学一做网站网页制作
  • 河南省工程建设信息官方网站seo推广排名平台有哪些
  • 太原企业网站制作深圳华强北最新消息
  • 网站设计步骤ppt广州市新闻最新消息
  • 在新闻网站做采编拉新推广怎么做