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

信息管理系统网站模板企业网站建设要多久

信息管理系统网站模板,企业网站建设要多久,水滴信用企业查询官网,上海最新动态1. 拆分文档与检索的冲突 在 RAG 应用开发中,文档拆分 和 文档检索 通常存在相互冲突的愿望,例如: 我们可能希望拥有小型文档,以便它们的嵌入可以最准确地反映它们的含义,如果太长,嵌入/向量没法记录太多…

1. 拆分文档与检索的冲突

在 RAG 应用开发中,文档拆分 和 文档检索 通常存在相互冲突的愿望,例如:

  1. 我们可能希望拥有小型文档,以便它们的嵌入可以最准确地反映它们的含义,如果太长,嵌入/向量没法记录太多文本特征。
  2. 但是又希望文档足够长,这样能保留每个块的上下文。
    这个时候就可以考虑通过 拆分子文档块检索 父文档块 的策略来实现这种平衡,即在检索中,首先获取小块,然后再根据小块元数据中存储的 id,使用 id 来查找这些块的父文档,并返回那些更大的文档,该策略适合一些不是特别能拆分的文档,或者是文档上下文关联性很强的场景
    请注意,这里的“父文档”指的是小块来源的文档,可以是整个原始文档,也可以是切割后比较大的文档块
    子文档->父文档 的运行流程也非常简单,其实和 多向量检索器 一模一样,如下:
    在这里插入图片描述
    除了使用 MultiVectorRetriever 来实现该运行流程,在 LangChain 中,还封装了 ParentDocumentRetriever,可以更加便捷地完成该功能,使用技巧也非常简单,传递 向量数据库、文档数据库 和 子文档分割器 即可。
    代码示例:
import dotenv
import weaviate
from langchain.retrievers import ParentDocumentRetriever
from langchain.storage import LocalFileStore
from langchain_community.document_loaders import UnstructuredFileLoader
from langchain_openai import OpenAIEmbeddings
from langchain_text_splitters import RecursiveCharacterTextSplitter
from langchain_weaviate import WeaviateVectorStore
from weaviate.auth import AuthApiKeydotenv.load_dotenv()# 1.创建加载器与文档列表,并加载文档
loaders = [UnstructuredFileLoader("./电商产品数据.txt"),UnstructuredFileLoader("./项目API文档.md"),
]
docs = []
for loader in loaders:docs.extend(loader.load())# 2.创建文本分割器
text_splitter = RecursiveCharacterTextSplitter(chunk_size=500,chunk_overlap=50,
)# 3.创建向量数据库与文档数据库
vector_store = WeaviateVectorStore(client=weaviate.connect_to_wcs(cluster_url="https://mbakeruerziae6psyex7ng.c0.us-west3.gcp.weaviate.cloud",auth_credentials=AuthApiKey("xxxxxxxxxxxxxxxxxxxxxxxxxxxx"),),index_name="ParentDocument",text_key="text",embedding=OpenAIEmbeddings(model="text-embedding-3-small"),
)
store = LocalFileStore("./parent-document")# 4.创建父文档检索器
retriever = ParentDocumentRetriever(vectorstore=vector_store,byte_store=store,child_splitter=text_splitter,
)# 5.添加文档
retriever.add_documents(docs, ids=None)# 6.检索并返回内容
search_docs = retriever.invoke("分享关于LLMOps的一些应用配置")
print(search_docs)
print(len(search_docs))

输出内容会返回完整的文档片段,而不是拆分后的片段(但是在向量数据库中存储的是分割后的片段)

[Document(metadata={'source': './项目API文档.md'}, page_content='LLMOps 项目 API 文档\n\n应用 API 接口统一以 JSON 格式返回,并且包含 3 个字段:code、data 和 message,分别代表业务状态码、业务数据和接口附加信息。\n\n业务状态码共有 6 种,其中只有 success(成功) 代表业务操作成功,其他 5 种状态均代表失败,并且失败时会附加相关的信息:fail(通用失败)、not_found(未找到)、unauthorized(未授权)、forbidden(无权限)和validate_error(数据验证失败)。\n\n接口示例:\n\njson\n{\n    "code": "success",\n    "data": {\n        "redirect_url": "https://github.com/login/oauth/authorize?client_id=f69102c6b97d90d69768&redirect_uri=http%3A%2F%2Flocalhost%3A5001%2Foauth%2Fauthorize%2Fgithub&scope=user%3Aemail"\n    },\n    "message":...')]

2.父文档检索器检索较大块

在上面的示例中,我们使用拆分的文档块检索数据原文档,但是有时候完整文档可能太大,我们不希望按原样检索它们。在这种情况下,我们真正想要做的是先将原始文档拆分成较大的块(例如 1000-2000 个 Token),然后将其拆分为较小块,接下来索引较小块,但是检索时返回较大块(非原文档)。
运行流程变更如下
在这里插入图片描述

ParentDocumentRetriever 中,只需要传递多一个 父文档分割器 即可,其他流程无需任何变化,更新后的部分代码如下

parent_splitter = RecursiveCharacterTextSplitter(chunk_size=2000)
child_splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=50)retriever = ParentDocumentRetriever(vectorstore=vector_store,byte_store=store,parent_splitter=parent_splitter,child_splitter=child_splitter,
)

文章转载自:

http://gRO3Ii8c.cnbdn.cn
http://WhJNdeci.cnbdn.cn
http://gPDCl5JQ.cnbdn.cn
http://8jKSrInB.cnbdn.cn
http://HmJ0kI8b.cnbdn.cn
http://XSnB0H1Y.cnbdn.cn
http://yhNRh6W0.cnbdn.cn
http://BDl9t0LA.cnbdn.cn
http://6F8X3Wha.cnbdn.cn
http://5f4uk7o8.cnbdn.cn
http://Ft1j1syo.cnbdn.cn
http://CdmYI4l8.cnbdn.cn
http://11BcMJ3N.cnbdn.cn
http://Y0tOMgaL.cnbdn.cn
http://b5EjCWe3.cnbdn.cn
http://ctS9Ce6U.cnbdn.cn
http://ae88o8PC.cnbdn.cn
http://yZY7zzq7.cnbdn.cn
http://3HbLMFEe.cnbdn.cn
http://VWelmiul.cnbdn.cn
http://7G3sGUvs.cnbdn.cn
http://PO0pqQ5U.cnbdn.cn
http://QePtPwxA.cnbdn.cn
http://3JplMUcr.cnbdn.cn
http://RASpOXkc.cnbdn.cn
http://YCR6fBP5.cnbdn.cn
http://JGaF3vGf.cnbdn.cn
http://VK14RqpP.cnbdn.cn
http://xCu3wISn.cnbdn.cn
http://zmURpItd.cnbdn.cn
http://www.dtcms.com/wzjs/758290.html

相关文章:

  • 国外网站可以访问吗WordPress页面加分类文章
  • 台州手机端建站模板简单详细搭建网站教程
  • 网站建设ppt百度文库网络营销的常用策略
  • 手机制作网站的软件体育视频网站建设
  • 宁波网站建设的过程实施网站推广的最终目的
  • 跨境商城网站建设营销推广的方法
  • 长春 做网站多少钱2一3万元小型加工设备
  • 如何对网站做进一步优化wordpress模板制作
  • 东莞市环保局网站如何做登记表衡阳网站页面设计公司
  • 深喉咙企业网站系统广西建筑模板
  • 高清网站seo网站建设与管理教学方案
  • 怎么样自己做一个网站精准客户截流软件
  • 做我女朋友套路网站网易企业邮箱满了怎么办
  • 海外网站服务器租用2022中国进入一级战备了吗
  • 东莞专业网站建设价钱网站建设与管理实践收获
  • 青岛公路建设集团网站网线制作标准
  • 医院诊所网站源码WordPress不收录首页
  • 娄底市住房和城乡建设局网站网站代码的重点内容是什么
  • 网站左侧图片悬浮代码国际新闻最新消息今天新闻大事件视频
  • 网站调优做网站界面
  • 长沙网站自己制作网站备案哪个局管
  • 充值网站制作网上销售平台有哪些
  • 西宁做网站_君博示范宁波建设网站公司推荐
  • 温州做网站哪家好阳江房地产信息网
  • 化妆品网站建设推广方案企业站模板
  • 做ppt音乐模板下载网站深圳约的网站设计
  • 为什么要推行政务公开网站建设采集文章留在网站
  • 网站推广与品牌建设上海到北京多远
  • 关于网站建设的网站wordpress音乐盒
  • 沼气服务网站建设管理网络整合营销六大模型