SpringAI整合OpenAI系列(一)

SpringAI整合OpenAI系列(一)

一、OpenAI账号申请

国内访问openAI的服务有多种方式,一种是利用科学上网工具(访问比较慢)代理全局的网络请求openAI的服务,另外一种是通过三方提供的接口转发请求openAI的服务,但是需要花钱。我利用这个三方的平台,https://api.xty.app/ 实现了相关的功能

  1. 首先注册一个账号:https://api.xty.app/login

  1. 创建一个可用的令牌

  1. token申请成功

二、项目创建

springAI的官方文档:https://spring.io/projects/spring-ai 官方文档介绍得很简单,只要加载一个openai.api-key的值,就能启动了,那么让我们来试一下,其中需要注意的是使用的springboot3.4.1版本,jdk的版本是:17.0.0 (我本地是用sdkman对jdk版本进行管理的)

  1. 创建项目

这样项目就创建完成了,接下来我们处理相关的配置。

  1. 配置信息

    在application.properties 中增加这些配置

spring.ai.openai.base-url=https://hk.xty.app
spring.ai.openai.api-key=申请的token
#gpt-3.5-turbo、gpt-4o, gpt-4o-mini, gpt-4-turbo
spring.ai.openai.chat.options.model=gpt-3.5-turbo

  1. 相关接口的实现和调用

    创建一个ChatController,注入OpenAiChatModel,接下来就可以调用openAI的服务了

    @RestController@RequestMapping("/ai")
    public class ChatController {
      
        private final OpenAiChatModel openAiChatModel;
      
        @Autowired    
       public ChatController(OpenAiChatModel openAiChatModel) {
          this.openAiChatModel = openAiChatModel;    
        }
      
        @GetMapping("/chat")    
       public String chat(@RequestParam(value = "msg")String msg){
          return openAiChatModel.call(msg);    
        }
      
    }
    

这样简单的springAI项目就算完成了

三、思考

为什么我们不直接用http调用的方式实现openAI的调用,其实主要我们就是想利用springAI的特性:像下文中提到的Structured Outputs结构化输出,就是调用AI以后按照你想要的结构提供结构;像Tools/Function Calling,允许模型实时访问相关的方法啊;还有Embedding的能力啊,关于这些功能的介绍,大家可以持续关注《SpringAI整合OpenAI系列》

参考链接:

spring ai配置: https://flowus.cn/share/688cb0aa-e203-4c39-97f5-6c3bd9e0ffcc

spring官方文档: https://github.com/spring-projects/spring-ai

openAI官方文档: https://platform.openai.com/docs/overview

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值