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

数字广东网络建设有限公司网站平面设计公司调研报告

数字广东网络建设有限公司网站,平面设计公司调研报告,做ppt网站大全,凡科做 淘宝客网站先看效果 项目搭建 Spring AI 是 Spring 推出的一个项目,目标是提供统一的API抽象层,屏蔽不同AI模型和服务的底层差异,实现跨平台兼容性。 演示使用的模型是阿里的 qwq-32b。 环境要求: JDK :17以上(包括…

先看效果

项目搭建

Spring AI 是 Spring 推出的一个项目,目标是提供统一的API抽象层,屏蔽不同AI模型和服务的底层差异,实现跨平台兼容性。

演示使用的模型是阿里的 qwq-32b。

环境要求:

JDK :17以上(包括17)

Spring Boot 版本:目前支持 3.4.X,3.5.X 发布后也会同步支持。

主要的 maven 依赖

<dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-openai-spring-boot-starter</artifactId><version>1.0.0-M6</version>
</dependency>

配置文件:

qwq-32b的接口类似于openai ,所以直接使用 openai 的配置即可,其他类 openai 的模型也是类似。

spring:ai:openai:api-key: #申请的 keybase-url: https://dashscope.aliyuncs.com/compatible-mode #api地址chat:options:model: qwq-32b # 模型名称

编写接口

创建 ChatClient。ChatClient 提供了与 AI 模型通信的 Fluent API,它支持同步和反应式(Reactive)编程模型。

this.chatClient = ChatClient.builder(chatModel).defaultSystem(DEFAULT_PROMPT).defaultAdvisors(new MessageChatMemoryAdvisor(new InMemoryChatMemory())).defaultAdvisors(new SimpleLoggerAdvisor()).defaultOptions(OpenAiChatOptions.builder().temperature(0.7d).build()).build();

创建接口,使用 SSE 响应结果,SSE 是一个单向的、从服务端向客户端推送数据的技术。使用SSE可以实时的将大模型的结果推送到前端。

@GetMapping
public SseEmitter chat(String message) {SseEmitter emitter = new SseEmitter();// 先把结果返回,后续逐渐响应结果CompletableFuture.runAsync(() -> {chatClient.prompt(message).stream().content().doOnComplete(emitter::complete).subscribe(result -> {try {emitter.send(result);} catch (IOException e) {throw new RuntimeException(e);}});});return emitter;
}

完整的接口代码如下:

package cn.salim.ai.controller;import org.springframework.ai.chat.client.ChatClient;
import org.springframework.ai.chat.client.advisor.MessageChatMemoryAdvisor;
import org.springframework.ai.chat.client.advisor.SimpleLoggerAdvisor;
import org.springframework.ai.chat.memory.InMemoryChatMemory;
import org.springframework.ai.openai.OpenAiChatModel;
import org.springframework.ai.openai.OpenAiChatOptions;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;import java.io.IOException;
import java.util.concurrent.CompletableFuture;@RestController
@RequestMapping("ai")
public class AiController {private static final String DEFAULT_PROMPT = "你是一个资深Java程序员,你熟悉各种JAVA框架,包括SpringBoot、Mybatis等等";private final ChatClient chatClient;public AiController(OpenAiChatModel chatModel) {this.chatClient = ChatClient.builder(chatModel).defaultSystem(DEFAULT_PROMPT).defaultAdvisors(new MessageChatMemoryAdvisor(new InMemoryChatMemory())).defaultAdvisors(new SimpleLoggerAdvisor()).defaultOptions(OpenAiChatOptions.builder().temperature(0.7d).build()).build();}@GetMappingpublic SseEmitter chat(String message) {SseEmitter emitter = new SseEmitter();CompletableFuture.runAsync(() -> {chatClient.prompt(message).stream().content().doOnComplete(emitter::complete).subscribe(result -> {try {emitter.send(result);} catch (IOException e) {throw new RuntimeException(e);}});});return emitter;}}

http://www.dtcms.com/wzjs/790913.html

相关文章:

  • 建设网站查证书记事本做网站背景
  • html网站登录界面模板网站路径怎么做
  • 网站建设的论文范文专门做酒店的网站
  • 怎么创建网站教程淄博网站制作设计高端
  • seo网站建设哪家专业电商网站 厦门
  • 网站建设作用图片义乌厂家直接免费外发手工活
  • 网站社区的建设我要发布招聘信息
  • 汕头做网站优化公司网站开发所需要的语言
  • 建设网站备案与不备案区别wordpress rss已删除
  • 电商培训机构有哪些?哪家比较好天津网站优化流程
  • 贸易公司如何做英文网站微信公众号1000阅读量多少钱
  • 承德住房和城乡建设局网站关闭了建设网站的难点
  • 企业管理系统免费网站做网站公司什么条件
  • 刚做的网站在百度上搜不到it运维服务商
  • 品牌好的佛山网站建设深圳工程建设交易服务中心网站
  • 购物网站用户管理wordpress好用的编辑器插件
  • 建立一个企业网站需要多少钱手机网站设计字体大小
  • 域名备案和网站备案服务周到的上海网站建设公司
  • 网站实施就是网站建设网站上图片的链接怎么做
  • wordpress 表单数据临清聊城网站优化
  • 哪些网站是wordpresswordpress 4.8 主题
  • 租房网站类似于微博网站怎么做的
  • 南京网站关键词优化咨询中信建设有限责任公司陈晓佳简历
  • 网站建设自助建站企业wordpress在线预览
  • 建网站 赚钱怎么建免费论坛网站
  • 常州自助建站seo电商网站页面
  • 网站建设的教材制作网站的费用
  • 互联网金融网站设计网站咨询聊天怎么做
  • 大望路网站建设公司番茄todo社区看片在线观看
  • 网站用户体验度网站建设默认字体