自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 RAG-分块策略

分块涉及将文本划分为可管理的单元或“块”,以实现高效处理。这种分割对于语义搜索、信息检索和生成式 AI 应用等任务至关重要。每个块都保留上下文和语义完整性,以确保结果连贯。

2025-04-18 19:36:05 1095

原创 RAG-概述

RAG(Retrieval Augmented Generation, 检索增强生成)是一种技术框架,其核心在于当 LLM 面对解答问题或创作文本任务时,首先会在大规模文档库中搜索并筛选出与任务紧密相关的素材,继而依据这些素材精准指导后续的回答生成或文本构造过程,旨在通过此种方式提升模型输出的准确性和可靠性。RAG 技术架构图。

2025-04-18 19:28:40 323

原创 RAG -GraphRag 知识点

通过 NLP 技术(依存分析、共现分析、预训练模型)建立节点间的边(如因果关系、隶属关系)。:将非结构化文本转换为图结构(知识图谱),利用图算法增强检索与生成过程的语义关联性。:将子图或路径转换为文本提示(Prompt),输入大语言模型(LLM)生成最终回答。显式建模实体间的多跳关系,支持复杂推理(如因果链、事件演化)。:抽取实体、事件、概念等作为图节点(如人名、地点、术语)。:结合图结构中的关系约束,减少生成中的“幻觉”现象。:非结构化文本(文档、网页、对话记录等)。:包含丰富语义关系的知识图谱。

2025-04-17 17:15:36 577

原创 Agent开发-MCP的原理、价值、使用与开发实践

本质:MCP是AI与外部工具和数据交互的统一协议标准,类似AI世界的“USB-C”接口。价值:解决了传统Function Call的平台依赖问题,提供更统一、开放、安全、灵活的工具调用机制。使用与开发:为普通用户和开发者提供了便利,普通用户可直接使用现成工具,开发者可利用清晰的架构和SDK简化工具开发。

2025-04-15 11:56:39 331

原创 Java 实现将Word 转换成markdown

日常的开发中,需要将word 等各类文章信息转换成格式化语言,因此需要使用各类语言将word 转换成Markdown。1、解析文件中所有图片信息,保存到下方的地址。2、将word 文档转换成markdown。3、获取markdown 文件。2、使用以下代码进行编写。运行上方的程序将会得到。

2025-03-28 13:49:17 708

原创 AutoGen-构建问答智能体

如所述,autogen是一的框架,属于微软旗下的产品。依靠我们可以快速构建出一个多智能体应用,以满足我们各种业务场景。环境说明安装依赖使用UI交互界面为Chainlit 安装chainlit命令。

2025-03-14 19:28:09 524

原创 AI 应用开发之 LangChain

开发:使用LangChain 的开源构建模块、组件和第三方集成构建应用程序,使用LangGraph构建具有一流流式处理和人机协作支持的有状态代理。部署:将您的LangGraph应用程序转变为生产就绪的API和助手,使用LangGraph Cloud。:通过讲步骤建模为图中的边和节点,构建强大且有状态的多参与者应用程序。生产化:使用LangSmith检查、监控和评估您的链,以便您可以持续优化并自信地部署。:一个开发者平台,让您调试、测试、评估和监控LLM应用程序。组成应用程序认知架构的链、代理和检索策略。

2025-03-07 20:18:48 188

原创 机器学习-迁移学习 | Transfer learning

迁移学习(Transfer Learning)是机器学习中的一种技术,旨在将一个领域(源领域)中学到的知识应用到另一个相关但不同的领域(目标领域)中。通过迁移学习,可以利用已有的数据和模型来提升新任务的学习效果,尤其是在目标领域数据有限的情况下。

2025-03-07 19:33:05 1663

原创 机器学习 -决策树 Decision tree

决策树是一种逻辑简单的机器学习算法,它是一种树状结构,所以叫决策树。决策树是一种解决分类问题的算法。根节点:包含样本的全集内部节点:对应特征的熟悉测试叶节点:代表决策的结果。

2025-03-05 20:01:03 344

原创 python 解析word文档,按顺序输出

日常的开发中,有需要解析文档的内容存在,需要进行对文档的结构化解析,然后提供给AI进行解读。

2025-03-04 19:57:34 605

原创 PostgreSQL MVCC 原理详解

多版本并发控制(Multi-Version Concurrency Control ,简称 MVCC)是一种并发控制的方法,它允许读写操作并发执行,而不会相互阻塞,在MVCC中,每个事务都会看到数据库在某个时间点的一致性快照,而这个快照是在事务开始时确定的,这样,即使其他事务在并发修改数据,当前事务仍然能够访问到修改前的数据版本,从而避免读写冲突。

2025-03-01 14:06:23 484

原创 保证RabbitMQ消息不会被重复消费

/ 成功处理,发送ACK。关闭自动ACK,确保业务逻辑完成后再手动确认,避免处理失败时消息丢失。在消费者端缓存已处理的消息ID(如Redis或内存缓存),短期去重。生产者在发送前检查消息是否已持久化(如数据库记录),避免重复发送。生产者为每条消息生成唯一ID(如UUID),消费者通过ID去重。处理消息前获取锁(如Redis锁),确保同一消息仅被处理一次。通过定时任务校对业务数据与消息状态,修复不一致(如对账系统)。:消费者处理消息后未正确发送ACK,导致消息重新入队。// 消息投递失败,记录日志或重试。

2025-02-16 21:31:55 1076

原创 Redis保证数据一致性的方案

主节点处理写请求后异步同步到从节点,提供最终一致性。:强制客户端等待指定数量的从节点确认同步完成,提高数据一致性级别(如强一致性),但增加延迟。:通过哨兵(Sentinel)或集群自愈机制,自动切换故障主节点到从节点,减少不可用时间。:原子执行复杂逻辑,避免竞态条件,但需确保脚本内所有键位于同一哈希槽(集群模式下)。:集群模式下,数据分散到多个主节点,每个主节点负责部分哈希槽,避免单点瓶颈。:从节点处理读请求,主节点处理写请求,提升性能,但需容忍短暂不一致。:更新数据库后,延迟删除缓存,减少脏数据概率。

2025-02-15 20:09:30 738

原创 面试题-个人博客

死锁是指两个或两个以上的进程(线程)在执行过程中,由于竞争资 源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推 进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进 程(线程)称为死锁进程(线程)。多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放。由于线 程被无限期地阻塞,因此程序不可能正常终止。线程 A 持有资源 2,线程 B 持有资源 1,他们同时都想申请对方 的资源,所以这两个线程就会互相等待而进入死锁状态。

2025-02-14 19:52:24 565

原创 Spring 事务

Spring 事务管理是Spring框架中用于确保数据库操作原子性、一致性、隔离性和持久性(ACID)的核心功能,它通过抽象化底层事务管理(如JDBC,JPA、Hibernate等),提供统一的编程模型,简化事务管理。isolation:事务隔离级别(默认Isolation.DEFAULT,即数据库默认级别)2、自调用问题:类内部方法调用(如 this.method())不会触发AOP代理。READ_UNCOMMITTED:可能读到未提交的数据(脏读、幻读、不可重复读)

2025-02-14 11:46:19 711

原创 Socket 通信原理

Socket (套接字) 是计算机网络编程中的一种抽象,它提供了在网络上进行通信的接口。Socket本质上是一种通信的端点,它在网络上标识了一个通信链路的两端,并提供了通信双方所需的接口和功能,通过使用Socket,可以在不同的计算机之间建立连接,并进行数据的传输和交换(网络通信)

2025-02-13 18:46:26 333

原创 高并发的场景下,有哪些方式可以提升系统性能

线程池可以有效管理线程的生命周期,避免频繁创建和销毁线程带来的性能开销,并且能够合理利用系统资源,提高系统的吞吐量和响应速度。

2025-02-12 16:40:37 2145

原创 Tomcat 优化策略

作为一款广泛使用的 Java 应用服务器,其性能优化对于提高应用的响应速度和处理能力至关重要。优化方案可以从多个方面入手,包括但不限于内存优化、并发优化、连接器优化、JVM 调优、系统内核参数优化等。以下是这些优化方案的具体操作步骤。

2025-02-12 14:37:34 346

原创 JVM 内存管理理解

将内存分为两块,每次只使用其中的一块,当需要回收时,将存活的对象复制到另一块的内存中,这种方法简单高效,但会浪费一半的内存空间。:为每个对象维护一个计数器,记录引用该对象的次数,当计数器为0时,表示对象可以被回收,但这种方法无法解决对象之间的循环引用问题。: 先标记需要回收的对象,然后将存活的对象压缩到内存的一端,最后清除边界外的内存,这种方法可以避免内存碎片化问题。:首先标记所有需要回收的对象,然后清除这些对象占用的内存,但是这种方法会产生内存碎片。

2025-02-12 14:03:47 465

原创 SQL优化的策略和示例

WHERE 条件未命中索引导致查询慢。-- 优化前(无索引)-- 优化后:为 name 字段添加索引。

2025-02-11 17:16:38 1063

原创 MySQL 和Postgresql 有什么区别,如何进行选择

‌。

2025-02-10 20:11:04 323

原创 数据库索引优化策略

日常适用中经常会使用数据库索引,以下介绍关于一些常见的索引优化策略。

2025-02-09 20:25:30 607

原创 JVM 调优

JVM 的优化

2025-02-09 19:57:14 575

空空如也

空空如也

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

TA关注的人

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