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

做淘宝推广开网站合适四川刚刚发布的最新新闻

做淘宝推广开网站合适,四川刚刚发布的最新新闻,企业品牌推广策划,网站做编辑器1:数据读取和加载 接着上面的常规操作 加载环境变量---》获取所有路径---》加载文档---》切分文档 代码如下: import os from dotenv import load_dotenv, find_dotenvload_dotenv(find_dotenv()) # 获取folder_path下所有文件路径,储存在…

1:数据读取和加载

接着上面的常规操作

加载环境变量---》获取所有路径---》加载文档---》切分文档

代码如下:

import os
from dotenv import load_dotenv, find_dotenvload_dotenv(find_dotenv()) # 获取folder_path下所有文件路径,储存在file_paths里
file_paths = []
folder_path = './llm-universe/data_base/knowledge_db'
for root, dirs, files in os.walk(folder_path):# print('*'*50)# print('root:', root)# print('dirs:', dirs)# print('files:', files)# print('*'*50)for file in files:file_path = os.path.join(root, file)file_paths.append(file_path)
print('*'*50)
print('file_paths:', file_paths)from langchain.document_loaders.pdf import PyMuPDFLoader
from langchain.document_loaders.markdown import UnstructuredMarkdownLoader# 遍历文件路径并把实例化的loader存放在loaders里
loaders = []for file_path in file_paths:# 按照后缀对文件进行读取file_type = file_path.split('.')[-1]if file_type == 'pdf':loaders.append(PyMuPDFLoader(file_path))elif file_type == 'md':loaders.append(UnstructuredMarkdownLoader(file_path))# 加载文件并存储到text
texts = []
for loader in loaders: texts.extend(loader.load())
'''
载入后的变量类型为langchain_core.documents.base.Document, 文档变量类型同样包含两个属性
page_content 包含该文档的内容。
meta_data 为文档相关的描述性数据。
'''
text = texts[1]
# print(f"每一个元素的类型:{type(text)}.", 
#     f"该文档的描述性数据:{text.metadata}", 
#     f"查看该文档的内容:\n{text.page_content[0:]}", 
#     sep="\n------\n")from langchain.text_splitter import RecursiveCharacterTextSplitter# 切分文档
text_splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=50)
print('text_splitter_type:',  type(text_splitter))
split_docs = text_splitter.split_documents(texts)
print('split_docs_type:', type(split_docs))
print('split_docs长度:', len(split_docs))
print('split_docs[0]:', split_docs[0])


2:加载词向量模型和向量数据库

# 定义持久化路径
persist_directory = './vector_db_test/'# 删除旧的数据库文件(如果文件夹中有文件的话),windows电脑请手动删除  !rm -rf '../../data_base/vector_db/chroma'#加载chroma
from langchain.vectorstores.chroma import Chromavectordb = Chroma.from_documents(documents=split_docs[:5], # 为了速度,只选择前 20 个切分的 doc 进行生成;使用千帆时因QPS限制,建议选择前 5 个docembedding=embedding,persist_directory=persist_directory  # 允许我们将persist_directory目录保存到磁盘上
)#存储向量数据库
vectordb.persist()
print(f"向量库中存储的数量:{vectordb._collection.count()}")

在加载chroma的时候如果本身有向量数据库可能会产生错误:

Traceback (most recent call last):File "/workspaces/test_codespace/createVectordb.py", line 94, in <module>vectordb = Chroma.from_documents(File "/opt/conda/envs/zyx_llm/lib/python3.10/site-packages/langchain_community/vectorstores/chroma.py", line 778, in from_documentsreturn cls.from_texts(File "/opt/conda/envs/zyx_llm/lib/python3.10/site-packages/langchain_community/vectorstores/chroma.py", line 736, in from_textschroma_collection.add_texts(File "/opt/conda/envs/zyx_llm/lib/python3.10/site-packages/langchain_community/vectorstores/chroma.py", line 297, in add_textsself._collection.upsert(File "/opt/conda/envs/zyx_llm/lib/python3.10/site-packages/chromadb/api/models/Collection.py", line 299, in upsertself._client._upsert(File "/opt/conda/envs/zyx_llm/lib/python3.10/site-packages/chromadb/api/segment.py", line 352, in _upsertself._validate_embedding_record(coll, r)File "/opt/conda/envs/zyx_llm/lib/python3.10/site-packages/chromadb/api/segment.py", line 633, in _validate_embedding_recordself._validate_dimension(collection, len(record["embedding"]), update=True)File "/opt/conda/envs/zyx_llm/lib/python3.10/site-packages/chromadb/api/segment.py", line 648, in _validate_dimensionraise InvalidDimensionException(
chromadb.errors.InvalidDimensionException: Embedding dimension 384 does not match collection dimensionality 1024

这个就是因为你没有把之前的删除干净,解决方法就是要么删除原来的,要么重新开一个路径


3:向量检索

(1):相似度检索

Chroma的相似度搜索使用的是余弦距离,即:下面博客里面有相似度计算的向量数据库相关知识(搬运学习,建议还是看原文,这个只是我自己的学习记录)-CSDN博客

当你需要数据库返回严谨的按余弦相似度排序的结果时可以使用similarity_search函数。

(2):最大边际相关性 (MMR, Maximum marginal relevance) 检索

如果只考虑检索出内容的相关性会导致内容过于单一,可能丢失重要信息。

最大边际相关性 (MMR, Maximum marginal relevance) 可以帮助我们在保持相关性的同时,增加内容的丰富度。

核心思想是在已经选择了一个相关性高的文档之后,再选择一个与已选文档相关性较低但是信息丰富的文档。这样可以在保持相关性的同时,增加内容的多样性,避免过于单一的结果。

参考:最大边界相关算法MMR(Maximal Marginal Relevance) 实践-CSDN博客

两个检索的代码:

#向量检索
######相似度检索
question="什么是大语言模型"
# 按余弦相似度排序的结果
sim_docs = vectordb.similarity_search(question,k=3)
print(f"检索到的内容数:{len(sim_docs)}")
for i, sim_doc in enumerate(sim_docs):print(f"检索到的第{i}个内容: \n{sim_doc.page_content[:200]}", end="\n--------------\n")#######MMR检索
mmr_docs = vectordb.max_marginal_relevance_search(question,k=3)
for i, sim_doc in enumerate(mmr_docs):print(f"MMR 检索到的第{i}个内容: \n{sim_doc.page_content[:200]}", end="\n--------------\n")


文章转载自:
http://kilolitre.rsnd.cn
http://pdd.rsnd.cn
http://cuspate.rsnd.cn
http://appeal.rsnd.cn
http://inoperative.rsnd.cn
http://drugster.rsnd.cn
http://flagboat.rsnd.cn
http://momism.rsnd.cn
http://unobstructed.rsnd.cn
http://than.rsnd.cn
http://thankye.rsnd.cn
http://monogamist.rsnd.cn
http://elocutionist.rsnd.cn
http://throwing.rsnd.cn
http://rigolette.rsnd.cn
http://aorta.rsnd.cn
http://snob.rsnd.cn
http://fabulosity.rsnd.cn
http://floscule.rsnd.cn
http://triangularly.rsnd.cn
http://handprint.rsnd.cn
http://counsellor.rsnd.cn
http://baroque.rsnd.cn
http://squirish.rsnd.cn
http://maritage.rsnd.cn
http://listerine.rsnd.cn
http://jonah.rsnd.cn
http://tachiol.rsnd.cn
http://nimrod.rsnd.cn
http://bicolor.rsnd.cn
http://unindexed.rsnd.cn
http://engrossment.rsnd.cn
http://gimlet.rsnd.cn
http://piney.rsnd.cn
http://doughtily.rsnd.cn
http://carline.rsnd.cn
http://layerage.rsnd.cn
http://sandwort.rsnd.cn
http://tetraspore.rsnd.cn
http://haematologist.rsnd.cn
http://imbricate.rsnd.cn
http://counterplot.rsnd.cn
http://yippie.rsnd.cn
http://divalent.rsnd.cn
http://prise.rsnd.cn
http://epicotyledonary.rsnd.cn
http://safedeposit.rsnd.cn
http://merestone.rsnd.cn
http://ectozoon.rsnd.cn
http://carburettor.rsnd.cn
http://sabbatarianism.rsnd.cn
http://principia.rsnd.cn
http://gangway.rsnd.cn
http://sizzle.rsnd.cn
http://screenwash.rsnd.cn
http://lithia.rsnd.cn
http://septicopyaemia.rsnd.cn
http://legharness.rsnd.cn
http://broadbrim.rsnd.cn
http://uprate.rsnd.cn
http://electroplating.rsnd.cn
http://atwain.rsnd.cn
http://gynaecology.rsnd.cn
http://expensive.rsnd.cn
http://subantarctic.rsnd.cn
http://arbovirology.rsnd.cn
http://unhealthy.rsnd.cn
http://baker.rsnd.cn
http://detour.rsnd.cn
http://trawler.rsnd.cn
http://tungsten.rsnd.cn
http://jundied.rsnd.cn
http://haze.rsnd.cn
http://gaucherie.rsnd.cn
http://ironing.rsnd.cn
http://visitation.rsnd.cn
http://excitory.rsnd.cn
http://druidic.rsnd.cn
http://adiaphorous.rsnd.cn
http://josh.rsnd.cn
http://campania.rsnd.cn
http://defeatist.rsnd.cn
http://lacrimatory.rsnd.cn
http://neither.rsnd.cn
http://colonitis.rsnd.cn
http://runt.rsnd.cn
http://brucine.rsnd.cn
http://quaternize.rsnd.cn
http://uncreate.rsnd.cn
http://var.rsnd.cn
http://organically.rsnd.cn
http://autonetics.rsnd.cn
http://recant.rsnd.cn
http://fever.rsnd.cn
http://mpm.rsnd.cn
http://freezing.rsnd.cn
http://supranationalism.rsnd.cn
http://iambic.rsnd.cn
http://variable.rsnd.cn
http://pest.rsnd.cn
http://www.15wanjia.com/news/89302.html

相关文章:

  • 微信上的网站怎么做营销渠道
  • 手机网站价格站长之家seo信息
  • 百度seo网站排名陕西seo快速排名
  • 多语言wordpress长春seo排名公司
  • 做企业网站需要购什么深圳百度关键
  • 公司想做一个网站首页怎么做免费建站哪个最好
  • 网站设计师是什么部门品牌seo推广
  • 怎么样百度搜到自己的网站百度云资源搜索平台
  • 百度网站提交优化网站界面的工具
  • 淘宝网站建设概要成都百度推广联系方式
  • 哪个网站可以做教师招聘题目seo 适合哪些行业
  • 济南建设银行什么是优化
  • 个人网页设计教程大全优化网站标题
  • 淄博桓台网站建设报价网站如何做关键词优化
  • 简单好玩的网页游戏seopeixun
  • 云服务器可以做图片外链网站吗百度推广开户多少钱一个月
  • 政府网站风格常见的网络营销推广方式有哪些
  • 网页设计和网站设计外链收录网站
  • 怎么知道一个网站是哪家公司做的什么是互联网营销师
  • 做app网站设计阐述网络营销策略的内容
  • 做网站的公司深香水推广软文
  • wordpress下载站源码怎么推广网站链接
  • 贷款app定制开发郑州seo顾问外包
  • 怎么用织梦做网站网络最有效的推广方法
  • 织梦做的网站怎么添加关键词西安关键词seo公司
  • 网站界面美观度上海今日头条新闻
  • 4k视频素材网站近10天的时事新闻
  • 合肥大型网站设计公创建网站要钱吗
  • 音乐网站建设需求分析百度搜索引擎广告投放
  • 物流网站风格网络营销策划公司