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

Spring AI Alibaba-对话模型(Chat Model)

对话模型(Chat Model)接收一系列消息(Message)作为输入,与模型 LLM 服务进行交互,并接收返回的聊天消息(Chat Message)作为输出。相比于普通的程序输入,模型的输入与输出消息(Message)不止支持纯字符文本,还支持包括语音、图片、视频等作为输入输出。同时,在 Spring AI Alibaba 中,消息中还支持包含不同的角色,帮助底层模型区分来自模型、用户和系统指令等的不同消息。

Spring AI Alibaba 复用了 Spring AI 抽象的 Model API,并与通义系列大模型服务进行适配(如通义千问、通义万相等),目前支持纯文本聊天、文生图、文生语音、语音转文本等。以下是框架定义的几个核心 API:

  • ChatModel,文本聊天交互模型,支持纯文本格式作为输入,并将模型的输出以格式化文本形式返回。
  • ImageModel,接收用户文本输入,并将模型生成的图片作为输出返回。
  • AudioModel,接收用户文本输入,并将模型合成的语音作为输出返回。

Spring AI Alibaba 支持以上 Model 抽象与通义系列模型的适配,并通过 spring-ai-alibaba-starter AutoConfiguration 自动初始化了默认实例,因此我们可以在应用程序中直接注入 ChatModel、ImageModel 等 bean,当然在需要的时候也可以自定义 Model 实例。

一、Chat Model

ChatModel API 让应用开发者可以非常方便的与 AI 模型进行文本交互,它抽象了应用与模型交互的过程,包括使用 Prompt 作为输入,使用 ChatResponse 作为输出等。ChatModel 的工作原理是接收 Prompt 或部分对话作为输入,将输入发送给后端大模型,模型根据其训练数据和对自然语言的理解生成对话响应,应用程序可以将响应呈现给用户或用于进一步处理。

chat-model

1、使用示例

开发完整的 ChatModel 示例应用,您需要添加 spring-ai-alibaba-starter 依赖,请参考快速开始中的项目配置说明了解详情,您还可以访问 chatmodel-example 查看本示例完整源码。

以下是 ChatModel 基本使用示例,它可以接收 String 字符串作为输入:

@RestControllerpublic class ChatModelController {private final ChatModel chatModel;public ChatModelController(ChatModel chatModel) {this.chatModel = chatModel;}@RequestMapping("/chat")public String chat(String input) {ChatResponse response = chatModel.call(new Prompt(input));return response.getResult().getOutput().getContent();}}

二、Image Model

ImageModel API 抽象了应用程序通过模型调用实现“文生图”的交互过程,即应用程序接收文本,调用模型生成图片。ImageModel 的入参为包装类型 ImagePrompt,输出类型为 ImageResponse

1、使用示例

spring-ai-alibaba-starter AutoConfiguration 默认初始化了 ImageModel 实例,我们可以选择直接注入并使用默认实例。

@RestControllerpublic class ImageModelController {private final ImageModel imageModel;ImageModelController(ImageModel imageModel) {this.imageModel = imageModel;}@RequestMapping("/image")public String image(String input) {ImageOptions options = ImageOptionsBuilder.builder().withModel("dall-e-3").build();ImagePrompt imagePrompt = new ImagePrompt(input, options);ImageResponse response = imageModel.call(imagePrompt);String imageUrl = response.getResult().getOutput().getUrl();return "redirect:" + imageUrl;}}

 三、Audio Model

当前,Spring AI Alibaba 支持以下两种通义语音模型的适配,分别是:

  1. 文本生成语音 SpeechModel,对应于 OpenAI 的 Text-To-Speech (TTS) API
  2. 录音文件生成文字 DashScopeAudioTranscriptionModel,对应于 OpenAI 的 Transcription API

 四、完整示例

http://www.lryc.cn/news/515219.html

相关文章:

  • HTML——79.代码快捷输入方式
  • 李宏毅机器学习课程笔记01 | 1.Introduction of Machine/Deep Learning
  • 1、pycharm、python下载与安装
  • 计算机网络复习(学习通作业4、5、6系统答案)
  • javascript 绘制图表的几种方式
  • 【网络协议】开放式最短路径优先协议OSPF详解(四)
  • C++STL中algorithm的介绍与使用
  • Oracle exp和imp命令导出导入dmp文件
  • GitLab集成Runner详细版--及注意事项汇总【最佳实践】
  • ARM发布Armv9.5架构:迈向更强性能与灵活性的新时代
  • 网络安全:路由技术
  • Vue3 子组件向父组件传递消息(Events)
  • 如何清理Docker的overlay2目录下的文件
  • 《Vue3实战教程》19:Vue3组件 v-model
  • 数字PWM直流调速系统设计(论文+源码)
  • Spring Boot日志处理
  • vue3+Echarts+ts实现甘特图
  • OpenCV相机标定与3D重建(41)从 3D 物点和它们对应的 2D 图像点估算初始相机内参矩阵函数initCameraMatrix2D()的使用
  • ELK日志平台搭建 (最新版)
  • 智能化人才招聘系统是怎样的?
  • 电脑主机后置音频插孔无声?还得Realtek高清晰音频管理器调教
  • 记一次音频无输出的解决方案
  • 初学stm32 --- FSMC驱动LCD屏
  • Scala_【4】流程控制
  • mysql带自动递增列的表删除数据后如何重置递增值
  • [CTF/网络安全] 攻防世界 simple_php 解题详析
  • Android 第三方框架:网络框架:OkHttp:源码分析:缓存
  • 大数据新视界 -- Hive 集群搭建与配置的最佳实践(2 - 16 - 13)
  • C# 设计模式(结构型模式):组合模式
  • Aloudata AIR | 逻辑数据平台的 NoETL 之道