Spring Boot 整合 Spring AI 实现项目接入ChatGPT(OpenAl的调用,开发属于你自己Al,体验Al的乐趣)本文仅讲解聊天方式的实现,关于gpt的其他东西,参考接下来的文章

目录

前言

Spring Al与Springboot整合的步骤(本文仅讲解聊天方式的实现,关于gpt的其他东西,参考接下来的文章)

第一步:建项目:创建一个Spring Boot项目(JDK17起步);

第二步:加依赖

2.1 加入spring-ai-openai-spring-boot-starter依赖; 

2.3 配置项目依赖下载的仓库:(因为spring ai在中心仓库还没有依赖,所以需要去网站下载)

 第三步:配文件(这个的api -key就是你自己的,如果没有私信我即可)

第四步: 聊天功能写具体的代码实现

        4.1 因为所有的接口的父接口都继承与Model,可以看到聊天方式的实现就是注入OpenAiChatModel 因为这个springboot自动装配的功能,只需要注入即可

 第一种: 聊天的第一种实现方式(调用call方法,直接传入msg,这个叫做同步API)

   5.1 运行程序结果

 第二种 聊天的程序的第二种实现方式(调用call方法,new一个Prompt对象再传入msg)

  6.1  运行程序结果​编辑

第三种:聊天的程序的第三种实现方式(比上一个方法多了一个关于gpt参数的设置)

7.1 运行程序结果

第四种:聊天的程序的第三种实现方式(调用stream方法,用法和call一样,只不过返回值不一样,Stream返回的是Fiux,叫做数据的序列一序列的数据,一个一个的数据返回,调用Stream叫做流式API)


前言

随着人工智能技术的迅猛发展,越来越多的应用程序开始集成人工智能功能,从而提供更智能、更个性化的体验。诸如ChatGPT等开放性大型语言模型的出现,使得自然语言处理和对话系统的开发变得更加便捷和普及。这些技术已经在社交媒体、客户服务、教育等领域展示出巨大的潜力,对于提升用户体验和提高工作效率起到了关键作用。

Spring Al的官网:Spring | Home

Spring AI提供的API支持跨人工智能提供商的 聊天,文本到图像,和嵌入模型等,同时支持同步和流API选项

开发springAl程序的前期准备准备工作

  1. 本机电脑要可以访问OpenAI网站 https://openai.com/
  2. 要有OpenAIAPI Key(注册账号或者购买,如果没有可以私信联系我)

Spring Al与Springboot整合的步骤(本文仅讲解聊天方式的实现,关于gpt的其他东西,参考接下来的文章)

第一步:建项目:创建一个Spring Boot项目(JDK17起步);

第二步:加依赖

2.1 加入spring-ai-openai-spring-boot-starter依赖; 
<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-openai-spring-boot-starter</artifactId>
</dependency>

2.2 继承父项目:

<dependencyManagement>
    <dependencies>
	<dependency>
	    <groupId>org.springframework.ai</groupId>
	    <artifactId>spring-ai-bom</artifactId>
	    <version>${spring-ai.version}</version>
	    <type>pom</type>
	    <scope>import</scope>
	 </dependency>
    </dependencies>
</dependencyManagement>
2.3 配置项目依赖下载的仓库:(因为spring ai在中心仓库还没有依赖,所以需要去网站下载)
<repositories>
    <repository>
        <id>spring-milestones</id>
        <name>Spring Milestones</name>
        <url>https://repo.spring.io/milestone</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>

 第三步:配文件(这个的api -key就是你自己的,如果没有私信我即可)

spring:
  ai:
    openai:
      api-key:  (换成你的api-key)
      base-url: https://api.openai.com(分为代理地址和直连地址)

第四步: 聊天功能写具体的代码实现

        4.1 因为所有的接口的父接口都继承与Model,可以看到聊天方式的实现就是注入OpenAiChatModel 因为这个springboot自动装配的功能,只需要注入即可

 第一种: 聊天的第一种实现方式(调用call方法,直接传入msg,这个叫做同步API)

public class ChatController {

    /**
     * 自动注入的
     */
    @Resource
    private OpenAiChatModel openAiChatModel;

    /**
     * 聊天的方法。底层调用的openAi的方法
     * RequestParam 接受参数
     * msg 就是我们提的问题
     * @return
     */
    @RequestMapping("/ai/chat")
    public String chat(@RequestParam("msg") String msg){
        String called = openAiChatModel.call(msg);
        return called;
    }
   5.1 运行程序结果

 第二种 聊天的程序的第二种实现方式(调用call方法,new一个Prompt对象再传入msg)

/**
     * 聊天的方法。底层调用的openAi的方法
     * RequestParam 接受参数
     * msg 就是我们提的问题
     * ChatResponse 返回的是一个josn串
     * chatResponse.getResult().getOutput().getContent();只获取文本
     * @return
     */

    @RequestMapping("/ai/chat2")
    public Object chat2(@RequestParam("msg") String msg){
        ChatResponse chatResponse = openAiChatModel.call(new Prompt(msg));
        return chatResponse.getResult().getOutput().getContent();
    }
  6.1  运行程序结果

第三种:聊天的程序的第三种实现方式(比上一个方法多了一个关于gpt参数的设置)

/**
     *OpenAiChatOptions.builder() 传入的一个参数,可以控制大模型的设置
     * @param msg
     * @return
     */

    @RequestMapping("/ai/chat3")
    public Object chat3(@RequestParam("msg") String msg){
        ChatResponse chatResponse = openAiChatModel.call(new Prompt(msg, OpenAiChatOptions.builder()
                //.withModel("gpt-4-32k")  //gpt的版本 ,32K是参数,参数越高,回答问题越准确
                .withTemperature(0.4F)  //温度值,温度越高,回答的准确率越低,温度越低,回答的准确率越高
                .build()));
        return chatResponse.getResult().getOutput().getContent();
    }
7.1 运行程序结果

当然上述的可选参数不仅可以在代码中配置,也可以在配置文件中配置

注意:如果代码中写了关于gpt的参数,配置文件中也配置了参数,那么以代码中为主

第四种:聊天的程序的第三种实现方式(调用stream方法,用法和call一样,只不过返回值不一样,Stream返回的是Fiux,叫做数据的序列一序列的数据,一个一个的数据返回,调用Stream叫做流式API)

/**
     *OpenAiChatOptions.builder() gpt的可选参数
     * @param msg
     * @return
     */
    @RequestMapping("/ai/chat4")
    public Object chat4(@RequestParam("msg") String msg){
        Flux<ChatResponse> flux = openAiChatModel.stream(new Prompt(msg, OpenAiChatOptions.builder()
                //.withModel("gpt-4-32k")  //gpt的版本 ,32K是参数,参数越高,回答问题越准确
                .withTemperature(0.4F)  //温度值,温度越高,回答的准确率越低,温度越低,回答的准确率越高
                .build()));
        return flux.collectList();
    }

上述就是关于Spring Boot 整合 Spring AI 实现项目接入ChatGPT,本文仅介绍了关于聊天方面的实现方式,接下来的文章介绍关于如何生成图片以及语言的转换。

源码地址code-ai: 关于spring ai的各个练习

有任何问题可以私信我,以及欢迎大家加入下面的群聊来探讨。以及关于没有open ai的key 的也可以私信我

 

  • 11
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
您好!要结合FFmpeg和OpenAL实现音视频代码,您可以按照以下步骤进行操作: 1. 首先,您需要安装FFmpeg和OpenAL库。您可以在官方网站上找到它们的最新版本,并按照对应的文档进行安装。 2. 使用FFmpeg库,您可以解码音视频文件并将其转换为原始音频和视频数据。您可以使用FFmpeg提供的API来读取音视频文件,并将其解码为原始数据。 3. 一旦您有了原始音频和视频数据,您可以使用OpenAL库来播放或处理音频数据。OpenAL是一个跨平台的音频库,它提供了一套API来管理音频设备、音源和监听器,并提供了许多功能来控制音频的播放、混音和空间化效果。 4. 在使用OpenAL之前,您需要初始化OpenAL设备和上下文。这将为您提供与音频设备的连接,并创建一个执行音频操作所需的上下文。 5. 接下来,您可以创建OpenAL源(Source)并将解码后的音频数据绑定到该源上。然后,您可以通过调用OpenAL的播放函数来播放音频数据。 6. 如果您想要添加音频效果或处理,OpenAL提供了各种功能来实现这些。例如,您可以使用OpenAL提供的过滤器来实现均衡器、混响和3D音效等效果。 7. 对于视频部分,您可以使用原始视频数据进行自定义处理,或者使用其他库(如OpenGL或SDL)来显示视频画面。 需要注意的是,整合FFmpeg和OpenAL需要一定的编程经验和理解音视频编码的基础知识。您可以参考FFmpeg和OpenAL的官方文档,并查找相关的示例代码来帮助您更好地理解和实现您的需求。 希望这些信息对您有所帮助!如果您有任何更多的问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Agnoni

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值