当前位置: 首页 > news >正文

【SpringAI】(一)从实际场景入门大模型——适合Java宝宝的大模型应用开发

一、简单场景介绍

假设你需要为一个商城项目接入一个基于SpringAI的智能客服系统,现在我们来基本模拟一下:

在这里插入图片描述

当我通过系统提问,大模型会针对我的问题进行回答。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

当我们通过程序提问时,SpringAI会将我们的提问封装成Prompts,即提示词,最终通过Json的格式,发送给基础大模型,并且基础大模型基于我们的提问进行回答。
那么什么是提示词呢?

二、Prompts-提示词

从概念角度上来说,提示词是用于引导语言模型生成特定响应的输入文本。它们可以是问题、指令或上下文,帮助模型理解用户的意图。

上面的场景中,“请一句话介绍一下GPT大模型”,就是一句提示词。简单得说,我们向GPT输入的任何内容都能够作为Pr提示词。

三、RAG-检索增强生成

上面的场景中,我们让GPT介绍一下大模型,看起来GPT大模型为我们解答了。那么如果我换个问题呢?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这下给GPT整不会了,因为GPT并没有我们想要的订单信息。但是它不会摆烂,也不会报错,依然会给我们的答复:

在这里插入图片描述

虽然GPT给了我们回答,但是答案依然不是我们想要的,那应该怎么办呢?接下来就要介绍一下RAG-检索增强生成

3.1 什么是RAG

RAG(Retrieval-Augmented Generation,检索增强生成)是一种结合“搜索”和“生成”的技术,旨在让大模型在回答问题时更加准确和有用。

那针对我们场景中订单的问题,是如何通过RAG解决的呢?
这个时候我们需要,明白RAG中两个关键点:知识库向量数据库

3.2 知识库

知识库是存储大量信息的地方,类似于一个大数据库,里面包含文档、文章、网页等内容。在我们商城智能客服中,知识库可以包含我们的用户信息、订单信息等。

在这里插入图片描述

3.3 向量数据库

在RAG(检索增强生成)系统中,向量数据库是一种专门用来存储和快速检索文本向量的数据库。这里的向量是由知识库中的文档或者文档片段转换而来。而文档转化为向量这个步骤叫做Embeddings

在这里插入图片描述

3.4 RAG运行流程

当我们引入了RAG之后再来看看它在我们当前场景中是如何解决问题的。

在这里插入图片描述

简单得来说,当我要查询10086的订单号时候,RAG会在向量数据库中帮我查找到满足条件的订单信息,并且把我问的原始问题和找到的订单信息组成新的Prompts发送给大模型,之后大模型再进行回答。

四、FineTunuing-微调

回到我们的场景,我们已经通过RAG解决了知识库的问题。但是,仍然有些地方我们可能不满意。比如我们想让大模型回复答案的语气更加贴近我们的真实客服语气。比如每句话之前增加一个“亲”,或者每句话末尾增加一个“呢”。

在这里插入图片描述

总而言之,让大模型的答案更加贴近专业领域,让大模型更加垂直。这也是我们FineTuning-微调的目的。
一般来说,微调都是基于一个通用大模型(如GPT),使用特定任务的数据集对模型进行进一步训练。
注意,微调后大模型相较于原来会发生改变,也就是让微调的大模型会更加适合我们特定的领域。

![外

比如,我通过真实的客服对话对通用大模型进行微调,那么训练出来的大模型的回答就会更加贴近客服领域。

五、Function-call

接着上面的场景~
现在商城搞一个活动,只要用户下单后可以根据支付后的订单号进行抽奖。也就是说,我告诉大模型我的订单号后,会返回一个奖品。这要怎么做到呢?这个时候就要用到Function-call,函数调用

当我们定义好我们通过订单号进行抽奖的API之后,大模型会根据用户的提问进行判断,如果需要则请求API,拿到结果会再次根据结果生成对应的Prompts发送给大模型,最终返回给用户。流程如下:

在这里插入图片描述

大模型一点点基本概念就介绍完了,后面会介绍SpringAI的基本使用。

看完的同学欢迎一起交流,鄙人不才,如果有错误的地方望各位大佬指正!

在这里插入图片描述

祝大家工作顺利,永不被裁!

相关文章:

【SpringAI】(一)从实际场景入门大模型——适合Java宝宝的大模型应用开发

一、简单场景介绍 假设你需要为一个商城项目接入一个基于SpringAI的智能客服系统,现在我们来基本模拟一下: 当我通过系统提问,大模型会针对我的问题进行回答。 当我们通过程序提问时,SpringAI会将我们的提问封装成Prompts&#x…...

植物大战僵尸杂交版

最新版植物大战僵尸杂交版 最近本款游戏火爆 下载资源如下: win版本:2.3.7 链接:下载地址 提取码:9N3P Mac(苹果版本):2.0.0 链接:下载地址 提取码:Bjaa 介绍&#xff…...

live2d 实时虚拟数字人形象页面显示,对接大模型

live2dSpeek 测试不用gpu可以正常运行 https://github.com/lyz1810/live2dSpeek 运行的话还需要额外下载https://github.com/lyz1810/edge-tts支持语音 ## 运行live2dSpeek >npm install -g http-server >http-server . ## 运行edge-tts python edge-tts.py...

SpringCloud-持久层框架MyBatis Plus的使用与原理详解

在现代微服务架构中,SpringCloud 是一个非常流行的解决方案。而在数据库操作层面,MyBatis Plus 作为 MyBatis 的增强工具,能够简化开发,提升效率,特别是在开发企业级应用和分布式系统时尤为有用。本文将详细介绍 MyBat…...

Servlet的HttpServletRequest

HttpServletRequest是Java Servlet规范中定义的一个接口,它表示客户端向服务器发送的请求,并提供了与HTTP请求相关的方法和属性。 getSession方法():用于获取与当前请求相关联的HttpSession对象。 setAttribute(String name, Object value)…...

U9销售订单不能带出最新价格出来

业务员突然说系统带不出来销售价格。了解之后,不是带不出来价格,是做了价格调整之后,最新价格没有匹配出来,带出来的价格是历史价格。检查,分析相关的单据,生效日期,失效日期,审核状…...

Jmeter接口测试企业级项目实战day1

1.接口测试 接口测试工具: JMeter:支持多种接口类型,还能测试性能,开源,开源进行二次扩展。 Postman:简单,方便,局限性比较大,适合开发临时行调试 APIFox等:新…...

接口测试面试题含答案

1、解释一下正向和逆向测试。 正向测试:针对接口设计预期的功能和行为,验证接口是否按照预期工作。 逆向测试:针对错误输入、不合理的条件或非预期的使用方式,验证接口是否能够适当地处理这些情况并提供合理的错误处理。 2、什…...

横板营业执照提取生成

前言 有一段时间没发博客了&#xff0c;今天分享下几个月前做的营业执照提取器UI 预览图 框架 b-ui很好用&#xff0c;这个前端框架作者 发布的插件我都会用&#xff0c;鱿鱼助手也是基于这个框架开发的 代码 html <template><view><template><view…...

webm格式怎么转换成mp4?这5种转换方法很好用

现如今&#xff0c;视频格式繁多&#xff0c;而webm作为一种由谷歌开发的视频格式&#xff0c;以其高画质和低带宽需求著称。然而&#xff0c;并非所有设备和播放器都完美支持webm格式&#xff0c;这时将其转换为兼容性更强的MP4格式就显得尤为重要。下面给大家分享5种非常简单…...

C/C++语言基础--C++异常看这一篇就够了

本专栏目的 更新C/C的基础语法&#xff0c;包括C的一些新特性 前言 通过前面几节课&#xff0c;我们学习了抽象、封装、继承、多态等相关的概念&#xff0c;接下来我们将讲解异常&#xff0c;异常是专门处理错误的&#xff1b;这一次加了不少图标&#xff0c;希望大家喜欢;C语…...

DFT ATPG中常见影响coverage的因素有哪些?

# DFT ATPG中常见影响Coverage的因素 ## 一、电路结构复杂性 1. **逻辑层次深度** - **原理** - 当电路的逻辑层次很深时,信号在传播过程中会经过多个逻辑门的处理。这使得测试向量难以准确地控制和观察内部节点的状态。例如,在一个具有多层嵌套逻辑的电路中,如一个…...

Python机器学习数据清洗到特征工程策略

Python机器学习数据清洗到特征工程策略 目录 ✨ 数据清洗&#xff1a;处理缺失值与异常值的策略&#x1f504; 特征选择&#xff1a;筛选与数据目标高度相关的特征&#x1f6e0; 特征工程&#xff1a;数据转换与生成新特征的多样化方法&#x1f4ca; 类别型变量的数值化&…...

多线程-进阶(2)CountDownLatchConcurrentHashMapSemaphore

目的; JUC(java.util.concurrent) 的常⻅类 接着上一节课到 1.信号量 Semaphore 信号量, ⽤来表⽰ "可⽤资源的个数". 本质上就是⼀个计数器。 理解信号量 可以把信号量想象成是停⻋场的展⽰牌: 当前有⻋位 100 个. 表⽰有 100 个可⽤资源. 当有⻋开进去的时候,…...

密码管理器KeePass的安装及使用

文章目录 软件下载安装汉化新建数据库创建\移动\修改 群组添加/修改/删除/移动 记录展示、搜索、锁定单独使用keepass生成密码的功能AES-256的密钥长度为256位&#xff0c;为啥可以设置超过32个字符的密钥&#xff1f; 软件下载 安装 分别解压&#xff1a;KeePass-2.53.1.zip&…...

星海智算:【萤火遛AI-Stable-Diffusion】无需部署一键启动

部署流程 1、注册算力云平台&#xff1a;星海智算 https://gpu.spacehpc.com/ 2、创建实例&#xff0c;镜像请依次点击&#xff1a;“镜像市场”->“更换”->“AI绘画”->“萤火遛AI-Stable Diffusion”。 程序首次启动可能需要几分钟&#xff0c;待实例显示“运行…...

JS生成器的特殊用法:委托yield*

yield 的基本用法 yield 用于在生成器函数中暂停函数执行&#xff0c;并返回一个值给外部调用者。当生成器再次被调用时&#xff0c;会从暂停的地方继续执行。 示例&#xff1a; function* simpleGenerator() {yield 1;yield 2;yield 3; }const gen simpleGenerator();cons…...

【CuPy报错】NVRTC_ERROR_COMPILATION (6)找不到 ‘vector_types.h‘

cupy安装不要再使用pip install cupy了&#xff0c; 已经替换成基于版本安装了pip install cupy-cuda12x&#xff0c;详见cupy官网。 安装完成后&#xff0c;在import cupy之后报错&#xff0c;找不到 ‘vector_types.h’: CompileException: /home/zoe/venv/lib/python3.10/…...

机器学习:知识蒸馏(Knowledge Distillation,KD)

知识蒸馏&#xff08;Knowledge Distillation&#xff0c;KD&#xff09;作为深度学习领域中的一种模型压缩技术&#xff0c;主要用于将大规模、复杂的神经网络模型&#xff08;即教师模型&#xff09;压缩为较小的、轻量化的模型&#xff08;即学生模型&#xff09;。在实际应…...

【C++入门篇 - 3】:从C到C++第二篇

文章目录 从C到C第二篇new和delete命名空间命名空间的访问 cin和coutstring的基本使用 从C到C第二篇 new和delete 在C中用来向系统申请堆区的内存空间 New的作用相当于C语言中的malloc Delete的作用相当于C语言中的free 注意&#xff1a;在C语言中&#xff0c;如果内存不够…...

微信小程序获取手机号登录,从免费到收费后,我的低成本替代方案(附完整代码)

微信小程序登录策略优化&#xff1a;从手机号收费到低成本用户体系设计 去年微信团队调整了小程序获取用户手机号的规则——从完全免费变为1000次调用后的按量计费。这对于日活超过1000的中小开发者来说&#xff0c;意味着每月可能新增数百至数千元的额外成本。但用户登录又是小…...

数学学习者的终极指南:如何高效利用开源资源库构建完整知识体系

数学学习者的终极指南&#xff1a;如何高效利用开源资源库构建完整知识体系 【免费下载链接】awesome-math A curated list of awesome mathematics resources 项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-math 在数字化学习时代&#xff0c;如何从海量的…...

BiLSTM时间序列预测实战:用Python搞定股票价格预测(附完整代码)

BiLSTM金融时间序列预测&#xff1a;从理论到实战的Python完整指南 金融市场如同汹涌的海浪&#xff0c;价格波动背后隐藏着无数投资者的决策与情绪。对于量化分析师和算法交易者而言&#xff0c;准确预测这些波动意味着巨大的商业价值。传统的时间序列分析方法如ARIMA在面对非…...

终极指南:VSCode Rainbow Fart如何通过Vue.js打造沉浸式编程体验

终极指南&#xff1a;VSCode Rainbow Fart如何通过Vue.js打造沉浸式编程体验 【免费下载链接】vscode-rainbow-fart 一个在你编程时疯狂称赞你的 VSCode 扩展插件 | An VSCode extension that keeps giving you compliment while you are coding, it will checks the keywords …...

Android MQTT库在Android 13上的PendingIntent兼容性适配实战

1. 崩溃日志背后的PendingIntent适配危机 那天测试同事突然跑过来说&#xff1a;"你的MQTT推送在Android 13上炸了&#xff01;"我接过手机一看&#xff0c;果然闪退日志里赫然写着&#xff1a; java.lang.IllegalArgumentException: Targeting S (version 31 and …...

Focaler-IoU: More Focused Intersection over Union——更聚焦的交并比损失

《Focaler-IoU: More Focused Intersection over Union Loss》主要研究内容可以全面概括如下&#xff1a; 研究背景与问题&#xff1a; 在目标检测任务中&#xff0c;边界框回归的精度很大程度上取决于损失函数的设计。现有的IoU-based损失函数&#xff08;如GIoU、CIoU、EIoU…...

不用编译!快速修改Scratch-blocks积木字体的偷懒方法

零编译实战&#xff1a;Scratch-blocks字体调整极简方案 在Scratch 3.0的二次开发过程中&#xff0c;积木字体过小是开发者普遍遇到的痛点。官方移除了字体调节功能后&#xff0c;低分辨率设备上的中文显示尤为模糊。传统解决方案需要配置Python环境并重新编译scratch-blocks库…...

[段错误修复]:Emacs代码补全崩溃的系统排查与版本管理策略

[段错误修复]&#xff1a;Emacs代码补全崩溃的系统排查与版本管理策略 【免费下载链接】doomemacs An Emacs framework for the stubborn martian hacker 项目地址: https://gitcode.com/gh_mirrors/do/doomemacs 副标题&#xff1a;如何诊断LSP服务异常导致的Emacs崩溃…...

解锁Joplin无缝笔记体验:3大场景实现全平台知识管理自由

解锁Joplin无缝笔记体验&#xff1a;3大场景实现全平台知识管理自由 【免费下载链接】joplin Joplin 是一款安全笔记记录与待办事项应用&#xff0c;具备跨平台同步功能&#xff0c;支持 Windows、macOS、Linux、Android 和 iOS 平台。 项目地址: https://gitcode.com/GitHub…...

PingFangSC跨平台字体解决方案:企业级部署与性能优化指南

PingFangSC跨平台字体解决方案&#xff1a;企业级部署与性能优化指南 【免费下载链接】PingFangSC PingFangSC字体包文件、苹果平方字体文件&#xff0c;包含ttf和woff2格式 项目地址: https://gitcode.com/gh_mirrors/pi/PingFangSC 在数字化转型浪潮中&#xff0c;企业…...