- 博客(44)
- 收藏
- 关注
原创 【RAG】向量?知识库的底层原理:向量数据库の技术鉴赏 | HNSW(导航小世界)、LSH、K-means
哈希碰撞:由于输入是固定长度的数据,而输出是固定长度的哈希值,根据鸽巢原理,必然会出现数据不同而哈希值相同的情况,这叫碰撞。- 正常而言,哈希算法要尽可能减少碰撞的发生,而(对向量)位置敏感哈希函数-LSH则相反,尽可能让位置相近的数据发生碰撞,然后根据哈希碰撞来进行分组,构建方法:随机划出直线分割平面,两面的点分别增加意味0或1来表示
2025-05-03 18:37:05
1219
4
原创 你知不知道DeepSeek对话中像打字机一样的流式输出效果是怎么实现的?AI聊天项目实战经验:流式输出的前后端完整实现!(RAG,Langchain,Python)
来看这条简单清晰的逻辑链:LLMs_chain.astream(langchain中chain的API:流式输出LLM的一个个回复块「原料chat_sew.stream_chat (生成器,转换chunk为初步的SSE格式字典「初步加工产品)stream_response_generator(生成器,转换SSE协议字符串丨打包成快递)StreamingResponse(FastAPI用于流式传输响应体的响应类,以SSE协议发送数据块到客户端|快递员)-> 「前端
2025-04-22 14:56:54
3729
3
原创 【我很好奇】为什么叫“依赖倒置”,我觉得“依赖接口”更贴切
1. 依赖倒置是什么?2. 为什么命名为“依赖倒置”,我觉得“依赖接口”更贴切?*依赖倒置,这个倒置的由来是有历史缘故的。早期软件开发是高层依赖底层模块,后发展出了SOLID原则,这种高层和底层都依赖接口的思想就被命名为“依赖倒置”*
2025-10-25 13:44:47
982
原创 【Agent】你会如何应对AI工具调用幻觉?分不清井绳与蛇的LLM,幻觉——大模型落地的最大困境
人类具有泛化能力,一朝被蛇咬,十年怕井绳,人类的大脑会把“蛇(危险信号)”的特征(细长、弯曲、可能突然出现)“推广”到相似的事物(井绳)上,哪怕井绳本身没危险,也会先产生警惕,帮我们避开潜在危险(比如真遇到类似蛇的毒虫时能更快反应),是演化中保留下来的“生存技能”。接下来我将分享在agent工程实践的经验。
2025-10-04 06:45:08
981
原创 【Agent】AI 智能体在 2025 年面临的挑战——大模型落地困境
把 cloud code 里面的模型换成其他的优质的开源模型试试。跑出来的效果依然非常能打,正是因为它本身的工具体系搭的非常的好。
2025-10-01 13:56:23
989
原创 【Error】django-debug-toolbar不显示:Failed to load module script
【代码】【Error】django-debug-toolbar不显示:Failed to load module script。
2025-09-17 11:32:04
470
原创 【八股】Redis-中小厂精要八股
Redis摘要:高性能内存数据库,支持多种数据结构,广泛应用于缓存、排行榜等场景。采用单线程命令处理避免锁竞争,配合I/O多路复用提升并发能力。通过定期删除+惰性删除管理过期键,配合LRU/LFU等8种内存淘汰策略防止OOM。提供RDB快照和AOF日志两种持久化方式,4.0+版本支持混合持久化(RDB+AOF)兼顾恢复速度与数据完整性。6.0版本引入多线程网络I/O优化吞吐量,但命令执行仍保持单线程。关键特性包括毫秒级响应、原子操作和发布订阅功能,适合作为分布式缓存/锁的实现方案。
2025-08-15 10:11:23
861
原创 【八股】Mysql中小厂八股
MySQL数据库基础与优化要点总结 数据库三大范式:第一范式要求原子性,第二范式要求完全依赖主键,第三范式避免传递依赖。但实际应用中可适当冗余以提高效率。 存储引擎对比:InnoDB支持事务、行锁,适合高并发;MyISAM不支持事务但查询快,适合读多写少场景。 索引优化核心: B+树索引结构优势在于层级少、范围查询高效 避免回表查询,优先使用覆盖索引和联合索引 遵循最左前缀原则,注意索引失效场景(如函数操作、头部模糊查询等) SQL优化建议: 避免SELECT *,减少回表 批量插入数据(500-1000条
2025-08-13 11:57:42
364
转载 k8s 到底是什么,架构是怎么样的?
Kubernetes(k8s)是Google开源的容器编排系统,通过中间层架构解决应用服务部署和管理难题。k8s集群分为控制平面(负责调度、管理等)和工作节点(运行实际服务),核心组件包括API Server、Scheduler、Controller Manager、etcd等。服务以Pod为单位部署在Node上,最小调度单元是包含多个容器的Pod。用户通过kubectl工具和YAML配置文件即可完成服务部署,无需手动操作服务器。k8s还提供网络代理、自动扩缩容等能力,极大简化了分布式系统的运维管理。
2025-07-12 09:34:26
71
原创 【Python】魔术方法是真的魔法!(第四期)
方法更多地定义在描述符类(descriptor class)中,它作为一个 hook,在构建类实例时被调用,主要用于赋值和初始化类的name属性。"""一个数据描述符,在所有者类创建时设置其名称。"""self.name = None # 将由 __set_name__ 设置print(f"RevealedAccess.__set_name__ 被调用: owner=class RevealedAccess : """一个数据描述符,在所有者类创建时设置其名称。
2025-05-22 16:54:37
1217
原创 【Python】魔术方法是真的魔法!(第三期)
魔术方法是在尝试删除对象属性时被调用。它不会在对象正常生命周期结束时被调用,而是在使用。关键字删除属性时执行。该方法没有返回值,但在其中可以进行一些操作,如打印提示信息。),则当读取不存在属性时,程序将不会出现错误,而是返回预设的值。对存储在类级别的字典中,使得所有该类的对象共享这些自定义属性。魔术方法是在尝试访问对象不存在的属性时被调用的。来实现默认行为,但也支持自定义实现,例如将。,当设置对象属性时会被调用。函数时,如果要恢复其默认行为,应使用。函数,并在其中返回特定值(如。魔术方法有两个参数,
2025-05-18 10:11:14
1080
原创 【Python】魔法方法是真的魔法! (第二期)
hash自定义__eq__方法后,默认__hash__会被删除需要同时自定义__hash__方法必须保证相等对象具有相同hash值# 只定义了 __eq__,没有定义 __hash__
2025-05-17 20:11:13
1167
原创 【Python】EAFP?请求原谅比请求允许容易?
与其小心翼翼地预测所有可能的失败,不如相信代码大多数时候能正常工作,当确实出错时,优雅地处理异常。这正是 EAFP 哲学的精髓。
2025-05-16 13:41:49
1280
原创 【Python】上下文管理器这一块,你讲一下你的见解
self.start = time.time() # 记录开始时间class Timer : def __enter__(self) : self . start = time . time() # 记录开始时间 return self def __exit__(self , * args) : print(f"Elapsed: {time . time() - self . start } sec") with Timer() : time . sleep(1.5) # 会输出经过的时间。
2025-05-15 17:11:07
672
原创 【Python】魔法方法是真的魔法! (第一期)
__new__和__init__分别用于对象的创建和初始化,__new__控制对象的创建逻辑,而__init__用于初始化对象。__str__和__repr__用于返回对象的字符串表示,前者注重可读性,后者提供更详细的信息。__format__用于自定义对象的格式化输出。__bin__用于返回对象的二进制表示。__del__作为析构函数,用于对象释放时的清理工作,但由于Python的垃圾回收机制,其使用并不直观。这些魔术方法在特定场景下提供了对对象行为的精细控制。
2025-05-13 09:28:37
388
原创 【Python】写了一个闭包,Python解释器偷偷干了什么
当然它比较神奇的地方在于:即使list_appender的调用结束了,甚至对list_appender的引用都没有了,这个闭包变量它依然能活着,因为函数对象`appender`包含了对闭包的引用。
2025-05-09 13:09:45
1166
原创 【RAG】Milvus、Pinecone、PgVector向量数据库索引参数优化
### IVF类索引关键参数(基于聚类算法)1. **nlist** (倒排列表数量): - 决定将向量空间划分为多少个聚类中心 - 值越大搜索越精确但耗时越长 - 推荐值: 通常设置为数据量的4√n到n/1000之间 - 例如: 1百万数据量可设nlist=1000到40002. **nprobe** (搜索时探查的聚类数量): - 决定搜索时检查多少个最近邻的聚类 - 值越大结果越精确但速度越慢 - 推荐值: 通常为nlist的1%~10% - 例如
2025-05-09 09:50:32
1846
原创 【Python】import 的时候,发生了什么…
在Python中,什么是`module`和`package`?如何导入一个包含子包的`package`? `Module` 是Python运行时的概念,它是一个独立的命名空间,包含其他Python对象,通常对应一个`.py`文件。而 `package` 则是一种特殊的`module`,它除了包含自身模块外,还可以包含其他`sub package`和`module`,并且在操作系统层级上,一个`package`对应的是一个文件夹,其中可以有多个文件和子文件夹。可以使用`import package_nam
2025-05-07 10:13:19
495
原创 【面试官:在你的项目中你是怎么实现混合检索的?我:先这样再那样
为什么要引入`BM25`?一开始项目是只用向量检索的,有一次我问了一个问题“重排序是什么?”,八条向量检索都没有捕获到“重排序”片段,因为在原文中,“重排序”也只出现了一次,在一个小点中一笔带过。所以光靠向量检索不能够捕捉到这样微小的字眼。我们可以看到……
2025-05-06 10:21:38
1410
原创 【Python】一直没搞懂生成器是什么。。
上期我们讲解了迭代器这期我们来讲讲它的好兄弟——生成器### 生成器 (Generator)?生成器是一种特殊的 **`迭代器`** (`Iterator`)。**迭代器** 是你可以逐个访问其元素的对象(比如在 `for` 循环中使用)。列表、元组、字典、字符串等都是可
2025-05-04 15:32:23
1034
原创 【Python】一直没搞懂迭代器是什么。。
iterable是个容器,可以提供iterator,可以理解为完整的链表或者链表的表头;iterator是一个可以指向下一个对象的对象,可以理解为链表的一个单元;两者结合弥补了python不能用指针的缺陷,非常适合在链表这种数据结构中使用;为什么iterator最好也是iterable,是因为这样可以使得每一个子链都可以被调用。
2025-05-04 11:43:19
928
原创 现在让我们来解读协程 coroutine. co 常是一个表示:“一起“的前缀,如cooperate ,routine 有 惯例,例行程序 的意思。怎么和协程的功能作用结合起来理解呢?
易混淆为并行(Parallel),而!**Coroutine = Co(协作) + Routine(例程)**,这一命名完美体现了其核心设计思想。以下是逐层解析:---#### **1. 词根与字面意义**- **Co-**(前缀): - 源自拉丁语 **"com-"**(共同、一起),如 **cooperate(合作)**、**coexist(共存)**。协程本质是。
2025-05-02 20:34:55
594
原创 Langchain,为何要名为langchain?
`langchain` 是一个大语言模型开发框架。我的理解中,`lang` 是词根"语言",chain是单词"链",`langchain` 便是将语言模型和组件串联成链的框架。而 `langchain` 的图标是一只鸟和一条链,一条链我能理解,为什么会有一只鸟来代表 `lang` 呢?
2025-05-02 12:38:49
1052
原创 【氵】async\awiait异步是啥?为啥就能高并发?多进程多线程\事件循环哪个牛?
Q3, Python,特别是fastapi也拥有async\awiait 的异步处理机制,如果Python是单线程语言(我不清楚这点),那么它与nodejs相比,并发能力是不是同一水平? Q4,java是多线程,java是通过建立多线程来提高并发度,所以java的并发能力高于nodejs这类单线程语言,我的理解正确吗? Q5 GO的并发能力似乎很强,它的实现机制是类似java,还是nodejs?
2025-05-01 19:26:17
932
原创 【RAG】Context Precison 提高33.3%!重排序是什么?基于LangChain的重排序实现
**打个比方** 想象你在图书馆找书: 1. **第一步(检索)**:图书管理员快速从书架上抱来20本可能相关的书(基于书名/关键词的粗略匹配)。 2. **第二步(重排序)**:你翻开每本书的目录,仔细对比哪几本**真正解答你的问题**,留下3本最相关的(高精度筛选)。 **重排序就是那个“仔细翻目录”的过程**,确保最终交给大脑(LLM)的书是精华。
2025-05-01 19:09:35
993
原创 面试官:你会怎么做前端web性能优化?我:.%*&.!
>面试话语:例如:页面有一个压缩图片功能,而这个功能的第三方库很大;> 这个功能用户不会立即使用、甚至可能不使用。将该功能异步加载
2025-04-30 19:22:01
1237
原创 CDN是啥?十分钟让Cloudflare免费为你的网站做CDN加速!
朋友你好你是否觉得自己的网站加载有点慢?用户等待时间长,体验不佳?不慌,今天我们就来聊聊网站加速的利器——CDN,并且手把手教你如何利用 Cloudflare 的免费服务,在十分钟内给你的网站加上"加速器"!理解 CDN 是什么,以及它为什么能让网站飞起来。掌握使用 Cloudflare 为你的网站(特别是像我们这个 Vue + Vite + Nginx 项目)配置免费 CDN 的核心步骤。挑选一个 CDN 服务商(我们就选 Cloudflare)。在 CDN 平台配置你的源站信息。
2025-04-29 09:22:43
2588
原创 【MCP】哎只能在cursor中用MCP吗?NONONO!三分钟教你自己造一个MCP客户端!
至此我们就完成了一个自己的 MCP 客户端了### 好了,现在你可以在简历上写上:精通 MCP 了 [doge]
2025-04-26 20:02:40
1544
原创 巨坑!解决 Windows 上 FastAPI/Asyncio 子进程 `NotImplementedError` 问题File “C:\Python310\lib\asyncio\base_even
要解决这个问题,需要借助神秘魔法【ProactorEventLoop】
2025-04-26 18:48:12
2165
1
原创 【Langchain】RAG 优化:提高语义完整性、向量相关性、召回率--从字符分割到语义分块 (SemanticChunker)
这是因为`RecursiveCharacterTextSplitter` 的局限性,它将原本相关的文本切成了两个部分,第一个部分被召回,而第二个部分因为包含的信息更少,其向量相关性也下降了,没有被召回。这就导致了检索质量不理想,因为`RecursiveCharacterTextSplitter`既影响了**语块完整性**,也影响了语块的**向量相关性**。
2025-04-25 17:53:26
1478
原创 关于nginx,负载均衡是什么?它能给我们的业务带来什么?怎么去配置它?
想象一下一个超市只有一个收银台,高峰期肯定会排起长队。负载均衡就像是超市增开了多个收银台,并有一个调度员指挥顾客去当前最空闲或下一个可用的收银台结账。
2025-04-24 21:43:19
1560
原创 Nginx 反向代理,啥是“反向代理“啊,为啥叫“反向“代理?而不叫“正向”代理?
和 Java Bean 的“控制反转 (IoC)”异曲同工?**这是一个有趣的类比!可以说它们在**思想层面**有相似之处,即**责任的转移**或**控制权的转移**,但它们应用的领域和解决的问题是完全不同的。* **控制反转 (Inversion of Control, IoC):** * **领域:** 软件设计、对象之间的依赖关系管理。 * **核心思想:** 将创建和管理对象(Bean)的**控制权**,从代码本身(比如 `new MyObject()`) **反
2025-04-24 21:32:31
1440
1
原创 怎么把我的前后端项目通过docker部署到云服务器【手把手教学】
上文我们讲解了docker的概念和基本操作,演示了本地项目部署到本地接下来我们将手把手演示,将你的前后端项目通过docker部署到云服务器。
2025-04-23 09:59:12
910
原创 【docker0基础教学】手把手教你将你的本地项目进行docker部署
在Dockerfile的最后我们会用到CMD来指定**当Docker容器运行起来以后要执行的命令**。大家需要注意这里容器和镜像的区别,并且它和我们之前讲到的RUN不一样:**RUN是创建镜像时候使用的,而CMD是运行容器的时候使用的。**
2025-04-22 17:45:47
1604
RAGLangchain项目 BM25与向量语义检索混合策略设计:提升长尾关键词捕获能力及检索精度了文档的核心内容
2025-05-05
【Python编程】深入解析迭代器与可迭代对象:构建自定义链表迭代系统及其实现方法
2025-05-04
【Python编程】深入解析迭代器与生成器的工作原理及应用场景:从基础概念到自定义实现了Python中的迭代
2025-05-04
【向量数据库与近似最近邻算法】向量?知识库的底层原理 多维特征表示及高效搜索方法综述:涵盖K-Means、LSH、HNSW等技术原理与应用场景
2025-05-03
【网站加速技术】基于Cloudflare的CDN加速系统配置与优化:提升网站性能和用户体验的方法步骤
2025-04-29
你想不想让你写的博客一键发布多平台?!【粘贴图片自动上传图床~一次撰写多端发布】【经验分享-完全免费】基于OpenWrite与Picgo的多平台博客发布系统:实现Markdown文章与图片自动化管理
2025-04-19
怎么把我的前后端项目通过docker部署到云服务器【手把手教学】大学生原创github.com/hbchen7
2025-04-23
手工原创0基础手把手教你将你的本地项目进行docker部署 基于Docker的本地项目部署指南:Python应用容器化与多容器编排实践
2025-04-22
langchain项目如何实现流式输出经验分享前端流式输出(AI,RAG,fastapi,Vue,python,SSE)-watermark.pdf
2025-04-22
9787302583127《Python网络程序设计(微课版)》-课后习题解答
2025-04-19
【OneAPI开源项目】API接口文档:用户管理、令牌管理和模型渠道管理功能详解
2025-04-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅