2024-10-18
前言
入门教程参考
最近在学习大模型相关的知识,很多教程都会提到人工神经网络。读研时总是听到训练神经网络之类的词,那这个训练,到底是训练什么呢?
我们现在假设要训练的模型是一个函数,首先考虑,这个函数的作用是什么?这个函数的输入是什么?输出是什么?
人工神经网络可以用来做分类、预测、生成等任务,现在假设我们的函数是一个分类函数,那么输入就是一个数据,输出就是...
Read More
2024-10-12
什么是RAG
RAG(Retrieval-Augmented Generation)是一种将信息检索(Retrieval)和生成(Generation)相结合的技术,常用于自然语言处理任务,特别是在问答和文档生成场景中。
RAG 的工作原理
RAG 将两个主要组件结合起来:
信息检索(Retrieval):当系统接收到问题时,首先会从一个大型的文档数据库...
Read More
2024-10-10
实现背景
假设要做openAI的大模型API封装,可以使用Spring WebFlux提供服务,利用其非阻塞、响应式编程模型来高效处理异步请求。
为什么要做API封装?
保护模型:避免直接暴露模型,保护模型的安全性。
降低耦合:将模型与业务逻辑分离,降低耦合度。
与原有的系统对接:将模型封装成API,方便与其他系统对接。
实现思路
以下是一个基于 S...
Read More
2024-10-10
背景介绍
什么是Gradle
Gradle是一个强大的、基于JVM的构建自动化工具。它使用Groovy或Kotlin语言来编写构建脚本,相较于传统的XML配置方式,更加灵活和易于阅读。
Gradle核心概念
项目(Project):一个Gradle构建的最小单位。
任务(Task):构建过程中的具体操作,如编译、测试、打包等。
构建文件(build.gra...
Read More
2024-10-08
前言
在Java开发实训项目中,使用到了Axios来发送请求,所以学习了Axios的使用。
教程参考:Axios教程
Axios
Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。
promise是什么?(简要理解,详细理解放到后面)
Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件...
Read More
2024-10-08
前言
在Java实战项目中,对于登陆操作,想要达到下面的效果:
登陆成功后,登陆的状态保持一段时间,不需要重复登陆
实现登陆保持功能可以使用session和cookie,但是这种方式有一些问题:
session和cookie是存储在服务端的,如果服务端重启,session和cookie会丢失
对于分布式系统,session和cookie需要做共享,增加...
Read More
2024-09-30
前言
每次配置什么环境都是从网上找个教程,然后安装教程一步步走,遇到问题继续搜索,直到配置完成。
到现在已经接触到很多包管理器,比如 npm、yarn、pip、brew、apt、yum、docker、composer 等等。
于是想到,这些包管理器都是怎么实现的呢?它们之间有什么区别呢?
什么是包管理器
包管理器是一种工具,用于自动化管理软件包(librar...
Read More
2024-09-30
前言
公司培训的前辈提到:AOP可以理解为添加了一个代理类,这个代理类可以在方法执行前后添加一些操作,比如日志记录、事务管理等。这样就可以将核心业务逻辑和横切关注点分离开来,提高代码的可维护性和可扩展性。
这里他举了一个例子,例如每个方法都需要统计运行时间,如果不使用AOP,那么每个方法都需要添加统计时间的代码,这样会导致代码冗余,可维护性差。使用AOP,只...
Read More
2024-09-26
前言
使用Mockito和JUnit5进行单元测试。
需要注入依赖:
123456789101112131415161718<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter...
Read More
2024-09-25
组合和聚合
组合(Composition)经常用来表示“拥有” 关系(has-a relationship)。例如,“汽车拥有引擎”
聚合(Aggregation)动态的组合。
组合:表示整体与部分的关系,整体和部分的生命周期一样,整体不存在了,部分也不存在了。
1234567891011121314class Engine { ...
Read More