- 博客(295)
- 收藏
- 关注
原创 nest学习(5)
生活中很多排行榜,比如微信步数,热搜等。如果用mysql做,加一个排序字段,这样效率很低,mysql的读写性能比redis低很多,而且排序依据可能只是一个临时数据,不需要存在数据库里。返回关注者或者关注的人的时候,用SISMEMBER判断用户是否在交集之中,是的话,就返回特殊标识,标记互相关注。ZUNIONSTORE,并集然后放入新集合,此时相同key的分数会相加,月榜就是周榜的合并,年榜就是月榜的合并。在抖音,知乎,掘金等平台,可以关注其他用户,也可以被其他用户关注,如果彼此关注,就会标出互相关注。
2025-03-20 16:24:30
717
原创 nest学习(4)
Monorepo 是一种项目代码管理方式,指单个仓库中管理多个项目,有助于简化代码共享、版本控制、构建和部署等方面的复杂性,并提供更好的可重用性和协作性。这是protocol buffer 的语法,因为要跨语言通信,不同语言语法不同,所以需要一个通用的通信语言。然后就可以调用他的方法了。微服务在启动的时候,向注册中心注册,销毁的时候也在注册中心注销,并通过定时发送心跳包来回报自己的状态。在查找其他微服务的时候,去注册中心查一下这个服务的所有节点信息,然后再选一个来用,这个叫做服务发现。
2025-03-12 10:16:11
961
原创 前端到AI,LangChain.Js(五)
但不是使用传统的 GUI,而是让 LLM 去询问用户的 MBTI 和问题,多次对话,直到 LLM 认为收集到了足够的参数后,再调用对应的函数去回答用户的问题。接着创建一个agent,该智能体主要用来与用户的沟通,获取用户的信息,判断用户的类型,然后调用tool去调用mbtiChain来回答用户的问题。所以,类似于 RAG 的思路,我们把标准的算卦流程和真实的八卦信息,由我们代码生成,并在后续 chat 中,直接嵌入到 llm 上下文中。具体的实现过程就是把算卦流程编码化,写起来比较繁琐,但逻辑很简单。
2025-03-06 10:26:50
821
原创 前端到AI,LangChain.Js(四)
无论是reAct还是openAI tools,提供给agents的tool都影响着agents的应用范围和效果。自定义tool: 需要的参数是工具的名称,描述和真实调用的函数,这里名称和描述将影响llm何时调用,具有一定的语义。在函数的实现上,不要抛出错误,而是返回错误信息的字符串。llm可以据此决定下一步行动。DynamicTool,只支持单一的字符串作为函数输入。因为向 reAct 框架,并不支持多输入的 tool。
2025-02-24 10:16:22
637
原创 前端到AI,LangChain.Js(三)
前面的只是将历史记录完整的传递到LLM中,我们可以对LLM的历史记录进行更多操作,例如只传递最近的K条历史记录等还可以实现自动对当前聊天记录进行总结,让llm根据总结的信息回复用户的chain。首先实现一个总结的chainsummary,上一次总结的信息new_lines,用户和 llm 新的回复这个chain比较基础,传入两个变量prompt,然后将prompt传递给chat model,最后传滴给StringOutputParse生成纯文本。然后调用一下。
2025-02-18 10:27:49
751
原创 前端到AI,LangChain.Js(二)
跟llm交互也是类似,在 prompt 中使用合适的关键词,能让 llm “召回” 到跟你提问最相关的资。上述我们的k设置了2,因为原文中茴香豆可能就出现了两次,所以是合理的,但是如果是其他问题,比如孔乙己平常在做什么,设置2就不满足了,所以我们需要定义另一种返回参考文档数量的方式,而不是暴力的定义数量。因为原始输入茴香豆是做什么用的,比较有歧义,对用户来说,他可能想了解的答案就是“茴香豆是下酒用的”,但因为自然语言的特点,这是有歧义的,MultiQueryRetriever的意义就是,
2025-02-11 21:42:07
1077
7
原创 前端到AI,LangChain.Js(一)
RAG就是哪里有问题解决哪里,大模型无法获得最新和内部的数据集,那就使用外挂的向量数据库为llm提供最新和内部的数据库,既然llm有幻想问题,就将回答问题所需要的信息和知识编码到上下文中,强制大模型只参考这些内容进行回答。而llm就是一个更大概率打出莎士比亚小说的猴子,他不理解文本逻辑,也不理解内容,只不过他的模型足够强大,训练数据集足够大,输出内容的概率也足够大,从外界来看,他就像真正理解内容一样,也就像具有真正的逻辑和推理能力。更底层的逻辑就是,llm是逻辑推理引擎,而不是信心引擎。
2024-12-23 10:18:40
1116
原创 nest 学习3
未扫描前,可能返回status为0,然后一秒轮询,扫描后可能返回status为1,此时手机点击确认登陆或者取消后,会发请求修改id对应的二维码状态,pc端通过轮询也能实时修改状态。两个不相关的业务模块,需要互相调用的时候,注入对应的模块是不合理的,这时候可以用到event emitter(事件总线)通信,达到解耦的目的。创建一张存放映射关系的表,用mysql的自增id进行base62后,最为压缩吗,访问短链的时候,根据压缩码查询这个表,拿到长链接。,因为不知道具体星期几,用*会每天都执行。
2024-12-23 10:13:17
1015
原创 nest学习记录 二
在nest中使用typeOrm,可以使用TypeOrmModule,它是对typeOrm的api做一层封装用法就是在根模块使用TypeOrmMoudle.forRoot传入数据源配置,他会返回Global的模块定义,还有创建好DataSource和EntityManager作为exports导出因为是全局模块,所以可以在全局任意地方注入DataSource和EntityManager。
2024-11-17 14:05:56
803
原创 oauth2登录,单点登录
在多系统中登录一个系统,在其他系统内无需再次登陆,即可访问。包括单点登录,单点注销。单点登录原理:所有系统不再提供登录入口,创建一个新的系统(认证中心),专门用来进行登录授权管理,只有认证中心才能接受用户名和密码等信息,然后其他系统通过认证中心的间接授权来判断是否登录。间接授权一般通过令牌实现,sso认证中心确认用户密码没问题后,保持登录状态。
2024-11-05 09:49:17
1245
原创 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
1115
原创 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
917
原创 学习入门 chatgpt原理 三
强化学习就是让智能体,通过与环境的交互来学习如何做出最优决策。NLP与强化学习结合的难点在于环境复杂(现实世界事物无限多,)reward函数难以设计。
2024-07-25 09:17:10
710
原创 学习入门 Chatgpt原理 二
Tokenizer 将模型输入的文字转换为 token 序列。ChatGPT 使用了 BPE 算法实现 Tokenizer。Embedding 将 token 序列映射为张量矩阵,方便模型进行张量矩阵运算。注意力机制,主要是从大量信息中剔除无用信息,关注与自身密切信息,对信息进行压缩。注意力机制在 NLP 领域的应用主要是 自注意力Self-Attention 形式,它是神经网络具备充分拟合能力的灵魂。ChatGPT 模型基于 encoder-decoder 模型架构进行建模。
2024-07-25 09:17:01
800
原创 学习入门 chatgpt原理 一
ChatGPT(Chat Generative Pre-training Transformer) 是一个 AI 模型,属于自然语言处理( Natural Language Processing , NLP ) 领域,NLP是人工智能的一个分支。NLP(自然语言处理)是指,让计算机来理解并正确地操作自然语言(人们日常生活中接触和使用的英语、汉语、德语等等),完成人类指定的任务,比如关键词抽取,文本分类,机器翻译,对话系统(聊天机器人,也是chatgpt完成的工作)
2024-06-26 23:00:24
780
原创 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
1130
原创 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
877
原创 java(框架) springboot-1 基础使用+mybaits使用
后端系统有很多对象,这些对象之间关系错综复杂,如果手动创建并且组装依赖关系很麻烦,所以提供了IOC机制。IOC机制是在calss标识哪些可以被注入,他的依赖是什么,然后从rookie开始扫描这些对象和依赖,自动创建和组装对象。IOC解决了后端系统的对象依赖关系错综复杂的痛点问题。
2024-03-08 19:35:45
1177
原创 Java基础(5) 泛型 日期和时间 线程 File-输入流
并且,我们注意到,synchronized锁住的对象是this,即当前实例,这又使得创建多个Counter实例的时候,它们之间互不影响,可以并发执行。如果有两个线程,比如银行系统,他有一个Bank对象,一个线程用来存,一个线程用来取,因为线程的操作时机是不确定的,就会导致存取时候得到的银行余额并不是最新的,导致出错。Java的泛型是由编译器在编译时实行的,编译器内部永远把所有类型T视为Object处理,但是,在需要转型的时候,编译器会根据T的类型自动为我们实行安全地强制转型。
2024-03-04 21:32:38
964
原创 java基础(4)注解,集合,
接着有一些可以用于注解的注解,成为元注解。如@Target定义该注解能注解什么东西类或接口:ElementType.TYPE;字段:ElementType.FIELD;方法:ElementType.METHOD;构造方法:ElementType.CONSTRUCTOR;方法参数:ElementType.PARAMETER。@Retention定义该注解的生命周期,如上就是定义在runtime的时候运行,因为我们自己写的注解一般在runtime的时候执行。
2024-03-01 23:02:43
1104
原创 计算机网络(3)数据链路层
数据链路层的基本概念结点:主机或者路由器都成为结点链路:网络中两个节点之间的物理通道,链路的传输介质主要有双绞线,光纤和微波。分为有线链路和无线链路。主要是物理通道。数据链路:网络中两个节点之间的逻辑通道,控制数据传输协议的硬件+软件+链路 = 数据链路帧:数据链路层的协议数据单元,封装网络层的数据报。数据链路层就是负责通过一条链路,从一个节点向另一个节点(该节点必须是物理链路直接相连)传送网络层交下来的数据包。就好像搬运工的角色。数据链路层功能概述在物理层提供服务的基础上,向网络层
2022-06-08 08:30:35
2684
1
原创 react源码debugger-各个hooks的逻辑实现(useState和useEffect)
了解react的整体流程,会有助于理解本文。hooks是什么?要了解hooks是什么,我们得先想知道react怎么执行函数组件。先看看函数组件的fiber是什么?const fiber = { type: f App(){}, //函数本身, memoziedState: {}, //hooks链表 updateQueue: {}, //effects链表 ....}对于函数组件,我们现在只需要关注他这几个属性就行了首先看到renderWithHooks函数,他是执
2022-05-29 22:59:30
523
原创 计算机网络(2)物理层
物理层基本概念物理层解决如何在连接各种计算机的传输媒体上传输数据比特流。而不是指具体的传输媒体。主要任务:确定与传输媒体接口的一些特性=》定义标准定义标准:不同的厂家在物理层定义的标准下实现不同的但是可以连接的接口。机械特性:定义物理连接的特性,规定物理连接时所采用的规格,接口形状,引线数目,引脚数量和排列情况。如电气特性:规定传输二进制位时,线路上信号的电压范围,阻抗匹配,传输速率和距离限制等。功能特性:某条线上出现的某一电平表示何种意义,接口部件的信号线的用途。规程特性:定义各条
2022-05-29 12:10:24
1500
原创 一库让你快速搭建redux。auto-redux,跟普通hooks一样使用redux。
前言:借鉴于组内大佬开发的一个库的思路,模拟实现一个类似的。redux使用过redux的同学应该知道,redux每一个状态都需要编写特定的action和reducer,通过react-redux提供的hooks,useDispatch,useSelector去获取状态,派发aciton。比较麻烦。基于需要编写action和Reducer这一点,开发一个可以根据最初的state,自动生成action,reducer,我们使用状态的时候只需要跟useState等普通hooks一样。auto-redux介绍
2022-05-24 23:33:16
260
原创 计算机网络(1)
概念计算机网络:是一个将分散的具有独立功能的计算机系统,通过通信设备和线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。计算机系统可以是手机,电脑等等。通信设备可以是路由等等。计算机网络,通信设备,线路等搭建成一个架子。而通过软件才能实现资源共享。就好比前三个组成一个毛胚房,不能住人,而通过软件装修之后,才可以住人。计算机网络是互联的,自治的计算机集合。互联:互联互通,通信链路。自治:无主从关系。计算机网络功能1数据通信(连通性)2 资源共享【 硬件(打印机), 软
2022-05-24 09:03:43
644
原创 react源码debugger-commit阶段的完成
commit阶段上节讲到了rootFiber完成completeWork的时候,返回了一个状态,为RootInCompleted,表示工作完成。调用finishConcurrentRender方法,该方法会调用commitRoot,开启commit阶段。现在回顾一下,我们的fiber结构是// App组件const App: React.FC = () => { return <DD />;};// DD组件class DD extends Component {
2022-05-15 21:49:50
449
原创 react源码学习(2)
继上一篇react源码学习(1)创建FiberRoot和rootFiber//render调用方法function legacyRenderSubtreeIntoContainer( parentComponent: ?React$Component<any, any>, // mount是null children: ReactNodeList, // ReactElement container: Container, //容器 forceHydrate: boole
2022-05-15 00:34:28
302
原创 react源码学习(1)
jsxjsx会被转为createElement方法,看下源码这个方法export function createElement(type, config, children) {}接受三个参数:type元素类型,对于普通元素,就是div p ,对于函数组件,就是 函数本身, 对于类组件,就是类本身config 配置属性,比如ref, key, style…children 子元素这个方法的主要作用就是:1 分离props属性和特殊属性 let propName; const
2022-05-14 23:19:28
421
原创 计算机网络专题
osi七层模型七层模型和五层模型的对比open System Interconnection 适用于所有网络分层带来效能,将复杂的流程分解为几个功能相对单一的子进程。就好比以前项目之后服务器渲染,现在都分为了前端后端等。从下往上:物理层: 网卡,网线数据链路层: 交换机(传输数据,确认帧,发错重传)(数据帧)网络层:路由器(处理网络间路由)(数据包)传输层: TCP/UDP,提供可靠的连接传输数据功能(在不可靠的网络层上建立可靠的传输)。(数据段)会话层:验证,会话管理,维护应用之间通信,
2022-05-12 21:25:31
222
原创 从零实现一个脚手架
node支持esModule的两种方式:通过webpack搭建环境将webpack的target设为node,表示使用的是node环境,这样就可以使用node的一些内置模块,比如path。mjs第二中就是将js文件改为mjs。然后直接执行...
2022-05-09 22:54:53
855
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人