自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

寻梦友的博客

好记忆不如烂笔头

  • 博客(177)
  • 资源 (17)
  • 收藏
  • 关注

原创 如何部署MCP Sever【SSE通信方式】及调试

python “D:***\python_3.10” 是指定对应python版本。run_both.py如下,包含不同MCP Server,它们各自占用自己的端口。在通过MCP Inspector就可以链接上这个mcp server。初始化MCP server空间 mcp-server-1。再此过程中,修改mcp sever内容在重新部署。使用MCP Inspector工具连接。到此,部署MCP sever成功。runStart.bat如下所示。切换到某个目录下创建虚拟环境。

2025-04-20 17:32:51 283

原创 认识MCP& Function Calling & AI Agent

用户:“帮我订一张明天从北京到上海的机票。一般的大模型会回复:“好的,我会帮您订票。”,但不会去真正执行。拥有AI Agent的大模型会回复:可以调用机票预订 API,获取航班信息,并完成订票操作。【不仅仅会回复,也会执行操作】从上面的例子,单纯大模型有很强的推理、问答能力,但真正执行(do)操作是隔离的。大模型本身是无法和外部工具直接通信的,为解决这个问题,OpenAI提出了Function Calling的思路。

2025-04-20 17:16:11 104

原创 在线文档导出为word/pdf/png

这是因为HTML文档内容的<img style 标签显示的width超过A4宽度,可以对内容进行自适应调整下。破解版的pdf的jar包,缺少一些功能、一些类,导致一些功能不能使用,因此导出pdf文件丢失图片信息。标签的,只要src能正常预览下载,那么html的String字符串可以导出成docx文档。专用于 Word 文档(DOC、DOCX、RTF 等格式)的创建与操作。现有破解版,可以从maven参考获取。

2025-03-23 17:37:32 201

原创 word文件转换为Markdown格式

顺应时代技术的变更及高效协同理念的影响,非结构化信息展示、存储、应用等也由传统文档向在线协同文档的演变,类似腾讯在线文档。目前大多数在线文档支持的是Markdown格式,因此这篇文档介绍word文件如何转换为Markdown格式。

2025-03-23 17:25:48 336

原创 Sentence-BERT模型的句子级语义相似

在很多专业场景下,传统的搜索引擎不能满足客户灵活性问题的“解答”。深入理解客户问题的语义信息,是传统搜索需要解决的一大难题。在一些应用场景中,当用户不知道搜索什么内容时,或者输入相应内容希望得到结果,这时候普通ES索引是不太精准了,因为它不理解用户的语义。例如:“苹果公司发布了新款手机” 和 “苹果推出了新的移动设备”、“如何制作蛋糕”和“蛋糕的制作方法”等等,这些问题在词语上相近较少,但语义上相似度极高。如何去解决上面的问题?--------S-BERT模型实现句子级语义信息表达。

2025-02-23 17:03:25 119

原创 pptx文档提取信息

pptx文档提取解析常用的库。如果只需要解析 .pptx 的文本、表格、图片,推荐使用 python-pptx(开源,轻量级)。如果需要高性能、支持.ppt、动画、格式转换,推荐 Aspose.Slides(收费)。如果需要 PPTX 转 PDF 或者 HTML,适用于 Linux服务器,推荐 LibreOffice 方案。如果在 Windows 上运行,并且 PowerPoint 已安装,可以用 comtypes直接调用 PowerPoint 解析。

2025-02-15 17:38:21 484

原创 Html、Markdown的信息提取

【python】 mistune转换md为HTML,BeautifulSoup解析读取。【python】Html文档,使用BeautifulSoup解析读取。

2025-02-15 17:09:46 353

原创 pdf文档提取信息

本博客文章介绍pdf的文本、图片、表格等信息提取的技术方案对比。目前比较熟知的是pdfplumber 、PyPDF2 、fitz(PyMuPDF)。它们之间对比如下pdfplumber 的说明优点· 结构化文本解析(如报告、合同等)。· 表格提取(尤其是规则清晰的表格)。· 带有复杂布局的 PDF。· 提供丰富的布局信息(如每个字符的位置、字体等)。· 提取表格和多列文本时表现优异。缺点· 图片处理能力较弱。· 速度较慢,尤其是大文件。

2025-02-15 16:57:22 396

原创 LibreOffice转换word文档

对于word文档,这里介绍一种解析文本、提取图片的方式。具体技术方案:LibreOffice将docx转换为pdf + 再pdfplumber按页提取文本。该方案说明LibreOffice 是一个跨平台的开源办公套件,支持 Linux、Windows 和 macOS 操作系统。目前为止,LibreOffice 是最佳的把docx转换为pdf的方式!但是一个严重的缺点:按照默认参数去生成pdf,会有一些属性会丢失【比如pdf中的图片被设置为共享形式,导致解析pdf图片时不能判断出图片来自哪个页!

2025-02-15 16:43:21 347

原创 word文档提取信息

项目中遇到这样的一个需求问题:“一个docx文档,用户根据关键词能搜索定位到文档的哪一页”。docx文档主要有文本、表格、图片、附件这几类组合,为了达到高精度要求,表格、图片、附件等附带的内容也要能够搜索定位到具体位置,那么,对docx文档的每一页要收集上述几类的数据,以便后续功能扩展。以上就是这个需求的核心诉求,针对上面的问题,首先我们要解决的是:上述2个问题,我们逐步去分析。第一个问题:“如何精准的对docx文档按照页进行精准提取出文本、图片、表格等位置/信息”。针对这个问题,该博客文章解析提取

2025-02-15 16:05:50 246

原创 EasyExcel提取excel文档

EasyExcel 是阿里巴巴开源的一个高性能 Excel 读写库,相比于 Apache POI 和 JXL,它有明显的优势,特别是在处理大数据量时。低内存占用EasyExcel 采用了 SAX 解析,边读边处理,占用更少的内存,适合大文件写入速度快采用 分批刷盘(flush) 机制,减少内存占用并提高写入效率。支持多种 Excel 格式支持 .xls(Excel 2003 及以下,HSSF)和 .xlsx(Excel 2007 及以上,XSSF),兼容性强。

2025-02-15 14:39:05 398

原创 一次压测的记录笔记

最近系统使用QPS增加,按照要求需要对核心接口进行压测,保证一定的QPS访问。配置测试人员进行一些压测,做一些CPU、内存等监控,以便了解各个接口的性能优化点。

2025-01-06 20:21:53 171

原创 spring集成ehcache

问题背景:一些业务场景中,一些数据往往是长期不变更,但数据使用较多。为了满足系统性能需要,可以借助本地缓存去使用,保证同一个JVM实例只保存一份内存,提高系统可用性。基于这个背景,这里将介绍ehcache缓存。在springboot集成ehcache这篇文章中已经介绍过,这里介绍下springmvc去集成使用。

2024-12-18 18:18:53 542

原创 【数据结构和算法】--N叉树中,批量的目标节点到根节点的路径

在N叉树中,返回某些目标节点到根节点的所有路径这篇文章中,已经介绍一种查询目标节点到根节点的路径方法。现在思考用另一种方法去实现这个问题。= null) {

2024-11-28 15:20:55 320

原创 评估系统压测的响应指标

问题现象实际项目中,在一个功能上线前,项目经理往往会询问,这个功能能支持多少用户同时在线使用?还有一些场景下,大家点击操作某些功能后,发现系统响应慢,或系统奔溃,为什么会这样?分析针对这些问题,其实就是要对核心功能进行压测,校验各个功能接口的极限。因此,哪些指标是影响压测的结果?为了更全面的分析压测结果,将从网络性能磁盘性能应用系统三个方面说明,在实际项目应用中,哪些指标是必须关注且真实能反馈出性能问题的。固态硬盘采用闪存存储技术,读写速度远超机械硬盘。

2024-11-24 16:10:18 165

原创 【案例】---Hutool提取excel文档

引用jar包Hutool 按功能模块划分为多个子包,常用模块包括:• core:基础工具模块,包括字符串处理、日期、数组、集合、IO、反射等功能。• crypto:加密解密模块,提供对称加密、非对称加密、摘要加密等多种算法实现。• http:HTTP 请求模块,简化 HTTP 请求的发起和响应处理。• json:JSON 解析模块,支持将 Java 对象与 JSON 互相转换。

2024-11-17 17:56:15 455

原创 【案例】--Tika解析文件

1、一次性解析所有的文件内容(无论多大),但例如word、pdf、excel等文件是有页、sheet概念,是无法区分2、对于复杂大文件,会导致内存溢出、泄漏、死循环等问题。

2024-11-17 17:48:54 422

原创 文档平台的演变思考

随着GPT大模型的盛行,传统文档的关键字匹配式搜索已不满足客户多样性的需求。深入理解客户问题灵活的和用户交流善于总结搜索内容等客户的核心诉求,是传统文档需要立刻解决的。(1).首先传统文档(docx、pdf、txt、excel、md等)需要多维度、精准的“信息提取”;(2).借助GPT AI能力,达到对搜索内容进行总结或理解客户问题;实际技术方案实现:(1).传统文档的“信息提取”,需要达到按页提取信息,且能够对图片OCR识别;

2024-11-17 17:35:31 101

原创 【python】--python+SSE初识

SSE是基于HTTP的单向通信协议(即半双工),只允许服务器向客户端推送数据。使用传统的HTTP协议(http://或https://),是HTTP/1.1的扩展。它通过Content-Type: text/event-stream头标识流数据。每次传输数据时都会发送HTTP头部,数据传输量相对大些,因此效率低于WebSocket,适合需要持续更新、轻量级、频率适中的数据推送。内置了自动重连机制,支持在连接断开后自动重新连接到服务器,并提供Last-Event-ID标头以确保消息的顺序性。

2024-10-29 11:18:33 900

原创 【python】--python进阶学习

lambda 表达式只允许包含一个表达式,不能包含复杂语句,该表达式的运算结果就是函数的返回值。Python 断言,即 Python assert 语句,简单理解就是简易版的 if 语句。语句,即上下文管理器,它在 Python 中实现了自动分配并释放资源。例如cn = “成年” if age >= 18 else “未成年”assert 表达式。类似If表达式, 如。

2024-10-24 15:49:41 227

原创 【MongoDB】--MongoDB批量操作

【代码】【MongoDB】--MongoDB批量操作。

2024-09-19 16:33:31 1147

原创 【案例】--mongodb的响应慢思考案例

分析对应的mongodb表,表的总体数据量并不是很大,但单笔数据存储的较大(早期设计表的人考虑欠缺。对于超大规模的数据集,MongoDB提供了分片(sharding)和分区(partitioning)技术,可以将数据分布在多个服务器或磁盘上,通过并行查询来提升性能。针对上面的问题想象,结合实际表的存储大小、数据库服务器硬件性能等分析,在一次性查询较大数据集或返回较大数据集时,如何提高查询速度?:在每次分页查询时,使用上一次查询结果的最后一条记录作为下一次查询的起点,而不是简单地使用skip跳过大量记录。

2024-09-19 16:28:08 528

原创 【python】--python+webSocket初识

因项目需要,结识webSocket。本博客参考网上例子,单纯集成webSocket,初步了解Flask-SocketIO如何工作。

2024-08-12 17:45:12 643 1

原创 【案例】python集成OCR识别工具调研

因项目需要OCR识别能力,且要支持私有化部署。本文将对比市场一些开源的OCR识别工具,从中选择适合项目需要的OCR,且后续进一步研究/训练对应OCR模型。主要OCR识别有:Tesseract_OCR、PaddleOCR、EasyOCR、dddd_ocr、CnOCR备注说明:后面的图片测试使用如下。

2024-07-10 18:27:13 735 1

原创 【ES】--Elasticsearch的Nested类型介绍

当字段是普通数组类型,其实在ES中,每个对象元素的属性值被扁平化存储在了数组中,已丢失了对应关系,因此无法保证搜索的准确。:在实际项目中,一些数组存储的字段,根据匹配条件去查询经常会查询到一些“其他不需要”的数据,为什么会出现这种情况?:word_one是普通数组List,多个must匹配条件会匹配整个List数组数据,而不是每个Bean去匹配。通过key,value形式去更新对应数组节点的数据,如果nested数组多个被匹配,都会被修改。通过高亮显示可以看出,只会匹配第一项数据。

2024-06-29 15:34:50 2795

原创 【ES】--Elasticsearch的高亮模式

一般情况下,用plain highlight也就足够了,不需要做其他额外的设置;如果对高亮的性能要求很高,可以尝试启用posting highlight;如果field的值特别大,超过了1M,那么可以用fast vector highlight;在ES中,针对某个字段同时配置 Fast Vector Highlighting 和 Postings Highlighting 高亮模式是不可行的,因为这两种高亮模式是互斥的。它们分别依赖于不同的内部索引结构和算法,不可能同时应用于同一个字段;

2024-06-29 15:19:38 2036

原创 【ES】--Elasticsearch的翻页详解

ES的分页常见的主要有三种方式:from+size浅分页、scroll深分页、search_after分页。

2024-06-29 15:01:54 1635

原创 【数据结构和算法】--RangeSet时间范围管理示例

ImmutableRangeSet是一个不可修改的RangeSet,而TreeRangeSet则是利用树的形式来实现,提供了高效的查询和插入操作。这种自动合并的特性使得RangeSet能够保持范围的不重叠性,从而简化了范围集合的管理。当向RangeSet中添加一个新的范围时,它会遍历范围树,找到与新范围相交或相邻的现有范围,并进行合并。例如,当查询一个元素是否包含在RangeSet中时,可以从树的根节点开始,沿着适当的分支向下遍历,直到找到一个包含该元素的范围或确定该元素不在RangeSet中。

2024-05-05 15:09:04 677 1

原创 【案例】--自定义DSL查询

自定义ES的DSL查询(dynamic ES Query Language)【DEQL】是针对非结构化信息加工、提取需求而设计的查询语言。DEQL可以任意组合搭配各类逻辑操作符,提供便捷、强大、复杂的查询功能。存在问题思考现实项目中,不同用户都要求根据的自身查询条件来获取想要的数据。但是,对搜索中间件(如ES)了解程度、对表结构的“黑盒”、对业务复杂性等等,这些问题导致搜索效果往往不尽如意,很难做到满足所有用户的要求。

2024-04-23 20:50:11 417

原创 【MongoDB】--MongoDB的组合索引

本文章主要介绍Mongodb的组合索引的使用。

2024-04-23 20:24:37 811

原创 【案例】--“超大容量”存储思考

案例背景最近项目遇到一个问题,用户在创作时,有文件流、图片、超链接、文本等信息产生,而这些信息的容量高达几十M【超大容量的信息】。由于历史技术方案局限性,将超大容量的信息存入mongodb/ES的一个字段中。导致查询时往往会内存泄漏或接口响应慢等现象。思考面对上面的问题,有这些思考:(1)、对于超大容量的文件该如何去存储?(2)、如果是超大容量的二进制信息流该如何存储?----基于超大容量的文件存储,在【(非结构化)文件管理案例】中有详细介绍。下面主要介绍“超大容量的二进制流的存储”。

2024-04-06 15:36:32 242

原创 【ES】--Elasticsearch DSL的简单查询

ES中常见的查询类型分为简单查询、复合查询、聚合查询等。这里基于这些查询进行详细的介绍。**term查询**:单词查询,在字段的倒排索引(发生分词)或者直接在字段值(未发生分词)中查找条件值,只要找到这个条件值就算匹配上,得分为1。**terms查询**:多个单词查询,效果为 多个 term 或者的逻辑。**match查询**:分词后搜索。比如分词后有N个分词,只要匹配上其中一个就可以返回数据。

2024-02-25 17:44:00 1285

原创 【ES】--ES的DSL语句初识

类似关系型数据库,ES也有自己的query语言,其搜索结构都是由json串组合构成请求体发送。Elasticsearch提供了基于JSON的完整查询DSL(特定于域的语言)来定义查询。该篇文章对DSL的基本使用做简单介绍。

2024-02-23 09:00:51 745

原创 【ES】--Elasticsearch的分词器深度研究

分词器是ik_max_word,会将“龙马家书”拆分为“龙马”、“马家”、“家书”。然后filter配置的是edge_ngram_filter,在上面拆分的token词组基础上,按照edge_ngram_filter规则进一步拆分。从结果看:分词器是keyword,filter支持edge_ngram_filter,字符过滤器支持tsconvert【简繁体】。分词器是keyword,表明是不进行分词,但filtet中edge_ngram_filter是按照布长方式拆分token,所以得到如此结果。

2024-02-12 15:33:29 1993 2

原创 【ES】--ES集成热更新自定义词库(字典)

Win10下安装部署Tomcat,在**\webapps\ROOT路径下,创建一个hotDict.dic文件。knowledge_customize.link_info.value设置了[“analyzer”: “ik_max_word”]。在实际项目中词库是时刻在变更的,但又不希望重启ES,对此我们应该如何解决?把“追命少年”加入hotDict.dic文件中,不需要重启Tomcat和ES,等待一分钟左右时间。针对上面的问题,可以采用**“自定义热更新词库”方案:使用Tomcat来实现热更新**。

2024-02-12 15:22:22 1644

原创 【ES】--ES集成自定义分词库

在…\elasticsearch-7.3.2\plugins\ik\config下找到IKAnalyzer.cfg.xml,并打开,如下添加一个自定义的扩展字典myDict.dic,在这里添加词语,并设置编码格式是UTF-8。如果是多个自定义词典,就用;拼接。重启ES,如下表明已经加载了自定义的字典myDict.dic。

2024-02-12 15:16:16 1728

原创 【ES】--Elasticsearch的分词器详解

最近项目需求,针对客户提出搜索引擎业务要做到自定义个性化,如输入简体或繁体能能够互相查询、有的关键词不能被分词搜索等等。为更好解决这些问题,“分词器”的原理和使用至关重要。

2024-02-12 15:07:55 2550

原创 【案例】--分布式”雪花算法案例

前段时间线上系统出现一个严重的bug:一个表中插入两条一样的id记录信息(该字段未设置唯一主键)。查看了代码,第一印象是绝对不可能出现该Bug,不科学,怎么会出现两个相同的id记录呢?带着疑惑又仔细查看了代码,id的生成是SnowFlake雪花算法。大脑灵光一闪,这不就是分布式高并发下,SnowFlake雪花算法会出现重复id的问题。问题发现了,接下来就是“分布式高并发下,如何生成唯一id”的问题。UUIDJava自带的生成一串唯一随机36位字符串(32个字符串+4个“-”)的算法。

2024-02-05 10:02:36 1326

原创 【Redis】--RedissonClient的Lock锁详解

redisson的分布式锁在实际开发中经常遇到,这里将详细介绍各种Lock的源码,通过源码来了解每个Lock的使用,以及介绍相关示例。

2024-02-02 13:11:38 1348

原创 【ES】--Elasticsearch的深度分页/内存超限等问题

(2)、查询的内容太大,超过内存限制,报错:entity content is too long [138159637] for the configured buffer limit [104857600]----解决: 设置ES查询内容限制HeapBufferedResponseConsumerFactory。(3)、如何提高ES搜索的内容?ES搜索是有分词功能,为了返回高精度的内容,要设置最低分数。对于ES搜索,往往会有一系列的问题。

2023-12-18 14:36:05 1117

jca分析工具.zip

利用Jca工具分析JavaCore文件/Thread dump文件。Jca工具分析JavaCore文件/Thread dump文件。很实用。

2020-08-14

redis-4.0.6(Linux版本).zip

安装在CentOS下的Redis.4.0.6版本包。本人亲测,可以正常使用。具体安装步骤见博客介绍。

2020-08-09

CentOS-7(64位 mini版 linux).zip

Linux系统,CentOS7是mini版本,几百M大小,可以搭建Linux服务器环境。比ubuntu的Linux系统小型很多。适合程序员部署相关服务。

2020-08-05

Jdk-1.8(win+Linux).zip

这里提供win+Linux两种环境下的Jdk1.8版本资源。具体安装部署,可以参考本人相关博客文章介绍。很实用。

2020-08-05

Xftp6版本.zip

在CentOS环境下,常用到Xftp6辅助工具。 这里是Xftp6版本。可以正常安装使用。正常安装使用。正常安装使用。

2020-08-05

Xshell-6版本.zip

在CentOS环境下,常用到Xshell辅助工具。 这里是Xshell6版本。可以正常安装使用。正常安装使用。正常安装使用。

2020-08-05

Redis软件+RedisClient工具.zip

这里提供win下,Redis软件和Redis Client客户端。两者结合,在工作中很实用。实用。实用。实用。实用

2020-08-05

HiJson 辅助工具.zip

程序员开发需要的JSon辅助工具。便捷实用。

2020-08-05

apache-tomcat(win+Linux).zip

apache-tomcat,压缩包中有win、linux两种环境的安装包。win是直接解压即可使用。linux是本人在CentOS环境集成的。相关部署可参考本人相关博客文章。

2020-08-05

IDEA-JProfiler插件+JProfiler软件.zip

完整的“[本地会话实时分析模式] IDEA集成JProfiler”所需要的资源。 具体可以参考博客文章的步骤安装。 亲测可以监控分析。

2020-08-05

mysql绿色版3306

这里是mysql绿色版。

2019-03-10

Postman软件安装包

postman用于模拟发包 http

2018-11-06

makrdown安装包

typora markdown软件安装包,开发中很多需要这种.md格式

2018-11-06

Redis安装包

Redis 64位的 msi安装包

2018-11-06

CentOS7下安装搭建Redis-4.0.6

CentOS7下安装搭建Redis-4.0.6的详细过程,有具体的截图说明过程。其中还包含Redis客户端是在Win下搭建,可以连接Redis服务,实现程序测试查看。 tar.gz、exe等包已经包含

2018-09-29

CentOS7下安装elasticsearch-5.2.2分布式集群

CentOS7下安装搭建elasticsearch-5.2.2.tar.gz分布式集群的全过程,包括创建非root用户、配置参数设置等详细过程,这是本人亲自搭建,有详细的截图说明过程。 说明的是:CentOS7下基本的JDK、防火墙等设置就不多讲

2018-09-29

CentOS下 dubbo+zookeeeper伪集群和分布式集群

为了搭建Hadoop平台学习,前期搭建dubbo+Zookeeper集群,这里有详细介绍zookeeeper伪集群和分布式集群, dubbo在tomcat下安装等过程。相关jdk、war、jar等也在百度云https://pan.baidu.com/s/16Eu0afAysdKmNlMXVSfi-Q 下载 ,密码见doc中。

2018-09-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除