[Android Studio] ChatGPT 对话Demo
本帖最后由 PastYiHJ 于 2023-12-24 14:43 编辑> 声明:此项目免费且作为开源学习使用。并且不会有任何形式的卖号、付费服务、讨论群、讨论组等行为。谨防受骗。
## 功能
### 支持多平台GPT服务平台
+ (https://platform.openai.com/docs/guides/gpt/chat-completions-api)
+ (https://github.com/songquanpeng/one-api)
+ (https://api2d.com/)
+ [其他代{过}{滤}理服务]()
### 演示
![](https://jsd.cdn.zzko.cn/gh/PastKing/image-tuchuang@master/20231224/1703399810015.jpg)
![](https://jsd.cdn.zzko.cn/gh/PastKing/image-tuchuang@master/20231224/1703399810011.jpg)
![](https://jsd.cdn.zzko.cn/gh/PastKing/image-tuchuang@master/20231224/1703399810004.jpg)
## 部署
1. 下载最新版的(https://developer.android.google.cn/studio?hl) 并安装
2. 打开项目
3. 找到MainActivity.java 路径如下
> app/src/main/java/com/example/gpt/MainActivity.java
4. Ctrl + F 搜索方法:callAPI
5. 主要修改的内容如下
```java
try {
// 创建messages数组,包含用户角色和问题内容
JSONArray messagesArray = new JSONArray();
JSONObject systemMessage = new JSONObject();
systemMessage.put("role", "system");
systemMessage.put("content", "You are ChatGPT, a large language model trained by OpenAI. Follow the user's instructions carefully. Respond using markdown.");
JSONObject userMessage = new JSONObject();
userMessage.put("role", "user");
userMessage.put("content", question);
messagesArray.put(systemMessage);
messagesArray.put(userMessage);
// 构建完整的JSON请求体
jsonBody.put("model", "gpt-3.5-turbo"); // 模型选择
jsonBody.put("messages", messagesArray);
}catch (JSONException e) {
throw new RuntimeException(e);
}
RequestBody body = RequestBody.create(jsonBody.toString(), JSON);
Request request = new Request.Builder()
.url("https://api.openai.com/v1/chat/completions") // 服务器地址
.header("Authorization", "Bearer sk-xxx") // 填写你的key
.header("Content-Type", "application/json")
.post(body)
.build();
```
如果对接Open Ai只需修改Key就可以运行
可以根据自己的需求进行修改,如使用One Api还需替换服务器地址。由于本人没有4.0,所以此功能只能**文生文**创作
为防止OpenAi超时访问建议可以使用One API等代{过}{滤}理平台
GitHub:https://github.com/PastKing/ChatGPT-Android
GitBee:https://gitee.com/past-dust/chat-gpt-android
123盘:https://www.123pan.com/s/7hX0Vv-hHkbv.html
提取码:BO5q 和gpt对话的时候,用翻墙吗 这个厉害。 感谢分享,应该不要翻墙吧 可以对接到其他平台么? 不可以直接用吗? 多谢分享! 谢谢楼主 啊,好软件! ziventian 发表于 2023-12-24 20:50
可以对接到其他平台么?
可以的,请求头请求体更换一下就行
页:
[1]
2