【大模型】Spring AI对接ChatGpt使用详解

目录

一、前言

二、spring ai介绍

2.1 什么是Spring AI

2.2 Spring AI 特点

2.3 Spring AI 为开发带来的便利

2.4 Spring AI应用领域

2.4.1 聊天模型

2.4.2 文本到图像模型

2.4.3 音频转文本

2.4.4 嵌入大模型使用

2.4.5 矢量数据库支持

2.4.6 用于数据工程ETL框架

三、Spring AI对接ChatGPT

3.1 前置准备

3.2 添加依赖

3.3 接入流程

3.3.1 配置文件

3.3.2 增加一个测试接口

3.3.3 接口测试

3.4 OpenAiChatClient 使用

3.4.1 call使用Prompt传递参数方式1

3.4.2 call使用Prompt传递参数2

3.5 OpenAiImageClient使用

3.5.1 其他参数传递使用情况

3.6 OpenAiAudioTranscriptionClient 使用

3.7 OpenAiAudioSpeechClient使用

四、Spring AI对接Ollama

4.1 Ollama介绍

4.2 Ollama本地部署

4.2.1 下载安装包

4.2.2 执行安装

4.2.3 Ollama部署千问大模型

4.2.4 补充说明

4.3 Spring Ai接入Ollama

4.3.1 引入Ollama依赖

4.3.2 添加配置文件

4.3.3 使用Ollama聊天api

五、写在文末


一、前言

ChatGPT从问世到现在,热度一直不减,GPT的广泛推广和使用,让AI领域变得越来越热闹,于是基于ChatGPT的核心,越来越多的公司和技术团队加入了大模型的领域。在这其中,作为技术框架语言,像主流的python,java等,为了方便开发者对ChatGPT的使用,以及后续生态的融合,也开始在框架层面引入对ChatGPT的支持,本文聊聊spring框架下对ChatGPT的支持的一个新组件spring ai的使用。

二、spring ai介绍

2.1 什么是Spring AI

spring ai官网文档地址:Prompts :: S

### Spring Cloud 项目集成讯飞星火 API 示例 #### 配置 `application.yml` 为了使 Spring Cloud 项目能够调用讯飞星火的API,在`application.yml`文件中需加入如下配置: ```yaml xfun: open: appid: XXXXXXXXXXXXXXXXXXXXXXX apiSecret: XXXXXXXXXXXXXXXXXXXXXXX hostUrl: https://spark-api.xf-yun.com/v2.1/chat apiKey: XXXXXXXXXXXXXXXXXXXXXXX ``` 此部分设置定义了访问星火大模型所需的必要参数,包括应用ID (`appid`)、密钥(`apiSecret`)以及请求地址(`hostUrl`)等[^2]。 #### 创建 StarfireConfig 类 创建一个新的Java类用于封装上述属性,并通过`@ConfigurationProperties`来绑定这些配置项到对象实例中以便后续使用: ```java import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; @Component @ConfigurationProperties(prefix = "xfun.open") public class StarfireConfig { private String appid; private String apiSecret; private String hostUrl; private String apiKey; // Getters and Setters... } ``` 此类的作用是从配置文件读取并映射相应的键值对至成员变量中,从而简化对外部服务的信息管理过程。 #### 实现 Service 层逻辑处理 接下来构建一个Service层的服务类负责具体业务操作,比如发起HTTP请求给星火服务器并与之交互。这里可以利用Spring框架自带的支持或者第三方库如OkHttp/HttpClient来进行网络通信开发工作。 ```java @Service public class ChatService { @Autowired private RestTemplate restTemplate; @Autowired private StarfireConfig starfireConfig; public ResponseEntity<String> sendMessage(String message){ HttpHeaders headers = new HttpHeaders(); HttpEntity<String> entity = new HttpEntity<>(message,headers); return restTemplate.exchange( this.starfireConfig.getHostUrl(), HttpMethod.POST, entity, String.class ); } } ``` 这段代码展示了如何基于已有的配置信息向指定URL发送POST请求,并接收来自远端系统的响应数据。 #### 启动应用程序 最后一步是在项目的入口处添加必要的依赖注入声明和其他初始化设定,确保整个程序结构完整无误之后再运行测试验证功能是否正常运作。 ```java @SpringBootApplication @EnableDiscoveryClient public class MyAiApplication { public static void main(String[] args) { SpringApplication.run(MyAiApplication.class,args); } @Bean @LoadBalanced public RestTemplate restTemplate(){ return new RestTemplate(); } } ``` 以上就是关于怎样在一个典型的微服务体系架构下接入特定的人工智能平台——即讯飞星火的具体实践方法[^1]。
评论 247
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小码农叔叔

谢谢鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值