hexo + butterfly 搭建记录
认识 hexo简单来说,就是一个博客框架。社区很活跃,里面有很懂框架可以直接使用和自定义。更多详情,直接查看官网: https://hexo.io/zh-cn/docs/index.html 🚀 markdown 语法可以查看 本地搭建 hexo 记录1.git 安装:略2.node.js 安装:版本 22,详情略3.启动终端安装框架:npm install -g hexo-cli4.初始化 hexo 123hexo init <folder>cd <folder>npm install 5.在 hexo 根目录终端输入: hexo server,启动程序,访问 http://localhost:4000/ 不报错即成功。 常用命令1.在终端输入 hexo new page 导航栏名字,如:hexo new page about 配置 github pages注意: 创建github 仓库的时候,必须要一个 README.md,不然会失败。 详情查看官网文档:https://hexo.io/zh-cn/docs/github-pages 进阶 Ne...
RAG
RAG主要解决大模型知识受限的缺点,在时间和空间上。 RAG原理将数据全部向量化 向量模型在spring.ai.opendi.embedding.options.model: 配置向量模型,配置完后注入 OpenAiEmbeddingModel 就可以使用了。 1234567891011121314151617181920212223242526@Autowiredprivate OpenAiEmbeddingModel model;@Testpublic void testEmbedding() { // 1.测试数据 // 1.1.用来查询的文本,国际冲突 String query = "国际冲突"; // 1.2.用来做比较的文本 String[] texts = new String[]{ "哈马斯称加沙下阶段停火谈判仍在进行 以方尚未做出承诺", "土耳其、芬兰、瑞典与北约代表将继续就瑞典“入约”问题进行谈判", ...
SpringAI智能客服开发
逻辑设计开始->了解、分析用户->查询满足条件的商品->给用户推荐->新增订单->完成 加粗为大模型处理;其他两个是传统程序处理,将其定义为方法 prompt设计略 function 发送prompt,包含function定义(一个复杂的json) agent任务拆分,判断是否需要调用function 返回function名称和参数 执行函数,拼接结果到prompt,再次发送给大模型 要注意大模型是否支持function 定义function在后续版本中,function也叫做tools。首先定义tools模板: 1234567891011121314@Datapublic class XXXQuery{ @ToolParam(Required = false,description = "根据条件查询课程") private String type; @ToolParam(Required = false,description = "排序方式") private List<...
大模型理论
大语言模型在自然语言处理(Natural Language Processing,NLP)中,有一项关键技术叫Transformer,这是一种神经网络模型,是如今AI高速发展的主要原因。我们熟知的大模型(Large Language Models,LLM),列如GPT,DeepSeek底层都是采用的Transformer神经网络。 Generative:根据上文预测之后应该出现在哪个文本,从而形成连续的文本输出 Pre-trained:预训练,让大模型可以理解人类语言的语法、词性 Transformer:推理预测,深度学习的一种神经网络模型。多数的AIGC模型都依赖于此 文本向量化将文本相近的变成坐标点,文本语义相近的就距离较近。 将文本转成一组浮点数,放入一个数组,作为多为空间坐标(words–enbedding->vectors) 通过训练调整向量坐标,使其在不同的方向具备含义,让其相近的语义的词在空间中更加接近 两个向量的差,也就是一个向量到另外一个向量,可以表示两个点的不同点;比如man和woman 举例:E(中国)和E(美国)的饮食有什么差别,向量逻辑就是...
Spring AI 入门
Spring AI 入门 前置知识参考:Spring AI 中文网用于快速接入大模型 以下是 Spring AI、Spring Boot 与 JDK 的版本兼容性整理: Spring AI 版本 Spring Boot 版本 JDK 版本 1.0.x 3.1.x - 3.5.x Java 17 1.1.x 3.5.x Java 17 2.x 4.0.x 及以上 Java 21 大模型选型 自研大模型,AI算法岗(985,211) 云端大模型,阿里百炼 本地 ollama 部署开源大模型 github 大模型评分 调用大模型入门使用百炼大模型创建API-KEY导入maven: 12345678910111213141516171819202122232425262728293031<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId&...
maven 使用记录
maven依赖查找官网 https://mvnrepository.com/ dependencyManagementdependency 真正引入依赖,而 dependencyManagement 只是声明依赖版本等信息,并不实际引入。其中的<type>pom</type>和<scope>import</scope>引入的不是代码依赖,而是版本管理信息 <relativePath/>空标签等价于 ,它告诉 Maven: 不要尝试从相对路径查找父 POM,直接去本地仓库和远程仓库寻找。 这是一种显式声明“父 POM 必须从仓库获取” 的方式,可以避免 Maven 因在相对路径查找而浪费时间和产生误导
shell
Shell 环境Shell 编程跟 JavaScript、php 编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。Linux 的 Shell 种类众多,常见的有: Bourne Shell(/usr/bin/sh或/bin/sh) Bourne Again Shell(/bin/bash) C Shell(/usr/bin/csh) K Shell(/usr/bin/ksh) Shell for Root(/sbin/sh)……本文关注的是 Bash,也就是 Bourne Again Shell,由于易用和免费,Bash 在日常工作中被广泛使用。同时,Bash 也是大多数Linux 系统默认的 Shell。 在一般情况下,人们并不区分 Bourne Shell 和 Bourne Again Shell,所以,像 #!/bin/sh,它同样也可以改为 #!/bin...
分布式基础
什么是分布式系统?架构分:单体和分布式。集群只是一种物理形态,分布式是工作方式。 架构演进 定义 优点 缺点 单体架构 所有功能模块都在一个项目里 开发部署简单 无法应对高并发 集群架构 单体的多服务器版本 解决大并发 问题1:模块升级麻烦问题2:多语言团队交互不通 分布式架构 一个大型应用被拆分成很多小应用分布部署在各个机器 解决了单体+集群的问题 版本关系 Spring Boot 版本 Spring Cloud 版本 Spring Cloud Alibaba 版本 主要特点与说明 3.5.x 2025.0.x 2023.0.3.3 当前较新的稳定组合:需要JDK 17或更高版本,采用Jakarta EE命名空间。 3.2.x 2023.0.x 2022.0.x 需要JDK 17+,采用Jakarta EE。 2.7.x 2021.0.x 2021.0.6.2 支持JDK 8的最终LTS组合:生态成熟稳定,是企业级项目的稳妥选择。 环境搭建 使用 JDK17根目录pom文件如下 1234567891011121314151617...
ForkJoin框架
Java Fork Join 框架对于简单的并行任务,你可以通过“线程池 +Future”的方案来解决;如果任务之间有聚合关系,无论是 AND 聚合还是 OR 聚合,都可以通过 CompletableFuture 来解决;而批量的并行任务,则可以通过 CompletionService 来解决。 CompletableFuturerunAsync 和 supplyAsync 方法CompletableFuture 提供了四个静态方法来创建一个异步操作。 1234public static CompletableFuture<Void> runAsync(Runnable runnable)public static CompletableFuture<Void> runAsync(Runnable runnable, Executor executor)public static <U> CompletableFuture<U> supplyAsync(Supplier<U> supplier)public static...
Java内存模型
Java 内存模型 关键词:JMM、volatile、synchronized、final、Happens-Before、内存屏障 Java 内存模型(Java Memory Model),简称 JMM。Java 内存模型的目标是为了解决由可见性和有序性导致的并发安全问题。Java 内存模型通过 屏蔽各种硬件和操作系统的内存访问差异,以实现让 Java 程序在各种平台下都能达到一致的内存访问效果。 物理内存模型物理机遇到的并发问题与虚拟机中的情况有不少相似之处,物理机对并发的处理方案对于虚拟机的实现也有相当大的参考意义。 硬件处理效率物理内存的第一个问题是:硬件处理效率。 绝大多数的运算任务都不可能只靠处理器“计算”就能完成,处理器至少需要与内存交互,如读取运算数据、存储运算结果,这个 I/O 操作是很难消除的(无法仅靠寄存器完成所有运算任务)。 由于计算机的存储设备与处理器的运算速度有几个数量级的差距 ,这种速度上的矛盾,会降低硬件的处理效率。所以,现代计算机都不得不 加入高速缓存(Cache) 来作为内存和处理器之间的缓冲。将需要用到的数据复制到缓存中,让运算能...









