mirror of
https://github.com/ddaodan/minechatgpt.git
synced 2025-11-04 05:34:14 +08:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| c753d51e6b | |||
| 478a1077a6 |
@@ -4,7 +4,7 @@ plugins {
|
|||||||
}
|
}
|
||||||
|
|
||||||
group = 'com'
|
group = 'com'
|
||||||
version = '2.4'
|
version = '2.5'
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
|
|||||||
@@ -1,4 +1,7 @@
|
|||||||
# 更新日志
|
# 更新日志
|
||||||
|
## 2.5
|
||||||
|
- 允许插件在Folia加载
|
||||||
|
- 修复 #4:[BUG]部分情况下回复乱码
|
||||||
## 2.4
|
## 2.4
|
||||||
- 添加自定义prompt
|
- 添加自定义prompt
|
||||||
- 移除了没有任何效果的配置文件自动更新功能
|
- 移除了没有任何效果的配置文件自动更新功能
|
||||||
|
|||||||
64
readme.md
64
readme.md
@@ -5,17 +5,18 @@
|
|||||||
所有的代码都是ChatGPT写的哦
|
所有的代码都是ChatGPT写的哦
|
||||||
|
|
||||||
## 功能
|
## 功能
|
||||||
- [x] OpenAPI格式
|
- OpenAPI格式
|
||||||
- [x] 自定义模型
|
- 自定义模型
|
||||||
- [x] ChatGPT反代
|
- ChatGPT反代
|
||||||
- [x] 指令补全
|
- 指令补全
|
||||||
- [ ] 上下文对话
|
- 上下文对话
|
||||||
- [ ] 自定义prompt
|
- 自定义prompt
|
||||||
|
- Folia支持
|
||||||
|
|
||||||
## 安装
|
## 安装
|
||||||
1. 下载插件,放在plugins文件夹中
|
1. 下载插件,放在plugins文件夹中
|
||||||
2. 重启服务器
|
2. 重启服务器
|
||||||
> 为兼容更多版本,插件使用1.13版本进行构建,因此在较高版本加载插件时,控制台会出现以下错误信息,这属于正常现象。
|
> 为兼容更多版本,插件没有规定Bukkit API version,因此在较高版本加载插件时,控制台可能会出现以下错误信息,这属于正常现象。
|
||||||
> ```
|
> ```
|
||||||
> [Server thread/WARN]: Initializing Legacy Material Support. Unless you have legacy plugins and/or data this is a bug!
|
> [Server thread/WARN]: Initializing Legacy Material Support. Unless you have legacy plugins and/or data this is a bug!
|
||||||
> [Server thread/WARN]: Legacy plugin MineChatGPT v1.0 does not specify an api-version.
|
> [Server thread/WARN]: Legacy plugin MineChatGPT v1.0 does not specify an api-version.
|
||||||
@@ -30,7 +31,7 @@ api:
|
|||||||
# OpenAI API 的基础 URL,用于构建请求
|
# OpenAI API 的基础 URL,用于构建请求
|
||||||
base_url: "https://api.openai.com/v1"
|
base_url: "https://api.openai.com/v1"
|
||||||
```
|
```
|
||||||
4. 输入`/chatgpt reload`重新加载配置文件
|
4. 在控制台中输入`/chatgpt reload`重新加载配置文件
|
||||||
|
|
||||||
## 截图
|
## 截图
|
||||||
- 服务端截图(Spigot 1.20.1)
|
- 服务端截图(Spigot 1.20.1)
|
||||||
@@ -71,14 +72,21 @@ conversation:
|
|||||||
# 连续对话开关
|
# 连续对话开关
|
||||||
context_enabled: false
|
context_enabled: false
|
||||||
max_history_size: 10
|
max_history_size: 10
|
||||||
|
prompt: "You are a helpful assistant.use Chinese."
|
||||||
# 消息相关设置
|
# 消息相关设置
|
||||||
messages:
|
messages:
|
||||||
reload: "&a已重新加载配置文件!"
|
reload: "&a已重新加载配置文件!"
|
||||||
|
clear: "&a对话历史已清空!"
|
||||||
help: "&e===== MineChatGPT 帮助 ====="
|
help: "&e===== MineChatGPT 帮助 ====="
|
||||||
help_ask: "&e/chatgpt <text> - 向ChatGPT提问"
|
help_ask: "&e/chatgpt <text> - 向ChatGPT提问"
|
||||||
help_reload: "&e/chatgpt reload - 重新加载配置文件"
|
help_reload: "&e/chatgpt reload - 重新加载配置文件"
|
||||||
help_model: "&e/chatgpt model <model_name> - 切换至其他模型"
|
help_model: "&e/chatgpt model <model_name> - 切换至其他模型"
|
||||||
help_modellist: "&e/chatgpt modellist - 可用的模型列表"
|
help_modellist: "&e/chatgpt modellist - 可用的模型列表"
|
||||||
|
help_context: "&e/chatgpt context - 切换连续对话模式"
|
||||||
|
help_clear: "/chatgpt clear - 清空对话历史"
|
||||||
|
context_toggle: "&a连续对话模式已%s。"
|
||||||
|
context_toggle_enabled: "开启"
|
||||||
|
context_toggle_disabled: "关闭"
|
||||||
current_model_info: "&e当前模型:%s,输入 /chatgpt model <model_name> 来切换模型。"
|
current_model_info: "&e当前模型:%s,输入 /chatgpt model <model_name> 来切换模型。"
|
||||||
model_switch: "&a已切换至模型 %s"
|
model_switch: "&a已切换至模型 %s"
|
||||||
chatgpt_error: "&c无法联系ChatGPT。"
|
chatgpt_error: "&c无法联系ChatGPT。"
|
||||||
@@ -87,42 +95,44 @@ messages:
|
|||||||
invalid_model: "&c模型无效。使用 /chatgpt modellist 查看可用模型。"
|
invalid_model: "&c模型无效。使用 /chatgpt modellist 查看可用模型。"
|
||||||
available_models: "&e可用模型列表:"
|
available_models: "&e可用模型列表:"
|
||||||
no_permission: "&c你没有权限使用这个指令。需要的权限:%s"
|
no_permission: "&c你没有权限使用这个指令。需要的权限:%s"
|
||||||
# 不要动!!!!!
|
# 如果你不知道这是什么,请不要动
|
||||||
version: 2.3
|
debug: false
|
||||||
```
|
```
|
||||||
|
|
||||||
## 指令与权限
|
## 指令与权限
|
||||||
|指令|权限|描述|
|
|指令|权限|描述|
|
||||||
|-|-|-|
|
|-|-|-|
|
||||||
|`/chatgpt`|chatgpt.use|查看插件帮助|
|
|`/chatgpt`|minechatgpt.use|查看插件帮助|
|
||||||
|`/chatgpt <text>`|chatgpt.use|向ChatGPT提问|
|
|`/chatgpt <text>`|minechatgpt.use|向ChatGPT提问|
|
||||||
|`/chatgpt reload`|chatgpt.reload|重新加载配置文件|
|
|`/chatgpt reload`|minechatgpt.reload|重新加载配置文件|
|
||||||
|`/chatgpt model <model_name>`|chatgpt.model|切换至其他模型|
|
|`/chatgpt model <model_name>`|minechatgpt.model|切换至其他模型|
|
||||||
|`/chatgpt modellist`|chatgpt.modellist|查看可用的模型列表|
|
|`/chatgpt modellist`|minechatgpt.modellist|查看可用的模型列表|
|
||||||
|
|`/chatgpt context`|minechatgpt.context|切换连续对话模式|
|
||||||
|
|`/chatgpt clear`|minechatgpt.clear|清空对话历史|
|
||||||
|
|
||||||
## 兼容的版本
|
## 兼容的版本
|
||||||
✔ = 完全支持
|
|
||||||
? = 部分支持
|
|
||||||
× = 不支持
|
|
||||||
只列出经过测试的版本
|
只列出经过测试的版本
|
||||||
|
|
||||||
|服务端|支持情况|
|
|服务端|支持情况|
|
||||||
|-|-|
|
|-|-|
|
||||||
|Mohist 1.20.1|✔|
|
|Luminol 1.21|✔ 支持|
|
||||||
|Spigot 1.20.1|✔|
|
|Mohist 1.20.1|✔ 支持|
|
||||||
|Spigot 1.12.2|✔|
|
|Spigot 1.20.1|✔ 支持|
|
||||||
|KCauldron 1.7.10|×|
|
|Spigot 1.12.2|✔ 支持|
|
||||||
|
|KCauldron 1.7.10|× 不支持|
|
||||||
|
|
||||||
## 常见问题
|
## 常见问题
|
||||||
### `Failed to contact ChatGPT.` `无法联系ChatGPT。`
|
### 提问后显示`Failed to contact ChatGPT.` `无法联系ChatGPT。`
|
||||||
检查控制台输出的错误内容。
|
检查控制台输出的错误内容。
|
||||||
### `connect timeout` `connect reset`
|
### 提问后后台有`connect timeout` `connect reset`等类似的提示
|
||||||
检查`config.yml`中的`base_url`能否正常访问。如果你无法连接到OpenAI官方的API地址,可以考虑使用其他反代。
|
检查`config.yml`中的`base_url`能否正常访问。如果你无法连接到OpenAI官方的API地址,可以考虑使用其他反代。
|
||||||
### 我可以添加其他模型吗?
|
### 我可以添加其他模型吗?
|
||||||
可以,只要模型支持OpenAI的API,就可以使用。
|
可以,只要模型支持OpenAI的API,就可以使用。
|
||||||
## 我没有ChatGPT的账号,可以用吗?
|
### 我没有ChatGPT的账号,可以用吗?
|
||||||
可以,目前有很多代理网站,可以很轻松地使用,而且还支持其他模型,费用通常来说也会比官方便宜。如果你愿意,也可以使用我的代理,目前仅在我的QQ群:226385797中提供。
|
可以,目前有很多代理网站,可以很轻松地使用,而且还支持其他模型,费用通常来说也会比官方便宜。如果你愿意,也可以使用我的代理,目前仅在我的QQ群:226385797中提供。
|
||||||
### 是否会支持Folia
|
### 是否会支持Folia
|
||||||
不会。Folia仍然在开发中,短期内不会支持。
|
理论上插件可以在Folia上运行,但插件的代码并没有针对Folia进行过优化,因此可能会有一些问题。如果你愿意,可以尝试使用Folia运行插件,但不保证插件可以正常运行。
|
||||||
## 赞助
|
## 赞助
|
||||||

|
[](https://afdian.com/a/ddaodan)
|
||||||
|
## 统计
|
||||||
|
[](https://bstats.org/plugin/bukkit/MineChatGPT/22635)
|
||||||
@@ -166,7 +166,8 @@ public class CommandHandler implements CommandExecutor {
|
|||||||
}
|
}
|
||||||
if (response.statusCode() == 200) {
|
if (response.statusCode() == 200) {
|
||||||
String responseBody = response.bodyText();
|
String responseBody = response.bodyText();
|
||||||
JSONObject jsonResponse = new JSONObject(responseBody);
|
String utf8ResponseBody = new String(responseBody.getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8);
|
||||||
|
JSONObject jsonResponse = new JSONObject(utf8ResponseBody);
|
||||||
String answer = jsonResponse.getJSONArray("choices").getJSONObject(0).getJSONObject("message").getString("content");
|
String answer = jsonResponse.getJSONArray("choices").getJSONObject(0).getJSONObject("message").getString("content");
|
||||||
sender.sendMessage(configManager.getChatGPTResponseMessage().replace("%s", answer));
|
sender.sendMessage(configManager.getChatGPTResponseMessage().replace("%s", answer));
|
||||||
if (contextEnabled) {
|
if (contextEnabled) {
|
||||||
|
|||||||
@@ -14,9 +14,9 @@ public class ConversationContext {
|
|||||||
|
|
||||||
public void addMessage(String message) {
|
public void addMessage(String message) {
|
||||||
if (conversationHistory.size() >= maxHistorySize) {
|
if (conversationHistory.size() >= maxHistorySize) {
|
||||||
conversationHistory.poll(); // Remove the oldest message
|
conversationHistory.poll();
|
||||||
}
|
}
|
||||||
conversationHistory.offer(message); // Add the new message
|
conversationHistory.offer(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getConversationHistory() {
|
public String getConversationHistory() {
|
||||||
|
|||||||
@@ -53,5 +53,3 @@ messages:
|
|||||||
no_permission: "&cYou do not have permission to use this command. Required permission: %s"
|
no_permission: "&cYou do not have permission to use this command. Required permission: %s"
|
||||||
# If you don't know what this is, don't change it
|
# If you don't know what this is, don't change it
|
||||||
debug: false
|
debug: false
|
||||||
# DO NOT EDIT!!!!!
|
|
||||||
version: 2.4
|
|
||||||
@@ -28,6 +28,7 @@ conversation:
|
|||||||
# 连续对话开关
|
# 连续对话开关
|
||||||
context_enabled: false
|
context_enabled: false
|
||||||
max_history_size: 10
|
max_history_size: 10
|
||||||
|
prompt: "You are a helpful assistant.use Chinese."
|
||||||
# 消息相关设置
|
# 消息相关设置
|
||||||
messages:
|
messages:
|
||||||
reload: "&a已重新加载配置文件!"
|
reload: "&a已重新加载配置文件!"
|
||||||
@@ -52,5 +53,3 @@ messages:
|
|||||||
no_permission: "&c你没有权限使用这个指令。需要的权限:%s"
|
no_permission: "&c你没有权限使用这个指令。需要的权限:%s"
|
||||||
# 如果你不知道这是什么,请不要动
|
# 如果你不知道这是什么,请不要动
|
||||||
debug: false
|
debug: false
|
||||||
# 不要动!!!!!
|
|
||||||
version: 2.3
|
|
||||||
@@ -2,6 +2,7 @@ name: MineChatGPT
|
|||||||
version: '${version}'
|
version: '${version}'
|
||||||
main: com.ddaodan.MineChatGPT.Main
|
main: com.ddaodan.MineChatGPT.Main
|
||||||
author: ddaodan
|
author: ddaodan
|
||||||
|
folia-supported: true
|
||||||
description: A Spigot plugin for interacting with ChatGPT
|
description: A Spigot plugin for interacting with ChatGPT
|
||||||
|
|
||||||
commands:
|
commands:
|
||||||
@@ -24,6 +25,6 @@ permissions:
|
|||||||
minechatgpt.context:
|
minechatgpt.context:
|
||||||
description: Allows toggling context mode
|
description: Allows toggling context mode
|
||||||
default: true
|
default: true
|
||||||
chatgpt.clear:
|
minechatgpt.clear:
|
||||||
description: Allows clearing conversation history
|
description: Allows clearing conversation history
|
||||||
default: true
|
default: true
|
||||||
Reference in New Issue
Block a user