- 博客(1495)
- 收藏
- 关注
原创 基于 RAG 技术的内部 Agent 技术选型方案
本文提出基于RAG技术的企业内部Agent技术选型方案,采用Python 3.10+和LangChain框架构建分层架构。方案包含五大层次:用户交互层采用FastAPI实现Web服务;核心服务层通过LangChain实现问题预处理、检索增强和大模型调度;数据处理层支持多格式文档加载和差异化分割;基础支持层选用PostgreSQL+pgvector实现混合存储;外部依赖层对接腾讯混元大模型等内部资源。方案突出中文语义适配、混合存储效率、文档处理优化等技术优势,支持企业知识管理的高效检索与合规追溯。
2025-10-18 22:12:29
969
原创 微信朋友圈刷圈场景
本文摘要: 微信朋友圈刷圈场景的核心表结构设计包括用户表、好友关系表和动态表,通过精简字段和合理索引优化性能。查询链路遵循"身份验证→筛选好友→拉取动态→补充信息"的逻辑,使用联合索引加速查询。当数据量增长时,建议采用按用户ID哈希分片的水平分库分表策略,将用户表、好友关系表和动态表分别拆分到多个库表中,确保同一用户数据集中存储,减少跨库操作。分库分表规则基于用户ID取模运算,合理控制单表数据量在百万级别,以支撑千万级用户和亿级动态数据的访问需求。
2025-10-18 21:02:14
868
原创 系统高流量下性能问题排查
摘要: 高流量场景下系统性能问题排查需结合监控与日志分析。监控从基础设施(CPU、内存、磁盘、网络)到应用性能层层拆解,快速定位瓶颈范围;日志则通过请求链路追踪和异常堆栈分析,深入挖掘根因。关键步骤包括建立分层监控体系(资源使用率、慢查询等)、确保日志完整性(traceId关联、关键字段记录),以及采用"筛选-关联-深挖"三步法定位问题,如通过慢SQL日志发现缺失索引,或通过Redis超时异常追踪缓存穿透问题。
2025-10-15 10:57:01
954
原创 一文读懂 Data Pipeline
Data Pipeline是企业数据处理的自动化解决方案,通过四个核心模块实现数据高效流转:1)数据源头(如数据库、日志文件);2)数据采集(批量或实时获取数据);3)数据处理(清洗、转换和整合);4)数据加载(存储到仓库或应用系统)。主要解决三大痛点:自动化处理减少人工干预、保障数据质量、支持实时分析。常见类型包括ETL(先转换后加载,适合批量分析)、ELT(先加载后转换,灵活性高)和实时Pipeline(毫秒级响应,适用于风控等场景)。这些方案使企业能高效处理海量数据,支撑业务决策。
2025-10-10 22:38:53
1773
原创 网页爬虫常用方式
本文介绍了四种常见的网页爬虫解析方式及其Python实现: 流式解析(HTMLParser):适用于处理大型文档,内存占用低但功能有限 BeautifulSoup(CSS选择器):语法直观,适合常规网页和结构化数据提取 lxml(XPath):定位能力强,支持复杂条件查询,适合处理嵌套结构 正则表达式:灵活但维护困难,适合简单固定格式文本提取 每种方法各有优劣,选择时应考虑网页结构复杂度、性能需求和维护成本等因素。文章提供了完整的Python代码示例,展示如何实现各类解析方式。
2025-09-24 18:31:59
1279
原创 Python 爬虫与智能反反爬、数据提取,转成AI训练数据集
本文介绍了Python爬虫从基础实现到智能反爬策略的全流程,重点展示了如何获取和解析豆瓣电影Top250数据。基础爬虫部分使用requests和BeautifulSoup库实现HTTP请求和HTML解析。智能反爬策略部分详细讲解了如何通过随机请求头、合理等待时间、异常处理等手段模拟人类浏览行为,包括:1) 随机User-Agent切换;2) 完善的请求头设置;3) 随机延迟与超时;4) 针对403/429等状态码的智能处理策略。这些方法有效降低了被识别为爬虫的风险,为后续数据提取和AI训练数据准备奠定了基础
2025-09-23 23:12:59
2012
1
原创 基于大模型的多Agent个性化AI导师系统
文章摘要: 基于大模型技术构建的多Agent个性化AI导师系统已具备技术可行性,其数学与编程能力达竞赛金牌水平,语言理解与RAG技术成熟。系统通过多Agent架构实现个性化辅导,覆盖中小学全学科,具备显著优势:成本降低99%以上、支持百万级并发、24/7即时响应,并可通过数据驱动快速迭代。核心技术采用分层架构,包含客户端层、API网关和核心业务层,其中学科Agent集群实现精准教学,中央调度系统管理学习路径与学情分析。该方案将大幅提升教育普惠性,革新传统教学模式。
2025-09-23 22:43:49
677
原创 生产者-消费者模型详解
这篇文章详细介绍了生产者-消费者模型的实现方法,主要包含以下内容: 模型概述:生产者生成数据存入共享区域,消费者取出处理,通过同步机制协调两者。 具体实例:实现一个基于共享变量x的生产者-消费者模型,x初始为0,生产者当x=0或x%3≠0时加2,消费者当x≠0且x%3=0时减1,x>20时所有协程退出。 两种实现方式: 基础版:使用单个条件变量协调生产和消费 优化版:使用两个独立的条件变量分别管理生产者和消费者队列 关键技术点: 互斥锁保护共享变量 条件变量实现等待/通知机制 WaitGroup跟踪协
2025-09-23 21:52:06
814
原创 工作流存储:数据库 vs JSON,如何选择?
工作流存储方案选择指南 数据库和JSON存储工作流的核心差异在于对工作流本质的理解不同。数据库将工作流视为关系型数据集合,适合处理复杂动态流程;JSON则作为单文件配置,强调可读性和完整性,适合静态场景。 数据库优势:模块化设计支持组件复用(如审批节点多流程共用);支持运行时动态调整流程(如VIP特殊通道);适合业务关联性强、需频繁变更的复杂系统。 JSON优势:契合CI/CD"配置即代码"理念,与代码版本同步;结构直观适合相对固定的流程(如构建-测试-部署);无需数据库操作门槛。 选择
2025-09-23 00:21:16
794
原创 自动添加数据库字段与索引:避免发布遗漏引发的线上故障
自动添加数据库字段与索引方案 该方案通过GORM的AutoMigrate功能实现数据库结构的自动同步,解决手动管理导致的发布遗漏问题。核心实现包括: 自动迁移机制:在应用启动时自动检测模型定义与数据库表的差异,并添加新字段和索引,避免人为疏忽导致的线上故障。 多Pod部署支持:采用分布式锁机制解决并发迁移问题,确保集群环境下只有一个Pod执行迁移操作,防止数据库锁冲突。 集成方案: 模型定义中包含字段和索引的GORM标签 应用启动时优先执行数据库初始化 通过锁表协调多Pod的迁移执行 优势: 消除人为操作失
2025-09-22 23:54:49
502
原创 Go 语言 Mock 单元测试
Go语言Mock单元测试通过模拟外部依赖实现隔离测试,解决传统测试中的环境依赖、结果不稳定和效率问题。核心原理是定义接口抽象依赖,生成Mock对象预设行为,并验证调用结果。项目中需添加Mock实现文件(定义接口的Mock版本)和测试用例文件(设置Mock行为并验证业务逻辑)。Mock测试无需真实服务,可精确控制依赖行为,确保测试可靠高效,同时避免数据污染和额外成本。
2025-09-22 23:36:18
1253
原创 任务调度系统架构设计分享
本文分享了一个物理机环境下的任务调度系统架构设计,包含客户端层、接入层、核心调度层、物理机资源层、数据存储层和监控优化层。系统核心监控指标分为任务执行维度和资源利用维度:前者关注任务成功率(≥99.9%)、执行耗时波动(≤10%)和延迟率(≤1%),反映调度准确性和效率;后者包括物理机资源利用率(CPU 50%-70%)、资源碎片率(≤5%)和空闲率(≤3%),评估资源利用合理性。通过分层架构设计和关键指标监控,实现高效、稳定的任务调度。
2025-09-18 23:47:56
864
原创 AI 知识问答助手架构设计分享
本文介绍了AI知识问答助手的架构设计方案,采用四层架构设计:1)前端交互层提供自然语言接口和工具调用入口;2)核心服务层基于LangChain框架,包含对话管理、RAG检索等功能模块;3)基础支持层提供向量数据库、缓存等基础设施;4)外部依赖层对接业务数据源。架构特点包括分层解耦提升可维护性、抽象封装简化复杂度、前瞻设计适应未来发展。文章还提供了详细的代码结构参考,展示了模块化设计的实现方式。该架构设计使系统具备高扩展性和易维护性,能够有效支持企业知识管理需求。
2025-09-18 14:26:13
1266
原创 数据分析工作流架构设计分享
数据分析工作流架构设计摘要 该架构采用四层设计:前端交互层提供可视化操作界面;核心服务层实现业务逻辑处理;基础支持层提供底层支撑;外部依赖层对接各类数据源。设计特点包括:1)分层解耦提升可维护性;2)抽象封装降低复杂度;3)预留扩展空间适应未来发展。通过插件化、可视化编排等设计,既降低了使用门槛,又保持了系统的灵活性和扩展性,能够满足多样化数据分析需求并适应业务演进。
2025-09-18 13:13:32
1013
原创 企业级内容风控SOP完整指南
企业级内容风控SOP完整指南摘要 内容风控系统的核心在于稳定性,需构建"预防-监控-修复"闭环体系。三大防线确保安全:1)代码发布标准化流程,通过需求单审查、灰度发布等5个环节严控变更风险;2)模型迭代数据驱动,采用A/B测试验证效果,算法专家评审合格后方可上线;3)全链路监控覆盖业务/系统指标,异常触发多级告警,15分钟内响应处置。事故复盘遵循"不追责只改进"原则,聚焦根因分析,将故障转化为系统免疫力。最终实现风控系统从"成本中心"到"
2025-09-16 23:55:41
1239
原创 百亿数据下百万分之一随机采样的实现方案
摘要:百亿级数据实现百万分之一随机采样的方案采用分层降维策略,将流程拆解为预采样粗筛和精准精筛两阶段。首先通过万分之一随机标签(RN字段)将数据量降至10万级,再运用动态窗口(120条数据范围)和累计概率算法(d=0.5基准值)实现均匀采样。该方法将内存消耗从TB级降至GB级,计算时间从小时级压缩至分钟级,采样偏差控制在5%以内,有效解决了全量处理资源过载与低概率采样偏差问题。(149字)
2025-09-16 14:40:58
776
原创 Go 语言中 Context 的核心作用
Go 语言中的 Context 是管理并发操作的核心工具,主要解决三个问题:1)控制 goroutine 生命周期,通过 Done() 通道实现优雅退出;2)传递请求范围元数据,安全共享请求相关信息;3)实现超时控制,避免资源耗尽。Context 提供了标准化的取消、超时和值传递机制,是构建可靠并发程序的关键。
2025-09-15 12:03:55
296
原创 限流算法选型:如何避免损失高并发?
在高并发场景下,选择合适的限流算法至关重要。固定窗口和滑动窗口算法容易因设计特性导致高并发请求被过度限制或流量突刺。相比之下,令牌桶算法通过"令牌生产+请求消费"的动态平衡机制,允许合理流量突发,弹性应对高并发场景;改进版漏桶算法则通过"请求入桶+匀速漏出"的缓冲机制,在保护后端系统的同时减少请求丢弃。实际选型需根据业务特性:令牌桶适合需要应对突发流量的场景(如秒杀、抢购),而改进版漏桶更适合需要严格控制处理速率的场景(如数据同步)。关键实践要点包括动态调整参数和精细
2025-09-11 16:48:33
947
原创 早期 Spring XML 配置,为何能超越直接 new 对象成为开发首选
早期 Spring XML 配置通过集中管理对象依赖关系,解决了直接 new 对象带来的硬编码问题。当业务需求变更时(如修改支付API密钥或切换支付方式),只需调整XML配置而无需修改源代码,显著提升了系统可维护性。同时基于接口编程的设计,使得系统扩展时只需新增实现类并修改配置,无需改动现有业务代码,完美遵循开闭原则。这种解耦设计让Spring在复杂度提升的企业级开发中展现出明显优势,成为当时的主流选择。
2025-09-11 16:04:35
788
原创 基于 RAG 技术的内部 Agent 设计与实现方案
本文提出一种基于RAG技术的企业内部Agent方案,通过标准化文档处理、热点问题优先匹配和动态数据库优化等设计,提升业务咨询响应效率与准确性。方案核心包括:1)用户问题预处理,通过Prompt工程实现标准化表述;2)热点问题检索匹配,采用标签过滤和相似度排序双阶段策略;3)动态数据库优化,实现热点问题自迭代;4)RAG增强检索,新增"差异化文档分割+片段标注文档名"机制,提升检索准确性和可追溯性。该方案特别针对多格式文档设计了差异化分割策略,并通过标准化片段格式强化检索效果,为企业内部知
2025-09-08 23:21:23
1142
原创 一文看懂 BIO、NIO、AIO
IO模型对比:BIO、NIO、AIO 本文通过餐馆经营类比,通俗易懂地解释了三种IO模型的核心区别: BIO(同步阻塞):一对一服务模式,每个请求分配独立线程处理,线程在IO操作时阻塞。适合低并发场景,但资源消耗大。 NIO(同步非阻塞):多路复用模式,单线程通过选择器监控多个通道事件,实现非阻塞处理。核心组件包括Channel、Buffer和Selector。 AIO(异步非阻塞):回调通知模式,IO操作完成后自动触发回调函数,完全解放线程。 三种模型在同步/异步、阻塞/非阻塞特性上存在本质差异,适用于不
2025-09-08 22:26:24
923
原创 MCP 与 A2A
摘要: MCP(Model Context Protocol)与A2A(Agent-to-Agent)是两类互补的AI协作协议。MCP聚焦轻量化、单向的“模型-工具”交互,优势在于标准化、低延迟和易集成,但受限于被动响应与单一任务处理能力。A2A专为多智能体动态协同设计,支持复杂任务拆解与自主协商,具备强容错性和分布式扩展能力,但面临高复杂度、资源消耗及协同效率优化等挑战。两者分别适用于简单工具调用与复杂系统协作场景,共同构成AI能力扩展的技术谱系。(150字)
2025-09-06 10:52:27
728
原创 一文读懂 Java NIO
Java NIO 通过非阻塞IO和多路复用机制解决了传统BIO的性能瓶颈。核心组件包括:Channel(双向数据通道)、Buffer(数据中转区)和Selector(事件监控器)。Selector作为调度中心,可以单线程监控多个Channel的就绪事件(如OP_READ、OP_ACCEPT),避免了线程阻塞和资源浪费。相比BIO的一连接一线程模式,NIO只需少量线程即可处理大量并发连接,大大提升了系统吞吐量。这种机制特别适合高并发场景,如聊天服务器等。
2025-09-05 14:21:43
888
原创 用通俗语言讲透 Java 锁:synchronized 原理与锁升级
本文用办公室场景类比Java中的synchronized锁机制:共享资源如咖啡机对应程序中的共享变量,多个线程同时访问需要排队。synchronized通过对象头实现锁状态标记,并会根据线程竞争情况动态升级:从无锁状态开始,在单个线程访问时转为偏向锁(快速访问);当偶尔竞争时转为轻量级锁(CAS机制);最后在高并发时升级为重量级锁(操作系统调度排队)。这种分级策略在保证线程安全的同时,兼顾了程序运行效率。
2025-09-04 17:25:49
740
原创 深入理解Agent中的ReAct模式
摘要(148字): ReAct模式是智能体处理任务的核心机制,通过"思考-行动-观察"循环模拟人类问题解决过程。系统提示词引导大模型遵循该模式:先分析任务(Thought)、调用工具执行(Action)、观察结果(Observation),循环至任务完成并输出最终答案(Final Answer)。案例演示了文档处理场景下的完整流程,以及通过prompt实现贪吃蛇游戏的编码过程。该模式通过结构化思考与工具调用的动态交互,使AI具备复杂任务分解与执行能力,典型应用于需要多步骤协作的自动化场景
2025-08-21 14:02:12
1871
原创 用生活化例子看懂 Go 语言的垃圾回收
Go 语言的垃圾回收机制采用并发标记-清除算法,通过自动识别并回收未使用的内存来优化性能。其核心原理包括:1) 三色标记法(白、灰、黑)追踪对象引用状态;2) 并发执行标记过程,减少程序暂停时间;3) 写屏障技术确保引用修改时的准确性;4) 结合分代回收优先处理短生命周期对象。这一机制无需手动管理内存,在保证低延迟的同时有效支持高并发场景,是 Go 语言的重要特性之一。
2025-08-19 13:20:21
1149
原创 Go 语言中控制协程数量的常用方法
本文介绍了Go语言中四种控制协程数量的常用方法:1)使用带缓冲通道作为信号量;2)结合sync.WaitGroup和通道;3)工作池模式;4)第三方库errgroup或ants。每种方法都附有代码示例,展示了如何限制并发协程数量,避免资源耗尽问题。这些技术适用于不同场景,从简单令牌控制到复杂任务队列处理,帮助开发者编写高效可靠的并发程序。
2025-08-19 13:05:28
897
原创 从 7 天促销活动看国际化开发中的时区问题
国际化开发中的时区处理要点 本文通过一个7天促销活动案例揭示了时区处理不当导致的问题:法兰克福用户提前看到过期提示,新加坡与中国用户失效时间不同步。核心问题在于前端显示本地时间而后端使用UTC时间判断,且未考虑冬令时/夏令时影响。 解决方案: 前端应获取UTC时间后转换为用户所在时区显示,使用支持冬令时/夏令时自动转换的工具库 后端必须使用UTC时间进行业务逻辑判断,通过请求头/IP/用户设置获取时区信息 建立严格的时间校验机制,包括时间偏差检测、操作频率限制和审计日志 前后端协作原则:统一UTC存储、明确
2025-07-31 17:24:57
1616
原创 线程池设计策略
线程池的设计核心在于。在 langchain4j 中,Agent 通常需要并行处理多个工具调用(如 API 请求、数据库查询、文档检索等),这些任务的特性(执行时间、资源消耗、并发量)直接决定了线程池的配置方案。不同参数的合理设置能极大提升 Agent 性能,避免资源浪费或系统崩溃。下面将深入解析核心参数的原理、配置逻辑及在 Agent 场景中的最佳实践。
2025-07-30 00:23:22
867
原创 Java 经典面试题解析:AOP 与 IOC 设计思想
Java 面试中的 AOP 与 IOC 设计思想解析:IOC 通过容器管理对象创建与依赖注入,降低耦合度,典型应用包括数据库连接池管理和多层架构解耦;AOP 通过动态代理实现日志、事务等横切关注点的集中管理,避免代码重复。文章通过电商系统案例展示了两种设计模式的实际应用,包括订单服务依赖注入和统一日志记录实现,体现了 Spring 框架的核心设计理念。
2025-07-30 00:05:12
1104
原创 JVM 常见面试题- 内存结构与垃圾回收算法
在 Java 技术面试中,JVM 相关知识是高频考点,其中 JVM 内存结构和垃圾回收算法更是重中之重。深入理解这两部分内容,不仅能应对面试,更能帮助开发者写出更高效、更稳定的 Java 程序。
2025-07-29 23:01:22
759
原创 MySQL索引设计-从条件顺序到范围查询的优化策略
本文系统解析了MySQL索引设计策略,重点针对条件顺序不确定和范围查询场景提供优化方案。核心内容包括:单独索引与复合索引的特性比较;四种典型查询场景下的索引选择策略;范围查询对复合索引的截断机制分析;以及覆盖索引、执行计划验证等补充建议。文章强调应根据查询模式(等值/范围、字段顺序)设计复合索引,利用最左前缀原则优化性能,同时需权衡索引维护成本与实际查询需求。通过合理设计索引结构和验证执行计划,可显著提升数据库查询效率。
2025-07-24 23:00:27
2009
原创 通俗讲解-为什么协程要比线程快
摘要:协程比线程快主要体现在三个方面:1)协程是用户态轻量级实现,内存占用仅几KB,可轻松创建百万级实例;2)协程切换仅需保存关键寄存器,纳秒级完成,而线程切换涉及内核态转换,耗时数微秒;3)Go的GMP调度模型实现智能负载均衡,当协程阻塞时能快速切换任务,充分利用CPU资源。这些特性使协程在并发性能上远超线程。
2025-07-22 18:52:51
514
原创 Redis与数据库一致性
Redis与数据库一致性是高并发系统的关键问题。本文提出"先更库,再删缓存"的核心方案,通过缓存旁路模式确保数据一致性。读取时缓存优先;插入时先存库再写缓存;更新时先更库再删缓存;删除时先删库再删缓存。高并发场景通过乐观锁防脏写,利用缓存删除的幂等性,并引入异步重试机制。这一方案简单可靠,性能均衡,适合多数业务场景,是平衡性能与一致性的最优解。
2025-07-22 18:38:14
893
原创 golang map面试考点
Go map面试考点摘要 底层数据结构 Go的map基于哈希表实现,核心是hmap结构:包含桶(bucket)数组,每个桶(bmap)可存8个键值对。通过哈希函数定位桶,tophash(高8位)加速筛选,精确比较键值。 哈希冲突处理 采用链地址法:当桶满时创建溢出桶。系统会: 计算键哈希值 用低B位确定桶位置 用高8位快速筛选 遍历桶链(含溢出桶)进行精确匹配 相同哈希不同键的处理 即使不同键哈希相同: 仍会定位到同一桶链 通过逐字节比较键值来区分 精确匹配后才返回值 未匹配则返回零值 这种设计保证了O(1
2025-07-22 16:57:32
1251
原创 文档分割提高RAG的常用技巧
摘要:文档分割技巧优化RAG系统 文档分割是提升RAG系统性能的关键环节,主要影响检索效率、精度和生成质量。核心技巧包括:1)固定长度分割法,适用于标准化文档,需优化chunk_size和重叠参数;2)结构化分割法,利用标题等标记保持语义完整;3)递归分割法,分层处理混合内容。实施时需考虑文档特性、语义单元完整性、LLM上下文限制和检索效率平衡,并通过实验确定最佳参数。合理分割可提升生成答案准确性40-60%,需避免切断关键信息或产生冗余。(149字)
2025-07-11 17:22:17
1254
原创 客户端请求服务端用什么限流算法好-思路分析分享
客户端限流算法选择需结合业务场景需求。主流算法包括:1)令牌桶算法:允许合理突发流量,适合用户体验要求高的场景;2)漏桶算法:输出速率绝对恒定,适用于金融等高稳定性领域;3)时间窗口算法:分为固定窗口(简单但有双倍流量风险)和滑动窗口(更精确但实现复杂)。工作流系统推荐使用令牌桶算法,因其能自然适应突发请求、保持执行连贯性,相比漏桶减少延迟,比窗口算法更平滑。关键考量维度包括突发处理能力、实现复杂度及资源利用率。
2025-07-10 17:09:10
748
原创 一个案例演示什么是RAG+Prompt工程
本文通过"算命大师"案例演示了RAG(检索增强生成)技术的应用。RAG结合信息检索与文本生成,首先检索知识库相关内容,再结合用户查询生成回答。案例展示了一个完整实现:使用FAISS向量数据库存储命理知识文档,通过Prompt工程设定AI为"算命大师"角色,最终生成具有神棍风格的个性化解读。代码展示了文档处理、向量化存储和问答交互的全流程,证明RAG能有效扩展大模型能力边界,实现可追溯、个性化的智能应用。
2025-07-07 17:51:05
354
原创 基于Redis实现生产级消息队列
本文介绍了一种基于Redis实现的生产级消息队列方案,通过多队列协同架构(主队列、处理中队列、死信队列)实现消息可靠流转。核心设计包括使用Redis List和String数据结构存储消息及处理状态,通过Lua脚本保证操作的原子性,以及连接池优化和超时控制等生产级特性。方案提供了完整的消息生命周期管理,包括消息入队、消费、确认和重试机制,确保消息不丢失且不重复消费,同时保持了轻量级部署的优势。
2025-07-06 17:52:27
294
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅