Spring Boot 快速接入 ChatGPT

本文正在参加 人工智能创作者扶持计划

一、简介

自从OpenAI-ChatGPT火了之后,围绕OpenAI-ChatGPT的应用的话题就层出不穷,大模型人工智能的发展是不可阻挡的趋势。lucy-chat是Java环境下快速接入OpenAI-ChatGPT大模型人工智能的Java解决方案,我们无法创造工具,但也要更好的使用工具,该包简化了接入流程,k开发者可以非常方便的引入并使用ChatGPT提供的相关功能。 

二、快速接入

lucy-chat提供了两种形式接入服务,完成集成或者独立部署后可以访问[部署地址]/doc.html调用相关接口。

2.1 创建项目

首先,使用IntelliJ IDEA构建一个Spring Boot工程。

image.png

image.png
接着,我们启动项目,如果没有任何的报错。当我们在浏览器中输入:http://localhost:8080时会输出如下内容。

image.png
 

2.2 Jar引入

在引入任何 Lucy系列依赖之前,需要完成jitpack镜像仓库的配置,如下。

<repositories>
        <repository>
            <id>jitpack.io</id>
            <url>https://www.jitpack.io</url>
        </repository>
</repositories>

然后,我们在Spring Boot项目中添加lucy-chat依赖,当前默认1.0.0-r4。

<dependency>
    <groupId>com.gitee.kindear</groupId>
    <artifactId>lucy-chat</artifactId>
    <version>${version}</version>
</dependency>

添加依赖后,需要刷新一下项目才能完成lucy-chat依赖,如下图。

image.png

依赖完成之后,我们打开项目的启动文件,然后启用 knife4j 文档,即需要在启动类上配置 @EnableKnife4j,并将启动的入口改为LucyChatApplication。

@EnableKnife4j
@SpringBootApplication
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(LucyChatApplication.class, args);
    }
}

使用lucy-chat前,还需要在配置文件中配置如下文件信息。

spring.application.name=lucy-chat
# 运行端口
server.port=8080
# swagger 匹配
spring.mvc.pathmatch.matching-strategy=ant_path_matcher
# chat-gpt api-key
# 申请地址 https://platform.openai.com/account/api-keys
openai.chat.key=
# chat-gpt proxy host
# 配置代理地址 请参阅 https://www.v2ex.com/t/921689
openai.chat.host=
# 连接池最大连接数
forest.max-connections=1000
# 连接超时时间,单位为毫秒
forest.connect-timeout=30000
# 数据读取超时时间,单位为毫秒
forest.read-timeout=30000

要想能够正常访问openAi的Api,需要去openAi的官网获取一个api-key,申请的链接为:

https://platform.openai.com/account/api-keys

image.png

2.3 独立服务

当然,我们也可以将lucy-chat部署成独立的服务。首先,需要从开源地址下载项目:

git clone https://gitee.com/Kindear/lucy-chat

接着,修改POM文件中打包方式,即恢复 <build>相关注释掉的内容,参考如下。

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>${spring-boot.version}</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

然后参考上文的配置文件相关内容修改相关配置文件, 将项目中提供的 key为私人 key就可以了。

 

三、测试

完成配置后,可以访问[服务地址]/chat/web进入WebChat页面,可以在其他前端应用中,直接使用Iframe标签引入。
image.png
 

lucy-chat源码:https://gitee.com/Kindear/lucy-chat

著有《React Native移动开发实战》1,2、《Kotlin入门与实战》《Weex跨平台开发实战》、《Flutter跨平台...

5.4k 声望
15.2k 粉丝
0 条评论
推荐阅读
深入理解 Rollup 的插件机制
上一节我们学会了 Rollup 构建工具的使用,相信你已经对 Rollup 的基础概念和使用有了基本的掌握。同时我们也知道,仅仅使用 Rollup 内置的打包能力很难满足项目日益复杂的构建需求。对于一个真实的项目构建场景...

xiangzhihong阅读 561

预测2024年之后的前端开发模式
最近AIGC(AI Generated Content,利用AI生成内容)非常热,技术圈也受到了很大冲击。目前来看,利用LLM(Large Language Model,大语言模型)辅助开发还停留在非常早期的阶段,主要应用是辅助编码,即用自然语言...

卡颂15阅读 2.4k

封面图
四月 AIGC Hackathon 参赛记
春节过后,ChatGPT 彻底出圈,带动整个 AIGC 领域备受瞩目。于是乎各项赛事活动纷纷上马,都想抢先收割一波流量,也抢先开始对未来的探索。我也积极报名参加,一不小心报了三个 Hackathon 之多:

Meathill7阅读 1.1k评论 3

封面图
略施小计,拥有自己的GPT
ChatGPT一经发布就在AI圈引起轰动,GPT-4和chagpt-plugin让OpenAI和其他同行拉开了更大的差距。由于某些原因,我们可能无法亲身体验ChatGPT的神奇之处。但现在,如果你还没有体验过ChatGPT,就像10年前没有购买比...

我的小熊不见了11阅读 2k

封面图
国内开发者如何最小成本调用openai的接口?
如果你也被以上问题困扰,不妨往下看,你现在面临的正是我所经历的,这篇文章或许能够给你提供一些帮助。 针对以上问题有很多种解决方案,网络受限我们可以选择购买vpn;token过期我们可以升级plus;后端调不通op...

程序员An3阅读 1.7k评论 3

封面图
搭建 ChatGPT Web 版详细教程,可免费体验
ChatGPT 是一款由 OpenAI 开发的语言模型,最近实在是太火了,还有国内百度的文言一心,但由于无法科学上网,很多人无法体验 ChatGPT,所以我自费买了国外的服务器,研究了一下如何搭建了ChatGPT Web 版。

echeverra4阅读 7k评论 2

封面图
免费1年服务器,部署个ChatGPT专属网页版
api.openai.com port 443: Connection timed out 你是不在调用 ChatGPT 接口的时候报错 443 了,哈哈哈,我的也是。当小傅哥发现自己开发的《ChatGPT AI 问答助手》已经不工作了,搜索了下为啥会 443 呢,原来是 ...

小傅哥3阅读 1.6k

封面图

著有《React Native移动开发实战》1,2、《Kotlin入门与实战》《Weex跨平台开发实战》、《Flutter跨平台...

5.4k 声望
15.2k 粉丝
宣传栏