Skip to content

ChatGPT Java SDK。支持 GPT3.5、 GPT4 API。开箱即用。

License

Notifications You must be signed in to change notification settings

YttriumC/chatgpt4java

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ChatGPT Java API

OpenAI ChatGPT 的SDK。觉得不错请右上角Star

查询是阻塞的

感谢 PlexPt.

问题表

共约67万个问题,欢迎拿去炼丹

功能特性

功能 特性
GPT 3.5 支持
GPT 4.0 支持
GPT 4.0-32k 支持
流式对话 支持
阻塞式对话 支持
前端
上下文 支持
多KEY轮询 支持
代理 支持
图像生成 支持

使用指南

maven

<project>
    <repositories>
        <repository>
            <id>snapshots</id>
            <name>snapshots</name>
            <url>https://s01.oss.sonatype.org/content/repositories/snapshots/</url>
            <layout>default</layout>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>
    <dependency>
        <groupId>cf.vbnm.chatgpt</groupId>
        <artifactId>ChatGPT4Java</artifactId>
        <version>1.1.6-jre8-SNAPSHOT</version>
        <!--如果使用Spring 6.0+, 需要依赖这个版本-->
        <version>1.1.7-jre17-SNAPSHOT</version>
    </dependency>
</project>

gradle

repositories {
    maven {
        url "https://s01.oss.sonatype.org/content/repositories/snapshots/"
    }
}
implementation "cf.vbnm.chatgpt:ChatGPT4Java:1.1.5-jre17-SNAPSHOT"

最简使用

也可以使用这个类进行测试 ConsoleChatGPT

import cf.vbnm.chatgpt.client.RestTemplateGPTClient;
import cf.vbnm.chatgpt.EnableChatGPTClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@EnableChatGPTClient(keys = {"your keys"})
@Component
class Test { //国内需要代理
    @Autowired
    private RestTemplateGPTClient chatGPT;

    public void test() {
        String res = chatGPT.chat("写一段七言绝句诗,题目是:火锅!");
        System.out.println(res);
    }
}

进阶使用

        //国内需要代理 国外不需要
@Autowired
private ChatGPT chatGPT;

        Message system=Message.ofSystem("你现在是一个诗人,专门写七言绝句");
        Message chatMessage=Message.of("写一段七言绝句诗,题目是:火锅!");

        ChatCompletion chatCompletion=ChatCompletion.builder()
        .model(ChatCompletion.Model.GPT_3_5_TURBO.getName())
        .chatMessages(Arrays.asList(system,chatMessage))
        .maxTokens(3000)
        .temperature(0.9)
        .build();
        ChatCompletionResponse response=chatGPT.chatCompletion(chatCompletion);
        Message res=response.getChoices().get(0).getMessage();
        System.out.println(res);

流式使用

    @Autowired
private ChatGPT chatGPT;
        ChatGPT chatGPTStream;


        ConsoleStreamListener listener=new ConsoleStreamListener();
        Message chatMessage=Message.of("写一段七言绝句诗,题目是:火锅!");
        ChatCompletion chatCompletion=ChatCompletion.builder()
        .chatMessages(Arrays.asList(chatMessage))
        .build();
        chatGPTStream.streamChatCompletion(chatCompletion,listener);

多KEY自动轮询

只需替换chatGPT构造部分

import cf.vbnm.chatgpt.EnableChatGPTClient;

@EnableChatGPTClient(keys = {"key1", "key2", "..."})

上下文

参考 ChatContextHolder.java

常见问题

哪些地区不能用 以下国家IP不支持使用:中国(包含港澳台) 俄罗斯 乌克兰 阿富汗 白俄罗斯 委内瑞拉 伊朗 埃及!!
有封号风险吗 充值的没有。你免费白嫖不封你封谁。
我是尊贵的Plus会员,能用吗 能用,照封不误。PLUS调用API没啥区别
GPT4.0 怎么用 申请 https://openai.com/waitlist/gpt-4-api
api.openai.com ping不通? 禁ping,用curl测试连通性
显示超时? IP不好,换个IP
显示Your access was terminated due to violation of our policies... 你号没了,下一个
显示That model is currently overloaded with other requests. You can retry your request 模型过载,官方炸了,重试
生成的图片不能用? 图片是它瞎编的,洗洗睡吧
如何充值? 用国外信用卡,国内的不行
返回http 401 API 密钥写错了/没写
返回http 429 请求超速了,或者官方超载了。充钱可解决
返回http 500 服务器炸了

About

ChatGPT Java SDK。支持 GPT3.5、 GPT4 API。开箱即用。

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 100.0%