自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 阿里百度全面拥抱的mcp到底是什么?

MCP(模型上下文协议)是Anthropic推出的标准化AI工具交互协议,通过定义大模型与工具间的通信规范,实现"一次开发,多模型通用"。MCP包含Host、Client、Server等角色,支持stdio和流式HTTP两种通信方式,能显著降低AI应用开发中38%的接口适配耗时。通过配置JSON文件即可连接本地/远程服务,案例演示了如何利用MCP完成从数据获取到HTML生成的完整流程。作为AI工具生态的统一标准,MCP有望大幅提升大模型的实际应用能力,推动AI技术更广泛落地。

2025-08-08 11:13:18 1537

原创 LangChain框架入门12:深入解析文本嵌入组件

本文介绍了LangChain中的文本嵌入组件Embeddings,重点讲解了其功能和OpenAIEmbeddings的具体用法。文章首先解释了文本嵌入模型的作用,即将文本转换为具有语义含义的高维向量,用于后续向量数据库检索。

2025-08-08 10:01:35 878

原创 LangChain框架入门11:文本分割器实战指南

本文介绍了LangChain框架中的文本分割器功能,重点讲解递归文本分割器和Markdown标题分割器的使用方法。在RAG应用中,文本分割器用于将长文档切分为符合模型上下文窗口的小片段,以提高检索准确性和语义完整性。文章通过示例代码演示了如何用RecursiveCharacterTextSplitter分割文本和文档对象,以及如何自定义分隔符。此外,还介绍了MarkdownHeaderTextSplitter按标题层次分割Markdown文件的方法。

2025-08-06 09:24:58 925

原创 LangChain框架入门10:一文带你吃透文档加载器

本文介绍了LangChain中的文档加载器组件,重点讲解了如何加载和处理不同格式的文档。主要内容包括: 文档加载器的作用是将各种格式文档转换为Document对象,LangChain提供了多种内置加载器支持CSV、JSON、PDF等格式 Document文档类包含page_content和metadata两个核心属性 以UnstructuredMarkdownLoader为例演示了文档加载过程及参数配置 通过继承BaseLoader类实现自定义聊天记录加载器,满足特定业务需求。

2025-08-04 08:33:48 968

原创 LangChain框架入门09:什么是RAG?

本文介绍了RAG(检索增强生成)技术,这是一种将信息检索与大语言模型文本生成相结合的方法。RAG通过检索外部知识库信息作为上下文,解决了大语言模型的知识边界、更新滞后、幻觉问题和专业领域知识不足等痛点。文章详细阐述了RAG实现的两个阶段:准备阶段(文档收集、处理、向量化)和使用阶段(相似性检索、提示词构建、模型生成)。特别介绍了LangChain框架提供的各类组件(文档加载器、分割器、嵌入模型、向量数据库等)如何协同工作实现RAG功能。该技术使大语言模型能够获取特定领域知识,提供更准确专业的回答。

2025-08-04 08:30:03 885

原创 LangChain框架入门08:全方位解析记忆组件

摘要:本文介绍了LangChain中的记忆组件(Memory)及其实现原理。针对大语言模型无记忆能力的缺陷,记忆组件通过读取、写入和存储历史对话信息,使AI能够记住上下文内容。文章重点分析了BaseChatMemory和BaseChatMessageHistory这两个核心类,并演示了ConversationBufferWindowMemory的使用方法,通过限制最近对话轮数来平衡记忆与token消耗。示例代码展示了如何将历史记忆整合到对话流程中,使AI能够在一定范围内记住用户信息。

2025-08-03 10:40:35 536

原创 LangChain框架入门07:AI应用监控神器LangSmith

本文介绍了如何使用LangChain的Callback回调机制和LangSmith监控平台来调试和监控LLM应用。主要内容包括:LangSmith的功能特性(数据追踪、性能评估、提示词管理)及使用方式,通过配置API Key实现项目监控;同时讲解了Callback回调机制,列举了各类事件(如模型启动/结束、链执行错误等)对应的钩子方法,帮助开发者快速定位问题。文章还提供了示例代码展示如何集成LangSmith,并演示了错误监控过程。这些工具能够有效提升LLM应用的开发效率和稳定性。

2025-08-03 10:36:42 534

原创 LangChain框架入门06:手把手带你玩转LCEL表达

本文介绍了LangChain表达式语言LCEL的核心概念和使用方法。LCEL通过管道符号|连接Runnable组件,简化了AI应用开发流程。主要内容包括:1) LCEL的声明式语法优势;2) Runnable接口及其核心方法;3) RunnableBranch实现条件分支;4) RunnableLambda将函数转换为可执行组件;5) RunnableParallel实现并行处理。文中通过古诗创作、语言翻译等示例代码,展示了LCEL如何提升开发效率,使代码更简洁直观。读者可参考示例代码快速上手LCEL表达式

2025-08-02 09:52:29 740

原创 LangChain框架入门05:输出解析器使用技巧

摘要 LangChain的输出解析器组件可解决大语言模型输出格式不统一的问题,将原始输出转换为结构化数据。主要特点包括: 支持多种格式:包括JSON、纯文本、列表等 核心功能:数据格式转换、校验和错误处理 常用解析器: StrOutputParser:提取纯文本 JsonOutputParser:生成JSON格式 PydanticOutputParser。

2025-08-02 09:46:56 762

原创 LangChain框架入门04:10分钟优雅接入主流大模型

本文详细介绍了 LangChain 中模型组件(Model)的使用方法与设计思路,首先从模型的分类开始,分析了文本生成模型和聊天模型的区别,接下来通过具体的代码示例,来演示聊天模型ChatOpenAI和文本生成模型OpenAI的基本用法。我们还学习了聊天模型输入输出都要用到的Message组件,了解了 Message 组件的几种类型(如AIMessage),最后,我们以接入阿里巴巴的通义千问的聊天模型为例,展示如何在LangChain中接入其他第三方模型。总的来说。

2025-08-01 14:46:49 1337

原创 LangChain框架入门03:PromptTemplate 提示词模板

本文深入介绍了LangChain的核心模块PromptTemplate(提示词模板),重点讲解其分类与使用方法。提示词模板通过结构化的方式优化与大语言模型的交互,主要包括文本生成模板(PromptTemplate)、聊天模板(ChatPromptTemplate)等类型。文章详细演示了基础用法、format/partial/invoke方法的区别、消息占位符(MessagesPlaceholder)的应用,以及如何通过+运算符连接模板。

2025-08-01 10:53:22 889

原创 LangChain框架入门02:环境搭建

本文详细介绍了如何从零搭建LangChain开发环境。首先解析了LangChain框架的包依赖结构,包括核心包langchain-core、主包langchain及第三方集成包的关系。然后逐步指导创建Python虚拟环境、配置PyCharm解释器、管理依赖版本,并设置.env配置文件。最后通过一个简单的OpenAI聊天机器人示例,演示了LangChain的基本使用流程:创建提示模板、构建模型、设置输出解析器并执行链式调用。该教程为开发者快速入门LangChain提供了完整的环境搭建指南和基础应用示例。

2025-07-31 14:06:15 675

原创 LangChain框架入门01:LangChain是什么?

摘要: LangChain是一个基于Python的开源框架,旨在简化大语言模型(LLM)应用的开发流程,解决提示词复用、多模型切换、复杂功能实现等问题。其核心模块包括: LLM接口:统一不同模型的调用方式; Prompt模板:动态管理提示词,避免硬编码; Chain链:串联多个模块(如提示词→模型→输出解析); RAG检索:结合外部文档增强模型回答的准确性; Memory记忆:保存对话历史,实现上下文连贯; Tool工具调用:集成外部工具(如搜索、计算)扩展模型能力。

2025-07-30 22:57:29 1107

原创 Springboot配置静态资源路径

spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/templates

2019-04-18 14:17:06 544

转载 redis配置文件全解

==基本配置port 6379 # 监听端口号,默认为 6379,如果你设为 0 ,redis 将不在 socket 上监听任何客户端连接。daemonize no #是否以后台进程启动databases 16 #创建database的数量(默认选中的是database 0)save 900 1 #刷新快照到硬盘中,必须满足两者要求才会触发,即900秒之后至少1个关键字发生变化。sav...

2019-03-18 13:43:04 216

原创 Java中泛型的几种区别

Java中List<? extends T>和List<? super T>泛型的区别List<? extends Number> list = new ArrayList<Integer>();后面这

2019-02-22 14:17:28 854

转载 Intellij Idea快捷键

1、System.out.println()输入sout,按下enter键,生成System.out.println()方法.sout—>soutv=System.out.println("变量名 = " + 变量)soutp—>System.out.println("")2、public static void main(String [] args){}输入psvm,按下...

2018-11-29 14:13:34 331

转载 码云git部署

http://www.cnblogs.com/riverdubu/p/6491944.html

2018-11-22 11:10:55 185

转载 javap 指令集 (转)

栈和局部变量操作将常量压入栈的指令aconst_null 将null对象引用压入栈iconst_m1 将int类型常量-1压入栈iconst_0 将int类型常量0压入栈iconst_1 将int类型常量1压入栈iconst_2 将int类型常量2压入栈iconst_3 将int类型常量3压入栈iconst_4 将int类型常量4压入栈iconst_5 将int类型常量5压入栈...

2018-10-30 23:46:07 186

原创 vsCode设置中文失败

1.首先需要按下F1进行搜索:2.打开对应配置文件进行修改:将标记处改为zh-CN3.之后点击图片进行语言插件安装:4.搜索zh-CN插件,看到中文简体进行安装,之后重启vsCode就可以修改为中文...

2018-10-18 00:24:13 2878

转载 Spring各个版本源码下载地址

https://github.com/spring-projects/spring-framework/tags

2018-10-16 17:44:24 715

转载 groovy中的数组与Java中定义的区别

2018-10-15 15:07:18 1340

转载 RPC服务的通俗的解释(转)

RPC服务的通俗的解释(转)早期单机时代,一台电脑上运行多个进程,大家各干各的,老死不相往来。假如A进程需要一个画图的功能,B进程也需要一个画图的功能,程序员就必须为两个进程都写一个画图的功能。这不是整人么?于是就出现了IPC(Inter-process communication,单机中运行的进程之间的相互通信)。OK,现在A既然有了画图的功能,B就调用A进程上的画图功能好了,程序员终于可以偷...

2018-10-09 09:56:46 283

原创 Java当中for循环的执行顺序

今天在写一个对数组操作的代码时,突然对for循环的执行方式产生了疑惑,以前在编程的时候只是对它只是使用而已,却没有对它的运行方式进行思考,仔细进行思考有助于对一些程序和算法的思考。以下的代码为根据值去查询数组当中是否包含这个元素,如果包含就返回索引值,如果不包含该元素则返回-1(其中element是数组中有效元素的个数). public int search(long value){...

2018-09-25 00:31:44 1328

原创 DOM方式解析和生成XML文件

1.DOM简介DOM树所提供的随机访问方式给应用程序带来了很大的灵活性,它可以任意地控制整个XML文档中的内容,然而,DOM分析器把整个XML文档转换文DOM树放在了内存中,因此,当文档比较大或者结构比较复杂时,对内存的需求就比较高,而且对于结构复杂的树的遍历也是一项耗时的操作。所以DOM分析器对机器性能要求较高,程序效率并不理想。不过,由于DOM分析器所采用的树结构的思想与XML文档的结构相吻...

2018-09-19 00:49:17 579

原创 认识XML以及XML文件的解析

认识XML以及XML文件的解析1.什么是XMLXML(eXtended Markup Language, 可扩展的标记性语言)提供了一套跨平台、跨网络、跨程序的语言的数据描述方式,使用XML可以方便的实现数据交换、系统配置、内容管理等常见功能。2.XML中的转义字符No. 实体参照 对应字符编号实体参照对应字符1&&2&l...

2018-09-18 23:55:19 246

原创 SelectionSort(选择排序算法的实现)

一、SelectionSort核心思想 核心思想:既然为“选择”排序就是每一次都要找出数组元素当中的最小的元素,通过交换,放到最靠前的位置,之后再剩下的元素里面继续找最小的,放到最靠前的位置。(这种排序方式和人的正常思维很类似,每次都找出最小的放在最前面) 排序过程: 第一次: 第二次: 第三次: 中间步骤相同…....

2018-09-14 16:59:37 2779

原创 Java内部类用途和用法

一、为什么需要内部类?java内部类有什么好处?为什么需要内部类? 首先举一个简单的例子,如果你想实现一个接口,但是这个接口中的一个方法和你构想的这个类中的一个方法的名称,参数相同,你应该怎么办?这时候,你可以建一个内部类实现这个接口。由于内部类对外部类的所有内容都是可访问的,所以这 样做可以完成所有你直接实现这个接口的功能。 不过你可能要质疑,更改一下方法的不就行了吗? 的确,以此作...

2018-09-14 16:46:42 10167

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除