# PaperChat - AI 驱动的 Minecraft 插件
PaperChat 是一个 Minecraft 服务器插件,它将 AI 语言模型直接集成到 Minecraft 中。它允许玩家向 AI 助手发送消息并快速获得答案,从而创建由 Google Gemini 和 OpenAI 模型提供支持的自然对话体验,并且可以添加您自己的模型!
PaperChat 专为 PaperMC 服务器设计,它为每个玩家维护对话历史记录,并提供 Minecraft 玩家与现代 AI 功能之间的无缝桥梁。
## 项目理念
PaperChat 遵循“自行运行”的理念。通过要求您提供自己的 AI API 凭据和本地部署,您可以获得:
- 无速率限制 - 您的 API 密钥,您的使用配额
- 完整隐私 - 玩家对话永远不会离开您的基础设施
- 完全控制 - 自定义 AI 行为、系统提示和响应过滤
- 无依赖 - 除了 AI 提供商本身之外,无需任何外部服务
## 功能
- **多提供商 AI 支持**: 自动注册 Google Gemini 和 OpenAI 提供商,并且易于扩展
- **持久的对话历史记录**: 每个玩家的聊天会话,并具有可配置的历史限制
- **智能错误处理**: 具有自动响应恢复的对用户友好的错误消息
- **可配置的系统提示**: 定义 AI 行为和响应格式规则
- **输入验证**: 字符限制
- **异步处理**: 非阻塞的 AI 请求以保持服务器性能
- **Docker 准备就绪**: 完整的容器化部署,包含 Minecraft 服务器
## 配置
PaperChat 通过环境变量配置:
| 变量 | 描述 | 值 |
|----------|-------------|-------|
| `PAPERCHAT_API_KEY` | 您的 AI 提供商 API 密钥 | `your-api-key`(仅由您的提供商需要。如果 AI 提供商不需要 API 密钥,您可以留空) |
| `PAPERCHAT_MAX_HISTORY` | 每个玩家保存的最大历史请求数 | 会话历史记录限制 |
| `PAPERCHAT_PROVIDER` | 可用 AI 提供商之一 | AI 提供商(更多信息请参见 [**可用提供商**](#available-providers)) |
| `PAPERCHAT_MODEL` | 提供商提供的任何 LLM | 使用的模型(仅由您的提供商需要。如果 AI 提供商不需要设置模型,您可以留空) |
| `PAPERCHAT_TEMPERATURE` | 响应创造力 (0.0-1.0) | 0.7 |
| `PAPERCHAT_TIMEOUT` | 请求超时时间,单位为秒 | 30 |
| `PAPERCHAT_MAX_INPUT_CHARACTERS` | 最大输入消息长度 | 100 |
| `PAPERCHAT_MAX_OUTPUT_TOKENS` | 最大响应长度 | 4096 |
| `PAPERCHAT_SYSTEM_PROMPT` | AI 行为的自定义系统提示 | 您的自定义提示(留空使用默认系统提示) |
或者位于 `data/plugins/PaperChat/` 目录中的 `config.yml` 文件:
```yaml
ai:
api-key: "" # 如果您的提供商不需要 API 密钥,您可以留空
provider: "google"
model: "gemini-2.5-flash" # 如果您的提供商不需要模型参数,您可以留空。但是,目前只有 HackClub 提供商才支持这样做
temperature: 0.7
timeout: 30
max-output-tokens: 4096
system-prompt: "" # 在此处包含您的自定义系统提示
# 注意:在此处设置系统提示将覆盖当前提示
# 如果留空,将使用默认系统提示
# 聊天配置
chat:
max-history: 5
max-input-characters: 100
```
`config.yml` 中的配置与环境变量匹配。如果两者都设置,则环境变量优先。