您的位置:首页 > 房产 > 建筑 > 平台代理是什么工作_南京快速建站模板下载_精准引流的网络推广_怎么做网站宣传

平台代理是什么工作_南京快速建站模板下载_精准引流的网络推广_怎么做网站宣传

2024/12/23 14:30:38 来源:https://blog.csdn.net/linwu_2006_2006/article/details/144025033  浏览:    关键词:平台代理是什么工作_南京快速建站模板下载_精准引流的网络推广_怎么做网站宣传
平台代理是什么工作_南京快速建站模板下载_精准引流的网络推广_怎么做网站宣传

之所以想写这一系列,是因为之前工作过程中有几次项目是从零开始搭建的,而且项目涉及的内容还不少。在这过程中,遇到了很多棘手的非业务问题,在不断实践过程中慢慢积累出一些基本的实践经验,认为这些与业务无关的基本的实践经验其实可以复刻到其它项目上,在行业内可能称为脚手架,因此决定将此java基础脚手架的搭建总结下来,分享给大家使用。

注意由于框架不同版本改造会有些使用的不同,因此本次系列中主要使用基本框架是 spring-boo-2.3.12.RELEASE和spring-cloud.-Hoxton.SR12,所有代码都在commonFramework项目上:https://github.com/forever1986/commonFramework/tree/master

目录

  • 1 AI 集成
    • 1.1 代码演示
      • 1.1.1 新建ai-biz子模块,引入以下依赖
      • 1.1.2 配置通义千问的配置
      • 1.1.3 定义读取配置的QwenConfigProperties
      • 1.1.4 定义controller接口
      • 1.1.5 测试访问

1 AI 集成

目前的大模型已经具备很好的通用能力,基于大模型的落地应用也接连变成可行性,因此在java后端集成大模型能力也是必不可少。市面上的大模型有很多,其实能力差不多,如果直接使用作为应用可能还达不到商业需求,那么一般我们会做prompt、微调、RAG(可参考我的写的博客《检索增强生成RAG系列》)、KAG等不同手段增强实际场景的准确率,从而达到可应用级。
而在java后端中,一般通过调用其提供的生成能力集成。大模型一般提供2种方式集成,一个是通过API接口,一个是通过SDK。其中SDK每个厂家都会发布,而spring-AI有一个统一规范。基于spring-AI这个规范,厂家也会制定一个starter方式使得开发者很方便。spring-AI对环境(JDK17及以上)和框架(springboot3.2及以上)要求比较高,由于我们的commonFramework是基于jdb1.8以及springboot2.x,因此本次演示使用厂家发布的SDK。

1.1 代码演示

这里访问通义千问大模型,使用其发布的SDK :dashscope-sdk-java
先决条件:在阿里云的百炼平台申请API-KEY

参考ai-biz子模块

1.1.1 新建ai-biz子模块,引入以下依赖

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><dependency><groupId>com.alibaba</groupId><artifactId>dashscope-sdk-java</artifactId><version>2.14.4</version></dependency>
</dependencies>

1.1.2 配置通义千问的配置

在yaml文件中配置senders

server:port: 9986
spring:application:name: ai-biz-serviceai:qwen:api-key : 你的API-KEY(在阿里云的百炼平台申请一个)chat:options:systeMessage : 你是一个问答小助手!model : qwen-turbotemperature : 0.7

1.1.3 定义读取配置的QwenConfigProperties

@ConfigurationProperties(prefix = "spring.ai.qwen.chat.options"
)
@Data
@NoArgsConstructor
public class QwenConfigProperties {private String systeMessage = "";private String model = "";private Float temperature = 0.9f;}

1.1.4 定义controller接口

@EnableConfigurationProperties(QwenConfigProperties.class)
@RestController
public class AIController {@Value("${spring.ai.qwen.api-key}")private String apiKey = "";@Autowiredprivate QwenConfigProperties qwenConfigProperties;@GetMapping("/ai/generate")public String generate(@RequestParam(value = "message", defaultValue = "你是谁?") String message) throws NoApiKeyException, InputRequiredException {Generation gen = new Generation();Message systemMsg = Message.builder().role(Role.SYSTEM.getValue()).content(qwenConfigProperties.getSysteMessage()).build();Message userMsg = Message.builder().role(Role.USER.getValue()).content(message).build();GenerationParam param = GenerationParam.builder().apiKey(apiKey).model(qwenConfigProperties.getModel()).temperature(qwenConfigProperties.getTemperature()).messages(Arrays.asList(systemMsg, userMsg)).resultFormat(GenerationParam.ResultFormat.MESSAGE).build();GenerationResult result = gen.call(param);GenerationOutput output = result.getOutput();return output.getChoices().get(0).getMessage().getContent();}}

1.1.5 测试访问

访问测试

版权声明:

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

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