自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 docker常用命令

Docker常用命令速览:镜像管理(pull/rmi/build/tag)、容器操作(run/exec/stop/rm)、日志查看(logs)及仓库操作(login/push)。核心命令包括docker run启动容器(支持端口映射-d、命名--name)、docker exec进入容器、docker ps查看状态。数据持久化用-v挂载,批量操作用$(docker ps -aq)。注意docker rm删除容器与docker rmi删除镜像的区别,强制操作加-f参数。

2025-11-08 15:34:35 190

原创 数据工程师——ETL

文章摘要 ETL(数据抽取、转换、加载)是数据处理的核心流程,负责将分散数据源整合为高质量数据。ETL与ELT的主要区别在于转换步骤顺序,分别适用于不同规模数据场景。数据仓库通过ETL从多个数据源集成数据,支持分析决策。维度建模中的事实表记录业务指标,维度表提供上下文信息。缓慢变化维度(SCD)处理随时间变化的维度数据,常见类型包括直接覆盖型、新增版本型等。数据清洗解决数据缺失、重复、错误等问题,确保数据质量。数据血缘记录数据流转路径,便于问题排查和影响分析。常用ETL工具如Kettle通过转换和作业实现数

2025-08-22 23:58:52 1197

原创 数据库为什么需要进行分区,如何进行分区!!!

数据库分区技术可显著提升单表性能和管理效率。四大痛点包括查询慢、维护窗口不足、归档成本高和热点问题。分区与分片的核心区别在于分片跨节点扩展,而分区在单机内优化。常见分区策略有Range、List、Hash和Composite,各有适用场景。MySQL、PostgreSQL和MongoDB均支持简单命令实现分区。上线时需注意分区键选择、预建分区和监控倾斜等问题。合理使用分区技术可将性能提升10-100倍,维护时间从小时级降至分钟级。

2025-08-21 21:45:32 436

原创 数据库面试常见问题

数据库摘要 本文系统介绍了数据库相关知识,主要包括: Delete/Truncate/Drop区别:Delete删除数据保留结构,Truncate删除数据释放空间,Drop完全删除表结构。 SQL语句分类:DML(增删改查)、DDL(建表删表)、DCL(权限控制)、DQL(查询语句执行顺序)。 常用函数:包括decode、nvl、mod、round、字符串处理函数等。 数据库优化:索引原理、创建原则、SQL优化技巧(避免全表扫描、简化查询字段等)。 Oracle特点:体系架构(SGA/PGA)、与MySQL

2025-08-21 21:03:59 770

原创 大数据面试题

HDFS(Hadoop分布式文件系统)的核心架构与工作机制摘要: 架构组成:采用主从结构,包含NameNode(元数据管理)、DataNode(数据存储)、Client(客户端交互)和Secondary NameNode(辅助合并元数据)。 文件读写流程: 写文件需经NameNode分配DataNode,建立pipeline管道传输数据块(默认128MB) 读文件通过NameNode获取块位置,就近读取并进行checksum校验 容错机制: 数据损坏时自动切换副本节点 DataNode故障时触发副本复制 通

2025-08-21 20:59:23 778

原创 大数据面试常见问题

大数据面试常见问题摘要 HDFS读写流程: 写流程:客户端切分文件并与NameNode通信获取DataNode地址,建立管道传输数据包 读流程:客户端从NameNode获取block位置信息,就近读取并校验数据完整性 故障处理: 读取时块损坏会校验并切换副本节点 上传时DataNode挂掉会重新复制副本 通过Secondary NameNode合并元数据,但不能完全恢复 高可用方案: NameNode HA采用双节点+共享存储 使用Zookeeper监控状态,防止脑裂问题 通过fencing机制隔离故障节点

2025-08-21 20:58:31 786

原创 深度解析LangChain:LLM应用开发利器

文章摘要: LangChain是一个开源框架,旨在简化基于大型语言模型(LLM)的应用开发。其核心理念包括模块化、可扩展性和面向任务的设计,通过分层架构(基础层、编排层、执行层、部署层)提供丰富功能。核心模块涵盖模型集成、提示管理、工作流组合、Agent智能决策等,支持聊天机器人、AI Agent、RAG系统等场景。优势在于模块化设计和丰富生态,但存在学习曲线陡峭的问题。 通俗理解为:LLM本质是“海量数据+Transformer解码器”训练的概率黑盒,通过三阶段训练(预训练、监督微调、对齐微调)获得能力,

2025-08-20 23:15:28 532

原创 深入解析RAGFlow六阶段架构

本文系统拆解了RAGFlow的六阶段工作流:1)查询理解阶段通过意图分类和实体扩展生成结构化查询;2)任务编排根据复杂度选择轻量或复杂流程;3)混合检索并行执行向量/全文/图谱三路召回;4)精排阶段通过重排和去冗优化结果;5)上下文组装实现精准的Prompt工程;6)答案生成配备幻觉检测与引用溯源。该框架通过模块化DAG设计支持可视化编排,结合多路检索与严格的质量控制,显著提升了RAG系统的可靠性和可解释性,为复杂业务场景提供了灵活可配置的解决方案。

2025-08-20 23:12:28 1178

原创 RAG流程全解析:从数据到精准答案

RAG(检索增强生成)流程分为数据处理和问答检索两个阶段。数据处理阶段将多格式文档转换为文本块,提取实体并生成向量,构建向量库、实体图和全文索引三合一知识库。问答阶段将用户问题向量化后,通过三路召回(向量搜索、实体图查询、全文检索)获取相关文本,经重排后拼接为上下文输入大模型生成答案,并附带可验证的原文链接。系统支持增量更新,确保知识库持续扩展。

2025-08-20 23:10:02 509

原创 Python面试精华一

摘要: 本文整理了30道Python面试题,涵盖Python核心概念、语法特性和常见用法。主要内容包括:解释型与编译型语言区别、is与==的区别、文件读取方法、面向对象继承、any()/all()函数、装饰器、yield关键字、枚举函数、运算符、特点优点、深浅拷贝、列表元组区别、Flask框架、内存管理、闭包、代码执行过程、迭代器与可迭代对象、map/filter/reduce函数、__init__与__new__方法以及魔术方法等。这些问题全面考察了Python的基础知识和实际应用能力,适合Python开

2025-08-20 14:14:17 1069

原创 python安装与前置设置

本文介绍了Python环境的安装与配置方法。首先提供了Python 3.8-3.10版本的安装包下载链接及安装教程,重点讲解了如何修改Python第三方库镜像源(包括清华、阿里云等国内源)的临时和永久设置方法,并详细说明了修改第三方库下载路径的操作步骤。此外还包含Anaconda的安装配置指南和Jupyter路径修改方法,以及PyCharm的安装、汉化、代码字体设置、自动换行、参数提示等实用配置技巧,最后提供了代码模板的配置示例。全文内容全面,涵盖了Python开发环境搭建的主要环节。

2025-08-20 11:05:46 803

原创 算法复杂度分析:快与省的智慧

时间和空间复杂度是衡量算法性能的两个核心指标。时间复杂度表示算法执行时间随输入规模的增长趋势,常见类型包括O(1)、O(n)、O(n²)等,分析时关注基本操作执行次数的数量级。空间复杂度衡量算法运行时的内存消耗,重点关注额外使用的存储空间。在算法设计中,通常需要在时间和空间效率之间进行权衡取舍。实际应用中,应避免复杂度超过O(n²)的算法,对于大规模数据(n>10⁶)尤其需要选择O(n)或更优算法。理解复杂度概念有助于在编程时做出更优的算法选择。

2025-07-29 20:56:47 956

原创 进程与线程详解

进程(Process)和线程(Thread)是操作系统中两个非常重要的概念,它们都是程序执行的基本单位,但在系统资源管理、调度方式、通信机制等方面存在显著差异。

2025-07-29 20:17:19 886

原创 RAGFlow:开源RAG引擎深度解析

RAGFlow 是一个基于深度文档理解的开源 Retrieval-Augmented Generation(RAG,检索增强生成) 引擎,旨在通过结合大语言模型(LLM)与外部知识库,提供更准确、可靠且可追溯的问答能力。它通过智能文档解析与检索技术,显著提升了 AI 系统的上下文理解与生成能力,特别适用于需要处理复杂数据格式与高精度问答的场景。以下是关于 RAGFlow 的详细介绍,涵盖其特点、服务、功能、适用场景、技术细节及对 AI 客服助手的帮助与提升。RAGFlow 的核心优势在于其深度文档理解与灵活

2025-07-04 14:51:17 1492

原创 揭秘 Python 魔法方法:让你的对象无所不能

Python魔法方法是双下划线开头和结尾的特殊方法,用于定义类的特定行为,如对象创建、操作和表示。常见方法包括: __new__:对象创建时的第一个方法 __init__:初始化对象属性 __call__:使对象可被调用 其他重要方法按功能分为: 对象表示(__str__、__repr__) 比较操作(__eq__、__lt__) 算术运算(__add__、__mul__) 属性访问(__getattr__、__setattr__) 容器行为(__len__、__getitem__) 上下文管理(__ent

2025-07-02 11:35:52 812

原创 Python闭包陷阱:为何这段代码输出全是300?

这段代码的执行结果是 [300, 300, 300, 300]。原因是Python的延迟绑定闭包特性:列表推导式生成的四个lambda函数都引用同一个变量i,而i在循环结束后最终值为3。当调用这些函数时,它们都计算3 * 100。要解决这个问题,可以在lambda中使用默认参数lambda x, i=i: i * x,这样每个函数会捕获不同的i值,从而得到预期结果[0, 100, 200, 300]。

2025-06-30 16:55:01 796

原创 Python装饰器:让代码更优雅的魔法工具

想象你买了一杯奶茶,想加点“额外功能”,比如加珍珠、椰果,或者加冰。你不用重新做一杯奶茶,只需要在原来的奶茶上“包一层”额外的东西。装饰器在 Python 中就像是给函数或类“加料”的工具,它可以在不改变原函数代码的情况下,增加额外的功能。比如,你有一个函数,本来只是打印“hello”。用装饰器可以让它在打印前记录时间,或者检查用户权限,这些“额外功能”都不需要改动的代码。在 Python 中,装饰器是一个高阶函数。

2025-06-30 10:53:59 1044

原创 Python单例模式:5种高效实现方式

单例模式确保类只有一个实例并提供全局访问点。本文介绍了Python实现单例的5种方式:1)装饰器方式,通过字典存储实例;2)元类方式,控制类创建过程;3)类属性方式,利用__new__方法;4)模块级单例,利用Python模块特性;5)线程安全版本,使用锁机制。比较了各方式的适用场景,装饰器简洁通用,元类更灵活但复杂,类属性简单但需注意初始化问题,模块级最简单但不够灵活,线程安全版本适用于多线程环境。核心思想都是通过不同技术手段确保实例的唯一性。

2025-06-30 10:18:50 1082

原创 Python深拷贝与浅拷贝:一文彻底搞懂

Python中的拷贝分为浅拷贝(Shallow Copy)和深拷贝(Deep Copy)。浅拷贝仅复制对象的顶层结构,嵌套对象仍与原对象共享引用,内存开销较小,适用于性能敏感场景。深拷贝则递归复制整个对象树,生成完全独立的副本,内存消耗较大但能彻底隔离数据。 关键区别: 浅拷贝(copy.copy()/切片)共享嵌套对象,修改会影响原对象; 深拷贝(copy.deepcopy())完全独立,适合需要隔离数据的场景; 不可变对象(如字符串)在拷贝中行为特殊,修改时会创建新对象。 实际应用时需权衡内存开销与数据

2025-06-26 17:03:01 1930

原创 同步与异步:深入解析四种编程模式

同步 vs. 异步同步:操作按顺序执行,调用方必须等待操作完成才能继续后续任务。执行流程在时间上紧密耦合,顺序可预测。异步:操作被发起后,调用方无需等待其完成,可以继续执行其他任务,结果通过回调、协程或事件循环等方式处理。阻塞 vs. 非阻塞阻塞:调用线程在操作完成前被暂停,无法执行其他任务,线程处于空闲状态。非阻塞:调用线程无需等待操作完成,可继续执行其他任务,结果通常通过轮询或回调获取。同步阻塞:像老式点餐,点完菜傻等,效率最低。同步非阻塞。

2025-06-20 14:02:58 685

原创 数据库MVCC:高效并发背后的秘密

多版本并发控制(MVCC)是数据库管理系统处理并发事务的核心技术。它通过为数据维护多个版本,使并发事务可以高效读写数据而不互相阻塞,提高系统性能。MVCC通过事务ID、时间戳等机制标识数据版本,为每个事务提供数据快照,确保读取一致性。写操作生成新版本,保留旧版本供其他事务读取,并通过垃圾回收清理无用版本。MVCC支持多种隔离级别,在PostgreSQL和MySQL等数据库中各有实现。其优点包括高并发性和一致性保证,但存在存储开销和写冲突等缺点。通俗来说,MVCC就像图书馆保存书籍多个版本,让读者互不干扰地借

2025-06-19 09:50:08 888

原创 关于数据库的并发一致性问题与数据库隔离等级的详细解读

隔离级别脏读不可重复读幻读性能影响读未提交是是是最高读已提交否是是较高可重复读否否是中等串行化否否否最低脏读:看到别人没确认的“草稿”,可能被取消。不可重复读:同一本书,读两次内容变了。幻读:数人头,数着数着多了一个人。隔离级别:从“随便看”(读未提交)到“排队一个一个来”(串行化),隔离越强,数据越可靠,但速度越慢。读未提交:无隔离,性能最高,但一致性最差。读已提交:防止脏读,适合大多数场景。

2025-06-18 17:03:01 482

原创 多头注意力机制的主要应用范围与场景

多头注意力机制的应用范围涵盖自然语言处理、计算机视觉、语音处理、跨模态任务等多个领域,具体场景包括机器翻译、文本生成、图像分类、语音识别、推荐系统等。其核心优势在于高效捕捉序列或空间中的复杂关系,适合处理大规模、复杂的数据任务。通俗来说,它就像一个多才多艺的图书馆团队,能快速从海量信息中提取关键内容,解决各种智能任务。如果你有具体的应用场景想深入了解,欢迎进一步提问!

2025-06-18 10:15:29 432

原创 大模型多头注意力机制的详细解释

多头注意力机制是Transformer架构的核心组件,通过并行计算多个“注意力头”来捕捉输入序列中不同维度的关系。学术上,它基于查询、键、值向量进行数学运算,通过缩放点积和Softmax生成加权表示;通俗来说,就像多个图书管理员分工协作,从不同角度快速查找和整合信息。这种机制能高效处理长距离依赖和多样化关系,优于传统RNN和CNN方法。多头注意力在自注意力、交叉注意力等场景中广泛应用,使大模型能更全面理解输入数据的复杂关联。

2025-06-18 10:06:03 948

原创 python在运行RabbitMQ运行时遇到的坑之一:Stream connection lost: IndexError(‘pop from an empty deque‘)

在运行这段代码时出现了这样的报错:Stream connection lost: IndexError('pop from an empty deque'),但是调试这段代码的时候又没有问题。经过分析,该错误通常由多线程环境下共享的RabbitMQ通道(channel)引发。若问题仍通道是非线程安全的,多线程同时操作会引发。监控RabbitMQ连接状态是否稳定。使用压力测试工具发送并发消息。

2025-02-21 15:19:41 713

原创 使用python关于RabbitMQ的简单运用

需要完成一个智能聊天客服,可以接入微信等模拟人正常的聊天,考虑到业务场景,使用RabbitMQ实现消息队列是比较合适的一个方案,当然还可以选择Kafka、redis消息订阅等。

2025-02-21 15:11:37 1188

原创 视频水印添加

根据合规要求,需要将AI生成的视频或者图片添加水印,提示用户这是AI生成的。

2025-01-21 09:47:03 495 1

空空如也

空空如也

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

TA关注的人

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