qinfengge

qinfengge

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

spring AI (九) 多模态

首先解释下什么是多模态:想象一下人类的学习方式,有视觉,听觉,触觉。这其中最重要的就是视觉,机器可以看到吗,当然可以。那么浅显点说,让 AI 看到,听到,摸到就是多模态 Humans process knowledge, simultaneously across…
cover

spring AI (八) 语音转录与TTS

搞完图片的部分就该搞语音了,语音这里面有 2 个方法: Transcription API 用来转录文本,就是把语音生成字幕,使用的是 whisper 模型 Text-To-Speech (TTS) API 简称 TTS,就是使用文本生成语音 Transcription 直接…
cover
cover

spring AI (七) 文生图 DALLE3 + SD

Spring AI 是支持文生图的,当然也是基于现有的解决方案,文生图的代码很简单,也就 5 行左右,不过还是记录下吧。 DALLE3 这是 OpneAI 发布的文生图的模型,基本上也是最常用的吧,比起专业的 SD 和 MJ 也算可以的了,重点是简单,不要费脑子想提示词…
cover
cover
cover
cover
cover
cover
cover
cover

spring AI (六) 1.0版本及qwen2

鸽了一段时间,spring ai 已经出到 1.0 了,和 0.8.1 相比差别还是挺大的。正好最近时间很是宽裕可以折腾一下。 项目配置 初始化项目的配置有 2 种方式,一种是在创建时直接选择对应依赖 另一种就是手动配置了 在 maven 中加入 Copy <reposit…
cover
cover
cover
cover
cover
cover
cover
cover

spring AI (五) 本地部署模型-llama3

在前面几章,我们使用的都是 ChatGPT 这种在线的大模型,即使各类大模型的 API 价格是越来越低的,但是在大量调用时依然是笔不小的支出,更不要说还有各种限制。而本地部署一些小模型在很多情况下也能提供一些不错的效果,不仅能够降低成本,限制还更少…
cover
cover
cover
cover

spring AI (四) 连续对话

在之前的文章中,我们实现的都是简单的调用,只能实现 1 次对话。这既不符合现实也不优雅,哪有人对话只对一句的啊。除了下面那个 要是 AI 也只能对话一次,那我们也只能说 AI 大爷您先一边凉快去吧 那怎么让模型连续对话呢,重点是 记忆 把用户的提问记住…
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 需要先安装依赖,主要是 2…
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…
Ownership of this blog data is guaranteed by blockchain and smart contracts to the creator alone.