您的位置:首页 > 汽车 > 新车 > 设计类专业好找工作吗_信阳市人民政府信访局_北京优化靠谱的公司_网站优化方案设计

设计类专业好找工作吗_信阳市人民政府信访局_北京优化靠谱的公司_网站优化方案设计

2024/11/19 1:28:50 来源:https://blog.csdn.net/whisperzzza/article/details/143630937  浏览:    关键词:设计类专业好找工作吗_信阳市人民政府信访局_北京优化靠谱的公司_网站优化方案设计
设计类专业好找工作吗_信阳市人民政府信访局_北京优化靠谱的公司_网站优化方案设计

在Java中,使用Spring AI Alibaba框架调用国产大模型通义千问,实现流式输出,是一种高效的方式。通过Spring AI Alibaba,开发者可以轻松地集成通义千问模型,并利用其流式处理能力,实时获取模型生成的文本。这种流式输出方式,使得模型能够持续不断地生成文本,直到达到指定的长度或满足特定的条件。通过这种方式,开发者可以更灵活地处理模型生成的文本,提高应用程序的响应速度和用户体验。

本例子使用spring ai alibaba + QWen千问 api 完成,你可以跑通以后换自己的实现。

QWen 目前 有100万免费Token额度,可以快速实现需求。同时,因为qwen 也是个开源的模型,我们可以自己搭建模型来实现免费使用

Spring AI概述

在当前Java调用大模型时,缺乏优秀的AI应用框架是一个显著的问题。Spring作为老牌的Java应用框架厂商,提出了Spring AI以解决这一问题。它参考了langchain的核心理念,并结合了Java面向对象编程的优势,为开发者提供了统一且灵活的接口来与不同的大模型交互。这种设计使得用户能够轻松切换底层实现,同时享受到由专门团队维护的好处。本次样例将演示如何使用Spring AI Alibaba接入通义大模型,但请记住,一旦掌握了基本配置方法,您也可以方便地更换为自己所需的其他Java大模型实现。

Spring AI Alibaba功能概览及接入指南

Spring AI Alibaba 是基于 Spring AI 的实现,专门为阿里云的百炼大模型服务提供支持。作为国内最佳的 Spring AI 实现之一,它继承了 Spring 生态系统的可移植性和模块化设计原则,并整合了阿里巴巴在AI领域的最佳实践。Spring AI Alibaba 主要完成了对话、文生图、文生语音、模型输出解析(OutputParser)、Prompt模板等功能。通过使用 Spring AI Alibaba,开发者可以轻松接入阿里云通义提供的聊天、图片或语音生成等AI应用。Spring AI Alibaba 有很多不同的功能和能力,比如模型调用、Prompt模板、RAG、文生图以及文字识别等。本文将以 Prompt 模板和模型调用两个能力为例,展示如何接入 Spring AI Alibaba。

阿里巴巴云开发的通义千问Qwen:在多项基准测评中表现卓越的语言模型

通义千问Qwen是阿里巴巴云开发的预训练语言模型,在MMLU、TheoremQA、GPQA等基准测评中表现优异,超越了Llama 3 70B。它在Hugging Face开源大模型排行榜Open LLM Leaderboard上荣登榜首,展示了其卓越的能力。该模型在多个客观评测指标上表现出色,为用户提供了强大的自然语言处理能力。

使用SpringBoot整合Spring AI Alibaba

要基于Spring Boot集成Spring AI Alibaba并完成一个简单的对话模型,构建支持Prompt的流返回接口,我们需要遵循以下步骤。此过程将涉及配置环境、添加依赖、设置API密钥以及编写Controller代码等步骤。

1. 环境准备
  • 确保你的JDK版本在17(含)以上
  • 确保你的Spring Boot版本在3.3.x以上
2. 在阿里云申请通义千问的API Key

访问阿里云百炼页面,登录您的阿里云账号,选择开通“百炼大模型推理”服务。开通成功后,创建一个新的API Key,并记录下来以备后续使用。

3. 配置API Key

设置环境变量AI_DASHSCOPE_API_KEY或直接在application.properties中配置API Key:

spring.ai.dashscope.api-key=${AI_DASHSCOPE_API_KEY}
4. 添加Spring仓库及依赖

因为Spring AI Alibaba的M1版本尚未提交到Maven中央仓库,所以需要手动添加Spring的里程碑和快照仓库:

<repositories><repository><id>sonatype-snapshots</id><url>https://oss.sonatype.org/content/repositories/snapshots</url><snapshots><enabled>true</enabled></snapshots></repository><repository><id>spring-milestones</id><name>Spring Milestones</name><url>https://repo.spring.io/milestone</url><snapshots><enabled>false</enabled></snapshots></repository><repository><id>spring-snapshots</id><name>Spring Snapshots</name><url>https://repo.spring.io/snapshot</url><releases><enabled>false</enabled></releases></repository></repositories>

然后,在项目中添加spring-ai-alibaba-starter依赖项和其他必需的Spring Boot依赖项:

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.3.4</version><relativePath/> <!-- lookup parent from repository -->
</parent><dependencies><dependency><groupId>com.alibaba.cloud.ai</groupId><artifactId>spring-ai-alibaba-starter</artifactId><version>1.0.0-M2</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-webflux</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies>
5. 创建Controller类

为了实现GET接口且支持CORS跨域请求,我们需要定义一个Controller类来处理聊天逻辑。这里我们将注入ChatClient实例,并利用其prompt()方法生成响应流。

@RestController
@RequestMapping("/ai")
@CrossOrigin(origins = "*") // 支持跨域请求
public class ChatController {private final ChatClient chatClient;@Value("classpath:correct-and-expand.st")Resource resource;public ChatController(ChatClient.Builder builder) {this.chatClient = builder.build();}@GetMapping(value = "/steamChat")public Flux<String> steamChat(@RequestParam String input) {PromptTemplate promptTemplate = new PromptTemplate(resource);Prompt prompt = promptTemplate.create(Map.of("input", input));return chatClient.prompt(prompt).stream().content();}
}

这里的PromptTemplate用于读取模板文件,并根据传入的参数动态生成实际的Prompt内容。

6. 运行与测试

确保所有配置无误后,启动Spring Boot应用。您现在可以通过如下URL访问新建的聊天接口:

http://localhost:8080/ai/steamChat?input=你好

这将会触发服务器端的聊天逻辑,并返回由通义千问生成的回答作为Flux数据流输出。

通过上述步骤,我们已经成功地基于Spring Boot集成了Spring AI Alibaba,并实现了基本的聊天功能。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com