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

LangChain——加载知识库文本文档 PDF文档

文档加载

这涵盖了如何加载目录中的所有文档。 在底层,默认情况下使用 UnstructedLoader。需要安装依赖

pip install unstructured

python导入方式

from langchain_community.document_loaders import DirectoryLoader

我们可以使用 glob 参数来控制加载特定类型文件。请注意,此处它不会加载 .rst 文件或 .html 文件。

loader = DirectoryLoader('../', glob="**/*.md")

默认情况下不会显示进度条。要显示进度条,请安装 tqdm 库(例如 pip install tqdm ),并将 show_progress 参数设置为 True 。

loader = DirectoryLoader('../', glob="**/*.md", show_progress=True)
docs = loader.load()

加载单个文档

from langchain_community.document_loaders import TextLoader# TextLoader 文本加载器 txt、md、html等文件都可进行加载
loader = TextLoader("./txt/faq-4359.txt",encoding="utf8")
doc = loader.load()

例如

loader1 = TextLoader("./txt/faq-7923.txt",encoding="utf8")
doc1 = loader1.load()# 输出结果
#[Document(page_content='众测活动\n\n整体介绍:\n\n一、活动定义:众测是以低价试销的形式,通过收集评价、销量等方法,用于测试市场对新商品的反应,用于及时优化销售策略和引导商家改进。\n\n二、优势:众测价通常比较优惠,以不高于大促促销价为原则,最终以与物权方谈判结果为准。\n\n三、适用范围:华为商城所有产品。\n\n\n\n参与方式:\n\n1、华为商城众测的入口在哪里?\n\n华为商城搜索“众测”,即可看到众测入口,点击进入即可;\n\n2、众测上新频次:\n\n众测频道每周一至周五不定期更新上架,部分商品可能会特别调整;\n\n3、众测活动时间:\n\n一款产品众测时间通常为10-20天(热销的商品可能会延期5-10天)。\n\n \n\n常见问题:\n\n1、众测商品的来源?\n\n     您好,众测商品主要来源为华为商城上架的新品,热销的爆款商品也会不定期通过众测回归上线。\n\n2、众测商品的价格会优惠吗?\n\n     您好,众测商品价格对标618和双十一,一般都是该商品某段时间的最低促销价。\n\n3、 众测商品质量会不稳定么?\n\n     您好,众测商品也是量产的正品新品,质量与正式上架商品一致。 \n\n4、众测商品买下后多久发货?\n\n     您好,请以商品页显示为准。\n\n5、提交活动订单后多久内支付?\n\n     您好,提交订单后最长付款时效为24小时,逾期订单自动取消\n\n6、成功下单后怎么查询众测订单?\n\n     您好,成功下单后,您可以通过华为商城手机APP、华为商城手机WAP版、华为商城电脑网页版任意一端登录下单账户,在“我的订单”查询。(众测商品订单查询方式等同于正常商品订单)\n\n7、订单支付后未发货前可以取消订单吗?\n\n     您好,在发货前消费者可以取消订单。\n\n8、取消订单后多久内退回款项?\n\n     您好,和华为商城智能家居生态产品通用退款时效一致,3-5个工作日。\n\n9、一个账号可以参与几次众测活动?有限购吗?\n\n     您好,一个账号参与众测活动的次数无限制,没有限购。但每次订单只能购买一个商品。如您需要购买多个产品,可以多次参与众测活动。', metadata={'source': './txt/faq-7923.txt'})]

假设导入了多个文档进来,将导入的文档转化成为向量;

from langchain_community.vectorstores import FAISS
from langchain_community.embeddings.huggingface import HuggingFaceEmbeddings
embeddings_path = "D:\\ai\\download\\bge-large-zh-v1.5"
embeddings = HuggingFaceEmbeddings(model_name=embeddings_path)
vectorStoreDB = FAISS.from_documents([doc[0],doc1[0],doc2[0]],embedding=embeddings)
vectorStoreDB.similarity_search("回收手机的话,应该怎么操作?")
# 在向量中进行相似度的搜索
#输出结果:
# Document(page_content='众测活动\n\n整体介绍:\n\n一、活动定义:众测是以低价试销的形式,通过收集评价、销量等方法,用于测试市场对新商品的反应,用于及时优化销售策略和引导商家改进。\n\n二、优势:众测价通常比较优惠,以不高于大促促销价为原则,最终以与物权方谈判结果为准。\n\n三、适用范围:华为商城所有产品。\n\n\n\n参与方式:\n\n1、华为商城众测的入口在哪里?\n\n华为商城搜索“众测”,即可看到众测入口,点击进入即可;\n\n2、众测上新频次:\n\n众测频道每周一至周五不定期更新上架,部分商品可能会特别调整;\n\n3、众测活动时间:\n\n一款产品众测时间通常为10-20天(热销的商品可能会延期5-10天)。\n\n \n\n常见问题:\n\n1、众测商品的来源?\n\n     您好,众测商品主要来源为华为商城上架的新品,热销的爆款商品也会不定期通过众测回归上线。\n\n2、众测商品的价格会优惠吗?\n\n     您好,众测商品价格对标618和双十一,一般都是该商品某段时间的最低促销价。\n\n3、 众测商品质量会不稳定么?\n\n     您好,众测商品也是量产的正品新品,质量与正式上架商品一致。 \n\n4、众测商品买下后多久发货?\n\n     您好,请以商品页显示为准。\n\n5、提交活动订单后多久内支付?\n\n     您好,提交订单后最长付款时效为24小时,逾期订单自动取消\n\n6、成功下单后怎么查询众测订单?\n\n     您好,成功下单后,您可以通过华为商城手机APP、华为商城手机WAP版、华为商城电脑网页版任意一端登录下单账户,在“我的订单”查询。(众测商品订单查询方式等同于正常商品订单)\n\n7、订单支付后未发货前可以取消订单吗?\n\n     您好,在发货前消费者可以取消订单。\n\n8、取消订单后多久内退回款项?\n\n     您好,和华为商城智能家居生态产品通用退款时效一致,3-5个工作日。\n\n9、一个账号可以参与几次众测活动?有限购吗?\n\n     您好,一个账号参与众测活动的次数无限制,没有限购。但每次订单只能购买一个商品。如您需要购买多个产品,可以多次参与众测活动。', metadata={'source': './txt/faq-7923.txt'}),vectorStoreDB.similarity_search_with_score("回收手机的话,应该怎么操作?")
#显示相似度得分
#输出结果:
#[(Document(page_content='**一、选择回收物品**\n\n点击VMALL您可以在设备回收分类中选择旧商品的类别以及品牌,现在VMALL支持回收部分品牌和型号的手机、笔记本、平板、智能数码以及摄影摄像。如若在此页面上找不到您的品牌或型号,您可以点击品牌栏右下方的加号(如下图红圈部分所示)查看VMALL所支持回收的所有品牌型号。首页滚动电子横幅右下方“以旧换新”标志(如下图红框部分所示),进入“以旧换新”页面。\n\n![以旧换新图片](https://threejs-1251830808.cos.ap-guangzhou.myqcloud.com/73564551948615546537.png)\n\n(以下图片为参考流程,实际以页面为准)\n\n![设备回收图片](https://threejs-1251830808.cos.ap-guangzhou.myqcloud.com/18969746813614796981.png)\n\n选择好您的旧商品后请点击商品图标,进入价格评估页面。\n\n\n\n**二、价格评估**\n\n在价格评估界面上,您需要对旧商品的基本信息(网络制式、存储容量、购买渠道、机身颜色),外观成色(边框背板,屏幕外观,屏幕显示,维修情况),和多功能选项参数进行评估,请如实填写您的手机情况。完成所有参数选择,请估价按钮(如下图红框部分所示)。\n\n完成所有参数选择,请点击“免费询价”按钮(如下图红框部分所示)。\n\n![免费询价图片](https://threejs-1251830808.cos.ap-guangzhou.myqcloud.com/37174946813614947173.png)\n\n**三、价格评估结果**\n\n您可以查看手机的估价和这款手机的回收价格趋势,如果填写有什么问题,可以点击“重新询价”或“重新选择机型”更改;确认无误后,点击“换钱”按钮进入订单页面。\n\n![价格评估结果图片](https://threejs-1251830808.cos.ap-guangzhou.myqcloud.com/28422256813615222482.png)\n\n**四、提交订单**\n\n在订单页面,您可以从以下两种常规回收方式选择一种进行回收,并提交订单结账。(回收宝支持顺丰上门、上门质检回收,爱回收支持顺丰上门、质检上门、信用回收)\n\n![图5.png](https://threejs-1251830808.cos.ap-guangzhou.myqcloud.com/47605356813615350674.png)\n\n(1)顺丰上门回收操作流程\n\n① 回收方式:选择顺丰快递回收\n\n② 提交订单:填写联系人、电话号码、取货地址及上门时间,提交订单\n\n③ 上门取货:回收订单提交成功,快递员会按照填写的上门时间上门取货\n\n④ 确认交易:回收商会在收到旧机的48小时内完成检测,若价格与您提交订单时的价格一致,将立即发放华为代金券。\n\n(2)质检师上门回收操作流程\n\n① 回收方式:选择质检师上门回收。\n\n② 提交订单:填写联系人信息、手机号码、上门地址及上门时间,提交订单\n\n③ 确认交易:如通过质检师上门回收,在完成检测后,代金券可实时到账。\n\n![质检师上门回收操作流程图片](https://threejs-1251830808.cos.ap-guangzhou.myqcloud.com/67845656813615654876.png)\n\n\n\n五、以旧换新答疑 :更多关于以旧换新的问题请点击 “[以旧换新答疑](https://www.vmall.com/help/category-251.html)”查看。', metadata={'source': './txt/yjhx.md'}),0.84503603),

目录加载器

将目录下的全部文件加载进来

from langchain_community.document_loaders import DirectoryLoaderloader = DirectoryLoader('./txt')docs = loader.load()#输出结果
#[Document(page_content='一、什么是0分期利息\n\n您好,“0分期利息”是指买家使用花呗、招行掌上生活、工行信用卡、银联信用卡等其他分期购物时无需支付分期利息的功能,分期利息由华为商城承担。\n\n注:自2023年起,商城将相关宣传将“免息”调整为“0分期利息”,主要基于中国银保监会、中国人民银行《关于进一步促进信用卡业务规范健康发展的通知》(银保监规〔2022〕13号),要求“银行业金融机构应当在分期业务合同(协议)首页和业务办理页面以明显方式展示分期业务可能产生的所有息费项目、年化利率水平和息费计算方式。向客户展示分期业务收取的资金使用成本时,应当统一采用利息形式,并明确相应的计息规则,不得采用手续费等形式,法律法规另有规定的除外。”\n\n二、可以参与0分期利息活动的商品\n\n商城目前仅支持部分单品参与0分期利息,若多商品(含不支持0分期利息)合并支付则不支持0分期利息,以支付页面为准,后续会逐渐开放更多商品,敬请关注。\n\n三、确认订单分期成功\n\n订单提交成功后在支付方式页面选择分期支付,点选显示0分期利息的支付方式及具体0分期利息期数后,完成支付。\n\n四、订单中有多个商品,其中有商品支持0分期利息,为什么提交后却没有0分期利息?\n\n0分期利息商品不能和其它商品一起购买,如果和其他商品购买而不能享用0分期利息,建议取消原来的订单,重新购买时把0分期利息商品和其他商品分开单独购买;且0分期利息的分期数是固定的,如6期0分期利息,并不是3/6/12都提供0分期利息的。\n\n五、小程序是否支持0分期利息?\n\n华为商城小程序暂不支持0分期利息。', metadata={'source': 'txt\\faq-4359.txt'}), Document(page_content='众测活动\n\n整体介绍:\n\n一、活动定义:众测是以低价试销的形式,通过收集评价、销量等方法,用于测试市场对新商品的反应,用于及时优化销售策略和引导商家改进。\n\n二、优势:众测价。。。

如何检索出相似度最高的文件?

  1. 最大边际相关性检索(MMR): 想象你在一个图书馆里找关于“猫咪”的书籍。MMR就像是一个智能助手,帮你挑选书籍。它会先找到一本最相关的书,比如《猫咪百科全书》。然后,它会寻找第二本书,这本书不仅要与“猫咪”相关,还要与第一本书的内容有所不同,比如可能会找一本关于“猫咪训练”的书。MMR的目标是让你既能找到有用的信息,又能获得不同方面的知识。
  2. 余弦相似度: 余弦相似度是一种测量两个向量在多维空间中角度的方法。继续用图书馆的例子,你可以把每本书想象成一个向量,它的每个维度代表这本书包含的不同关键词。余弦相似度会计算两本书的向量之间的角度,如果两本书的向量角度接近0度,那么它们在内容上非常相似;如果角度接近90度,那么它们的内容就不那么相似。
    总结一下
    MMR是一个帮你挑选书籍的策略,它力求找到既相关又多样的书籍组合。
    余弦相似度是一个测量两本书内容相似度的工具,它通过比较书中的关键词向量来判断。

实现方法:

# 最大边际相关性检索(MMR)
retriever = vectorStoreDB.as_retriever(search_type="mmr",search_kwargs={"k": 1}
)
# k值就是筛选相似的个数;例如此时输出的相似度最大的一个#使用余弦相似度
retriever = vectorStoreDB.as_retriever(search_type="similarity_score_threshold", search_kwargs={"score_threshold": 0.3}
)
#相似的得分阈值大于0.3时会选中输出

PDF

可移植文档格式 (PDF),标准化为 ISO 32000,是 Adobe 于 1992 年开发的一种文件格式,用于以独立于应用程序软件、硬件和操作系统的方式呈现文档,包括文本格式和图像。
使用 pypdf 将 PDF 加载到文档数组中,其中每个文档包含页面内容和带有 page 编号的元数据。

pip install pypdf
from langchain_community.document_loaders import PyPDFLoaderloader = PyPDFLoader("./pdf/2403.04667.pdf")
pages = loader.load_and_split()
# 我们可以使用页码来搜索文档
#例如pages[0]docs = ""
# 循环合并文档
for item in pages:docs += item.page_content

PDF目录

Load PDFs from directory 从目录加载 PDF

from langchain_community.document_loaders import PyPDFDirectoryLoaderloader = PyPDFDirectoryLoader("pdf/")docs = loader.load()

相关文章:

LangChain——加载知识库文本文档 PDF文档

文档加载 这涵盖了如何加载目录中的所有文档。 在底层,默认情况下使用 UnstructedLoader。需要安装依赖 pip install unstructuredpython导入方式 from langchain_community.document_loaders import DirectoryLoader我们可以使用 glob 参数来控制加载特定类型文…...

深度学习2:从零开始掌握PyTorch:数据操作不再是难题

文章目录 一、导读二、张量的定义与基本操作三、广播机制四、索引与切片五、内存管理六、与其他Python对象的转换本文是经过严格查阅相关权威文献和资料,形成的专业的可靠的内容。全文数据都有据可依,可回溯。特别申明:数据和资料已获得授权。本文内容,不涉及任何偏颇观点,…...

MyBatis的if标签的基本使用

在MyBatis框架中,if标签用于在构建SQL语句时,根据参数条件判断的结果,动态地选择加入或不加where条件中。 一 常见使用 在使用MyBatis处理查询逻辑的时候,常用的是判断一些参数是否为空,列举常用的几种情况展示 1.1…...

【Azure Cache for Redis】Redis的导出页面无法配置Storage SAS时通过az cli来完成

问题描述 在Azure Redis的导出页面,突然不能配置Storage Account的SAS作为授权方式。 image.png 那么是否可以通过AZ CLI或者是Powershell来实现SAS的配置呢? 问题解答 可以的。使用 az redis export 可以实现 az redis export --container --prefix[--a…...

【微服务】Nacos

一、安装 1、官网地址:https://nacos.io/download/nacos-server/ 2、启动:找到bin目录下的startup.cmd双击启动,或者打开一个命令窗口输入: startup.cmd -m standalone双击启动后如下:可以访问控制台地址 访问后的…...

5、定义与调用函数

大家好,欢迎来到Python函数入门课程! 在编程中,函数就像一个可以重复使用的代码块,它接受输入(参数),执行特定的任务,并可能返回一个结果。想象一下,函数就像一个厨房里的搅拌机,你放入水果(参数),按下按钮(调用函数),它就会帮你制作出美味的果汁(返回值)。…...

Linux 网络编程之TCP套接字

前言 上一期我们对UDP套接字进行了介绍并实现了简单的UDP网络程序,本期我们来介绍TCP套接字,以及实现简单的TCP网络程序! 🎉目录 前言 1、TCP 套接字API详解 1.1 socket 1.2 bind 1.3 listen 1.4 accept 1.5 connect 2、…...

前海湾地铁的腾通数码大厦背后的临时免费停车点探寻

临时免费停车点:前海湾地铁的腾通数码大厦背后的桂湾大街,目前看不仅整条桂湾大街停了​车,而且还有工地餐点。可能是这个区域还是半工地状态,故暂时还不会有​罚单的情况出现。 中建三局腾讯数码大厦项目部A栋 广东省深圳市南山…...

OpenCV相机标定与3D重建(7)鱼眼镜头立体校正的函数stereoRectify()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::fisheye::stereoRectify 是 OpenCV 中用于鱼眼镜头立体校正的函数。该函数计算两个相机之间的校正变换,使得从两个相机拍摄的图像…...

前端如何获取unpkg的资源链接

在现代前端开发中,快速获取和使用npm包是一个常见需求。unpkg是一个全球性的CDN服务,它为npm上的每个包提供了快速访问。通过unpkg,你可以轻松地通过URL获取任何npm包的文件。本文将介绍如何获取unpkg的资源链接。 unpkg简介 unpkg是一个快…...

Flink 离线计算

文章目录 一、样例一&#xff1a;读 csv 文件生成 csv 文件二、样例二&#xff1a;读 starrocks 写 starrocks三、样例三&#xff1a;DataSet、Table Sql 处理后写入 StarRocks四、遇到的坑 <dependency><groupId>org.apache.flink</groupId><artifactId&…...

Git | 理解团队合作中Git分支的合并操作

合并操作 团队合作中Git分支的合并操作分支合并过程1.创建feature/A分支的过程2. 创建分支feature/A-COPY3.合并分支查看代码是否改变 团队合作中Git分支的合并操作 需求 假设团队项目中的主分支是main,团队成员A基于主分支main创建了feature/A&#xff0c;而我又在团队成员A创…...

C++多态的实现原理

【欢迎关注编码小哥&#xff0c;学习更多实用的编程方法和技巧】 1、类的继承 子类对象在创建时会首先调用父类的构造函数 父类构造函数执行结束后&#xff0c;执行子类的构造函数 当父类的构造函数有参数时&#xff0c;需要在子类的初始化列表中显式调用 Child(int i) : …...

[极客大挑战 2019]PHP--详细解析

信息搜集 想查看页面源代码&#xff0c;但是右键没有这个选项。 我们可以ctrlu或者在url前面加view-source:查看&#xff1a; 没什么有用信息。根据页面的hint&#xff0c;我们考虑扫一下目录看看能不能扫出一些文件. 扫到了备份文件www.zip&#xff0c;解压一下查看网站源代码…...

map用于leetcode

//第一种map方法 function groupAnagrams(strs) {let map new Map()for (let str of strs) {let key str ? : str.split().sort().join()if (!map.has(key)) {map.set(key, [])}map.get(key).push(str)} //此时map为Map(3) {aet > [ eat, tea, ate ],ant > [ tan,…...

CommonJS 和 ES Modules 的 区别

CommonJS 和 ES Modules 的 区别 1. CommonJS 和 ES Modules 区别?1.1 语法差异CommonJS&#xff1a;ES Modules&#xff1a; 1.2. 加载机制CommonJS&#xff1a;ES Modules&#xff1a; 1.3. 运行时行为CommonJS&#xff1a;ES Modules&#xff1a; 1.4. 兼容性和使用场景Com…...

科技为翼 助残向新 高德地图无障碍导航规划突破1.5亿次

今年12月03日是第33个国际残疾人日。在当下科技发展日新月异的时代&#xff0c;如何让残障人士共享科技红利、平等地参与社会生活&#xff0c;成为当前社会关注的热点。 中国有超过8500万残障人士&#xff0c;其中超过2400万为肢残人群&#xff0c;视力障碍残疾人数超过1700万…...

Flink四大基石之Time (时间语义) 的使用详解

目录 一、引言 二、Time 的分类及 EventTime 的重要性 Time 分类详述 EventTime 重要性凸显 三、Watermark 机制详解 核心原理 Watermark能解决什么问题,如何解决的? Watermark图解原理 举例 总结 多并行度的水印触发 Watermark代码演示 需求 代码演示&#xff…...

Spring WebFlux与Spring MVC

Spring WebFlux 是对 Spring Boot 项目中传统 Spring MVC 部分的一种替代选择&#xff0c;主要是为了解决现代 Web 应用在高并发和低延迟场景下的性能瓶颈。 1.WebFlux 是对 Spring MVC 的替代 架构替代&#xff1a; Spring MVC 使用的是基于 Servlet 规范的阻塞式模型&#xf…...

【深度学习基础】一篇入门模型评估指标(分类篇)

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;深度学习_十二月的猫的博客-CSDN博客 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目录 1. 前言 2. 模…...

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇&#xff0c;在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下&#xff1a; 【Note】&#xff1a;如果你已经完成安装等操作&#xff0c;可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作&#xff0c;重…...

浅谈 React Hooks

React Hooks 是 React 16.8 引入的一组 API&#xff0c;用于在函数组件中使用 state 和其他 React 特性&#xff08;例如生命周期方法、context 等&#xff09;。Hooks 通过简洁的函数接口&#xff0c;解决了状态与 UI 的高度解耦&#xff0c;通过函数式编程范式实现更灵活 Rea…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

linux之kylin系统nginx的安装

一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源&#xff08;HTML/CSS/图片等&#xff09;&#xff0c;响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址&#xff0c;提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

黑马Mybatis

Mybatis 表现层&#xff1a;页面展示 业务层&#xff1a;逻辑处理 持久层&#xff1a;持久数据化保存 在这里插入图片描述 Mybatis快速入门 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6501c2109c4442118ceb6014725e48e4.png //logback.xml <?xml ver…...

练习(含atoi的模拟实现,自定义类型等练习)

一、结构体大小的计算及位段 &#xff08;结构体大小计算及位段 详解请看&#xff1a;自定义类型&#xff1a;结构体进阶-CSDN博客&#xff09; 1.在32位系统环境&#xff0c;编译选项为4字节对齐&#xff0c;那么sizeof(A)和sizeof(B)是多少&#xff1f; #pragma pack(4)st…...

质量体系的重要

质量体系是为确保产品、服务或过程质量满足规定要求&#xff0c;由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面&#xff1a; &#x1f3db;️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限&#xff0c;形成层级清晰的管理网络&#xf…...

浅谈不同二分算法的查找情况

二分算法原理比较简单&#xff0c;但是实际的算法模板却有很多&#xff0c;这一切都源于二分查找问题中的复杂情况和二分算法的边界处理&#xff0c;以下是博主对一些二分算法查找的情况分析。 需要说明的是&#xff0c;以下二分算法都是基于有序序列为升序有序的情况&#xf…...

OpenLayers 分屏对比(地图联动)

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能&#xff0c;和卷帘图层不一样的是&#xff0c;分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

Go 并发编程基础:通道(Channel)的使用

在 Go 中&#xff0c;Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式&#xff0c;用于在多个 Goroutine 之间传递数据&#xff0c;从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...