- 博客(36)
- 资源 (1)
- 收藏
- 关注
原创 AI大模型调用全链路技术规范与学习手册
本文档《AI大模型调用全链路技术规范与学习手册》系统阐述了大模型应用开发的全流程技术规范。主要内容包括: 基础认知部分:修正新手常见误区,明确大模型调用的最小闭环链路(输入预处理→Prompt构建→LLM推理→输出后处理)及各节点核心价值。 生产级全链路设计:提出合规、高可用等五大原则,详细拆解输入前置层、Prompt工程层等5大阶段的执行流程与必备能力,并列出关键监控指标。 核心模块深度解析: Prompt构建模块:从简单场景到复杂业务场景的完整实现路径,包含会话管理、外部数据注入等关键技术点 输出后处理
2026-04-02 16:09:55
356
原创 RAG系统构建全流程
本文展示了RAG向量数据库构建的全流程Mermaid流程图,涵盖6个核心阶段:数据预处理(多源数据采集、OCR识别、质量校验)、语义化文档切分(结构识别、重叠窗口设置)、批量文本向量化(模型选型、多线程处理)、向量入库与索引构建(数据库选型、混合检索配置)、效果验证与调优(精度测试、参数迭代)以及全生命周期运维(自动化同步、持续监控)。该流程图支持主流平台直接渲染,完整呈现了从数据输入到持续优化的质量管控闭环,为构建高质量RAG系统提供了标准化流程参考。核心逻辑可概括为:数据预处理→语义切分→向量化→入库建
2026-03-25 00:00:00
406
原创 PageIndex 对现有 RAG 技术的影响:核心价值、优势与局限性
摘要:PageIndex是VectifyAI提出的创新RAG框架,通过文档原生结构(目录/章节/页码)构建树状索引,替代传统向量嵌入方法。其优势包括:结构化检索提升专业文档精度、无需向量降低部署成本、灵活知识融合;但存在文档结构依赖强、LLM调用成本高等局限。该方案特别适合长文档检索,与传统向量RAG形成互补,建议采用混合检索策略。PageIndex为专业场景RAG落地提供了新思路,推动了从碎片化向结构化检索的演进。
2026-03-24 07:30:00
428
原创 上下文自动评估价值方案
本文提出了一种智能上下文管理系统,通过分级评估和压缩优化长对话场景下的上下文管理。系统采用四层分类(用户指令、关键状态、中间推理、失败记录)和动态打分模型,结合多级阈值触发机制,实现差异化的上下文处理策略。技术实现上兼容MapGPT论文思想,采用模块化设计,支持规则过滤与大模型分类相结合。测试显示,相比传统方案可降低40%的token消耗和38%的响应延迟,关键信息召回率提升至96%。系统支持多种部署方式,提供风险兜底机制,适用于研发助手、客服咨询等长对话场景,能显著提升用户体验并降低API成本。
2026-03-23 08:31:47
408
原创 Agent独立记忆机制四层架构设计与项目实战学习文档
本文提出一种面向AI Agent的四层记忆架构方案,通过分层存储和协同调度解决大模型对话中的上下文窗口限制、注意力稀释和跨会话记忆丢失等问题。该架构包含:核心记忆层(固定角色规则)、瞬时记忆层(当前对话核心)、短期记忆层(单会话结构化)和长期记忆层(跨会话语义)。文档详细阐述了各层设计原理、存储机制和召回策略,并展示了一个Python研发助手Agent的实现案例。实际测试表明,该方案可降低76.9%的token占用,支持100+轮对话无超窗,跨会话信息召回准确率达90%。最后提供了部署建议和优化方向,为开发
2026-03-23 07:30:00
549
原创 Markdown文本切割方案
摘要:LangChain提供了两种Markdown文本切分方案:MarkdownHeaderTextSplitter(按标题结构切分,保留语义)和RecursiveCharacterTextSplitter(按字符递归切分,控制块大小)。最佳实践是组合使用这两种方法:先用标题切分保留文档结构,再用字符切分优化块大小。文中提供了完整的Python代码示例,展示了如何设置标题层级、控制块大小和重叠量,并建议针对中文优化分隔符列表。参数调优方面推荐chunk_size设为500-1000字符,overlap为10
2026-03-22 07:30:00
241
原创 消息角色定义
摘要:现代大语言模型(如GPT、Claude等)在处理对话时,API接收的结构化消息列表会被转换为单一字符串输入。这种转换是因为模型本质处理的是token序列,需要特殊标记来区分不同角色(如系统、用户、助手)的发言。不同模型使用特定模板(如OpenAI的ChatML、Llama2的INST格式)进行转换,API采用结构化消息便于开发者构建对话,但最终模型处理的仍是嵌入特殊标记的字符串。本地部署时需手动调用转换方法,建议使用官方模板工具确保格式正确。(149字)
2026-03-21 20:20:34
64
原创 法规结构化设计说明
此结构可直接导入数据库(如Elasticsearch/MySQL)或编程语言内存库,实现O(1)级查找效率。全量数据共33条,完整JSON结构我已按你的文本生成,需要可提供完整文件。print(result["full_id"]) # 输出:2.A.5。:对无 Part 的章节(如 CHAPTER 3),:如需添加更多属性(如法律原文),可直接扩展字段。: 完整路径文本(人类可读,如。: 条款编号(阿拉伯数字): 唯一复合ID(格式。: 保留原始大标题(如。# Python 伪代码。
2025-08-14 17:11:49
237
原创 mysql索引篇 - B+树
为什么mysql推荐一定要设定索引,最好使用整型且设定自增主键。为什么mysql默认使用innodb作为搜索引擎?如果数据都是从小到大插入,二叉树就会退化成链表。数据量过大时,树的高度会越来越高。
2024-03-29 01:35:11
335
原创 Mysql基础篇 - 一行记录是怎么存储的?
之前有位读者在面字节的时候,被问到这么个问题:类似的问题还有其实都是在围绕着一个问题:「 MySQL 一行记录的存储结构」这一个知识点,所以攻破了这个知识点后,这些问题就引刃而解了。
2024-03-20 00:34:26
2179
1
原创 图解网络 - 基础篇
网络接口层的传输单位是帧(frame),IP 层的传输单位是包(packet),TCP 层的传输单位是段(segment),HTTP 的传输单位则是消息或报文(message)。但这些名词并没有什么本质的区分,可以统称为数据包。
2024-02-02 00:15:17
1857
原创 图解系统 - 网络系统
在进行 I/O 设备和内存的数据传输的时候,数据搬运的工作全部交给 DMA 控制器,而 CPU 不再参与任何与数据搬运相关的事情,这样 CPU 就可以去处理别的事务。
2024-01-30 21:32:06
312
1
原创 图解系统 - 进程管理
线程是进程当中的一条执行流程一个进程中可以同时存在多个线程;各个线程之间可以并发执行;各个线程之间可以共享地址空间和文件等资源;
2024-01-26 01:04:03
908
1
原创 redis - 缓存三兄弟
大量缓存数据在同一时间过期(失效)或者 Redis 故障宕机 1. 缓存的时候,给过期时间设置随机数 2. 互斥锁,当业务线程请求时,发现缓存不在redis里,就加个互斥锁,保证同一时间内只有一个请求来构建缓存,完成之后再释放锁,互斥锁实现的时候最好添加超时时间 3. 后台更新缓存 1. 服务熔断或请求限流机制 2. 构建Redis缓存高可靠集群热点数据缓存过期 1. 互斥锁:保证同一时间只有一个业务线程更新缓存,未能获得互
2024-01-26 00:16:45
283
1
原创 图解系列 - 内存管理
为了在多进程环境下,使得进程之间的内存地址不受影响,相互隔离,于是操作系统就为每个进程独立分配一套虚拟地址空间,每个程序只关心自己的虚拟地址就可以,实际上大家的虚拟地址都是一样的,但分布到物理地址内存是不一样的。作为程序,也不用关心物理地址的事情。每个进程都有自己的虚拟空间,而物理内存只有一个,所以当启用了大量的进程,物理内存必然会很紧张,于是操作系统会通过内存交换技术,把不常使用的内存暂时存放到硬盘(换出),在需要的时候再装载回物理内存(换入)。
2024-01-21 22:32:04
773
原创 图解系统 - 操作系统结构
宏内核,包含多个模块,整个内核像一个完整的程序;微内核,有一个最小版本的内核,一些模块和服务则由用户态管理;混合内核,是宏内核和微内核的结合体,内核中抽象出了微内核的概念,也就是内核中会有一个小型的内核,其他模块就在这个基础上搭建,整个内核是个完整的程序;Linux 的内核设计是采用了宏内核,Window 的内核设计则是采用了混合内核。这两个操作系统的可执行文件格式也不一样, Linux 可执行文件格式叫作 ELF,Windows 可执行文件格式叫作 PE。
2024-01-19 00:46:58
903
1
原创 图解系统 - 硬件结构
最后我们再来回答开头的问题。64 位相比 32 位 CPU 的优势在哪吗?64 位 CPU 的计算性能一定比 32 位 CPU 高很多吗?64 位 CPU 可以一次计算超过 32 位的数字,而 32 位 CPU 如果要计算超过 32 位的数字,要分多步骤进行计算,效率就没那么高,但是大部分应用程序很少会计算那么大的数字,所以只有运算大数字的时候,64 位 CPU 的优势才能体现出来,否则和 32 位 CPU 的计算性能相差不大。
2024-01-18 23:43:56
1254
1
原创 python操作MongoDB进行CURD操作以及常见的调优技巧
例如,对于范围查询使用Unix时间戳进行简化,对于文本搜索使用全文索引的模式,减少工作集上下文交互是提高性能的最好方法之一。监控是必要的,以追踪系统的活动和运行情况。1. 确保正确的索引:索引是MongoDB中查询性能的关键因素,因此必须确保正确的索引为集合进行配置。4. 使用合适的硬件:为MongoDB分配足够的内存和磁盘空间,以确保系统的高性能及稳定运行。3. 增加可用性和可伸缩性:MongoDB的可伸缩性和高可用性是它的一个主要卖点,使用分片和副本集来增强系统的可用性和可伸缩性。
2023-03-21 22:43:05
423
原创 pandas库的使用场景
Pandas的常用数据结构是Series和DataFrame,它们可以用来处理多种类型的数据,包括时间序列数据和结构化数据等等,Pandas还提供了各种功能来方便处理数据,在数据清洗、数据切片/切块、数据聚合、数据分组、数据排序等方面提供便利。2. 数据探索性分析:Pandas可以用于数据的探索性分析,它可以给出数据的一些基本统计信息,如平均数、中位数、标准差、最大值、最小值等等。它支持缺失值的处理、数据类型的转换、重复数据的删除、不一致数据的纠正等。
2023-03-21 22:36:53
1482
原创 django和gin的对比
Django使用基于线程的请求处理方式,一个线程处理一个请求。因此,它的并发处理能力取决于服务器所能够承受的线程数。如果服务器的CPU和内存资源充足,可以支持更多的请求并行处理。从数据上看,Gin在比Django更高的吞吐量和更短的延迟方面表现更好。在基准测试方面,Gin通常比Django更快。总的来说,Gin在并发和性能方面具有优势,但要注意的是,这些结果也取决于实际应用场景和负载。Gin使用基于协程的请求处理方式,每个协程可以同时处理多个请求。因此,它具有更高的并发处理能力,可以支持更多的并发请求。
2023-03-10 17:31:10
1995
原创 如何系统学习k8s?
使用 Kubernetes 的过程中需要建立文档和笔记,便于记忆和随时查阅。可以使用 Kubernetes 的设置进行实验,建立一个 Kubernetes 热点研究小组。参加 Kubernetes 社区,学习和了解最新的变化和发展。
2023-03-10 17:14:29
508
转载 Kubernetes核心概念介绍
关注点包括自愈和自动伸缩、调度和发布、调用链监控、配置管理、Metrics 监控、日志监控、弹性和容错、API 管理、服务安全等,k8s 将这些微服务的公共关注点以组件形式封装打包到 k8s 这个大平台中,让开发人员在开发微服务时专注于业务逻辑的实现,而不需要去特别关心微服务底层的这些公共关注点,大大简化了微服务应用的开发和部署,提高了开发效率。Pod,k8s 中特有的一个概念,可以理解为对容器的包装,是 k8s 的基本调度单位,实际的容器时运行在 Pod 中的,一个节点可以启动一个或多个 Pod。
2023-03-09 19:15:52
352
原创 typing模块
很多人在写完代码一段时间后回过头看代码,很可能忘记了自己写的函数需要传什么参数,返回什么类型的结果,就不得不去阅读代码的具体内容,降低了阅读的速度。在调用的时候如果参数的类型不正确pycharm会有提醒,但不会影响程序的运行。List、 Tuple、 Dict、 Set:列表、元组、字典、集合。该模块加入后并不会影响程序的运行,不会报正式的错误,只有提醒。在传入参数时通过"参数名:类型"的形式声明参数的类型;返回结果通过"-> 结果类型"的形式声明结果的类型。bool、str:布尔型、字符串类型。
2023-03-07 13:46:06
144
原创 git仓库规范
该目录下可以有很多项目的分支,dev目录下的分支可以进行回流。以项目为维度,再通过开发人员名字为子维度来区分。主分支:develop/demo。开发分支:dev/demo/kk。主目录:develop。
2022-11-18 11:19:14
350
原创 python gil锁
1. giL会根据执行的完节码行数(1000个字节码左右、根据版本差异)以及时间片(15ms)释放gil。2. 遇到io操作的时会主动释放给别的线程。
2022-10-19 10:08:18
209
1
转载 pycharm插件translation 更新TTK失败,请检查网络连接的解决办法
pycharm插件translation 更新TTK失败,请检查网络连接的解决办法
2022-10-05 09:35:07
602
2
转载 python之抽象基类abc.abstractmethod
有时,我们抽象出一个基类,知道要有哪些方法,但只是抽象方法,并不实现功能,只能继承,而不能被实例化,但子类必须要实现该方法,这就需要用到抽象基类,在很多时候用到的很多。为了理解抽象基类,你可以这么理解,我们有蔬菜这个抽象基类,有黄瓜,番茄,芹菜等,但你永远只能吃得到黄瓜,番茄这些,而不能吃到所谓的“蔬菜”,这样理解起来容易多了吧。但是注意,如果这时你实例化Foo,仍然是报错的,因为抽象基类只能继承而不能实例化,子类要实例化。...
2022-08-29 17:09:19
324
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅