自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 deepAgents 初探

deepagent学习

2026-09-14 20:19:48 159

原创 Langgraph项目三 agent搭建

前面完成了元数据库的初始化同步,现在开始根据流程搭建agent。这是对应的流程,将其转为node节点。构建graph图校验sql节点的流向有两种做法,一种是add_conditional_edges,条件边处理,一种是在节点里面使用对象,手动指定下一个节点流向何处。可以看到,完全满足需求。这里我们要初始化repository这些,然后将其作为上下文传入。流式返回我们使用custom格式化的数据,自己定义数据返回。第一个节点:抽取关键词,这里使用了jieba中文分词器。我们使用基于TF-ID

2026-04-28 23:07:06 495

原创 LangGraph项目二 同步数据仓库信息到元数据库并且建立向量索引

问数项目是一个基于自然语言处理与数据分析技术的智能数据服务系统,面向数据仓库应用场景,旨在帮助用户通过对话方式高效获取数据仓库中的数据洞察。用户无需掌握复杂的查询语法,即可用自然语言提出问题,系统自动完成对数据仓库数据的理解、计算分析与结果可视化,大幅提升数据使用效率,降低数据分析门槛,助力业务决策智能化。本项目以数据仓库的元数据为核心,使用MySQL存储结构化元数据信息,结合Qdrant构建语义向量索引,形成统一的元数据知识库。

2026-04-17 23:58:15 571

原创 Langgraph项目 一(mysql,es,qdrant,embedding模块)

数据库表可以通过hive转为数据仓库的维度表,我们只需要写sql,就可以通过hive转为可以查数据仓库的语句。基于事实表+维度表。比如用户下单这一个事实(业务事件),用户a,在北京,晚上12点,下单了2个篮球,总共花费120元。转换成事实表就是:维度就是,时间维度,用户维度,地点维度,商品维度,分别对应上述的id。比如用户维度除了用户下单这一事实表,还可能有加入购物城等,他们可能共用这些维度表。项目效果:输入那么得 select地区表 join 事实表 + join 商品维度表 + count

2026-04-15 09:47:06 528

原创 Langgraph 初识

基于LangChain构建的,面向智能体多轮交互/状态持久化/分支并行执行的图结构工作流框架。简单地说:LangGraph = LangChain + 图编排 + 状态机Langchain像是一条不会停止的流水线,,但是现实世界是复杂的,可能有些节点是需要循环执行多次的。LangGraph是一条正常的流水线,在有些节点会检查前几个节点的结果是否合理,比如玩具头部组装出问题了,就需要回到组装头部的节点进行返工。LangGraph的流程充满了循环,判断和分支。

2026-04-07 21:23:38 528

原创 从0开始构建Claude Code

专用工具bash执行命令read_file 读取文件write_file 写入文件edit_file 编辑文件Dispatch Map-字典分发,使用python字典,替换if else链。那LLM怎么知道该用哪个工具呢,答案就是每个工具的。描述写的越清晰,llm就能更近准选中,如果模糊,llm就会执行bash兜底。

2026-04-01 22:08:49 514

原创 Django DRF开发

每种编程语言都有各自的数据类型XML、JSON或特定格式的字节串)的过程称为序列化(seralization);反之则称为反序列化。API开发的本质就是各种后端语言的自己的数据类型序列化为通用的可读可传输的数据格式,比如常见的JSON类型数据。比如将python的字典转为json数据django的模型有很多种类型,但他自己也提供了序列化的方法,如# values转为字典, list() 转为List第一种就是正常将模型数据通过vlaues转为字典,再通过list转为数组去返回。

2026-03-30 17:19:41 545

原创 langchain 基础

使用@tool装饰器,可以将普通函数转换为langchain函数@tool"""两个整数相加"""3add_number 两个整数相加 {'a': {'title': 'A', 'type': 'integer'}, 'b': {'title': 'B', 'type': 'integer'}}可以通过函数.name等获取函数的信息,将其交给大模型。通过@tool装饰器的函数,也是一个Runnable对象Pydantic。

2026-03-27 22:47:31 466

原创 Django 基础 初识

Django 是一个由 Python 编写的一个开放源代码的 Web 应用框架。

2026-03-26 10:14:48 276

原创 langchan 1.0初识

回过头看这个图基础智能体:其实就是跟大模型进行一些简单交互的Agent;多智能体:把和大模型交互的多个步骤,整合到一起,形成一个完整的智能体,中间是以图的结构,有一个完整的业务流程。复杂智能体:就是把任务的调度过程,交由智能体自己判断(智能体判断调用哪些工具/智能体)以前0.x版本,LangChain最为经典的LCEL链式编程依然支持,不过从官网的文档中删除了。看一下chain的democonst template = "这个 {test} 英文怎么说?});

2025-12-30 10:42:17 64

原创 Python入门

最基本的可以学langchain的python入门程度

2025-12-28 12:28:26 128

原创 BI磁吸布局 (2) 基于react-grid-layout扩展的布局方式

上一篇已经讲了其实现,但是react-grid-layout目前并不支持嵌套拖拽等,因为其底层没有处理。这一篇是基于react-grid-layout扩展的,支持可嵌套的一些思路以及实现。这是react-grid-layout的实现我们的思路大概是这样的先看下效果。

2025-09-26 11:22:43 1004

原创 BI布局拖拽 (1) 深入react-gird-layout源码

研究react-grid-layout拖拽的能力原理

2025-07-10 10:20:25 1386 1

原创 nest学习(5)

生活中很多排行榜,比如微信步数,热搜等。如果用mysql做,加一个排序字段,这样效率很低,mysql的读写性能比redis低很多,而且排序依据可能只是一个临时数据,不需要存在数据库里。返回关注者或者关注的人的时候,用SISMEMBER判断用户是否在交集之中,是的话,就返回特殊标识,标记互相关注。ZUNIONSTORE,并集然后放入新集合,此时相同key的分数会相加,月榜就是周榜的合并,年榜就是月榜的合并。在抖音,知乎,掘金等平台,可以关注其他用户,也可以被其他用户关注,如果彼此关注,就会标出互相关注。

2025-03-20 16:24:30 894

原创 nest学习(4)

Monorepo 是一种项目代码管理方式,指单个仓库中管理多个项目,有助于简化代码共享、版本控制、构建和部署等方面的复杂性,并提供更好的可重用性和协作性。这是protocol buffer 的语法,因为要跨语言通信,不同语言语法不同,所以需要一个通用的通信语言。然后就可以调用他的方法了。微服务在启动的时候,向注册中心注册,销毁的时候也在注册中心注销,并通过定时发送心跳包来回报自己的状态。在查找其他微服务的时候,去注册中心查一下这个服务的所有节点信息,然后再选一个来用,这个叫做服务发现。

2025-03-12 10:16:11 1147

原创 前端到AI,LangChain.Js(五)

但不是使用传统的 GUI,而是让 LLM 去询问用户的 MBTI 和问题,多次对话,直到 LLM 认为收集到了足够的参数后,再调用对应的函数去回答用户的问题。接着创建一个agent,该智能体主要用来与用户的沟通,获取用户的信息,判断用户的类型,然后调用tool去调用mbtiChain来回答用户的问题。所以,类似于 RAG 的思路,我们把标准的算卦流程和真实的八卦信息,由我们代码生成,并在后续 chat 中,直接嵌入到 llm 上下文中。具体的实现过程就是把算卦流程编码化,写起来比较繁琐,但逻辑很简单。

2025-03-06 10:26:50 1131

原创 前端到AI,LangChain.Js(四)

无论是reAct还是openAI tools,提供给agents的tool都影响着agents的应用范围和效果。自定义tool: 需要的参数是工具的名称,描述和真实调用的函数,这里名称和描述将影响llm何时调用,具有一定的语义。在函数的实现上,不要抛出错误,而是返回错误信息的字符串。llm可以据此决定下一步行动。DynamicTool,只支持单一的字符串作为函数输入。因为向 reAct 框架,并不支持多输入的 tool。

2025-02-24 10:16:22 893

原创 前端到AI,LangChain.Js(三)

前面的只是将历史记录完整的传递到LLM中,我们可以对LLM的历史记录进行更多操作,例如只传递最近的K条历史记录等还可以实现自动对当前聊天记录进行总结,让llm根据总结的信息回复用户的chain。首先实现一个总结的chainsummary,上一次总结的信息new_lines,用户和 llm 新的回复这个chain比较基础,传入两个变量prompt,然后将prompt传递给chat model,最后传滴给StringOutputParse生成纯文本。然后调用一下。

2025-02-18 10:27:49 1143

原创 前端到AI,LangChain.Js(二)

跟llm交互也是类似,在 prompt 中使用合适的关键词,能让 llm “召回” 到跟你提问最相关的资。上述我们的k设置了2,因为原文中茴香豆可能就出现了两次,所以是合理的,但是如果是其他问题,比如孔乙己平常在做什么,设置2就不满足了,所以我们需要定义另一种返回参考文档数量的方式,而不是暴力的定义数量。因为原始输入茴香豆是做什么用的,比较有歧义,对用户来说,他可能想了解的答案就是“茴香豆是下酒用的”,但因为自然语言的特点,这是有歧义的,MultiQueryRetriever的意义就是,

2025-02-11 21:42:07 1633 7

原创 nest 学习3

未扫描前,可能返回status为0,然后一秒轮询,扫描后可能返回status为1,此时手机点击确认登陆或者取消后,会发请求修改id对应的二维码状态,pc端通过轮询也能实时修改状态。两个不相关的业务模块,需要互相调用的时候,注入对应的模块是不合理的,这时候可以用到event emitter(事件总线)通信,达到解耦的目的。创建一张存放映射关系的表,用mysql的自增id进行base62后,最为压缩吗,访问短链的时候,根据压缩码查询这个表,拿到长链接。,因为不知道具体星期几,用*会每天都执行。

2024-12-23 10:13:17 1178

原创 nest学习记录 二

在nest中使用typeOrm,可以使用TypeOrmModule,它是对typeOrm的api做一层封装用法就是在根模块使用TypeOrmMoudle.forRoot传入数据源配置,他会返回Global的模块定义,还有创建好DataSource和EntityManager作为exports导出因为是全局模块,所以可以在全局任意地方注入DataSource和EntityManager。

2024-11-17 14:05:56 1053

原创 oauth2登录,单点登录

在多系统中登录一个系统,在其他系统内无需再次登陆,即可访问。包括单点登录,单点注销。单点登录原理:所有系统不再提供登录入口,创建一个新的系统(认证中心),专门用来进行登录授权管理,只有认证中心才能接受用户名和密码等信息,然后其他系统通过认证中心的间接授权来判断是否登录。间接授权一般通过令牌实现,sso认证中心确认用户密码没问题后,保持登录状态。

2024-11-05 09:49:17 1476

原创 webAssembly初探

学习地址: https://www.bilibili.com/video/BV13i4y1n74s/?spm_id_from=333.337.search-card.all.click&vd_source=a6f7db332f104aff6fadf5b3542e5875官网:简单说:webAssembly是一种可使用非js编程语言编写的代码(c++,go)并且能在浏览器上运行的技术方案,实际上,是一种新的字节码格式。(可以使用其他语言,生成二进制,在浏览器中运行)用c编写斐波序列然后用emcc转为was

2024-10-28 14:10:20 1363

原创 nest学习记录 一 基础概念

Module: 声明 Nest 模块@Controller:声明模块里的 controller@Injectable:声明模块里可以注入的 provider@Inject:通过 token 手动指定注入的 provider,token 可以是 class 或者 string@Optional:声明注入的 provider 是可选的,可以为空@Global:声明全局模块@Catch:声明 exception filter 处理的 exception 类型。

2024-09-11 09:40:05 1233

原创 学习入门 chatgpt原理 三

强化学习就是让智能体,通过与环境的交互来学习如何做出最优决策。NLP与强化学习结合的难点在于环境复杂(现实世界事物无限多,)reward函数难以设计。

2024-07-25 09:17:10 917

原创 学习入门 Chatgpt原理 二

Tokenizer 将模型输入的文字转换为 token 序列。ChatGPT 使用了 BPE 算法实现 Tokenizer。Embedding 将 token 序列映射为张量矩阵,方便模型进行张量矩阵运算。注意力机制,主要是从大量信息中剔除无用信息,关注与自身密切信息,对信息进行压缩。注意力机制在 NLP 领域的应用主要是 自注意力Self-Attention 形式,它是神经网络具备充分拟合能力的灵魂。ChatGPT 模型基于 encoder-decoder 模型架构进行建模。

2024-07-25 09:17:01 961

原创 学习入门 chatgpt原理 一

ChatGPT(Chat Generative Pre-training Transformer) 是一个 AI 模型,属于自然语言处理( Natural Language Processing , NLP ) 领域,NLP是人工智能的一个分支。NLP(自然语言处理)是指,让计算机来理解并正确地操作自然语言(人们日常生活中接触和使用的英语、汉语、德语等等),完成人类指定的任务,比如关键词抽取,文本分类,机器翻译,对话系统(聊天机器人,也是chatgpt完成的工作)

2024-06-26 23:00:24 964

原创 java框架 2 springboot 过滤器 拦截器 异常处理 事务管理 AOP

生成一个代理类,DeptServiceProxy,然后重新list方法,执行AOP类的逻辑,最后如上,通过@Autowired注入的deptService就不是DeptServiceImpl,而是。将其改为REQUIRES_NEW,在a中调用b的时候,会先挂起a的事务,然后起一个b的事务,当a失败后,a执行的逻辑会回滚,但是b方法执行的逻辑如果没报错,会保留。比如在a中调用b的方法,当a失败后,事务回滚,会导致b方法执行的逻辑也会回滚,事务传播行为默认是有则加入,也就是b方法会加入当前a方法的事务中。

2024-03-17 20:36:06 1328

原创 java基础(6) IO[下] 线程(补充) XML Servlet

PrintStream和OutputStream相比,除了添加了一组print()/println()方法,可以打印各种数据类型,比较方便外,它还有一个额外的优点,就是不会抛出IOException,这样我们在编写代码的时候,就不必捕获IOException。Reader是IO提供的另一个输入流接口,跟InputStream区别是,InputStream是以字节流为准,单位是byte,而Reader是一个字符流,单位是char。这个抽象类定义的一个最重要的方法就是void write(int b)

2024-03-17 20:36:00 1017

原创 java(框架) springboot-1 基础使用+mybaits使用

后端系统有很多对象,这些对象之间关系错综复杂,如果手动创建并且组装依赖关系很麻烦,所以提供了IOC机制。IOC机制是在calss标识哪些可以被注入,他的依赖是什么,然后从rookie开始扫描这些对象和依赖,自动创建和组装对象。IOC解决了后端系统的对象依赖关系错综复杂的痛点问题。

2024-03-08 19:35:45 1320

原创 Java基础(5) 泛型 日期和时间 线程 File-输入流

并且,我们注意到,synchronized锁住的对象是this,即当前实例,这又使得创建多个Counter实例的时候,它们之间互不影响,可以并发执行。如果有两个线程,比如银行系统,他有一个Bank对象,一个线程用来存,一个线程用来取,因为线程的操作时机是不确定的,就会导致存取时候得到的银行余额并不是最新的,导致出错。Java的泛型是由编译器在编译时实行的,编译器内部永远把所有类型T视为Object处理,但是,在需要转型的时候,编译器会根据T的类型自动为我们实行安全地强制转型。

2024-03-04 21:32:38 1044

原创 java基础(4)注解,集合,

接着有一些可以用于注解的注解,成为元注解。如@Target定义该注解能注解什么东西类或接口:ElementType.TYPE;字段:ElementType.FIELD;方法:ElementType.METHOD;构造方法:ElementType.CONSTRUCTOR;方法参数:ElementType.PARAMETER。@Retention定义该注解的生命周期,如上就是定义在runtime的时候运行,因为我们自己写的注解一般在runtime的时候执行。

2024-03-01 23:02:43 1240

原创 java基础(3) 异常处理 -反射

java异常+反射

2024-02-12 10:23:15 1082

原创 java基础(2) 面向对象编程-java核心类

java体系学习2,面向对象编程基础+java核心类

2024-02-09 10:43:09 1191

原创 java 基础 (1)简介-程序基础-流程控制-数组操作

java学习第一篇

2024-02-06 19:40:34 1113

原创 初探qiankunjs

qiankunjs源码浅读

2023-08-08 09:59:43 617

原创 webpack-SplitChunksPlugin学习

webpack-splitChunksPLugin学习

2023-05-31 16:16:59 1423

原创 react原理-transition概念

react-transition原理

2022-12-11 16:02:52 1380

原创 react context原理

react context原理

2022-11-26 20:25:41 1566

原创 react事件系统(新版本)

react事件系统(新版本)

2022-11-23 15:26:09 770

空空如也

空空如也

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

TA关注的人

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