- 博客(512)
- 资源 (10)
- 收藏
- 关注
原创 Spring Boot3+Vue3极速整合: 10分钟搭建DeepSeek AI对话系统(进阶)
在上次实战指南《Spring Boot3+Vue2极速整合: 10分钟搭建DeepSeek AI对话系统》引发读者热议后,我通过200+真实用户反馈锁定了几个问题进行优化进阶处理:本文作为系统升级的进阶指南:环境规格:全程基于Windows11平台(AMD Ryzen5 6600H/16GB内存/RTX3050ti 4GB显存),采用环境管理方案。预览图后端实现通过 ConcurrentHashMap、List 的简洁设计,在保证线程安全的前提下实现了基本的上下文管理功能,后续可通过添加窗口限制、持
2025-03-01 22:16:32
1514
原创 Spring Boot3+Vue2极速整合: 10分钟搭建DeepSeek AI对话系统
通过本文的实践,我们成功搭建了一个基于 Spring Boot 和 Vue 的 AI 对话系统。实时对话 基于 WebSocket 实现流式响应,带来更流畅的交互体验;优雅展示 支持 Markdown 格式渲染,让消息显示更清晰直观;稳定可靠 内置完善的错误处理机制,确保系统高效稳定运行;易于扩展 代码结构清晰,方便后续功能拓展和优化。这一系统不仅能够用于智能客服 在线问答等场景,还能结合大模型能力,进一步提升智能化水平。
2025-02-22 15:06:11
1672
8
原创 基于Ollama与AnythingLLM的DeepSeek-R1本地RAG应用实践
以上介绍了基于Ollama和构建本地化AI应用的完整方案模型部署通过Ollama实现DeepSeek-R1的一键式本地部署,其开箱即用的特性支持多种主流大模型;RAG实现借助AnythingLLM框架,仅需配置大模型和向量数据库即可快速搭建RAG系统;生态价值降低AI应用开发门槛;支持私有化部署;提供可视化操作界面。随着AI技术的普及,掌握AI工具的使用正在成为开发者的必备技能其重要性不亚于传统中间件技术。本方案为小团队快速构建领域AI应用提供了可行路径,展现了AI技术落地的实际价值。
2025-02-09 18:28:27
1331
1
原创 深度思考:别把 DeepSeek 仅仅当作百度
DeepSeek 的真正颠覆性在于,它不仅优化了算法,还充分利用了硬件,使得其成本控制达到了前所未有的程度,从而能以更具竞争力的方式接近 ChatGPT 代表的人工智能语言模型。至于二者的真实水平差距,超出了我的能力范围来评价,但可以肯定的是,DeepSeek 的开源特性及其现阶段的可用性,已经足以令整个中文世界振奋。即使面对的是一个远远超越百度的 DeepSeek,他们仍然潜意识地认为它是一个静态的、固定的系统——如果给出的答案符合预期,它就是“对的”;它在召唤你,与它一同进化,共同拓展认知的边界。
2025-02-07 13:49:31
783
原创 Spring AI 和 Ollama 实现 DeepSeek-R1 的本地 API 服务与调用
Spring AI 和 Ollama 实现 DeepSeek-R1 的本地 API 服务与调用最近,DeepSeek开源了其第一代推理大模型,该模型以其极低的成本和与 OpenAI 相媲美的性能,在国内外引发了广泛讨论。作为开发者,我在独立产品中一直使用 DeepSeek 的 API 来实现一些功能,例如在 TransDuck 项目中的字幕翻译和视频翻译,效果非常出色。然而,随着一些私有化需求的增加,直接调用 API 的方式变得不可行,因此不得不转向本地部署大模型并提供 API 服务。
2025-02-06 20:37:20
899
1
原创 DeepSeek 官方推出全新提示词工具!
DeepSeek 官方精心打造了一个提示词网站,专为提升你的工作效率而生!,帮助你轻松应对日常任务,让 AI 更懂你的需求。,还是其他复杂任务,都能快速搞定!
2025-02-06 09:56:01
346
原创 在本地电脑部署自己的 DeepSeek 大模型 AI:小白也能轻松上手
最近 DeepSeek 大模型 AI 火遍全网,我也忍不住去了解了一番。尝试在本地部署后,发现整个过程非常简单,于是决定记录下来,分享给大家。本文将以最基础的方式演示如何部署,无需使用 Docker 容器,也不需要“魔法上网”,即使是计算机小白也能按照步骤轻松完成。
2025-02-06 09:05:55
5330
2
原创 【Spring Boot 3】微信公众号推送模版消息的方法示例
要在Java中向微信公众号推送模板消息,首先需要确保我们已经有了微信公众号,并且已经设置了模板消息权限和模板ID。模板消息是一种向用户发送通知的服务,广泛用于订单状态更新、服务提醒等场景。下面,我将详细介绍如何使用Java结合微信官方提供的API来实现模板消息的推送。这通常涉及几个步骤:获取access_token、组装模板消息数据、发送请求。
2024-12-24 09:04:50
1078
1
原创 【OpenFeign】OpenFeign 简介和使用以及对比 Feign
官网:https://spring.io/projects/spring-cloud-openfeign文档:https://docs.spring.io/spring-cloud-openfeign/docs/current/reference/html/配置:https://docs.spring.io/spring-cloud-openfeign/docs/current/reference/html/appendix.htmlOpenFeign是一个显示声明式的WebService客户端。
2024-12-15 15:18:34
722
原创 【Starter 】Spring Boot 3.x 自定义封装Starter 实战
某些中间件没有官方 Starter 支持,开发者需要自行引入相关依赖并手动配置。Spring Boot 版本更新后,部分官方 Starter 未能及时更新,导致无法兼容新版本。在企业中,技术负责人或架构师通常会根据项目的实际需求,封装属于自己团队的自定义 Starter。这种自定义 Starter 通过统一的规范与配置,极大地简化了项目的开发流程,提升了开发效率。例如,封装数据库访问、认证授权、消息服务等,所有项目组成员都可以统一使用,提高了代码的规范性和一致性。,如。,如。
2024-09-05 10:17:35
1046
2
原创 【Nginx】Windows生成ssl证书,Nginx反向代理HTTPS
我们又想,美国人不是能访问 Google吗(这不废话,Google就是美国的),如果我们电脑的对外公网 IP 地址能变成美国的 IP 地址,那不就可以访问 Google了。反向代理,其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器IP地址。这里的 VPN 就是做正向代理的。A 机器 控制台访问。
2024-07-26 14:50:37
955
原创 【MySQL】 Lock wait timeout exceeded该如何处理
这个问题我相信大家对它并不陌生,但是有很多人对它产生的原因以及处理吃的不是特别透,很多情况都是交给DBA去定位和处理问题,接下来我们就针对这个问题来展开讨论。Mysql造成锁的情况有很多,下面我们就列举一些情况:执行DML操作没有commit,再执行删除操作就会锁表。在同一事务内先后对同一条数据进行插入和更新操作。表索引设计不当,导致数据库出现死锁。长事物,阻塞DDL,继而阻塞所有同表的后续操作。但是要区分的是Lock wait timeout exceeded与Dead Lock是不一样。
2024-07-02 11:25:39
838
原创 【运维】Windows server 2022 开启 telnet 功能
仪表盘》添加角色和功能》功能》telnet客户端。控制面板》启动或关闭Windows 功能。
2024-07-02 10:40:56
2647
原创 【软考中级】21 真题整理
(A) cat和bird可看作是Animal的对象(B) parrot和bird可看作是Animal的对象(C) bird可以看作是Parrot的对象(D) parrot可以看作是Bird的对象(A) 封装(B) 继承(C) 消息传递(D) 多态知识点:面向对象技术>面向对象的基本概念。
2024-04-21 11:36:34
1046
原创 【EasyExcel】多sheet、追加列
最近接到一个导出Excel的业务,需求就是多sheet。原本使用的 pig4cloud 架子,使用 @ResponseExcel注解方式组装返回数据即可,但是实现过程中发现并不是所想要的效果。组件地址:https://github.com/pig-mesh/excel-spring-boot-starter这样写能够实现多 sheet 导出,但是动态的移除列然后在追加列我尝试了并没有好的方案,有可能也是我没有找到,我找到的是下面面动态的修改列名称。多 sheet导出,只需要返List即可。
2024-03-31 21:28:33
2542
原创 【设计模式】工厂模式
上面两种模式不管工厂怎么拆分抽象,都只是针对一类产品(AbstractProduct),如果要生成另一种产品PC,应该怎么表示呢?最简单的方式是把2中介绍的工厂方法模式完全复制一份,不过这次生产的是PC。但同时也就意味着我们要完全复制和修改图片生产管理的所有代码,显然这是一个笨办法,并不利于扩展和维护。抽象工厂模式通过在AbstarctFactory中增加创建产品的接口,并在具体子工厂中实现新加产品的创建,当然前提是子工厂支持生产该产品。否则继承的这个接口可以什么也不干。
2024-01-24 16:19:09
758
原创 面试经典 150 题 - 多数元素
给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入:nums = [3,2,3]输出:3示例 2:输入:nums = [2,2,1,1,1,2,2]输出:2进阶:尝试设计时间复杂度为 O(n)、空间复杂度为 O(1) 的算法解决此问题。
2024-01-22 22:41:21
698
1
原创 【Go】根据身份证(或生日)计算年龄
排列顺序从左至右依次为:六位数字地址码、八位数字出生日期码、三位数字顺序码和一位数字校验码。地址码(前六位数):表示身份证编码对象常住户口所在省份、地市,以及县(市、旗、区)的行政区划代码,按照GB/T2260的规定执行。其中:前1、2位数字表示所在省份的代码;第5、6位数字表示:所在县(市、旗、区)的代码。第7、8位为出生年份(两位数),第9、10位为出生月份,第11、12位代表出生日期。这里我们定义:用户出生满1年后,年龄算1岁,不满1年算0岁,以此类推,大于1年不到2年算1岁。
2023-10-10 10:53:23
710
原创 【Java】线程池八股文一
作为 JUC 包下的门面担当,线程池是名副其实的 JUC 一哥,不了解线程池,那说明你对 JUC 包其他工具也了解的不咋样吧,对 JUC 没深入研究过,那就是没掌握到 Java 的精髓,给面试官这样一个印象,那结果可想而知了。可以这样说:计算机发展到现在,摩尔定律在现有工艺水平下已经遇到难易突破的物理瓶颈,通过多核 CPU 并行计算来提升服务器的性能已经成为主流,随之出现了多线程技术。
2023-09-12 13:35:12
329
转载 【Spring Boot】实现接口幂等性的 4 种方案
在HTTP/1.1中,对幂等性进行了定义。它描述了一次和多次请求某一个资源对于资源本身应该具有同样的结果(网络超时等问题除外),即第一次请求的时候对资源产生了副作用,但是以后的多次请求都不会再对资源产生副作用。这里的副作用是不会对结果产生破坏或者产生不可预料的结果。也就是说,其任意多次执行对资源本身所产生的影响均与一次执行的影响相同。幂等性是开发当中很常见也很重要的一个需求,尤其是支付、订单等与金钱挂钩的服务,保证接口幂等性尤其重要。对于下单等存在唯一主键的,可以使用“唯一主键方案”的方式实现;
2023-07-04 09:03:07
635
1
原创 【MySQL】count()查询性能梳理
使用的数据库是MySQL8,使用的存储引擎是Innodb。通常情况下,分页接口一般会查询两次数据库,第一次是获取具体数据,第二次是获取总的记录行数,然后把结果整合之后,再返回。它没有性能问题。却存在性能差的问题。为什么会出现这种情况呢?
2023-07-03 11:26:49
1266
2
原创 【Redis】数据被删除,内存占用还这么大?
内存碎片会造成明明有内存空间空闲,可是却无法存储数据。举个例子,你跟漂亮小姐姐去电影院看电影,肯定想连在一块。假设现在有 8 个座位,已经卖出了 4 张票,还有 4 张可以买。可是好巧不巧,买票的人很奇葩,分别间隔一个座位买票。即使还有 4 个座位空闲,可是你却买不到两个座位连在一块的票,厚礼蟹!如果你发现明明 Redis 存储数据的内存占用远小于操作系统分配给 Redis 的内存,而又无法保存数据,那可能出现大量内存碎片了。
2023-07-03 11:12:05
267
原创 【Java】Spring Boot配置动态数据源
通过实现Spring提供的AbstractRoutingDataSource类,可以实现自己的数据源选择逻辑,从而可以实现数据源的动态切换。1.2 创建动态数据源配置类跟配置静态多数据源一样,需要手动配置下面的三个 Bean,只不过DynamicDataSource类的targetDataSources是空的。1.3 创建动态数据源服务类这是一个比较核心的工具类,提供了一些静态方法从而可以实现一些功能,包括:、、、。在 DynamicDataSource 类中,就是调用了 DynamicData
2023-06-30 09:50:51
2631
1
原创 【CentOS】VirtualBox yum 无法使用
执行修改命令,ifcfg-xxx 后面的xxx就是上面的网卡信息。修改文件,把ONBOOT=no,改为ONBOOT=yes。进入系统,修改网卡信息。然后就可以正常的联网了。
2023-06-30 09:39:59
829
原创 【Java】文本数据的Gzip压缩
在Java中,可以使用Gzip压缩算法对数据进行压缩和解压缩。Gzip算法是一种常见的无损压缩算法,可以将数据压缩为较小的字节数,从而节省网络带宽和存储空间等资源。
2023-05-31 11:56:56
2682
1
原创 Redis性能瓶颈:如何优化大key问题?
Redis大key问题是指在Redis中出现了一个或多个非常大的key,这些key的大小超过了Redis所能处理的最大值,从而导致Redis性能下降甚至宕机的现象。通常情况下,Redis的key大小应该尽量保持在较小的范围内,因为Redis是一个基于内存的数据结构存储系统,大key会占用大量内存资源,导致Redis的性能受到严重影响。多大的数据量才算是大key,具体取决于Redis服务器的内存大小、可用内存空间、系统负载等因素。
2023-05-24 10:18:57
962
原创 【Java】Mybatis Plus LambdaQueryWrapper梳理
为了更方便的实现动态 SQL,Mybatis Plus 在其基础上扩展了 LambdaQueryWrapper,LambdaQueryWrapper 提供了更加简便的查询语法,同时也避免了 SQL 注入的风险。LambdaQueryWrapper 实现了的全部功能,并提供了基于Lambda表达式的查询方式,使得查询语法更加优雅。使用 LambdaQueryWrapper,可以方便的实现各种查询条件的拼接,如whereandorinlikebetween等条件。
2023-03-17 09:52:31
6890
原创 【MySQL】substring_index 函数详解
截取字符串第个分隔符之前的字符串。如果为正,则从左边开始截取。如果为负,则从右边开始截取。此函数为MaxCompute 2.0扩展函数。返回STRING类型。如果任一输入参数值为NULL,返回NULL。假设有三个 IP:127.0.0.1、192.128.0.15、255.255.255.255,要分别取每一个号段的值并返回。可以说是一个面试题,解法有多种,那么如果用要如何编写呢?
2023-03-14 09:30:03
5349
原创 【Java】@EnableAsync@Async使用总结
在使用多线程的时候,往往需要继承Thread类,或者,如果要使用到线程池,还需要来创建Executors,在Spring中已经做了很好的支持。只要要就可以使用多线程。使用@Async就可以定义一个线程任务。通过Spring提供的就可以使用线程池。默认情况下,Spring将搜索相关的线程池定义:要么在上下文中搜索唯一的,要么搜索名为“”的。如果两者都无法解析,则将使用来处理异步方法调用。
2023-03-13 12:49:01
2076
1
原创 【Java】Spring Boot整合WebSocket
WebSocket是一种协议,用于实现客户端和服务器之间的双向通信。它可以在单个TCP连接上提供全双工通信,避免了HTTP协议中的请求-响应模式,从而实现更高效的数据交换。WebSocket协议最初由HTML5规范提出,现在已成为一种通用的网络协议,被广泛用于Web应用程序中。WebSocket协议在Web应用程序中广泛使用,例如实现实时通信、在线游戏、即时消息等功能。
2023-03-05 17:48:09
3521
5
原创 【Docker】Hyper-V VirtualBox冲突
Windows 操作系统中的 Hyper-V 技术与其他虚拟化技术(如 VirtualBox、VMware Workstation)有冲突,无法同时运行。这是由于这些虚拟化技术需要使用 CPU 的虚拟化扩展功能,而 Hyper-V 技术也需要使用相同的扩展功能。在 Windows 10 中,如果启用了 Hyper-V,那么其他虚拟化技术就不能使用 CPU 的虚拟化扩展功能。
2023-03-02 13:19:07
1806
原创 【Java】Spring Boot 2 集成 Nacos
采用自定义的命名空间进行测试,新建命名空间。这里我们已经创建完了,就截一张编辑图片.,nacos-discovery版本。,nacos-config 版本。本次Springboot版本。测试可以实现动态的配置变更.测试可以实现动态的配置变更.
2023-02-26 11:00:38
1369
原创 【Java】“com.alibaba.fastjson.JSONObject cannot be cast to“报错问题
通过 debug 断点可以看到,这里拿到虽然是 List,但是里面的对象还是一个 JSONObject,并不是我们需要的 DTO 类,所有导致了后面的报错。查到问题根源,只要把这里的对象转化为我们的 DTO 类就行了,就可以避免报错。
2023-02-24 09:33:43
10829
原创 【设计模式】单例模式
单例模式(Singleton Pattern):确保一个类有且只有一个实例,并提供一个全局访问点。在开发中,很多时候有一些对象其实我们缓存(cache)默认设置日志对象等等,这个时候把它设计为单例模式是最好的选择。Java中单例模式是一种广泛使用的设计模式,单例模式有很多好处,它能够避免实例对象的重复创建,不仅可以减少每次创建对象的时间开销,还可以节约内存空间(比如spring管理的无状态bean);还由于操作多个实例导致的逻辑错误。
2023-01-20 10:42:18
1650
1
原创 【Java】阻塞队列
阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这2个附加的操作支持阻塞的插入和移除方法。阻塞队列常用于生产者和消费者的场景,生产者是向队列里添加元素的线程,消费者是从队列里取元素的线程。阻塞队列就是生产者用来存放元素、消费者用来获取元素的容器。
2023-01-09 10:51:01
451
原创 【Kafka】八股文梳理
可以通过实现 org.apache.kafka.clients.consumer.internals.PartitionAssignor 接口来实现。
2023-01-08 21:48:36
5057
4
原创 【MySQL】为什么使用B+树做索引
本篇文从二叉查找树,详细说明了为什么MySQL用B+树作为数据的索引,以及在innodb中数据库如何通过B+树索引来存储数据以及查找数据。一定要记住这句话:数据即索引,索引即数据。
2023-01-08 21:47:00
950
2
计算机-职业规划方案
2020-12-05
JavaSE期末复习知识点
2020-08-03
网络规划师-复习资料
2020-08-02
cmder_mini.zip
2020-08-02
Postman-win64-7.0.5
2019-03-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人