|
| 1 | +转载请注明插件作者:ENA |
| 2 | + |
| 3 | +闲得没事搞的插件,拙技见笑 |
| 4 | + |
| 5 | +------ |
| 6 | +**Github**:https://github.com/Enashpinal/GPTforMC |
| 7 | + |
| 8 | +# 简介 |
| 9 | + |
| 10 | +GPTforMC是一个基于 Spigot 服务端的插件,支持1.13+,为你的服务器接入DeepSeek或ChatGPT,支持自定义 API 接口地址、系统提示词、控制 AI 行为等。玩家在聊天时发送带有指定触发词的消息即可触发对话。 |
| 11 | + |
| 12 | +管理员可以创建不同模型、身份的 AI,根据设定的触发词响应玩家的消息,允许每个 AI 使用不同的配置。 |
| 13 | + |
| 14 | +# 使用方法 |
| 15 | + |
| 16 | +将插件放入plugins文件夹,启动一次服务器。 |
| 17 | + |
| 18 | +编辑config.yml,设置 API 接口和 Key(免费Key获取:https://github.com/chatanywhere/GPT_API_free) |
| 19 | + |
| 20 | +# 命令 |
| 21 | + |
| 22 | +创建AI(权限:gpt.create) /gpt create <名称> |
| 23 | + |
| 24 | +删除AI(权限:gpt.admin或gpt.remove) /gpt remove <名称> |
| 25 | + |
| 26 | +AI列表(权限:gpt.use 或 gpt.admin) /gpt list |
| 27 | + |
| 28 | +清除记忆(权限:gpt.edit 或 gpt.admin) /gpt clearmemory <名称> |
| 29 | + |
| 30 | +设置AI配置(权限:gpt.edit 或 gpt.admin) /gpt set <名称> <选项> <值> |
| 31 | + |
| 32 | +> 示例:/gpt set Deepseek top_p 0.5 —— 将名称为Deepseek的AI核采样设为0.5 |
| 33 | +> |
| 34 | +> /gpt set Deepseek trigger ds 2 —— 为Deepseek添加触发词“ds”及其优先级 |
| 35 | +> |
| 36 | +> /gpt set Deepseek prompt system 0 You are a friendly AI assistant —— |
| 37 | +> |
| 38 | +> 在Deepseek的提示词列表索引0插入提示词,内容为 You are a friendly AI assistant。 |
| 39 | +> |
| 40 | +> /gpt set Deepseek model gpt-4o —— 将Deepseek的模型ID改为gpt-4o |
| 41 | +
|
| 42 | +设置全局配置(权限:gpt.config 或 gpt.admin) /gpt set <名称> <选项> <值> (使用方法同上,但无全局触发词和提示词) |
| 43 | + |
| 44 | +重载配置(权限:gpt.admin) /gpt reload(若无法重载请尝试/reload) |
| 45 | + |
| 46 | +显示帮助(无权限节点) /gpt help |
| 47 | + |
| 48 | +# 配置文件 |
| 49 | + |
| 50 | +## config.yml(全局配置) |
| 51 | +```yml |
| 52 | +# GPTforMC 插件配置文件 |
| 53 | +# 配置插件的全局设置,AI 独立配置默认继承全局配置 |
| 54 | + |
| 55 | +# OpenAI 配置 |
| 56 | +openai: |
| 57 | + # API 请求的 URL 地址 |
| 58 | + # 推荐使用Chatanywhere免费转发API,支持deepseek-1/deepseek-v3/gpt-3.5-turbo/gpt-4o-mini等模型 |
| 59 | + api-url: "https://api.openai.com/v1/chat/completions" |
| 60 | + |
| 61 | + # OpenAI API 密钥 |
| 62 | + api-key: "sk-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" |
| 63 | + |
| 64 | + # 默认使用的 OpenAI 模型英文 ID |
| 65 | + model: "gpt-4o-mini" |
| 66 | + |
| 67 | + # API 请求的超时时间(ms) |
| 68 | + # 范围: 1000 - 30000,建议值: 10000 |
| 69 | + timeout: 10000 |
| 70 | + |
| 71 | + # 最大记忆轮次 |
| 72 | + # 控制 AI 保留的对话历史记录条数(每条记录包括用户输入和 AI 回复) |
| 73 | + # 范围: 0 - 20,0 表示不保留记忆 |
| 74 | + memory_rounds: 4 |
| 75 | + |
| 76 | + # 控制 AI 回答的随机性 |
| 77 | + # 范围: 0.0 - 2.0,值越高回答越随机,值越低回答越固定 |
| 78 | + temperature: 0.7 |
| 79 | + |
| 80 | + # 核采样参数,控制生成内容的多样性 |
| 81 | + # 范围: 0.0 - 1.0,值越低越倾向于高概率词汇 |
| 82 | + top_p: 1.0 |
| 83 | + |
| 84 | + # 最大生成 Token 数 |
| 85 | + # 控制 AI 回答的长度,1 Token 约为 0.75 个英文单词或 1-2 个中文字符 |
| 86 | + max_tokens: 500 |
| 87 | + |
| 88 | + # 话题新鲜度惩罚 |
| 89 | + # 范围: -2.0 - 2.0,值越高越 |
| 90 | + presence_penalty: 0.0 |
| 91 | + |
| 92 | + # 频率惩罚度 |
| 93 | + # 范围: -2.0 - 2.0,值越高越减少重复词汇 |
| 94 | + frequency_penalty: 0.0 |
| 95 | + |
| 96 | + # 是否强制添加提示词 |
| 97 | + force_system_prompt: true |
| 98 | + |
| 99 | + # AI 消息的默认颜色代码 |
| 100 | + # 使用 Minecraft 颜色代码 |
| 101 | + # 参考: https://minecraft.fandom.com/wiki/Formatting_codes |
| 102 | + message_color: "&a" |
| 103 | + |
| 104 | + # 玩家消息的格式化模板 |
| 105 | + # 占位符: {player} 表示玩家名称,{message} 表示玩家消息 |
| 106 | + message_format: "用户{player}说:{message}" |
| 107 | + |
| 108 | +# 权限组配置 |
| 109 | +permission-groups: |
| 110 | + # 默认玩家组(普通玩家) |
| 111 | + default: |
| 112 | + # 允许创建的最大 AI 数量 |
| 113 | + # 范围: 0 - 无限制,0 表示禁止创建 |
| 114 | + max-ai: 0 |
| 115 | + |
| 116 | + # 是否允许创建 AI |
| 117 | + gpt.create: false |
| 118 | + |
| 119 | + # 是否允许删除 AI |
| 120 | + gpt.remove: false |
| 121 | + |
| 122 | + # 是否允许编辑 AI 设置 |
| 123 | + gpt.edit: false |
| 124 | + |
| 125 | + # 是否允许修改全局配置 |
| 126 | + gpt.config: false |
| 127 | + |
| 128 | + # 是否允许使用 AI(触发 AI 回复) |
| 129 | + gpt.use: true |
| 130 | + |
| 131 | + # 是否具有管理员权限(可操作所有 AI) |
| 132 | + gpt.admin: false |
| 133 | + |
| 134 | + # 是否绕过 AI 数量限制 |
| 135 | + gpt.bypass: false |
| 136 | + |
| 137 | + # 管理员组 |
| 138 | + admin: |
| 139 | + # 允许创建的最大 AI 数量 |
| 140 | + max-ai: 100 |
| 141 | + |
| 142 | + # 是否允许创建 AI |
| 143 | + gpt.create: true |
| 144 | + |
| 145 | + # 是否允许删除 AI |
| 146 | + gpt.remove: true |
| 147 | + |
| 148 | + # 是否允许编辑 AI 设置 |
| 149 | + gpt.edit: true |
| 150 | + |
| 151 | + # 是否允许修改全局配置 |
| 152 | + gpt.config: true |
| 153 | + |
| 154 | + # 是否允许使用 AI |
| 155 | + gpt.use: true |
| 156 | + |
| 157 | + # 是否具有管理员权限 |
| 158 | + gpt.admin: true |
| 159 | + |
| 160 | + # 是否绕过 AI 数量限制 |
| 161 | + gpt.bypass: true |
| 162 | +``` |
| 163 | +## ai_data.yml(AI独立配置,默认有一个AI) |
| 164 | +```yml |
| 165 | +# GPTforMC AI 单独配置文件 |
| 166 | + |
| 167 | +GPT-4o-mini: |
| 168 | + # AI名称,唯一标识此AI配置 |
| 169 | + message_format: 用户{player}说:{message} |
| 170 | + # 玩家消息的格式化模板,{player} 表示玩家名称,{message} 表示消息内容 |
| 171 | + max_tokens: 500 |
| 172 | + presence_penalty: 0.0 |
| 173 | + max_memory: 4 |
| 174 | + timeout: 300000 |
| 175 | + top_p: 1.0 |
| 176 | + force_system_prompt: true |
| 177 | + message_color: '&a' |
| 178 | + frequency_penalty: 0.0 |
| 179 | + # 以上字段同全局配置 |
| 180 | + trigger_words: |
| 181 | + # 触发 AI 回复的关键词列表 |
| 182 | + - priority: 1 |
| 183 | + # 触发优先级,值越大越优先调用此 AI(1 - 100) |
| 184 | + word: gpt |
| 185 | + # 触发词,玩家消息中包含此词触发 AI 对话 |
| 186 | + - priority: 5 |
| 187 | + word: ChatGPT |
| 188 | + temperature: 0.7 |
| 189 | + # 控制 AI 回答随机性 |
| 190 | + model: gpt-4o-mini |
| 191 | + # 使用的 AI 模型 ID(如 gpt-4o-mini, gpt-4) |
| 192 | + prompts: |
| 193 | + # 预设提示词列表,若 force_system_prompt 为 true 则将系统提示词强制添加到记忆 |
| 194 | + - role: system |
| 195 | + # 系统提示词,定义 AI 行为 |
| 196 | + content: 你是一个AI智能助手,名叫gpt |
| 197 | + - role: user |
| 198 | + # 用户消息,模拟用户输入 |
| 199 | + content: Hello, gpt! |
| 200 | + - role: assistant |
| 201 | + # AI 回复,模拟 AI 输出 |
| 202 | + content: Hello! How can I assist you today? |
| 203 | + memories: [] |
| 204 | + # AI 的对话记忆,存储用户和 AI 的历史对话,默认为空 |
| 205 | + allow_default_edit: false |
| 206 | + # 是否允许默认权限组(普通玩家)编辑或删除此AI,默认为false(仅管理员创建的AI) |
| 207 | +``` |
| 208 | +# 下载插件 |
| 209 | + |
| 210 | +https://enanetdisk.pages.dev/?file=%2Fdisk%2FMinecraftPlugins%2FGPTforMC-1.0.jar |
0 commit comments