- 博客(803)
- 资源 (4)
- 收藏
- 关注
原创 如何为图片 PDF 添加可搜索的文本层:完整指南
幸运的是,通过 OCR(光学字符识别)技术,我们可以为图片 PDF 添加一个隐藏的文本层,使其具备可搜索和可复制的功能。通过 OCR 技术和 PDF 工具的结合,我们可以为图片 PDF 文件添加一个隐藏的文本层,从而实现搜索、复制和选择功能。这样可以确保嵌入的文本与原始图像中的文字对齐。根据 OCR 提供的字符高度信息,我们可以动态计算字体大小,确保嵌入的文本与原始图像中的文字对齐。为了解决这些问题,我们需要借助 OCR 技术,从图像中提取文字,并将其嵌入到 PDF 中,形成一个新的文本层。
2025-03-28 08:34:54
185
原创 使用 OCRmyPDF 将扫描 PDF 转为可搜索文档和文本文件
OCRmyPDF 基于 Tesseract OCR 引擎,主要功能是为扫描的 PDF 添加可搜索的文本层。它支持多语言、页面调整、元数据修改等功能,并能通过--sidecar选项生成 TXT 文件。无论是命令行还是 Python 调用,它都是文档处理的高效选择。OCRmyPDF 是一个多功能的工具,支持命令行和 Python API。通过安装语言包(英文、简体中文、繁体中文),你可以处理多语言 PDF,生成可搜索的 PDF 和 TXT 文件。它提供了丰富的参数(如--jobs)和优化选项(如。
2025-03-27 17:50:42
214
原创 2025 年推荐的 20 个热门 MCP Server
MCP(Model Context Protocol)Server 是增强 AI 工具能力的关键组件,它们允许 AI 与外部平台、服务和数据源进行交互。这些服务器充当桥梁,使像 Claude 这样的 AI 助手能够自动化任务、访问实时信息,并无缝集成到各种工作流程中。以下是 2025 年推荐的 20 个热门 MCP Server,它们可以显著提升 AI 工具的功能,帮助用户在开发、通信、项目管理等领域实现更高的效率和自动化水平。
2025-03-21 08:53:43
903
原创 One API:统一接口与模型重定向的强大功能
One API 是一个开源的代理层,用于统一管理和调用不同的 AI 模型服务。它的主要目标是通过一个标准化的接口,屏蔽底层不同供应商之间的差异,从而简化开发流程。统一接口:无论底层使用的是 OpenAI、Azure 还是其他供应商的服务,用户只需通过一个统一的 API 调用即可。多供应商支持:支持接入多个供应商的模型,并根据需求动态切换。灵活性与扩展性:支持自定义模型和自定义逻辑,满足特定业务需求。高效成本管理:通过智能路由和模型重定向,帮助用户优化成本。在 One API 的架构中,
2025-03-19 17:51:28
238
原创 如何使用 Gemma3 实现视觉任务:从图片中提取文本
Gemma3 是一个强大模型(它已被调整为支持视觉任务,除了1B),通过结合 Ollama 的 API,我们可以轻松实现从图片中提取文本的功能。本文将介绍如何使用 Gemma3 处理图像,并分享一个实际的示例。
2025-03-14 18:00:00
2859
1
原创 FerretDB 2.0:开源 MongoDB 替代品的安装与使用指南
FerretDB 2.0 是一个开源数据库,旨在作为 MongoDB 的替代品。它与 MongoDB 5.0+ 的驱动程序和工具兼容,适合需要避免 MongoDB 许可复杂性的开发者。它的核心特点是使用 PostgreSQL 作为后端,并通过 DocumentDB 扩展提升性能,研究表明某些工作负载可快 20 倍。
2025-03-11 17:58:27
1009
原创 Spring Boot API 项目中 HAProxy 与 Nginx 的选择与实践
HAProxy(High Availability Proxy)是一个专注于负载均衡和代理的开源工具,以高性能和低资源占用著称。它支持 TCP(Layer 4)和 HTTP(Layer 7)协议,广泛用于分布式系统。Nginx 是一个高性能 Web 服务器,后来扩展为反向代理和负载均衡工具。它以易用性和模块化设计受到开发者青睐。HAProxy 和 Nginx 各有千秋,选择的关键在于你的 Spring Boot API 项目规模和需求:如果追求高性能和专注负载均衡,HAProxy 是首选。如果需要。
2025-03-06 08:57:27
611
原创 使用 Node.js 和 Follow 模块监控 CouchDB 数据库变更
通过结合nano和follow,我们可以轻松实现 CouchDB 的变更监控。启动时处理历史数据,随后切换到实时监听,既满足了完整性需求,又保证了实时性。希望这篇文章能帮助你在项目中高效集成 CouchDB 监控!
2025-03-04 13:27:52
86
原创 Llama.cpp 服务器安装指南(使用 Docker,GPU 专用)
构建服务器镜像-t:命名镜像为。:仅构建服务器版本。-f:指定修改后的。:使用当前目录作为构建上下文。构建时间:10-20 分钟,取决于网络和机器性能。验证。
2025-02-27 11:32:10
676
原创 Llama.cpp Server Installation Guide with Docker (CPU-Only)
这个镜像默认支持 CPU,不含 CUDA。若需 GPU 支持,得用 server-cuda,但你指定 CPU-only,这里保持原样。-t 8: Uses 8 CPU threads (调整为你的核心数,跑 nproc 查看).-c 4096 够用,若处理长对话可增到 8192(注意 RAM 使用)。改端口:-p 8080:8080 和 --port 8080。Increase -t 到 CPU 最大核心数。Check -v 路径和文件名是否正确。
2025-02-27 11:11:14
351
原创 高级应用:使用 p-retry 处理 Node.js 中的重试逻辑
p-retry允许你通过传递一个选项对象来自定义重试策略。retries: 最大重试次数。: 每次重试失败时调用的回调函数。factor: 用于计算重试间隔的因子。minTimeout: 重试之间的最小间隔时间(毫秒)。maxTimeout: 重试之间的最大间隔时间(毫秒)。randomize: 是否在重试间隔时间中添加随机性。if (!try {${if(!if(!if(
2025-02-20 13:23:30
148
原创 p-queue 详细介绍
是一个基于 Promise 的队列管理工具,专注于控制异步任务的并发数量。它非常适合用于限流异步操作(或同步操作),例如与 REST API 交互、执行 CPU/内存密集型任务等。如果你的项目使用 CommonJS,需要转换为 ESM。例如,你可以创建一个优先级队列或延迟队列。:对于服务器端的任务队列需求,建议使用 Redis 支持的。返回一个 Promise,当队列为空且所有任务完成时解决。可以为任务分配优先级,高优先级的任务会优先执行。参数,可以限制同时运行的任务数量。逻辑,实现任务失败后的延迟重试。
2025-02-18 16:56:36
72
原创 MySQL 窗口函数:功能、使用场景与性能优化
MySQL 窗口函数是一项强大的工具,能够帮助开发者轻松实现复杂的分析操作,如排名、累计计算和前后行比较等。它为数据分析和复杂查询提供了极大的便利,但同时也可能带来性能问题。窗口函数是一种特殊的 SQL 函数,用于在查询结果集上执行复杂的分析操作。尽管窗口函数功能强大,但在处理大数据集时可能会遇到性能瓶颈。)不同,窗口函数不会合并行,而是保留每一行的数据,同时允许对一组相关行进行计算。:根据排序规则分配排名,相同值的行排名相同,后续排名会跳过。窗口函数与分页结合时,可以通过嵌套查询或临时表优化性能。
2025-02-18 10:49:44
471
原创 如何编写提示词,让AI发挥最佳效果?——初学者指南
今天,我们将通过简单易懂的方式,教你如何编写提示词,让AI(如DeepSeek)发挥最佳效果。模糊的提示词会让AI“猜”你的意图,结果可能南辕北辙。:“请解释量子计算、人工智能和区块链的关系,并写一篇关于它们如何改变未来的文章。:“请写一段类似以下的文案:‘在这个快节奏的世界中,我们为您提供宁静的港湾。:“请解释量子计算的基本原理,假设读者是计算机科学专业的大学生。:“请解释量子计算的基本原理,假设读者是计算机科学专业的大学生。模糊的提示词会让AI“猜”你的意图,结果可能南辕北辙。
2025-02-17 13:43:57
104
原创 AI多跳推理的提示词
多跳推理是一种需要经过多个推理步骤才能得出结论的复杂推理过程。与单跳推理(Single-hop Reasoning)不同,多跳推理涉及多个信息源或知识片段,通过逻辑连接逐步推导出最终答案。多跳推理是一种强大的工具,能够通过多个推理步骤解决复杂问题。它在文件分类、问答系统、知识图谱和推荐系统等领域有广泛的应用。通过分步骤提取和分析信息,多跳推理可以提高任务的准确性和可解释性。如果你有具体的应用需求,可以尝试设计多跳推理的提示词,逐步引导模型完成任务。
2025-02-17 13:18:58
46
原创 使用 Flowable 实现子流程调用与参数传递:嵌入式子流程与调用活动详解
子流程是 BPMN(Business Process Model and Notation)中的一个重要概念,用于将复杂的业务逻辑分解为更小的单元。嵌入式子流程(Embedded Sub-Process)嵌套在主流程中,作为主流程的一部分。共享主流程的上下文和变量。适用于简单的任务分组或逻辑封装。调用活动(Call Activity)调用一个独立的流程定义(另一个 BPMN 文件)。子流程拥有独立的流程实例。适用于需要复用流程逻辑或模块化设计的场景。
2025-02-13 11:07:44
1083
原创 Node.js 应用性能测试:Autocannon 的使用与 Docker 集成
通过 autocannon,这一强大的工具,我们可以轻松实现对应用性能的全面评估和优化。本文详细介绍了如何将 autocannon 集成到 Docker 和 PM2 的环境中,并展示了如何通过自动化测试和 CI/CD 集成,提升开发效率和应用稳定性。无论是 API 服务、Web 应用,还是微服务架构,性能测试都是确保系统稳定性和高效运行的重要环节。测试完成后,autocannon 会输出详细的测试报告,你可以根据这些结果分析应用的性能表现,并进行针对性的优化。,添加 autocannon 的安装和配置。
2025-02-08 10:43:29
378
原创 使用 Docker 和 PM2 构建高并发 Node.js API 网关
通过结合 Docker 和 PM2,我们可以构建一个高性能、高可用的 Node.js API 网关,并利用分布式限流器保护服务不被过多请求压垮。这种架构不仅适用于高并发场景,还能显著提升服务的可维护性和可扩展性。
2025-02-08 10:32:47
271
原创 PM2 与 Docker 结合使用:Node.js 应用的高效管理与部署
本文将详细介绍 PM2 的功能、Docker 的优势,并展示如何在 Docker 容器中使用 PM2 管理 Node.js 应用,实现高效、稳定的部署。PM2(Process Manager 2)是 Node.js 的流行进程管理工具,能够帮助开发者更好地管理和监控应用进程。但 Node.js 是单线程的,直接运行多个。以下是一个完整的 Node.js 应用示例,展示如何在 Docker 中使用 PM2 管理应用。)允许开发者定义应用的启动参数、环境变量和资源限制,简化了应用的部署和管理。
2025-02-08 10:28:16
520
原创 多租户架构设计与实现:基于 PostgreSQL 和 Node.js
多租户架构是 SaaS 应用的核心设计模式,能够显著降低成本和维护复杂度。本文介绍了多租户的常见数据隔离方案,并基于PostgreSQL和Node.js实现了一个多租户系统。通过动态切换 Schema,我们可以在共享数据库中实现租户数据的隔离。在实际应用中,选择合适的多租户方案需要根据业务需求、租户规模、性能要求和成本预算进行权衡。无论是独立数据库、独立模式还是共享表,都有其适用的场景。希望本文能为你的多租户架构设计提供参考和启发。
2025-02-08 09:23:26
1167
原创 如何通过 Nginx 实现 CouchDB 集群的负载均衡并监控请求分发
在 Nginx 配置中添加自定义响应头,返回请求被转发到的后端服务器地址。
2025-01-16 14:08:27
693
原创 Docker Swarm、Kubernetes 和 LVS 的功能对比
Docker Swarm、Kubernetes 和 LVS 是三种不同的技术,分别用于容器编排、集群管理和负载均衡。
2025-01-13 19:15:00
1076
原创 详解 RabbitMQ 在 Go 中的实现:一个带重试机制和死信队列的消息消费者
加载环境变量:从.env文件中加载 RabbitMQ 的连接信息和其他配置。连接 RabbitMQ:建立与 RabbitMQ 的连接并创建通道。声明交换机和队列:包括主交换机、主队列、死信交换机和死信队列。绑定队列到交换机:将主队列绑定到主交换机,并将死信队列绑定到死信交换机。消费消息:从主队列中消费消息,并处理消息。消息处理逻辑:模拟消息处理,支持重试机制和死信队列。下面我们将逐步解析代码的每一部分。消息重试机制:支持最多 3 次重试。死信队列:确保消息在多次处理失败后不会被丢失。
2025-01-09 15:02:17
327
原创 RabbitMQ 在 Go 中的核心方法详解
通过QueueBind和Consume这四个方法,我们可以在 RabbitMQ 中实现消息的发布、路由和消费。理解这些方法的参数及其作用,是使用 RabbitMQ 的基础。希望这篇博客能帮助你更好地掌握 RabbitMQ 在 Go 中的使用!!
2025-01-09 14:57:29
410
原创 局部敏感哈希(LSH):高维数据相似性搜索的利器
局部敏感哈希(LSH)是一种用于高维数据近似最近邻搜索的算法。它的核心思想是通过哈希函数将相似的数据点映射到相同的桶中,从而在搜索时只需检查同一桶或邻近桶中的数据点,大大减少计算量。局部敏感哈希(LSH)是一种强大的工具,能够高效处理高维数据的相似性搜索问题。尽管它是一种近似算法,可能会牺牲一定的精度,但在许多实际应用中,这种权衡是值得的。无论是文本、图像、音频,还是推荐系统和生物信息学,LSH都展现了其广泛的应用价值。
2025-01-09 14:46:34
798
原创 NodeJs 箭头函数:`()=>{}` 和 `()=>()` 的区别与使用场景
特性 |()=>{}()=>()函数体| 块级作用域{}| 表达式()返回值| 需要显式return| 隐式返回表达式的值 |适用场景| 多行逻辑或复杂操作 | 单行逻辑或直接返回值 |()=>{}和()=>()是 JavaScript 中箭头函数的两种常见写法,它们的主要区别在于函数体的结构和返回值的方式。理解它们的区别后,你可以根据实际需求选择更合适的写法,从而编写出更简洁、高效的代码。
2025-01-07 16:42:51
560
原创 实现CouchDB 全文搜索
如果 CouchDB 自带的全文搜索功能无法满足需求,可以将数据同步到 Elasticsearch 中,利用 Elasticsearch 的强大全文搜索功能。CouchDB 本身并不直接支持全文搜索功能,但可以通过一些简单的方法实现基本的全文搜索。如果需要更强大的全文搜索功能,建议使用 CouchDB Lucene 插件或将数据同步到 Elasticsearch。通过 CouchDB 的 MapReduce 视图,可以实现简单的全文搜索。支持复杂的全文搜索功能(如分词、模糊搜索、短语搜索等)。
2025-01-06 10:50:49
1122
原创 CouchDB 中模糊查询并不区分大小写
在使用 CouchDB 的 Mango 查询进行正则表达式匹配时,要注意避免使用不支持的正则表达式语法。通过简化正则表达式并清楚地理解其规则,我成功地解决了问题。同时,这也让我认识到,选择合适的查询方式可以显著提高工作效率。
2025-01-02 15:29:36
191
原创 解决 Node.js 单线程限制的有效方法
Node.js 是一个基于事件驱动、非阻塞 I/O 模型的 JavaScript 运行时环境,特别适合构建高并发的网络应用。然而,由于其单线程架构,在处理 CPU 密集型任务时可能会遇到瓶颈。本文将介绍几种解决 Node.js 单线程限制的方法,帮助你提高应用程序的性能和可扩展性。
2024-12-25 15:01:15
526
原创 在 Node.js 中正确处理 `async/await` 及数组迭代
在 Node.js 中进行异步编程时,选择正确的数组迭代方法至关重要。避免在forEach中使用。使用for...of循环以确保操作的顺序。使用来并行处理多个异步操作。异步编程虽然强大,但也可能让人困惑。了解并谅解 Node.js 中的异步机制,对于提高代码的可读性和可维护性至关重要。希望这篇文章能帮助你更加自信和有效地使用异步编程。
2024-12-25 14:49:40
1091
原创 Typesense:开源的高速搜索引擎
Typesense 是一款强大且灵活的搜索引擎,适合面向多种应用场景的企业。无论是支持中文搜索、拼写错误容忍,还是向量搜索和地理搜索,其功能都在不断地扩展与优化。通过上述示例,相信读者已经对如何在实际项目中使用 Typesense 形成了更加清晰的认识。如果你正在寻找一个简单、快速且功能丰富的搜索解决方案,Typesense 无疑是一个值得考虑的选择。
2024-12-24 10:07:44
923
原创 深入了解 CouchDB 的 Mango 查询:操作符和限制
Mango 查询提供了一个单一的 HTTP API 端点,接受 JSON 格式的请求体,通过 HTTP POST 方法发送。这些请求体包含一组指令,CouchDB 会按照指定的顺序处理并返回结果。Mango 查询的设计原则是简化客户端的实现,同时为用户提供更自然的 CouchDB 数据操作方式。
2024-12-11 15:26:56
921
原创 mongoDB 8.0 群集搭建和遇到的问题
通过上述步骤,您可以在 Docker Compose 中设置一个 MongoDB 副本集,包含一个主节点和两个副节点。确保每个节点可以互相访问,并按步骤初始化副本集,您就可以充分利用 MongoDB 的高可用性和扩展性特性。
2024-12-06 10:27:46
1500
原创 MongoDB 索引类型详解
这些索引类型可以帮助优化查询性能,满足不同的应用需求。选择合适的索引类型可以显著提高 MongoDB 的查询效率。如果你在项目中有使用哪种索引,或者需要进一步了解某种索引的具体用法,欢迎在评论区讨论!
2024-12-04 18:17:57
722
原创 RabbitMQ 实现消息队列负载均衡
RabbitMQ是一个消息代理,支持多种消息协议,尤其以AMQP协议著称。它允许应用程序在异步模式下交换数据,适合于微服务架构中的消息传递、任务调度等场景。
2024-11-02 09:30:00
619
原创 如何将多个Spring Boot项目打包到一个Docker容器中
在现代软件开发中,Docker已成为一种流行的容器化技术,能够简化应用的部署和管理。对于使用Spring Boot开发的多个项目,将它们打包到一个Docker容器中,可以有效地减少资源占用和管理复杂性。本文将详细介绍如何将多个Spring Boot项目打包到一个Docker容器中。
2024-10-29 17:04:41
678
原创 为什么大公司禁止在Spring Boot项目中使用嵌入式Tomcat?
大公司禁用嵌入式Tomcat,主要是出于集中管理与运维、性能调优、资源隔离、可扩展性和安全性等考虑。通过使用外部Tomcat或其他应用服务器,企业能够更好地管理、监控和扩展应用,减少嵌入式服务器带来的运维复杂度和性能瓶颈。这种做法不仅提升了系统的稳定性,也为企业的长远发展奠定了基础。
2024-10-29 16:56:43
802
原创 安装 protoc 编译器指南,并生成Java 代码
接下来,我们将定义一个简单的 gRPC 服务。以下是一个示例的.proto在这个示例中,我们定义了一个名为Greeter的服务,它包含一个SayHello方法,该方法接受一个消息并返回一个HelloReply消息。
2024-10-23 17:57:21
1979
原创 NodeJS GPRC 多个 .proto 文件
使用 npx grpc_tools_node_protoc 可以简化 gRPC 代码的生成过程,而无需手动安装 protoc 编译器。下面是详细的步骤,展示如何使用 npx grpc_tools_node_protoc 生成 gRPC 代码。
2024-10-14 17:27:47
382
很准确的OCR 服务,可以使用API 直接调用,整合任何系统很方便
2025-03-19
使用 Docker Compose 部署 CouchDB 集群:问题与解决方案
2025-01-14
Python 编程基础:深度解析
2024-02-12
Python PaddleOCR OCR结构化识别的例子
2024-02-07
Tesseract最新的中文简体和繁体语言包 chi-sim.traineddata
2024-02-07
使用Spring Boot和Python Flask实现AI文本分类服务注册与发现
2024-02-06
Python 面试题目大全2
2023-10-04
Python 全面的面试题
2023-10-02
用apisix 做一个api key web 管理和api key 权限和访问级别控制
2023-10-01
开发和启用llama2 api
2023-10-01
交互式图表和可视化的MATLAB工具箱
2023-09-10
用go 写的mysql复制库
2023-09-10
构建一个私用的chatGPT
2023-09-10
Spring boot and Spring Cloud财务顾问应用程序
2023-09-09
Spring 各种例子:Spring Data Elasticsearch,JDBC,JPA,LDAP,MongoDB
2023-09-09
下载和安装JDK 8u301(Java开发工具包)的Windows 64位版本 和mac 版本
2023-09-09
即时通讯app源码,它是语音和视频通话
2023-09-09
如何在Windows本地和云端安装LLaMA 2 (ChatGPT)
2023-09-09
文档理解转换器,OCR 图片和解释图片内容
2023-09-08
Flowable 的安装和源代码
2023-09-08
使用机器学习进行图像识别
2023-09-02
AI 图像识别和视频分析
2023-09-02
人工智能安全学习和用例
2023-09-02
使用AI进行文本分类的深入学习
2023-09-02
Spring Boot和Spring Security应用例子
2023-08-12
python构建实时车辆安全监控系统
2023-07-30
驾驶辅助系统:实现自动驾驶辅助、自动泊车和车道保持功能的代码和想法
2023-07-30
汽车动力控制系统:使用C#上位机实现精确控制,提升燃油效率和动力性能
2023-07-30
C# 上位机的汽车控制系统的设计
2023-07-30
上位机:C# CAN的高级的例子
2023-07-30
C# OPC UA的高级实用例子
2023-07-30
C#编写的Modbus TCP通信的详解
2023-07-30
开源的可视化爬虫易采集EasySpider:如何无代码可视化的爬取需要登录才能爬的网站
2023-06-20
开源的低代码框架,几分钟内构建复杂的响应式前端
2023-06-10
Golang 的JWT 类
2023-05-26
Sliverlight TagControl Sample
2010-04-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人