- 博客(955)
- 资源 (1)
- 收藏
- 关注
原创 [极客时间]LangChain 实战课 -----|(11) 记忆:通过Memory记住客户上次买花时的对话细节
在默认情况下,无论是 LLM 还是代理都是无状态的,每次模型的调用都是独立于其他交互的。也就是说,我们每次通过 API 开始和大语言模型展开一次新的对话,它都不知道你其实昨天或者前天曾经和它聊过天了。你肯定会说,不可能啊,每次和 ChatGPT 聊天的时候,ChatGPT 明明白白地记得我之前交待过的事情。的确如此,ChatGPT 之所以能够记得你之前说过的话,正是因为它使用了记忆(Memory)机制,记录了之前的对话上下文,并且把这个上下文作为提示的一部分,在最新的调用中传递给了模型。在聊天机器人的构
2025-07-30 21:09:06
692
原创 3. 装修梳理
刮大白或刷油漆时,要对其他已完成的加装部分做保护处理,覆盖保护膜,避免施工过程中附着太多的灰尘,后续难以打理,来往施工过程中造成的擦痕也很难处理。3.厨房的电线和开关一定要使用大功率的,因为厨房用电量较多,小功率容易出现爆炸,在买这些电料和水管件时,一定要识别国标产品,符合国家绿色环保的材料,才能保障家人的健康和安全。1.在拆墙时一定要注意千万不要拆改原有的承重墙,拆除承重墙容易让房屋整体构造丧失稳固性,时间久了会墙体开裂,影响房屋的使用寿命,抗震能力大大减弱,留下安全隐患。
2025-07-23 08:26:24
131
原创 2. 什么是好工作
整理一份从1990年代至今,中国社会认知中对“好工作”定义的演变,包括各阶段主流职业类型、影响因素(如经济、政策、教育)和社会认同的变化趋势。
2025-07-23 08:17:22
835
原创 [极客时间]LangChain 实战课 -----|(10) 链(下):想学“育花”还是“插花”?用RouterChain确定客户意图
上一节课中,我带着你学习了 Chain 的基本概念,还使用了 LLMChain 和 SequencialChain,这一节课,我们再来看看其他类型的一些 Chain 的用法。首先,还是先看一下今天要完成一个什么样的任务。这里假设咱们的鲜花运营智能客服 ChatBot 通常会接到两大类问题。你的需求是,如果接到的是第一类问题,你要给 ChatBot A 指示;如果接到第二类的问题,你要给 ChatBot B 指示。我们可以根据这两个场景来构建两个不同的目标链。遇到不同类型的问题,LangChain 会通过
2025-07-03 22:22:22
837
原创 [极客时间]LangChain 实战课 -----|(9) 链(上):写一篇完美鲜花推文?用SequencialChain链接不同的组件
但是,如果你想开发更复杂的应用程序,那么就需要通过 “Chain” 来链接 LangChain 的各个组件和功能——模型之间彼此链接,或模型与其他组件链接。这种将多个组件相互链接,组合成一个链的想法简单但很强大。它简化了复杂应用程序的实现,并使之更加模块化,能够创建出单一的、连贯的应用程序,从而使调试、维护和改进应用程序变得容易。说到链的实现和使用,也简单。首先 LangChain 通过设计好的接口,实现一个具体的链的功能。
2025-06-30 22:43:32
825
原创 [极客时间]LangChain 实战课 -----|(8) 输出解析:用OutputParser生成鲜花推荐列表
先创建了一个空的 DataFrame,用于存储从模型生成的描述。接下来,通过一个名为 FlowerDescription 的 Pydantic BaseModel 类,定义了期望的数据格式(也就是数据的结构)。# 创建一个空的DataFrame用于存储结果# 数据准备flowers = ["玫瑰", "百合", "康乃馨"]# 定义我们想要接收的数据格式flower_type: str = Field(description="鲜花的种类")
2025-06-25 21:50:36
678
原创 [极客时间]LangChain 实战课 -----|调用模型:使用OpenAI API还是微调开源Llama2/ChatGLM?(7)
今天的课程到此就结束了,相信你学到了很多新东西吧。的确,进入大模型开发这个领域,就好像打开了通往新世界的一扇门,有太多的新知识,等待着你去探索。现在,你已经知道大模型训练涉及在大量数据上使用深度学习算法,通常需要大量计算资源和时间。训练后,模型可能不完全适合特定任务,因此需要微调,即在特定数据集上继续训练,以使模型更适应该任务。为了减小部署模型的大小和加快推理速度,模型还会经过量化,即将模型参数从高精度格式减少到较低精度。如果你想继续深入学习大模型,那么有几个工具你不得不接着研究。
2025-06-24 22:35:40
968
原创 [极客时间]LangChain 实战课 -----|提示工程(下):用思维链和思维树提升模型思考质量(6)
这节课我们介绍了 Chain of Thought(CoT,即“思维链”)和 Tree of Thoughts(ToT,即“思维树”)这两个非常有趣的概念,并探讨了如何利用它们引导大型语言模型进行更深入的推理。CoT 的核心思想是通过生成一系列中间推理步骤来增强模型的推理能力。在 Few-Shot CoT 和 Zero-Shot CoT 两种应用方法中,前者通过提供链式思考示例传递给模型,后者则直接告诉模型进行要按部就班的推理。
2025-06-21 15:50:57
767
原创 [极客时间]LangChain 实战课 -----|提示工程(上):用少样本FewShotTemplate和ExampleSelector创建应景文案(05)
当你用 print 语句打印出最终传递给大模型的提示时,一切就变得非常明了。秘密在于,LangChain 的输出解析器偷偷的在提示中加了一段话,也就是 {format_instructions} 中的内容。这段由 LangChain 自动添加的文字,就清楚地指示着我们希望得到什么样的回答以及回答的具体格式。提示指出,模型需要根据一个 schema 来格式化输出文本,这就是在告诉模型,你就 follow 这个 schema(schema,可以理解为对数据结构的描述)的格式,就行啦!
2025-06-17 22:27:08
696
原创 [极客时间]LangChain 实战课 -----|模型I/O:输入提示、调用模型、解析输出(04)
从这节课开始,我们将对 LangChain 中的六大核心组件一一进行详细的剖析。模型,位于 LangChain 框架的最底层,它是基于语言模型构建的应用的核心元素,因为所谓 LangChain 应用开发,就是以 LangChain 作为框架,通过 API 调用大模型来解决具体问题的过程。可以说,整个 LangChain 框架的逻辑都是由 LLM 这个发动机来驱动的。没有模型,LangChain 这个框架也就失去了它存在的意义。
2025-06-15 19:47:08
201
原创 Python学习(9) ----- Python的Flask
Flask 是 Python 中用于构建 Web 应用的轻量级框架,它提供了强大的自由度与良好的扩展能力,适合快速开发原型、小型服务和接口型项目。对于学习 Web 编程、后端开发、甚至人工智能服务部署的开发者来说,Flask 是一把高效、灵活的利器。如果你正在学习 Python,想体验从“写脚本”到“搭建网站”的全过程,不妨尝试 Flask。你会发现,它简单到只需几行代码就能搭建起一个 Web 服务,也灵活到可以支撑复杂的企业级项目。
2025-06-13 20:56:18
965
2
原创 [极客时间]LangChain 实战课 -----|LangChain系统安装和快速入门(3)
在深入讲解 LangChain 的每一个具体组件之前,我想带着你从头完成一个很实用、很有意义的实战项目。目的就是让你直观感受一下 LangChain 作为一个基于大语言模型的应用开发框架,功能到底有多么强大。好的,现在就开始!整个框架分为这样三个部分。**核心实现机制:**这个项目的核心实现机制是下图所示的数据处理管道(Pipeline)。在这个管道的每一步中,LangChain 都为我们提供了相关工具,让你轻松实现基于文档的问答功能。具体流程分为下面 5 步。上面 5 个环节的介绍都非常简单,有些概念
2025-06-12 22:21:18
1040
原创 [极客时间]LangChain 实战课 -----|LangChain系统安装和快速入门(2)
大语言模型是一种人工智能模型,通常使用深度学习技术,比如神经网络,来理解和生成人类语言。这些模型的“大”在于它们的参数数量非常多,可以达到数十亿甚至更多,这使得它们能够理解和生成高度复杂的语言模式。你可以将**大语言模型想象成一个巨大的预测机器,其训练过程主要基于“猜词”:**给定一段文本的开头,它的任务就是预测下一个词是什么。模型会根据大量的训练数据(例如在互联网上爬取的文本),试图理解词语和词组在语言中的用法和含义,以及它们如何组合形成意义。它会通过不断地学习和调整参数,使得自己的预测越来越准确。
2025-06-10 22:57:39
710
3
原创 [极客时间]LangChain 实战课 ----- 开篇词|带你亲证AI应用开发的“奇点”时刻(1)
在这个模块中,我会介绍 LangChain 系统的安装流程,以及如何进行快速的入门操作。同时,详细指导你如何使用 LangChain 来构建一个基于“易速鲜花”本地知识库的智能问答系统,让你直接感受 LangChain 强大的功能。
2025-06-09 22:08:00
626
原创 Python学习(8) ----- Python的类与对象
self.name = name # 实例属性def say_hello(self): # 实例方法class Person : def __init__(self , name , age) : self . name = name # 实例属性 self . age = age def say_hello(self) : # 实例方法 print(f"Hello, my name is {
2025-06-09 21:11:57
366
原创 Python学习(7) ----- Python起源
Python 有个“禅”,也就是它的哲学。“美丽优于丑陋。这,就是 Python 的灵魂。是 Python 语言里一个非常有趣的“彩蛋”。虽然不执行任何程序逻辑,但它代表了Python 背后的美学和哲学思想,是每个 Pythoner 入门时值得一看的“宣言”。如果你希望我解释每一条原则的实际意义与示例,我也可以一条条帮你解读。要试试看吗?
2025-06-08 21:45:02
905
原创 Python学习(6) ----- Python2和Python3的区别
特性Python2Python3打印语法print语句print()函数除法行为整除(除非引入 future)浮点除法字符串默认类型ASCII (strUnicode (strrange()列表可迭代对象(生成器)input()字符串类定义有旧式和新式类统一为新式类异常写法。
2025-06-04 22:39:03
1051
原创 Python学习(5) ----- Python的JSON处理
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于 API 和配置文件。"name": "张三","age": 28,"city": "北京",Python 提供内置模块json,支持 JSON 和 Python 对象之间的序列化(encode)和反序列化(decode)。
2025-05-30 19:48:25
673
原创 Python学习(4) ----- Python的CSV文件处理
在 Python 中,读取 CSV 文件最常用的方式是使用标准库中的 csv模块。
2025-05-29 21:50:57
464
原创 Python学习(3) ----- Python的函数定义及其使用
def 函数名(参数1, 参数2=默认值, *args, **kwargs):"""函数说明文档"""函数体return 返回值。
2025-05-28 21:27:30
480
原创 Python学习(2) ----- Python的数据类型及其集合操作
class Dog:my_set2 = set([4, 5, 6]) # 使用 set() 构造会变成{1, 2, 3}元素无序:无法通过索引访问,如set[0]是错误的可进行集合运算(交、并、差等)print(a | b) # 并集 => {1, 2, 3, 4, 5}print(a & b) # 交集 => {3}print(a - b) # 差集 => {1, 2}
2025-05-27 21:48:43
674
原创 BCryptPasswordEncoder类
在 Spring Security 中,BCryptPasswordEncoder 用于将用户输入的密码转换为一个安全的散列值,这个散列值可以安全地存储在数据库中。当用户尝试登录时,输入的密码会再次使用 BCryptPasswordEncoder 进行散列,并与数据库中存储的散列值进行比较,以验证用户的身份。在上面的例子中,authenticate 方法会使用 BCryptPasswordEncoder 的 matches 方法来验证用户输入的密码是否与数据库中存储的散列值相匹配。
2024-08-15 22:37:42
347
原创 一文读懂,网联和银联的区别
1、银联是从纸币发展到银行卡阶段,为满足各家银行互联互通交易而产生的,比如工商银行部署的刷卡pos机只能刷工商银行的卡,而不能刷建行的卡,其他银行也一样,所以出现了银联。2、网联,是互联网支付时代,也为各家第三方支付公司比如微信、支付宝、翼支付、宝付支付等等第三方支付公司互联互通交易。而网联与银联同等地位,主要负责线上(互联网)业务。由于银联快捷支付和新兴的云闪付业务也涉及线上业务,所以大家会有这个疑问:网联,银联怎么界定业务边界?,要么接入网联做线上业务,只要接入央行的亲儿子即可,管他是老大还是老二。
2023-06-07 23:58:57
5835
原创 HBase环境搭建
使用StandAlone的方式进行搭建需要注意保证本地文件夹已经建好http://localhost:16010/master-status#memoryStats访问该地址有相应的页面信息H
2022-04-06 19:52:28
1318
原创 彻底弄懂OAuth
OAuth简介OAuth是一个开放的标准,能提供一种安全的API授权,使第三方应用不需要密码账号,就可以申请获得该用户资源的授权。1.使用场景例子如果一个用户需要两项服务:图片在线存储服务A、图片在线打印服务B。由于服务A与服务B是由两家不同的服务提供商提供的,所以用户在这两家服务提供商的网站上各自注册了两个用户,假设这两个用户名、密码都各不相同。当用户要使用服务B打印存储在服务A上的图片时,用户该如何处理?方法一:用户先将待打印的图片从服务A上下载下来并上传到服务B上打印,这种方式安全但处理比
2022-04-06 19:50:28
2377
原创 MySQL各种Pool总结
ChangeBufferChangeBuffer用的是BufferPool里的内存我们都知道MySQL为了降低随机写的开销,把所有的写操作暂时放在redolog里面(其实是先写入redolog buffer中),然后批量写,减小了随机写的IO,那么当我们读的时候不在内存,或者需要update的时候怎么办呢,其实ChangeBuffer就是降低了随机读的开销(相对于唯一索引不能使用ChangeBuffer而言)。ChangeBuffer不适合那种写多读少的情况,ChangeBuffer会merge到磁
2021-09-15 08:29:00
763
原创 线程池最佳实践
1、拒绝策略可以用一个兜底的线程池来执行自定义拒绝策略实现该接口,重写该方法,在这个方法中用兜底的线程池去执行public interface RejectedExecutionHandler { void rejectedExecution(Runnable r, ThreadPoolExecutor executor);}2、每个业务线一个线程池,每个线程池有自己的名字,排除问题起来简单3、自定义参数来建立线程池,不要使用JDK自带的,类似于无界队列,会OOM4、一般设
2021-09-13 21:06:18
954
原创 Actor模型
Actor模型Actor模型本质上是一种计算模型,基本的计算单元称为Actor,换言之,在Actor模型中,所有的计算都是在Actor中执行的。在面向对象编程里面,一切都是对象;在Actor模型里,一切都是Actor,并且Actor之间是完全隔离的,不会共享任何变量。当看到“不共享任何变量”的时候,相信你一定会眼前一亮,并发问题的根源就在于共享变量,而Actor模型中Actor之间不共享变量,那用Actor模型解决并发问题,一定是相当顺手。的确是这样,所以很多人就把Actor模型定义为一种并发计算模型。
2021-09-13 13:41:58
1300
原创 浅谈JVM调优
JVM调优小白,理论知识走一波首先如果条件允许(内存在8G以上)选择G1,领先PN+CMS和PS+PO不只是一两个数量级。但是我们更期待ZGC的到来,在ZGC成为stable之前还是得有一点点了解。吞吐量优先,选择PS+PO低延迟选择PN+CMS几个重要的参数-XX:MaxTenuringThreshold=2 表示该对象经过多少次GC后晋升到老年代,但是JVM在进行GC时也会判断年轻代一半以上的对象的最小年龄,把大于该年龄的晋升到老年代。-XX:ParallelGCThreads=4 .
2021-09-12 17:34:39
321
1
原创 序列化常见工具
什么是序列化和反序列化序列化:将对象转成二进制进行传输或者持久化反序列化:将二进制转成对象常见的序列化工具1. Java原生序列化 Serializable只要让类实现 Serializable 接口就行,序列化具体的实现是由ObjectOutputStream和ObjectInputStream来实现的。注意以下几个点:1、serialVersionUID 一定要自己写,不要省略,不然会导致无法序列化或者修改之后报错如下出现兼容性问题:java.io.InvalidClassExce.
2021-09-11 15:39:16
3424
原创 方法区概述
存储的是什么方法区是非堆区,独立于堆的内存空间,受本地内存限制,不建议指定方法区大小,因为你无法掌握到底有多少个类被加载,同样的是线程共享的存储有:类元信息(类模板信息)常量静态变量即时编译后的代码缓存堆、栈、方法区的关系如何解决这些OOM通过堆dump,拿到dump文件,判断到底是内存泄露还是内存溢出如果是内存泄露找出GC Roots的引用链,存w...
2021-09-06 21:00:32
122
原创 Redis那些不熟悉的底层知识点
要透过现象看本质~redis的数据类型和对应的底层数据结构大key问题当value为字符串时一般指单个字符串超过1M,如果是其他的集合类型那么指的是集合元素过多根据如下的时间复杂度,我们知道查询的一个数的O(n)的时间复杂度是很可怕的redis的string类型底层Entry -> RedisObject -> SDSEntry 指向RedisObject,RedisObject 指向SDSRedis 扩张采用渐进式hash。1、在原先的基础上增加一倍2、拷贝原.
2021-09-06 19:27:42
181
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人