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

### 将 Spring AI 与 DeepSeek 集成并使用 OpenAI API 为了使应用程序能够利用 Spring AI 并通过 DeepSeek 的 OpenAI 兼容模式进行交互,开发者需遵循特定配置流程[^1]。 #### 准备工作环境 确保项目已引入必要的依赖库。对于 Maven 构建工具而言,在 `pom.xml` 文件内添加如下依赖项: ```xml <dependency> <groupId>com.deepseek</groupId> <artifactId>deepseek-openai-client</artifactId> <version>${latest.version}</version> </dependency> ``` #### 创建客户端实例 创建个用于访问 DeepSeek 接口的服务类,并初始化支持 OpenAI 协议的客户对象。这允许应用层逻辑如同直接面对官方服务般简洁明了地发起请求。 ```java import com.deepseek.openai.client.OpenAIClient; import org.springframework.stereotype.Service; @Service public class AiService { private final OpenAIClient client; public AiService() { this.client = new OpenAIClient("your_api_key", "https://api.deepseek.com/v1"); } // 方法定义... } ``` #### 发起 API 请求 借助于上述构建好的 `client` 对象执行具体的自然语言处理任务或其他智能计算功能。例如发送提示词获取回复内容的操作可参照下面代码片段所示方式完成。 ```java String response = client.createChatCompletion( Arrays.asList(new ChatMessage(ChatRole.USER, "你好")), Model.ID_003, null ); System.out.println(response); ``` 以上过程展示了怎样快速搭建基于 Java 技术栈的应用程序框架,从而有效连接至第三方提供的先进人工智能服务平台——DeepSeek,同时享受后者所提供的广泛兼容性和便捷易用性的双重优势。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值