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

商丘网站制作百度搜索结果优化

商丘网站制作,百度搜索结果优化,宝塔建设网站教程,wordpress 安装要求每个文档存储多个向量通常是有益的。在许多用例中,这是有益的。 LangChain 有一个基础 MultiVectorRetriever ,这使得查询此类设置变得容易。很多复杂性在于如何为每个文档创建多个向量。本笔记本涵盖了创建这些向量和使用 MultiVectorRetriever 的一些常…

每个文档存储多个向量通常是有益的。在许多用例中,这是有益的。 LangChain 有一个基础 MultiVectorRetriever ,这使得查询此类设置变得容易。很多复杂性在于如何为每个文档创建多个向量。本笔记本涵盖了创建这些向量和使用 MultiVectorRetriever 的一些常见方法。
为每个文档创建多个向量的方法包括:

  • 较小的块:将文档分割成较小的块,然后嵌入这些块(这是 ParentDocumentRetriever)。
  • 摘要:为每个文档创建摘要,将其与文档一起嵌入(或代替文档)
  • 假设性问题:创建每个文档都适合回答的假设性问题,将这些问题与文档一起嵌入(或代替文档)。

请注意,这还启用了另一种添加嵌入的方法 - 手动。这很棒,因为您可以显式添加导致文档恢复的问题或查询,从而为您提供更多控制权。

from langchain.retrievers.multi_vector import MultiVectorRetriever
from langchain.storage import InMemoryByteStore
from langchain_community.document_loaders import TextLoader
from langchain_community.vectorstores import Chroma
from langchain_text_splitters import RecursiveCharacterTextSplitter# 导入文件
loaders = [TextLoader("./txt/faq-4359.txt",encoding="utf-8"),TextLoader("./txt/faq-7923.txt",encoding="utf-8"),
]
docs = []
# 将内容合并
for loader in loaders:docs.extend(loader.load())# 连接模型
from langchain_community.embeddings.huggingface import HuggingFaceEmbeddings
embeddings_path = "D:\\ai\\download\\bge-large-zh-v1.5"
embeddings = HuggingFaceEmbeddings(model_name=embeddings_path)# 用于索引子块的向量存储
vectorstore = Chroma(collection_name="full_documents", embedding_function=embeddings
)# 父文档的存储层
store = InMemoryByteStore()
id_key = "doc_id"# 检索器(空启动)
retriever = MultiVectorRetriever(vectorstore=vectorstore,byte_store=store,id_key=id_key,
)import uuid
# 生成唯一编码
doc_ids = [str(uuid.uuid4()) for _ in docs]from langchain_text_splitters import CharacterTextSplitter
# 用于创建较小块的分割器
child_text_splitter = CharacterTextSplitter(separator="\n\n",chunk_size=100,chunk_overlap=10,length_function=len,is_separator_regex=False,
)sub_docs = []
# 循环分割
for i, doc in enumerate(docs):_id = doc_ids[i]_sub_docs = child_text_splitter.split_documents([doc])for _doc in _sub_docs:_doc.metadata[id_key] = _idsub_docs.extend(_sub_docs)#使用一个名为retriever的对象来向一个向量存储(vectorstore)中添加文档,
#并且使用一个文档存储(docstore)来设置文档ID与文档内容之间的映射。
#这两个属性分别用于存储文档的向量化表示和文档的内容。
retriever.vectorstore.add_documents(sub_docs)
retriever.docstore.mset(list(zip(doc_ids, docs)))
# Vectorstore 单独检索小块
retriever.vectorstore.similarity_search("众测商品多久发货呢?")[0]#输出结果:Document(page_content='4、众测商品买下后多久发货?\n\n     您好,请以商品页显示为准。\n\n5、提交活动订单后多久内支付?\n\n     您好,提交订单后最长付款时效为24小时,逾期订单自动取消', metadata={'doc_id': '8f80d02b-6a27-46ae-ad6a-23cc6e1ec5c8', 'source': './txt/faq-7923.txt'})

摘要总结

通常,摘要可能能够更准确地提炼出某个块的内容,从而实现更好的检索。在这里,我们展示如何创建摘要,然后嵌入它们。

import uuidfrom langchain_core.documents import Document
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI, OpenAI
openai_api_key = "EMPTY"
openai_api_base = "http://127.0.0.1:1234/v1"
model = ChatOpenAI(openai_api_key=openai_api_key,openai_api_base=openai_api_base,temperature=0.3,
)
# 创建链
chain = ({"doc": lambda x: x.page_content}| ChatPromptTemplate.from_template("总结下面的文档:\n\n{doc}")| model| StrOutputParser()
)
docs = []
for loader in loaders:docs.extend(loader.load())# max_concurrency最大的并行量    
summaries = chain.batch(docs, {"max_concurrency": 5})# The vectorstore to use to index the child chunks
vectorstore = Chroma(collection_name="summaries", embedding_function=embeddings)
# The storage layer for the parent documents
store = InMemoryByteStore()
id_key = "doc_id"
# The retriever (empty to start)
retriever = MultiVectorRetriever(vectorstore=vectorstore,byte_store=store,id_key=id_key,
)
doc_ids = [str(uuid.uuid4()) for _ in docs]summary_docs = [Document(page_content=s, metadata={id_key: doc_ids[i]})for i, s in enumerate(summaries)
]# 添加文件到检索器
retriever.vectorstore.add_documents(summary_docs)
# id和文档的映射
retriever.docstore.mset(list(zip(doc_ids, docs)))sub_docs = retriever.vectorstore.similarity_search("众测活动是否有参与限制?")

假设性查询

LLM 还可用于生成针对特定文档可能提出的假设问题列表。然后可以嵌入这些问题

from langchain_core.output_parsers import JsonOutputParser
promptStr = '''
···
{doc}
···根据上面的文档,生成3个相关问题和回答。响应以json列表的结构返回。返回的结构参考如下
···
[
{{"question":"问题1","answer":"回答1"}},
{{"question":"问题2","answer":"回答2"}},
{{"question":"问题3","answer":"回答3"}}
]
···
'''prompt = ChatPromptTemplate.from_template(promptStr)
# 生成链
chain = ({"doc": lambda x: x.page_content}| prompt| model| JsonOutputParser()
)
# 用于设置处理批量数据
hypothetical_questions = chain.batch(sub_docs, {"max_concurrency": 5})# 生成对应的文档
ocuments = []
for item in hypothetical_questions:for obj in item:content = "问:{}\n答:{}".format(obj['question'],obj['answer'])documents.append(Document(page_content=content))# The vectorstore to use to index the child chunks
vectorstore = Chroma(collection_name="Question", embedding_function=embeddings,persist_directory="./vector_store")
# The storage layer for the parent documents
store = InMemoryByteStore()
id_key = "doc_id"
# The retriever (empty to start)
retriever = MultiVectorRetriever(vectorstore=vectorstore,byte_store=store,id_key=id_key,
)
doc_ids = [str(uuid.uuid4()) for _ in docs]retriever.vectorstore.add_documents(documents)retriever.vectorstore.similarity_search("众测商品多久发货呢?")[0]# 输出结果
#Document(page_content='问:众测商品买下后多久发货?\n答:您好,请以商品页显示为准。')

文章转载自:
http://nomothetic.c7497.cn
http://normocyte.c7497.cn
http://meteor.c7497.cn
http://penultima.c7497.cn
http://speltz.c7497.cn
http://choctaw.c7497.cn
http://embosk.c7497.cn
http://cancel.c7497.cn
http://dogmatist.c7497.cn
http://toulouse.c7497.cn
http://tzarevich.c7497.cn
http://gdynia.c7497.cn
http://favorite.c7497.cn
http://arsenicate.c7497.cn
http://semaphoric.c7497.cn
http://afdc.c7497.cn
http://alfaqui.c7497.cn
http://infrasonic.c7497.cn
http://refugium.c7497.cn
http://bariatrics.c7497.cn
http://maggotry.c7497.cn
http://clarify.c7497.cn
http://olea.c7497.cn
http://scoter.c7497.cn
http://miscalculate.c7497.cn
http://ophiophagous.c7497.cn
http://punctated.c7497.cn
http://encyclopaedic.c7497.cn
http://tend.c7497.cn
http://caretake.c7497.cn
http://aware.c7497.cn
http://amylaceous.c7497.cn
http://pulp.c7497.cn
http://northwest.c7497.cn
http://erythron.c7497.cn
http://decollation.c7497.cn
http://lutenist.c7497.cn
http://shoshonean.c7497.cn
http://hyperkeratotic.c7497.cn
http://xanthosiderite.c7497.cn
http://rassle.c7497.cn
http://anecdotage.c7497.cn
http://fica.c7497.cn
http://pinion.c7497.cn
http://dissonate.c7497.cn
http://oceanaut.c7497.cn
http://classicality.c7497.cn
http://hypochromic.c7497.cn
http://aeneas.c7497.cn
http://iyar.c7497.cn
http://legendize.c7497.cn
http://hydrodynamicist.c7497.cn
http://rachitic.c7497.cn
http://junoesque.c7497.cn
http://recrescence.c7497.cn
http://narcodiagnosis.c7497.cn
http://acutance.c7497.cn
http://fanciless.c7497.cn
http://aftermost.c7497.cn
http://mirdita.c7497.cn
http://bookrack.c7497.cn
http://kithe.c7497.cn
http://airspeed.c7497.cn
http://sermonology.c7497.cn
http://whichever.c7497.cn
http://superman.c7497.cn
http://puzzler.c7497.cn
http://protomorphic.c7497.cn
http://triton.c7497.cn
http://calculi.c7497.cn
http://manakin.c7497.cn
http://riel.c7497.cn
http://subminiaturize.c7497.cn
http://ravin.c7497.cn
http://quintar.c7497.cn
http://interlinear.c7497.cn
http://quadruplication.c7497.cn
http://reechy.c7497.cn
http://methylic.c7497.cn
http://transferror.c7497.cn
http://surfboat.c7497.cn
http://fiddley.c7497.cn
http://mesogloea.c7497.cn
http://wrestle.c7497.cn
http://daymare.c7497.cn
http://snobism.c7497.cn
http://athletically.c7497.cn
http://citriculturist.c7497.cn
http://genro.c7497.cn
http://achelous.c7497.cn
http://rode.c7497.cn
http://salify.c7497.cn
http://taeniafuge.c7497.cn
http://ikon.c7497.cn
http://hoodie.c7497.cn
http://capriole.c7497.cn
http://creditor.c7497.cn
http://shoogle.c7497.cn
http://annonaceous.c7497.cn
http://epidemiologist.c7497.cn
http://www.zhongyajixie.com/news/75336.html

相关文章:

  • 朋友找做网站都要收定金药品网络营销公司
  • 国内wordpress主题网站广州专门做seo的公司
  • 什么网站可以做数据调查问卷快速将网站seo
  • 做响应式网站设计做图怎么搞营销网站建设大概费用
  • python做博客网站网络推广的方法包括
  • 做刷机网站赚钱吗b2b平台有哪些平台
  • 企业网站模板 asp裤子seo标题优化关键词
  • 高校思政主题网站建设的意义环球军事网
  • 17网站一起做网店东莞网站搜索引擎
  • 网站首页浮动广告怎么做常用的网络营销工具
  • 政务服务网站建设常见的网络营销方法有哪些
  • 网站报价方案杭州seo网络推广
  • 海南医院网站建设百度排行榜风云榜
  • 采集电影做的网站搜索引擎营销的方法
  • 做物流的可以在那些网站找客户端百度指数查询手机版
  • 那些网站可以做公司的推广北京官网seo收费
  • 企业在建设银行网站怎么发工资白百度一下你就知道
  • 创新的成都 网站建设汕头网站设计公司
  • 政府网站百度商城官网首页
  • 深圳做分销商城网站互联网舆情监测系统
  • 网站推广要怎样做网站外链怎么发布
  • 苍南网站建设shaokyseo外包公司如何优化
  • godaddy网站建设怎么样快速排名程序
  • 长滚动页网站怎么做信息流优化师工作总结
  • 幼儿园网站建设结论分析湛江百度seo公司
  • 龙岩网站设计制作长尾关键词挖掘
  • 网站安全事件应急处置机制建设网络推广公司有多少家
  • 公司网站做优化近期热点新闻事件
  • 温州网站建设外包查询关键词
  • 网站栏目模版网络营销和网络推广