- 博客(204)
- 资源 (2)
- 收藏
- 关注
原创 LangChain框架入门19: 构建你的第一个 AI 智能体
在创建智能体之前,首先创建工具,第一个工具是LangChain内置的Google Serper工具,通过Google Serper可以进行谷歌搜索,通过搜索结果,LLM可以获取到实时信息。在使用Google Serper之前需要去申请对应的API KEY,初次注册会送3000次免费调用额度。在.env下配置Google Serper API Key定义工具信息# 1.定义google_serper工具query: str = Field(description="执行谷歌搜索的查询语句")
2025-09-01 09:10:45
601
原创 LangChain框架入门18: 十分钟带你搞定LLM工具调用
本文从 工具创建、LLM工具绑定、调用工具 、 返回调用结果给LLM、LLM生成最终结果,完整展示了LLM工具调用的全过程。LLM 本身并不会直接执行工具,它的作用是决定是否调用工具、调用哪个工具和生成调用参数,实际的工具调用逻辑由应用本身控制。即使绑定了工具,大模型也不一定会调用工具,是否调用工具、如何调用工具是由LLM本身决定的,在调用工具完成之后,传递工具消息时,必须传递原始工具调用传入的,这样LLM才能将工具调用结果与工具调用请求相匹配。
2025-09-01 09:10:14
901
原创 LangChain框架入门17: 手把手教你创建LLM工具
通过工具,LLM 这个“超级大脑”有了四肢,甚至可以配备各种各样的“武器”。这些“武器”就是提供给 LLM 的工具。有了工具,LLM 不再只是一个聊天助手,而是能够真正解决问题的助手。它可以根据用户的提问内容做出判断,决定需要调用哪些工具,并传递相应的参数。在LangChain中,创建工具的方式有多种,不同方式适用于不同场景:通过函数创建工具,适合实现简单功能;将Chain包装成工具,方便已有逻辑的复用;如果需求比较复杂,则可以通过继承BaseTool类的方式,实现更灵活的工具。
2025-09-01 09:09:44
661
原创 LangChain框架入门16:智能客服系统RAG应用实战
本文完整实现了一个基于 RAG+LLM 的智能客服系统,使用了前面几篇文章中介绍的核心组件:文档加载、文本分割、嵌入模型、向量数据库、检索器、提示词模板、记忆组件等,并将它们组合在一起,构建出一个完整的 RAG 应用。当前智能客服系统仍有很多可优化和扩展的空间,大家可以自行改进,目的是让大家通过该系统,将 RAG 相关知识串联起来,更好地理解如何构建 RAG 应用。相信通过本文的学习,你已经对如何将 RAG 流程应用到真实业务场景有了较为完整的了解。
2025-09-01 09:09:13
706
原创 LangChain框架入门15:深度解析Retrievers检索器组件
在前面已经介绍过接口,我们可以通过继承来实现自定义检索器。查看的invoke方法(省略部分代码)可以发现,最终真正执行检索的核心方法是。......try:else:raise eelse:result,并且是一个抽象方法,需要由子类去实现。因此,实现一个自定义检索器需要继承并实现方法。假设有如下需求:需要一个自定义检索器,将传入的查询文本按空格拆分成关键词数组,并在文档中进行匹配。只要有任意一个关键词匹配成功,即返回该文档信息,同时支持通过传递参数控制检索器返回的文档数量。
2025-08-29 17:58:10
1026
原创 LangChain框架入门14:深入解析向量存储组件VectorStore
对非结构化数据的存储与检索,最常用的方法是先将文本进行嵌入,转换为向量后存储到向量数据库中;在查询时,同样将查询文本嵌入生成向量,再将该向量传递给向量数据库,由数据库完成后续的相似度计算与检索过程。在 LangChain 中,这一过程由顶层接口 VectorStore 统一管理,不同类型的向量数据库只需实现该接口中的抽象方法即可完成集成。add_texts:将文本列表转换为向量,并存储到向量数据库。:将文档列表转换为向量,并存储到向量数据库。:返回向量数据库初始化的检索器。
2025-08-29 17:57:39
775
原创 LangChain框架入门13:从0到1学习Weaviate向量数据库
向量数据库(Vector database)是一种能够存储多维向量数据的新型数据库,向量数据库实现了一种或者多种近似相邻算法,来支持用户使用查询文本或图像进行相似性检索,来检索到最匹配的向量数据。这些存储的向量都是高维的,比如我们在上一篇文章中使用的模型,生成的向量的维度是1536,向量的维度一般可以从几百到几万不等,这些向量的维度表示了原始的数据在不同方面的特征,向量的维度取决于它要表示的数据复杂程度,除了文本片段,图像、音频等都可以被向量化存储到向量数据库。
2025-08-29 17:57:11
707
原创 LangChain框架入门12:深入解析文本嵌入组件
文本嵌入模型可以将一段文本转换为高维向量表示,向量可以理解为是一组数字,文本嵌入模型根据多个不同维度将文本转换为具有语义含义的向量数据,这个转换过程叫做文本嵌入。之后,将这些向量存储到向量数据库中。当用户向LLM提出问题,先将问题文本进行向量化,得到问题文本的向量,使用这个向量在向量数据库中进行相似性搜索,就可以找到与提问文本语义最相近向量,进而找到文本片段信息。
2025-08-29 17:56:03
942
原创 LangChain框架入门11:文本分割器实战指南
在RAG应用中,文档加载器将原始文档转换为Document对象后,通常需要对长文档进行分割处理,这是因为大语言模型的上下文窗口是有限的,如果在RAG检索完成之后,直接将检索到的长文档作为上下文传递给模型,可能会超出模型处理的上下文长度,导致信息丢失或回答质量下降,其中,进行文档分割的组件就是文本分割器。控制上下文长度:把长文档分割成更小,缩小上下文长度提高检索准确性:小的文本片段能提升文档检索的精确度保持语义完整性:在分割过程中,能尽量保持文本的语义连贯性分割器作用递归按字符分割文本。
2025-08-29 17:55:30
892
原创 LangChain框架入门10:一文带你吃透文档加载器
在LangChain中,文档加载器用于将各种格式的文档转换为Document对象,LangChain提供了大量的文档加载器,支持从各种来源加载文档,如文件、数据源、URL等。文档加载器作用CSVLoader从CSV加载文档JSONLoader从JSON数据加载文档从PDF数据加载文档从HTML数据加载文档从Markdown加载文档从Excel文件加载数据每一个文档加载器都有自己特定的参数和方法,但它们有一个统一的load()方法来完成文档的加载,load()方法会返回一个。
2025-08-29 17:54:59
544
原创 LangChain框架入门09:什么是RAG?
RAG(Retrieval Augmented Generation)检索增强生成,RAG是一种将信息检索和大语言模型文本生成相结合的技术。简单来说,RAG就是在大语言模型生成答案之前,AI应用先从外部知识库中检索与用户提问相关的信息,然后将检索到的信息作为上下文通过提示词一起传递给大语言模型,从而让大语言模型根据检索出来的内容进行回答。RAG解决了如下几个问题:(1)知识边界问题:大语言模型所掌握的知识来源于训练数据,对超过自身训练数据以外的问题无法回答。
2025-08-29 17:54:27
613
原创 LangChain框架入门08:全方位解析记忆组件
LangChain中的记忆组件继承关系图如下,所有常用的记忆组件都继承自类,如果我们自己想实现一个自定义的记忆组件也可以继承。下面是LangChain中常用记忆组件以及它们的特性。组件名称特性保存所有的历史对话信息保存最近N轮对话内容压缩历史对话为摘要信息结合缓存和摘要信息基于token限制的历史对话信息下面对的核心属性与方法进行分析:1、属性:chat_memory: BaseChatMessageHistory类的的对象,是真正实现保存历史对话信息功能的类,这里。
2025-08-29 17:53:57
846
原创 LangChain框架入门07:实战监控神器LangSmith
LangSmith 是一个由LangChain推出,用于构建LLM应用的监控平台,如下图所示,LangSmith的功能主要包括以下三个方面:可观测性:LangSmith可以进行数据的分析和追踪,并提供了仪表盘、告警等功能。可评估:可以对应用运行情况进行评估,分析其性能表现。提示词工程:支持对提示词进行管理,并且提供提示词版本控制功能LangSmith由LangChain提供,无需本地部署,LangSmith地址如下:登录后界面。
2025-08-29 17:52:57
758
原创 LangChain框架入门06:手把手带你玩转LCEL表达
LCEL(LangChain Expression Language)是LangChain框架的表达式语言,它提供了一种声明式的方式来构建复杂的数据处理链。通过LCEL,我们可以使用管道符号将不同的组件连接起来,形成一个完整的数据处理链。LCEL有以下优点:1、代码更加简洁:用管道符号连接组件,代码更加简洁易读2、可任意组合:任意Runnable组件都可以自由组合,构建复杂的处理逻辑3、统一接口规范:所有Runnable组件都遵循统一的接口规范。
2025-08-29 17:52:18
557
原创 LangChain框架入门05:输出解析器使用技巧
输出解析器是LangChain框架中的重要组件,它的作用是将大语言模型的原始输出内容解析为如JSON、XML、YAML等结构化数据。在LangChain中,输出解析器位于模型和最终数据输出之间,作为数据处理的中间层。指定格式输出:将模型的文本输出转换指定格式数据校验:确保输出内容符合预期的格式和类型错误处理:当解析失败时,进行错误修复和重试输出格式提示词:生成对应格式要求的提示词,如要生成JSON的具体描述,可以通过提示词传递给大模型,达到返回特定格式数据的目的。
2025-08-29 17:51:47
777
原创 LangChain框架入门04:10分钟优雅接入主流大模型
本文详细介绍了 LangChain 中模型组件(Model)的使用方法与设计思路,首先从模型的分类开始,分析了文本生成模型和聊天模型的区别,接下来通过具体的代码示例,来演示聊天模型ChatOpenAI和文本生成模型OpenAI的基本用法。我们还学习了聊天模型输入输出都要用到的Message组件,了解了 Message 组件的几种类型(如AIMessage),最后,我们以接入阿里巴巴的通义千问的聊天模型为例,展示如何在LangChain中接入其他第三方模型。
2025-08-29 17:51:16
704
原创 LangChain框架入门03:PromptTemplate提示词模板
本文介绍了用来构建文本生成模型的提示词模板、 构建对话模型的提示词模板,在ChatPromptTemplate中还可以使用占位符灵活的插入动态信息。还介绍了PromptTemplate类中三种方法的作用invokeformatpartial,最后介绍了用+号连接多个PromptTemplate。提示词模板是LangChain 中非常核心的模块,它可以让AI能够更加清晰理解我们的意图,通过提示词模板的复用、拼接,能大大简化使用LLM的工作量,通过本文,相信你应该已经掌握了如何使用提示词模板。
2025-08-29 17:50:18
879
原创 LangChain框架入门02:开发环境配置
本文介绍了LangChain框架的包依赖结构及其模块划分,明确了主包langchain与核心包、第三方集成包如和之间的关系,并简要介绍了langgraph和langsmith这两个生态工具的功能与使用场景。在项目实操部分,我们从零开始搭建了一个LangChain开发环境,涵盖了虚拟环境的创建、依赖版本管理、PyCharm解释器配置及.env配置文件的设置,并通过一个简单的聊天机器人示例,展示了 LangChain 与 OpenAI 模型的基础集成流程。
2025-08-29 17:49:46
799
原创 LangChain框架入门01:LangChain是什么?
在学习LangChain前,先了解一些在LangChain框架中,甚至AI应用开发中一些核心的概念和模块,一定要首先清楚地知道是什么,之后再研究怎么做,下图展示了一个LangChain框架开发的应用的核心运行流程。LangChain 是一个强大又灵活的大模型开发框架,它将 LLM 的调用和创建、提示词管理、记忆、知识库、RAG检索、工具调用等模块化,通过LangChain可以快速构建 AI 应用。
2025-08-29 17:49:12
544
原创 智能体架构的真相:90%是软件工程,10%是AI
过去两年,AI智能体(AI Agent)成为AI落地的热门方向。从 ChatGPT 的对话助手,到自动化办公、代码助手,再到多智能体协作平台,智能体被视为未来人机交互的核心形态。然而在实际落地中,很多企业会发现一个残酷现实:构建一个真正可用的智能体,90% 的工作是软件工程,只有 10% 才是 AI。这一观点最早由 Rakesh Gohel 在其著名的AI Agent冰山模型中提出,并在业内引发了广泛共鸣。本文将深入解析这背后的逻辑。图 Gohel(linkedin)
2025-08-26 13:48:42
356
原创 3.Cursor提效应用场景实战
如果你使用过VScode编程,那么你应该很熟悉这个界面,因为它就是 VScode 界面;但如果你和我一样是小白,只为提高工作效率,那么接下来的比喻可能辅助你理解:想象一下你正在一个设备齐全的厨房做菜。
2025-08-13 23:54:54
527
原创 2.Cursor高阶技巧使用
Cursor Rules 是一种用户定义的规则集,可以嵌入到项目中,用于指导 AI 如何生成或修改代码。通过这些规则,开发者可以:● 定制 AI 行为:根据项目需求调整 AI 的响应方式。● 保持一致性:定义编码风格、最佳实践,确保生成的代码符合项目规范。● 提供上下文信息:让 AI 了解项目结构、常用方法或特定库,从而生成更符合需求的代码。● 提高开发效率:减少手动调整代码的时间,让 AI 生成更精准的代码。
2025-08-13 23:54:03
377
原创 1.Cursor快速入门与配置
取而代之的是,你可以像和朋友聊天一样,用自然、日常的语言,向一个强大的 AI 大模型(比如我们常说的DeepSeek、ChatGPT、豆包等)描述你的需求。并且要对复杂的逻辑和算法有清晰的理解。然后,这个 AI 大模型就像一个超级能干的编程助手,它会理解你的意图,迅速生成相应的代码,甚至可能是一个可以直接运行的程序。Composer 可以根据自然语言描述,Composer 可以生成完整的代码片段或文件,甚至构建整个应用程序,同时支持同时编辑多个文件,能够理解文件之间的调用关系,适合复杂项目的开发。
2025-08-13 23:51:34
478
原创 DeepSeek海豚本地部署保姆级教程
DeepSeek可以在网页端使用,但是有些时候可能不是很稳定,除了网页端,也能通过本地部署来使用。下面就一起来看看吧本地部署方法1. 在加速界面工具栏选择【一键本地部署】2. 选择适合您本地情况的相关内容进行安装3. 安装完成会自动打开对话框4. 此时我们可以直接在终端下提问,DeepSeek-R1会在终端下回答。
2025-03-06 20:43:40
664
原创 DeepSeek开源Day5:3FS&smallpond技术详解
3FS 的设计初衷是为 DeepSeek 的 AI 基础设施(如 Fire-Flyer AI-HPC)和模型(如 DeepSeek-V3、R1)提供底层存储 + 数据支持。3FS 涵盖训练数据预处理、数据集加载、检查点保存与重载、嵌入向量搜索以及推理过程中的 KVCache(键值缓存)查找等环节。3FS 显然是 DeepSeek 高效训练体系的关键组件,进一步体现了 DeepSeek 的硬件基因。
2025-03-06 20:34:12
1568
原创 DeepSeek开源Day4:DualPipe&EPLB技术详解
DualPipe 的设计目标是最大化集群设备的计算性能,通过在前向传播(Forward)和后向传播(Backward)阶段实现计算与通信的完全重叠,显著减少传统流水线并行中的 “气泡”(Pipeline Bubble,即空闲等待时间)。这种方法在保持计算通信比例恒定的情况下,即使模型规模进一步扩大,也能维持接近零的通信开销。为保证 MoE 部分不同专家之间的负载均衡,会将共享专家和高负载的细粒度专家在集群的不同 GPU 做多个复制,让 GPU 把更多的热数据(发给共享专家的)跑起来。
2025-03-06 20:31:26
1682
原创 DeepSeek开源Day3:DeepGEMM技术详解
包含测试脚本,如 test_intranode.py(节点内测试)、test_internode.py(节点间测试)和 test_low_latency.py(低延迟测试),以及 utils.py(工具函数)。1)在调度过程中,(a)IB 发送、(b)IB 到 NVLink 转发、(c) NVLink 接收由相应的 warp 处理。2)在合并过程中,(1) NVLink 发送、(2)NVLink 到 IB 的转发和累积、(3)IB 接收和累积也由动态调整的 warp 处理。
2025-03-06 20:30:22
1216
原创 DeepSeek开源Day2:DeepEP技术详解
包含测试脚本,如 test_intranode.py(节点内测试)、test_internode.py(节点间测试)和 test_low_latency.py(低延迟测试),以及 utils.py(工具函数)。1)在调度过程中,(a)IB 发送、(b)IB 到 NVLink 转发、(c) NVLink 接收由相应的 warp 处理。2)在合并过程中,(1) NVLink 发送、(2)NVLink 到 IB 的转发和累积、(3)IB 接收和累积也由动态调整的 warp 处理。
2025-03-06 20:28:45
2158
原创 DeepSeek开源Day1:FlashMLA技术详解
FlashMLA 是由 depseek-ai (深度求索)开发的一个开源项目,针对Hopper 架构GPU(例如 H100 或 H800)的高效的 MLA 推断(Inference)解码内核,旨在加速 MLA 机制的计算,特别适用于 DeepSeek 系列模型(如 DeepSeek-V2、V3 和 R1)。DeepSeek V3/R1 介绍(来源:中存算半导体)其中 MLA 是 DeekSeek 研发的多头潜注意力()机制。
2025-03-06 20:26:02
1419
原创 阿里深夜开源推理模型QwQ-32B,性能比肩R1满血版
尤其是对于那些致力于打造专业级AI解决方案的小型企业或是初创团队而言,Qwen-32B无疑提供了一个极具吸引力的选择——它既具备强大的逻辑推理、数学处理以及编程能力,又保持了良好的可访问性和灵活性。我把这段代码粘贴到了Leetcode平台上,直接提交,没想到这段代码竟然完美的通过了全部测试用例吗,而且执行用时才127ms,击败了93%的在这个算法题库做尝试的人。最后的原因还是落在了Qwen团队的强化学习上。说实话,这个结果让我挺惊讶的,毕竟127ms的用时,看平均的用时基本都在1691ms左右。
2025-03-06 19:23:35
945
原创 大模型推理服务全景图
随着 DeepSeek R1 和 Qwen2.5-Max 的发布,国内大模型推理需求激增,性能提升的主战场将从训练转移到推理。由于无论是训练还是推理,如何提升性能都是业内讨论最多的话题之一。为什么是性能呢?在大模型消耗计算资源多、客户端内容流式生成的场景下,性能显得尤为重要。推理性能的提升涉及底层硬件、模型层,以及其他各个软件中间件层的相互协同,因此了解大模型技术架构的全局视角,有助于我们对推理性能的优化方案进行评估和选型。
2025-02-17 10:52:09
1117
原创 【RAG落地利器】Weaviate、Milvus、Qdrant 和 Chroma 向量数据库对比
向量数据库是一种将数据存储为高维向量的数据库,高维向量是特征或属性的数学表示。每个向量都有一定数量的维度,根据数据的复杂性和粒度,可以从数十到数千不等。向量通常是通过对原始数据(如文本、图像、音频、视频等)应用某种转换或嵌入函数来生成的。嵌入函数可以基于各种方法,如机器学习模型、词嵌入和特征提取算法。向量数据库的主要优点是,它允许基于数据的向量距离或相似性进行快速和准确的相似性搜索和检索。这意味着不用使用基于精确匹配或预定义标准查询数据库。
2025-02-14 22:44:16
2006
原创 Windows安装 WSL2、Ubuntu 、docker(详细步骤 , 弃用 docker desktop )
在现代软件开发领域,容器化技术已经成为提升应用部署效率和环境一致性的关键手段。Docker 作为一款卓越且被广泛应用的容器化平台,凭借其独特的技术架构,允许开发者将应用程序及其所需的全部依赖项,完整地打包进一个高度可移植的容器中。这一创新的技术方案,使得应用无论部署在何种基础环境,无论是本地开发机、测试服务器,还是复杂的生产集群,都能以高度一致的方式稳定运行,极大地降低了因环境差异导致的应用故障风险。在 Windows 操作系统生态中,Docker Desktop 凭借其出色的易用性,成为了广大开发者安装
2025-02-14 16:23:43
2286
原创 无法加载文件C:\Users\***\Documents\WindowsPowerShell\profile.ps1,因为在此系统上禁止运行脚本 是因为遇到了权限问题
以管理员身份运行PowerShell:右键点击 PowerShell 图标,选择“以管理员身份运行”,以获得更高的权限;在终端 get-ExecutionPolicy,如果输出 Restricted,就说明执行策略设置为过于严格,则可能阻止未签名的脚本运行。首先要确保 C:\Users***\Documents\WindowsPowerShell\profile.ps1 路径下的 script.ps1 文件是存在的,并且命名是正确的!关闭后再一次打开就没有提示信息了,问哦解决。
2025-02-14 14:25:45
2160
原创 DeepSearcher开源:告别传统RAG,私有数据+Deepseek,打造本地版Deep Research
OpenAI近期推出了一款名为Deep Research的高级AI研究工具,旨在帮助用户高效完成复杂的研究任务。该工具基于OpenAI最新的o3模型,专为网络浏览和数据分析优化。在本文写作过程中,笔者在思索如何对Deep Research做本地化复现的过程中,也有几个思考想要做一个分享:1、数据会成为未来企业的生存红线,掌握优质数据的企业,也就拥有了Deep Research +N,脱颖而出的机会,而在这一背景下,数据隐私大于天,如何做好数据保护,是在接入AI能力之前要更早考虑的事情。
2025-02-13 19:53:52
3257
原创 Windows中指定路径安装DockerDesktop
Widnows中直接安装docker desktop,默认会被安装到路径下,可以通过下面方式来设置安装到指定的目录下。
2025-02-13 11:23:14
757
原创 5.银河麒麟V10(ARM) 离线安装redis
将/usr/local/redis-5.0.3/redis.conf 复制一份到/etc/redis目录下,并命名为6379.conf。在当前/usr/local/redis-5.0.3目录下执行编辑redis.conf配置文件。解决方案: rm -rf /var/run/redis_6379.pid。将redis的启动脚本复制一份放到/etc/init.d目录下。在当前目录下/usr/local/redis-5.0.3。以上链接下载不了的情况使用百度网盘进行下载。在/etc目录下新建redis目录。
2024-12-25 16:55:25
3346
原创 MySQL8修改root密码报错 ERROR 1819 (HY000)
这意味着,拥有足够权限设置其他用户密码的用户可以将密码设置为该用户的名称,而不能将该用户的密码设置为执行语句的用户的名称。在调用 validate_password 的所有情况下都会进行检查,包括使用 ALTER USER 或 SET PASSWORD 等语句更改当前用户的密码,以及调用 VALIDATE_PASSWORD_STRENGTH() 等函数。我的错就是第七条 validate_password.check_user_name影响的,我要把密码修改成root和用户名一样。用户名匹配区分大小写。
2024-12-25 16:20:26
813
原创 4.银河麒麟V10(ARM) 离线安装 MySQL
链接: https://pan.baidu.com/s/1etUFFGVO_8VLc7o58W3cOw?将/etc/my.cnf 中的 skip-grant-tables 增加注释,重启 mysqld 服务;通过网盘分享的文件:mysql-8.0.40-1.el8.aarch64.rpm-bundle.tar。el8表示的是如CentOS 8,非麒麟版本的基本上都是el7版本,请核实你的版本在进行下载。登录不了怎么办别急,早知道你输入不对密码,请先执行修改密码再进行登录,跳过此章节直接修改密码。
2024-12-25 16:04:02
2490
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人