最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

JAVA整合ChatGPT

业界 admin 3浏览 0评论

前提条件:

  1. 首先需要申请token,有两种方式:一是可以在ChatGPT官网申请(官网申请的token我这显示没有额度,你们可以自己试一试,免费的),二是在淘宝等软件上购买ChatGPT使用额度

  2. 需要用VPN来访问ChatGPT,由于ChatGPT是国外的网站,所以需要使用VPN来访问,或者可以通过购买淘宝等软件上的中转使用额度(淘宝上购买的一般分为两种,一种是直连模式,需要VPN;另一种是中转模式,无需VPN即可访问,但是速度比直连的慢)

操作步骤:

  1. 下面使用的是淘宝上购买的使用额度来操作的,购买后根据他们的操作获取token即可

  2. 添加依赖

<dependencies>
        <dependency>
            <groupId>io.github.asleepyfish</groupId>
            <artifactId>chatgpt</artifactId>
            <version>1.3.6</version>
        </dependency>
    </dependencies>
  1. 编写配置文件
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
  1. 编写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();
    }
}
  1. 直接调用即可

前提条件:

  1. 首先需要申请token,有两种方式:一是可以在ChatGPT官网申请(官网申请的token我这显示没有额度,你们可以自己试一试,免费的),二是在淘宝等软件上购买ChatGPT使用额度

  2. 需要用VPN来访问ChatGPT,由于ChatGPT是国外的网站,所以需要使用VPN来访问,或者可以通过购买淘宝等软件上的中转使用额度(淘宝上购买的一般分为两种,一种是直连模式,需要VPN;另一种是中转模式,无需VPN即可访问,但是速度比直连的慢)

操作步骤:

  1. 下面使用的是淘宝上购买的使用额度来操作的,购买后根据他们的操作获取token即可

  2. 添加依赖

<dependencies>
        <dependency>
            <groupId>io.github.asleepyfish</groupId>
            <artifactId>chatgpt</artifactId>
            <version>1.3.6</version>
        </dependency>
    </dependencies>
  1. 编写配置文件
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
  1. 编写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();
    }
}
  1. 直接调用即可
发布评论

评论列表 (0)

  1. 暂无评论