qinfengge

qinfengge

醉后不知天在水,满船清梦压星河
github
cover
cover
cover

spring AI (三) 函数调用

有了前 2 节的基础,接下来要上点强度了,Function Calling - 函数调用。 那么什么是函数调用呢?官方的解释是: You can register custom Java functions with the OpenAiChatClient and have…
cover
cover
cover

spring AI (二) 流式输出

在上文,实现了一个简单的调用输出,使用的是 call 方法,此方法会等待结果的完整返回,所以耗时会比较高一点。 DEBUG 也可以看到结果是一起返回的。 但通常我们使用 AI 对话时结果是一个字一个字或一段一段蹦出来的,这里用的就是流式输出。 flux# 仔细看官方文档会发现其…
cover
cover
cover
cover
cover
cover
cover
cover
cover

spring AI (一) 初始化及简单调用

之前刷短视频刷到了 spring 框架竟然出了 AI 模块,这我身为一个 Java 程序员竟然不知道,赶紧去官网看一下再找点教程试一试。 现在spring AI 的版本是0.8.1,但也已经有正式版 1.0 的 SNAPSHOT 了,所以 API 基本不会有大的变动。总而言之…
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover

RuoYi-Vue-Plus使用skywalking进行链路追踪

近期需要对程序的接口进行并发测试,使用 jmeter 测过后觉得不太满意。主要是上传和数据库查询处理的操作,想知道上传和数据库处理的耗时分别是多少。看了下若依的文档,发现是支持 skywalking 的,那就好办了。 安装# 使用 skywalking 需要先安装依赖,主要是…
cover
cover
cover
cover
cover
cover
cover
cover
cover

java实时消息推送(二)

之前写实时推送(一)的时候,是用的 rabbitmq 的 mqtt 插件。在当时它能满足我的需求,现在有一个新的需求,远程唤醒,判断设备是否在线,如果当前时间设备在线,则表示可以被远程唤醒。 一开始,我还是想在 rabbitmq 的基础上找找看有没有什么 API 能够获取到…
cover
cover
cover
cover

java实时消息推送(一)

前言# 最近有个业务需求,需要判断用户上传的数据是异常还是正常,如果是异常的情况下需要实时的推送报警消息到用户。 在大部分情况下,通常是客户端(浏览器)主动发送请求到服务端(服务器),告诉它需要什么数据。 但也有一部分情况,需要服务端主动的给客户端推送消息,比如上面的情况…
cover
cover

gitlab 的CI/CD 流水线初体验

CI/CD# 关于 CI/CD 的理念与解释这里就不说了,可以看这篇文章 为什么选择 gitlab 的流水线# 原因也很简单,公司的代码托管在 gitlab 上,且 gitlab 的 free 额度好像还挺高。 不选择Jenkins的原因也很简单,UI 过时,功能虽多但占用也高。…
cover
cover
cover

spring boot中的缓存

缓存通常用来加快数据库中经常要使用的数据。大部分情况下我们使用 redis 来缓存 MySQL 数据库的热点数据。 EnableCaching# 在 spring boot 中使用缓存还是比较简单的 首先添加依赖 Copy <!-- cache 依赖…
cover
cover
cover
cover
cover

使用canal监控数据库

什么是 canal# canal,译意为水道 / 管道 / 沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供 增量数据订阅和消费。 通常情况下,canal 用来同步或监控 MySQL 数据库的数据,比如数据入库后同步到 ES canal 将自己伪装成 MySQL…
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover

spring boot 3 + graalVM native 初体验

spring boot 3 已经出来一段时间了,官方也把 GraalVM native 作为 sp3 的一个重大的功能。 那什么是 GraalVM 呢?# 从名字就可以看出来 GraalVM 是一个虚拟机,它的主要目标就是提升 java 应用程序的性能,并且消耗更少的资源。 它…
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover

spring boot 监控 JVM

在中,大程序中,随着用户体量的增加,监控的重要性就越来越高。一套清晰,明了的监控可以极大的帮助开发和运维人员发现程序的问题或不足。 对于 spring boot 程序而言,我们可以使用下面的工具来进行系统级别的监控 grafana 是一个跨平台的开源的度量分析和可视化工具 p…
好用到爆的sharding-jdbc分库分表组件
最近有个需求,需要区分不同渠道所产生的不同结果。 比如,web 端产生的结果,小程序产生的结果,app 产生的结果。实际上表结构是完全相同的,只是做不同的区分。 分表# 首先想到的当然是分表,大部分分表是基于数据量的分表,因为众所周知的 MySQL 数据库的单表瓶颈。 300W…
cover
cover
cover

mybatis plus 多租户插件

引言# 多租户主要用来做数据隔离的,它通常被用于 SAAS 系统里面,把软件作为服务提供给企业使用。每个企业就是一个租户,每个租户只能看到本租户内的数据。所有需要对每个租户做数据隔离。 数据隔离# 多租户的数据隔离方案,可以分成分成三种: DATASOURCE 模式:独立数据库…
cover
cover
cover
cover
cover

使用Alist和EMBY打造低成本个人影视库

其实之前也写过 emby + google drive 的文章,但是时过境迁。 Google drive 把教育盘和团队盘都几乎扬完了,TOS 也越来越严格,转存越来越麻烦。 OneDrive 则根本没有转存这一功能,只能本地上传。 直到阿里云盘异军突起,国内优化,社区活跃…
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover

如何白嫖Cloudflare WARP+优选IP

众所周知,Cloudflare 作为互联网界的大善人,旗下有很多好用甚至免费的好东西。 今天讲的 warp,不仅可以用来装在 VPS 小鸡🐔上解锁本来不支持的流媒体,比如 Netflix、TikTok 等;还可以装在设备上用来科学,再加上优选 IP,油管 4K 不敢保证,但是…
cover

Java异步及返回

最近在工作中,学到了几个知识点,还是很有用的,因此准备写几篇 blog 记录一下 上周接到一个新的需求,要获取程序的报错,并发送通知给负责人,实现其实不难,但难的是如何优雅的实现,而刚好我就看过 2 个知识点,结合一下就能完美实现需求 全局异常处理# 全局异常处理很简单,只需要…
mybatis-plus配置自定义数据类型
上班学习就是快,各种奇怪的需求提的我眼花缭乱。废话不多说,直接开搞 已知需求是设计一张问卷表,目前问卷的问题类型只有单选题,怎么设计表和库。 问题表类似下面 疼痛分级 描述 分数0 无痛 0 1 微痛 2 2 剧痛 4 一个问题下面有多个选项…
cover
cover
cover
cover
cover
cover
cover
cover
cover
cover

如何用AI画二次元以及三次元的老婆

在家过年很爽,但是上班就不爽了,没办法,要恰饭的嘛。所以,我给枯燥的上班生活找了个调剂,那就是用 AI 画小姐姐。 年前我也试用了下 OpenAI 的 ChatGPT3,简直惊为天人,我没有想到 AI 已经发展到这个程度了,几乎可以说是一个低配版的电影中的智能 AI…
Ownership of this blog data is guaranteed by blockchain and smart contracts to the creator alone.