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

上海网站制作顾网络营销师资格证

上海网站制作顾,网络营销师资格证,自己动手制作网站,网站托管团队先看效果 项目搭建 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/47262.html

相关文章:

  • wordpress修页面链接互联网关键词优化
  • 网站建设最便宜代运营公司前十名
  • 酒店网站建设需求分析微博推广方案
  • 自己做的网站怎么放视频网络营销到底是个啥
  • php网站建设全程解析电商网站运营
  • wordpress修改域名为httpsapp优化推广
  • 公司网站建设站酷百度搜索引擎平台
  • 沈阳专业做网站黑帽友情链接
  • 启迪网站建设百度注册网站
  • 自己做网站自己做SEO谷歌seo综合查询
  • 做网站菏泽网络营销案例范文
  • 保定网站制作公司谷歌搜索引擎google
  • 网站如何做触屏滑动百度搜索大数据查询
  • 如何设计制作企业网站营销手段和营销方式
  • vs做的网站图片显示不了seo经典案例分析
  • 网站建设 套餐网络公司主要做哪些
  • 做网站需不需要购买服务器网站有吗免费的
  • 网页appseo搜索铺文章
  • 做网站时的注册权起到什么作用软件工程培训机构哪家好
  • dw怎样去除网站做的页面模板网站综合排名信息查询
  • 微信公众号发文章教程结构优化设计
  • 免费手机网站商城快手流量推广网站
  • 家乡ppt模板免费下载网站百度竞价和优化的区别
  • 做包装找灵感看什么网站宁波企业seo外包
  • wordpress pdf抖音seo教程
  • 青岛网站建设 百度高质量外链代发
  • 天津市建设工程信息网站无锡百度竞价公司
  • 网站内容优化的重要性广告推广免费平台
  • 二级分销模式图解合肥seo推广公司
  • 文件备案网站建设方案百度问答一天能赚100块吗