项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 3570
使用教程
环境要求
- Java 项目,使用 Maven 或 Gradle 构建
- 已获取 OpenAI API Key(sk- 开头)
- 国内网络调用需准备 HTTP 或 SOCKS5 代理
- 需要可用的 反向代理地址(可选,国内常用)
安装与启动步骤
-
1添加Maven依赖
在项目 pom.xml 的 dependencies 节点中加入该依赖,groupId 为 com.github.plexpt,README 示例版本为 6.0.0。
<dependency> <groupId>com.github.plexpt</groupId> <artifactId>chatgpt</artifactId> <version>6.0.0</version> </dependency> -
2添加Gradle依赖
如果项目用 Gradle 构建,则在 build.gradle 的 dependencies 中加入下面这一行即可。
implementation group: 'com.github.plexpt', name: 'chatgpt', version: '6.0.0' -
3初始化ChatGPT客户端
用 ChatGPT.builder() 依次传入 apiKey、proxy、apiHost,最后调用 init() 完成初始化。
Proxy proxy = Proxys.http("127.0.0.1", 1081); // Proxy proxy = Proxys.socks5("127.0.0.1", 1080); ChatGPT chatGPT = ChatGPT.builder() .apiKey("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") .proxy(proxy) .apiHost("https://api.openai.com/") .build() .init(); -
4发起最简对话
初始化完成后直接调用 chat() 传入问题字符串,返回值就是模型回答,打印即可看到结果。
String res = chatGPT.chat("写一段七言绝句诗,题目是:火锅!"); System.out.println(res); -
5自定义对话参数
进阶用法:用 ChatCompletion.builder() 指定 model、messages、maxTokens、temperature 后再请求。
Message system = Message.ofSystem("你现在是一个诗人,专门写七言绝句"); Message message = Message.of("写一段七言绝句诗,题目是:火锅!"); ChatCompletion chatCompletion = ChatCompletion.builder() .model(ChatCompletion.Model.GPT_3_5_TURBO.getName()) .messages(Arrays.asList(system, message)) .maxTokens(3000) .temperature(0.9) .build(); ChatCompletionResponse response = chatGPT.chatCompletion(chatCompletion); System.out.println(response.toPlainString()); -
6实现流式输出
改用 ChatGPTStream 并传入 StreamListener,ConsoleStreamListener 会把内容逐段打印到控制台。
ChatGPTStream chatGPTStream = ChatGPTStream.builder() .timeout(600) .apiKey("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") .proxy(Proxys.http("127.0.0.1", 1080)) .apiHost("https://api.openai.com/") .build() .init(); ConsoleStreamListener listener = new ConsoleStreamListener(); Message message = Message.of("写一段七言绝句诗,题目是:火锅!"); ChatCompletion chatCompletion = ChatCompletion.builder() .messages(Arrays.asList(message)) .build(); chatGPTStream.streamChatCompletion(chatCompletion, listener); -
7运行控制台测试
没有自己的代码时可先运行仓库自带的 ConsoleChatGPT 类做验证,替换其中的 apiKey 后再启动。
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
apiKey | 是 | OpenAI 密钥,用于身份认证 | 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 |
proxy | 否 | 国内调用需要的 HTTP 或 SOCKS5 代理 | Proxys.http("127.0.0.1", 1081) |
apiHost | 否 | 接口地址,可填反向代理地址 | https://api.openai.com/ |
timeout | 否 | 请求超时时间,单位为秒 | 900 |
model | 否 | 指定使用的模型名称 | ChatCompletion.Model.GPT_3_5_TURBO.getName() |
maxTokens | 否 | 限制回复的最大 token 数 | 3000 |
如何确认成功
运行示例代码后,控制台打印出模型返回的七言绝句内容且无异常抛出,说明 SDK 接入成功。
常见问题
Q:国内调用报连接超时怎么办?
A:README 提示国内需要代理,可在 builder 中配置 .proxy(Proxys.http(...)) 或 .proxy(Proxys.socks5(...)),也可把 apiHost 换成自己的反向代理地址。
Q:如何切换成其他模型?
A:在 ChatCompletion.builder() 里设置 .model(...),README 说明支持 GPT-3.5、GPT-4.0、GPT-4o、GPT-4o-mini。
Q:怎么做打字机式的流式输出?
A:使用 ChatGPTStream 并在 streamChatCompletion 中传入 listener,控制台场景用 ConsoleStreamListener,Web 场景可用 SseStreamListener。
Q:有完整可运行的项目参考吗?
A:README 指向两个示例仓库:chatgpt-online-springboot(Spring Boot Demo)和本仓库内的 ConsoleChatGPT 测试类。
注意事项
- README 示例中的 apiKey 是公开样例,务必替换为自己的真实密钥,避免泄露。
- 依赖版本 6.0.0 为 README 示例版本,实际使用前建议在 Maven Central 确认最新版本号。
- 国内网络环境必须配置代理或反向代理,否则请求可能失败。
- SseStreamListener 可配合 Spring 的 SseEmitter 使用,适合网页端流式对话场景。
核心亮点
- 开箱即用,封装了认证和请求细节,上手快
- 支持 GPT-4o 和 GPT-5,紧跟模型迭代
- 提供流式响应和函数调用,适合构建复杂交互
不足之处
- 非官方 SDK,API 可能随 OpenAI 变动而需跟进
- 文档/社区待观察
适用场景
- Java 后端快速集成 ChatGPT 对话能力
- 构建企业级智能客服或知识库问答机器人
- 在 Spring Boot 等框架中实现 AI 助手功能
替代项目
openai-java、langchain4j、spring-ai
上一篇:openai-kotlin
下一篇:fractalic
同类项目推荐
aikit
开源
不绑 SDK 的 AI 聊天 UI 库,换模型前端不用重写
A comprehensive, SDK-agnostic UI library built on Atomic Design principles. Create b···
skillware
开源
像管理软件包一样管理 AI 技能,让智能体能力随需组合。
A Python framework for modular, self-contained skill management for machines.
meta-prompting
开源
让AI学会拆解任务,调度专家模型,搞定复杂推理
Official implementation of Meta Prompting for AI Systems (https://arxiv.org/abs/2311···
alf
开源
统一框架搭建智能体学习训练管线
Agent Learning Framework https://alf.readthedocs.io
scratchpad
开源
把模糊想法一步步拆成清晰行动路径
This framework works as a form of user/machine calibration, with a focus on user-con···
OgbujiPT
开源
一套代码接入各种大模型,自托管也能轻松搞定
Client-side toolkit for using large language models, including where self-hosted
adk-docs
开源
写代码定义 AI Agent,评估部署一条龙
An open-source, code-first toolkit for building, evaluating, and deploying sophistic···
OpenAgentsControl
开源
先审计划再执行,AI 写码不失控
AI agent framework for plan-first development workflows with approval-based executio···
context-engineering
开源
把 AI 上下文当工程做,输出更稳更准更可控
Context Engineering: Build Consistent, Accurate, Predictable AI Systems
