- 博客(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
原创 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
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人