- 博客(192)
- 收藏
- 关注
原创 SpringBoot + Redis 电商秒杀完整方案
本文介绍了基于SpringBoot+Redis的电商秒杀系统实现方案。针对高并发、库存超卖等核心痛点,采用分层架构设计:前端防抖限流、网关拦截恶意请求、Redis原子操作预减库存、消息队列异步处理订单。系统利用Redis的INCR/DECR/SETNX等原子命令和Lua脚本保证库存一致性,通过RabbitMQ削峰填谷减轻数据库压力。详细说明了环境配置(SpringBoot 3.2+Redis 6+RabbitMQ 3.12+MySQL 8.0)、核心依赖、数据库表设计(商品/订单/用户表)以及关键配置参数优
2026-05-18 22:51:22
892
2
原创 Agent Skills 教程
Agent Skills 是为 AI 智能体(Agent)提供的模块化、标准化、可复用的专业化能力单元,是连接大模型 “推理能力” 与外部 “工具执行” 的核心中间层,让通用 Agent 能像专业人员一样完成特定领域任务。简单理解:Agent 是 “大脑 + 身体”,Skills 是 “专业技能包 + 操作手册”—— 没有 Skills 的 Agent 只会基础推理,有了 Skills 才能精准、稳定地落地复杂任务。
2026-05-05 19:18:51
461
原创 Java 中的 Caffeine 缓存详解
如果上述方案均不满足需求(例如需要 TTL 分桶、异步刷新等特殊逻辑),可以自行实现 Cache 和 CacheManager 接口,或继承 AbstractValueAdaptingCache。// 可覆盖 get、put 等方法添加额外逻辑。
2026-04-18 18:49:16
522
原创 LangChain 工具调用(Tool Calling)
函数调用 (Function Calling)起源:源自 OpenAI 于 2023 年推出的原生 API 功能(functions/tools 参数),是 LLM 厂商定义的模型能力。本质:让模型输出结构化的 JSON 指令(包含函数名、参数),而非自然语言。模型只负责 “决定调用” 和 “生成参数”,不负责执行。狭义:特指单个函数的结构化调用协议。工具调用 (Tool Calling)起源:LangChain 对 “函数调用” 能力的框架级封装与扩展。
2026-04-04 18:15:42
635
原创 LangChain 中间件(Middleware)
继承 BaseAgentMiddleware,重写需要的钩子方法。示例:日志中间件class LoggingMiddleware(BaseAgentMiddleware) : def before_agent(self , inputs : dict , ** kwargs) - > dict : print(f"[Agent 启动] 输入: {
2026-03-30 23:45:58
739
原创 LangChain 输出解析器(OutputParser)
如果内置解析器不满足需求,可以继承 BaseOutputParser 并实现 parse 方法。为了获得最佳实践,可以同时提供 get_format_instructions。继承 BaseOutputParser[T]实现 parse() 方法(处理字符串)可选实现 get_format_instructions()(告诉模型输出格式)功能:把 “姓名:张三,年龄:25” 解析成字典# 自定义解析器# 必须实现:解析逻辑# 在这里写任意清洗逻辑。
2026-03-28 20:31:21
434
原创 LangChain 提示词模板(Prompt Templates)
当系统自带的 PromptTemplate / ChatPromptTemplate 不够用时,可以自己写一个完全可控的模板。继承 StringPromptTemplate 或 BaseChatPromptTemplate定义 input_variables在 format() 或 format_messages() 里拼提示词# 自定义模板# 定义你需要的变量# 在这里自由拼接提示词你是专业AI助手。
2026-03-28 18:11:10
623
原创 LangChain 消息与对话(Messages & Chat)
LangChain 的 Messages & Chat 是构建对话式 AI、多轮聊天机器人、智能助手的核心模块,它统一了大模型的消息格式、对话历史管理、多角色交互,解决了原生大模型(如 GPT、文心一言、通义千问)消息格式不统一、对话历史难以维护的问题。
2026-03-25 22:16:31
447
原创 LangChain 模型上下文协议 (MCP)
LangChain 模型上下文协议(MCP,Model Context Protocol)是一套标准化、跨模型、可插拔的协议,用于让 LLM/Agent 统一发现、调用外部工具、资源与提示模板,解决工具集成碎片化、跨模型适配成本高、安全与权限难管控的问题LangChain。它让 LangChain Agent 能像 “插 USB” 一样接入各类外部能力,是企业级 Agent 架构的关键基础设施。
2026-03-22 17:55:51
422
原创 LangChain 会话记忆(Conversation Memory)
不保存完整历史,而是用大模型对历史对话生成 “摘要”,只保存摘要内容 —— 大幅减少 Token 消耗。不存储原始对话,而是用 LLM 生成对话历史摘要;大幅减少 Prompt 长度,适合超长对话;缺点:有摘要损耗,可能丢失细节。# 初始化摘要记忆(指定用于摘要的LLM)llm=llm, # 用gpt-3.5-turbo生成摘要# 长对话conversation.invoke({"input": "我叫张三,是一名Python程序员,有5年工作经验"})
2026-03-19 22:03:17
558
原创 LangChain 多模态(Multimodal)
多模态(Multimodal)指的是系统能够处理和整合多种不同形式的数据。LangChain 中的多模态能力,核心是让 RAG/Agent 能处理文本、图片、音频、视频、表格等多种类型数据,而非仅局限于纯文本 —— 这是实现 “图文问答、多模态知识库、视觉 Agent” 的关键。
2026-03-16 21:57:48
504
原创 RAG 向量数据库
在RAG(检索增强生成)工作流中,向量数据库(Vector Database)是整个系统的记忆核心。它负责存储文档的向量表示,并提供高效的相似性检索能力。向量数据库的选择和使用直接影响RAG系统的性能、可扩展性和成本。
2026-03-15 22:27:20
565
1
原创 RAG 相似度计算
对于大多数RAG应用,余弦相似度是最佳选择,因为它不受向量长度影响,只关注语义方向。方法关注点取值范围计算复杂度适用场景余弦相似度方向[-1, 1]O(n)最常用,对文本长度不敏感点积方向和长度无固定O(n)向量已归一化时等同于余弦欧氏距离绝对距离[0, +∞)O(n)向量长度有意义时。
2026-03-14 18:56:10
517
原创 RAG 嵌入模型(Embeddings)
嵌入模型(Embedding Model)是 RAG 流程的核心中枢—— 它将文本片段(Chunk)转换为高维向量(Embedding Vector),让计算机能通过「向量相似度」而非关键词匹配来检索相关信息。好的嵌入模型直接决定 RAG 的检索精度,甚至能弥补文本分割、加载环节的小瑕疵。
2026-03-10 22:51:55
589
原创 RAG 文本分割器(Text Splitters)
核心定位:特殊场景定制,如按 PDF 章节、合同条款分割原理:继承 BaseDocumentSplitter 基类,实现自定义分割逻辑。合同、法律文书、论文等有固定结构的文档。# 按“条款”分割合同文本chunks = content.split("条款")# 拼接“条款X”,保证语义完整chunk_content = f"条款。
2026-03-07 18:33:03
479
原创 RAG 文档加载器(Document Loaders)
在加载时,可以给文档添加额外的元数据,便于后续过滤和溯源。# 方式1:加载后手动添加loader = PDFPlumberLoader("docs/产品手册.pdf")doc.metadata["文档类型"] = "产品手册"doc.metadata["版本"] = "v2.0"# 方式2:自定义加载器(继承重写)doc.metadata["自定义字段"] = "自定义值"loader = CustomPDFLoader("docs/产品手册.pdf")
2026-03-07 16:51:37
499
原创 LangChain 检索增强生成(RAG)
检索增强生成(Retrieval-Augmented Generation, RAG) 是一种将信息检索与语言模型生成相结合的技术范式。其核心思想是:在语言模型生成答案之前,先从外部知识库中检索出与问题相关的文档片段,将这些片段作为上下文注入模型,从而让模型能够利用最新、最专业或私有数据生成更准确、更可信的回答。
2026-03-05 23:19:25
451
原创 LangChain 工作流(Workflows)
将 LLM 应用的核心逻辑(模型调用、工具执行、分支判断、记忆管理、检索增强)抽象为节点(Node) 和边(Edge),通过可视化的图结构定义执行流程,支持循环、条件分支、多智能体协作等复杂逻辑。# 定义工作流状态user_input: str # 用户输入(如“查询2025Q4销售额并分析”)quarter: str # 提取的季度参数tool_results: dict # 工具执行结果analysis_result: str # 分析结果。
2026-02-27 22:42:38
779
原创 LangChain 模型(Models)
定义LLM 在 LangChain 中代表“文本补全模型”。这类模型的设计目标是根据给定的提示文本(prompt),续写最可能的后续文本。给一段文字,续写下去。特点输入:一个简单的字符串(prompt)。输出:一个字符串(completion)。无角色区分:所有输入都被视为连续的文本,没有系统、用户、助手等角色概念。不原生支持对话、工具调用、结构化输出(需要自己封装)定义聊天模型是对底层大语言模型(如 GPT-4、Claude、Gemini 等)的一种封装,专门面向对话上下文。
2026-02-25 22:39:53
710
原创 LangChain 智能体(Agent)
智能体 = 大模型 + 工具 + 记忆 + 决策能力。突破大模型静态回答局限,能自主思考→选工具→执行→看结果→再思考,直到完成任务。智能体不是“一次性回答”,它是一个会反复思考和行动的循环系统。LangChain 1.0 统一用 create_agent() 构建,替代旧版 create_react_agent 等,更简洁、生产就绪。普通链(Chain):固定流程,输入→处理→输出智能体(Agent):动态流程,会思考、试错、循环、多步执行。
2026-02-13 22:27:32
789
原创 LangChain 1.0 核心概念
LangChain 是一个用于开发大语言模型(LLM)驱动应用程序的框架,它通过将 LLM 与外部数据源、工具和环境连接起来,构建端到端的应用程序。
2026-02-08 18:31:40
681
原创 Redis 常见问题
Redis 的 Zset(有序集合) 是通过两种底层数据结构实现的:压缩列表(ziplist) 和 跳跃表(skiplist) + 哈希表(dict),根据元素数量和元素大小自动切换。:脑裂是指分布式系统中,由于网络分区导致集群分裂成多个独立工作的子集群,每个子集群都认为自己是唯一正常的部分,导致数据不一致和服务混乱。数据丢失:当网络恢复后,两个子集群合并时,会以某个子集群的数据为主,另一个子集群的写操作可能会丢失。数据不一致:不同的子集群可能接受不同的写操作,导致同一键在不同子集群中有不同的值。
2026-02-01 20:43:28
718
4
原创 Redis 布隆过滤器
布隆过滤器(Bloom Filter)是一种空间效率极高的概率型数据结构,用于判断一个元素是否一定不存在或可能存在于一个集合中。
2026-01-18 11:21:14
1018
原创 Maven 仓库管理
Maven仓库是存储项目依赖(jar包、插件等)的地方。Maven通过坐标(groupId, artifactId, version)来定位和获取这些依赖。仓库分为本地仓库和远程仓库。2.2 Maven 仓库类型Maven 的仓库可分为 本地仓库 和 远程仓库 ,远程仓库又可以细分为 中央仓库、私服仓库 和 第三方仓库。本地仓库(Local Repository)定义:开发者本地计算机上的 Maven 依赖存储目录作用:缓存远程依赖、存储本地构建产物位置:默认在用户主目录的 .m2/repo
2026-01-11 11:54:04
1435
原创 Maven 使用指南
Maven是一个项目管理和构建自动化工具。它使用项目对象模型(POM)的概念,提供了一种标准化的项目结构,一个强大的依赖管理系统,以及一套标准的构建生命周期。
2026-01-10 19:09:12
1041
原创 Git 使用指南
Git 是一个分布式版本控制系统,由 Linus Torvalds 于2005年创建,用于管理 Linux 内核开发。它旨在处理从小型到大型项目的快速和高效版本控制。
2026-01-10 13:26:48
636
原创 Shell 高级用法
函数是一段可以重复调用的代码块提高代码复用性和可维护性使脚本结构更清晰支持局部变量和参数传递# 方式1:传统C语言风格commands# 方式2:使用function关键字commands# 方式3:function关键字带括号commands# 示例:定义简单函数# 调用函数say_hello# 注意:1.return value 表示函数的返回值,value 的值是 (0-255之间的任意数,当然也可以不写 return value,
2026-01-03 18:44:19
988
原创 Shell 基础汇总
存储单元:用于存储数据的命名空间临时存储:通常只在当前 Shell 会话中有效动态类型:无需声明类型,值决定类型# 变量名=值name="John Doe" # 字符串变量age=30 # 整数变量PI=3.14159 # 浮点数(实际存储为字符串)active=true # 布尔值(实际存储为字符串)# 有效变量名VAR_NAME="value" # 推荐使用大写字母和下划线# 无效变量名(会报错)123var="value" # 不能以数字开头。
2026-01-03 15:20:17
1024
原创 Linux 常用快捷键及文本编辑器
普通模式(Normal Mode):用于移动光标、删除文本、复制粘贴等操作。启动Vim后默认进入普通模式。可视模式(Visual Mode):用于选择文本块,然后进行复制、删除、替换等操作。命令模式(Command Mode):用于执行保存、退出、搜索替换等命令。插入模式(Insert Mode):用于输入文本。
2026-01-02 14:40:58
420
原创 Linux 磁盘管理
RAID(Redundant Array of Independent Disks)即独立磁盘冗余阵列,通过将多个磁盘组合成一个逻辑单元来提高性能、可靠性和/或容量。LVM(Logical Volume Manager) 是Linux系统中用于管理磁盘分区的系统,提供比传统分区更灵活的磁盘管理方式。
2025-12-31 20:49:01
1004
原创 Linux 用户和用户组管理
Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
2025-12-28 11:39:29
920
原创 Linux 文件与目录管理
tac [选项] [文件]...-b:分隔符放在行前`-r:将分隔符视为正则表达式-s:指定分隔符(默认是换行符)# 创建测试文件echo -e "第一行\n第二行\n第三行" > test.txt# 正常查看# 输出:# 第一行# 第二行# 第三行# 反向查看# 输出:# 第三行# 第二行# 第一行# 创建两个文件# 反向查看多个文件(每个文件独立反向)# 输出:# A3 # file1.txt的最后一行# A2# A1 # file1.txt的第一行。
2025-12-19 23:02:10
788
原创 Linux 基础
Linux是一种典型的多用户、多任务、支持多线程和多 CPU 的操作系统,不同的用户处于不同的地位,拥有不同的权限。Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
2025-12-18 22:51:46
930
原创 Docker 详解
操作系统(精简版)运行时环境应用程序代码依赖库配置文件环境变量应用程序及其所有依赖项独立的文件系统网络配置进程空间资源限制Docker 仓库是存储和分发 Docker 镜像的中心化服务,类似代码仓库(Git),但专门用于 Docker 镜像。
2025-12-14 20:11:09
804
原创 Dockerfile 详解
语法 VOLUME [ "/path/to/dir" ] VOLUME /var/log /var/db # 示例 VOLUME /data。
2025-12-14 18:20:27
1220
原创 Docker 搭建Nexus3私服
Nexus3的仓库类型主要分为三大类:代理仓库(Proxy Repository)、宿主仓库(Hosted Repository)和仓库组(Repository Group)。宿主仓库(Hosted Repository)代理仓库(Proxy Repository)仓库组(Repository Group)完整配置命令(生产环境推荐)创建宿主仓库(Hosted)配置 Docker 客户端。创建仓库组(Group)启用 Docker 仓库。配置 Docker 仓库。
2025-12-14 17:15:47
1753
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅