Spring Boot 接入openai

390 阅读3分钟

今天偶然发现spring boot 提供了openAI的封装,打算试一试.简单说一下使用过程

创建工程

创建spring boot工程比较简单.本地intellij或者spring boot官网都可以创建.注意一下spring boot的版本至少3以上.我选择的是3.2.3.还有一点需要注意的是jdk的版本17以上.我开始创建工程的时候使用的是jdk11.遇到很多问题.改成jdk17都解决了.

创建工程的时候默认选择ai依赖包.最新的0.8.0.创建spring boot工程的时候直接勾选就好了.一些基本的依赖包:lombok、web等都选上.因为验证的时候我是通过http发送的请求.所以引入了web包.提供http服务.

yml配置文件里面至少配置一个key.key需要到openAI的官网去申请.由于国内网络限制,需要找一个外网的服务器.我开始使用vpn访问,但是openAPI网站可以发现vpn.无法正常注册账号.我就申请了一个美国的云服务器.通过云服务器访问openAI注册账号.账号注册之后可以申请key.申请key的时候需要一个国外手机号接收验证码,国内的不支持.只有第一次申请key的时候需要手机验证.以后就不用了.只要找一个临时的手机号就可以.在网上可以找到,需要花一些费用.这里需要注意下:申请的账号可能被封.我很早之前申请过一个账号.被封掉了.这次重新申请的邮箱,重新注册的的key.邮箱最好国外邮箱.我使用gmail.申请key写到配置文件里面.

启动服务

由于工程在本地,vpn又无法使用.我在本地创建写好之后,打jar包.在云服务器上运行,然后通过浏览器访问.验证通过了.这里不提供代码了.因为spring boot官网的ai说明里面有一个helloworld的例子,大家可以自行查看.

配置代理

程序可以执行了.访问openai也通了.但是后期开发验证的时候很麻烦,每次改好了验证都要打包,上传到云服务器验证.为了能在本地访问,我想使用云服务器做一个反向代理.我在云服务器上安装一个nginx.增加代理访问.主要配置:

server {
        listen       8081
        proxy_ssl_server_name on;
        proxy_ssl_session_reuse off;
        location /api {
	proxy_pass https://api.openai.com/;
        }
    }

spring boot ai 提供一个base-url默认地址是:api.openai.com; 需要在配置文件里面增加: spring.ai.openai.base-url: http://云服务器IP:8081/api/. 这样配置之后spring boot ai默认访问云服务器地址,云服务器转发到openAI. 当然了,前提是本地服务器和云服务器网络没有限制.

总结问题

在申请云服务器之后一定要和云服务器提供商确认一下如何配置端口访问权限.我在这里耽误很多时间. 经过以上配置就可以在本地开发验证openAI接口了.具体使用方法,看spring boot ai的文档.说的很详细.而且有代码执行用例. 我也在网上查了一些文章,说的也比较详细.这里不再赘述了. 本文没有详细的说具体配置文件、工程搭建.因为在网上很多人都说了.而且官网也有用例. 对于云服务器的申请和配置大家各自爱好吧.我比较倾向阿里服务器.不好用随时退.申请国外手机号我没有提供具体网址.因为我使用的网址感觉不正规.过段时间可能就没了.所以大家网上查找吧. 本文主要提供一个使用思路.具体如何使用还需去官网学习,官网说的很详细.