前提条件:
-
首先需要申请token,有两种方式:一是可以在ChatGPT官网申请(官网申请的token我这显示没有额度,你们可以自己试一试,免费的),二是在淘宝等软件上购买ChatGPT使用额度
-
需要用VPN来访问ChatGPT,由于ChatGPT是国外的网站,所以需要使用VPN来访问,或者可以通过购买淘宝等软件上的中转使用额度(淘宝上购买的一般分为两种,一种是直连模式,需要VPN;另一种是中转模式,无需VPN即可访问,但是速度比直连的慢)
操作步骤:
-
下面使用的是淘宝上购买的使用额度来操作的,购买后根据他们的操作获取token即可
-
添加依赖
<dependencies>
<dependency>
<groupId>io.github.asleepyfish</groupId>
<artifactId>chatgpt</artifactId>
<version>1.3.6</version>
</dependency>
</dependencies>
- 编写配置文件
chatgpt:
#获取的token
token: xxxxxxx
#代理地址
proxy-host: 127.0.0.1
#代理端口号
proxy-port: 7890
#从ChatGPT官网获取的token填写https://api.openai,自己购买的则填写卖家发送给你的地址
base-url: xxxxxxx
#模型,可以更换成其它的
chat-model: gpt-4
- 编写ChatGPT工具类,
PS:以下是常用的几个方法,需要其它方法的查看源代码获取
import com.theokanning.openai.model.Model;
import io.github.asleepyfish.util.OpenAiUtils;
import lombok.SneakyThrows;
import org.springframework.stereotype.Component;
import javax.servlet.http.HttpServletResponse;
import java.io.OutputStream;
import java.util.List;
@Component
public class ChatgptUtils {
/**
* 生成回答
*
* @param content 问题
* @return
*/
public List<String> createChatCompletion(String content) {
return OpenAiUtils.createChatCompletion(content);
}
/**
* 生成图片
*
* @param content 图片的描述
* @return
*/
public List<String> createImage(String content) {
return OpenAiUtils.createImage(content);
}
/**
* 下载图片
*
* @param content 图片的描述
* @param os
*/
public void downloadImage(String content, OutputStream os) {
OpenAiUtils.downloadImage(content, os);
}
/**
* 生成流式回答
*
* @param content 问题
* @param response
*/
@SneakyThrows
public void createStreamChatCompletion(String content, HttpServletResponse response) {
response.setContentType("text/event-stream");
response.setCharacterEncoding("UTF-8");
response.setHeader("Cache-Control", "no-cache");
OpenAiUtils.createStreamChatCompletion(content, response.getOutputStream());
}
/**
* 获取模型列表
*
* @return
*/
public List<Model> listModels() {
return OpenAiUtils.listModels();
}
}
- 直接调用即可
前提条件:
-
首先需要申请token,有两种方式:一是可以在ChatGPT官网申请(官网申请的token我这显示没有额度,你们可以自己试一试,免费的),二是在淘宝等软件上购买ChatGPT使用额度
-
需要用VPN来访问ChatGPT,由于ChatGPT是国外的网站,所以需要使用VPN来访问,或者可以通过购买淘宝等软件上的中转使用额度(淘宝上购买的一般分为两种,一种是直连模式,需要VPN;另一种是中转模式,无需VPN即可访问,但是速度比直连的慢)
操作步骤:
-
下面使用的是淘宝上购买的使用额度来操作的,购买后根据他们的操作获取token即可
-
添加依赖
<dependencies>
<dependency>
<groupId>io.github.asleepyfish</groupId>
<artifactId>chatgpt</artifactId>
<version>1.3.6</version>
</dependency>
</dependencies>
- 编写配置文件
chatgpt:
#获取的token
token: xxxxxxx
#代理地址
proxy-host: 127.0.0.1
#代理端口号
proxy-port: 7890
#从ChatGPT官网获取的token填写https://api.openai,自己购买的则填写卖家发送给你的地址
base-url: xxxxxxx
#模型,可以更换成其它的
chat-model: gpt-4
- 编写ChatGPT工具类,
PS:以下是常用的几个方法,需要其它方法的查看源代码获取
import com.theokanning.openai.model.Model;
import io.github.asleepyfish.util.OpenAiUtils;
import lombok.SneakyThrows;
import org.springframework.stereotype.Component;
import javax.servlet.http.HttpServletResponse;
import java.io.OutputStream;
import java.util.List;
@Component
public class ChatgptUtils {
/**
* 生成回答
*
* @param content 问题
* @return
*/
public List<String> createChatCompletion(String content) {
return OpenAiUtils.createChatCompletion(content);
}
/**
* 生成图片
*
* @param content 图片的描述
* @return
*/
public List<String> createImage(String content) {
return OpenAiUtils.createImage(content);
}
/**
* 下载图片
*
* @param content 图片的描述
* @param os
*/
public void downloadImage(String content, OutputStream os) {
OpenAiUtils.downloadImage(content, os);
}
/**
* 生成流式回答
*
* @param content 问题
* @param response
*/
@SneakyThrows
public void createStreamChatCompletion(String content, HttpServletResponse response) {
response.setContentType("text/event-stream");
response.setCharacterEncoding("UTF-8");
response.setHeader("Cache-Control", "no-cache");
OpenAiUtils.createStreamChatCompletion(content, response.getOutputStream());
}
/**
* 获取模型列表
*
* @return
*/
public List<Model> listModels() {
return OpenAiUtils.listModels();
}
}
- 直接调用即可