基于 Kitten-Cloud-Function 开发 - 让编程猫云功能得以通过 HTTP 调用,并有图形化管理后台,还能使得让你的编程猫Kitten作品接入 AI。
# 克隆项目(国内服务器推荐使用 Gitee 镜像)
git clone https://gitee.com/txcxgzs/kittenapi.git
# 或 GitHub
# git clone https://github.com/txcxgzs/kittenapi.git
cd kittenapi
# 一键部署(完全交互式,会引导你完成所有配置)
bash deploy/auto-deploy.sh就这么简单!脚本会自动:
- ✅ 安装 Node.js、PM2、Python
- ✅ 安装项目依赖(使用国内镜像)
- ✅ 构建前后端
- ✅ 引导你配置所有参数
- ✅ 启动服务
Kitten API 是基于 Kitten-Cloud-Function 开发的 HTTP API 服务。
| 问题 | 解决方案 |
|---|---|
| 原版Kitten-Cloud-Function不提供http调用接口 | HTTP 请求即可调用 |
| k4 无AI功能 | 简单地接入AI |
将编程猫云功能封装为 RESTful API,你可以通过简单的 HTTP 请求操作云变量、云列表:
# 连接作品
curl -X POST http://你的服务器:9178/api/connection/connect \
-H "Content-Type: application/json" \
-d '{"workId": 123456}'
# 设置云变量
curl -X POST http://你的服务器:9178/api/var/set \
-H "Content-Type: application/json" \
-d '{"workId": 123456, "name": "分数", "value": 100}'
# 获取云变量
curl http://你的服务器:9178/api/var/123456/分数让你的编程猫作品接入 AI(ChatGPT、Claude、DeepSeek 等):
玩家在作品中提问 → 云变量 → AI 桥接 → AI 回复 → 云变量 → 玩家看到答案
本项目核心功能依赖 Kitten-Cloud-Function 项目。
| 项目 | 作者 | 许可证 | 说明 |
|---|---|---|---|
| Kitten-Cloud-Function | SLIGHTNING | AGPL-3.0 | 编程猫云功能客户端库 |
💡 提示:本项目已内置
Kitten-Cloud-Function/目录,无需额外下载依赖项目。
因此,本项目同样采用 AGPL-3.0 许可证。
| 接口 | 方法 | 说明 |
|---|---|---|
/api/connection/connect |
POST | 连接到指定作品 |
/api/connection/disconnect |
POST | 断开当前连接 |
/api/connections |
GET | 获取所有连接状态 |
/api/var/:workId |
GET | 获取作品所有云变量 |
/api/var/:workId/:name |
GET | 获取指定云变量 |
/api/var/get |
POST | 获取云变量(POST方式) |
/api/var/set |
POST | 设置云变量 |
/api/var/rank |
POST | 获取私有变量排行榜 |
/api/list/:workId |
GET | 获取所有云列表 |
/api/list/:workId/:name |
GET | 获取指定云列表 |
/api/list/get |
POST | 获取云列表(POST方式) |
/api/list/push |
POST | 云列表尾部添加项 |
/api/list/unshift |
POST | 云列表头部添加项 |
/api/list/add |
POST | 云列表指定位置添加项 |
/api/list/pop |
POST | 移除云列表尾部项 |
/api/list/remove |
POST | 移除云列表指定位置项 |
/api/list/empty |
POST | 清空云列表 |
/api/list/replace |
POST | 替换云列表指定位置项 |
/api/list/replaceLast |
POST | 替换云列表尾部项 |
/api/list/setAll |
POST | 批量替换云列表 |
/api/online/:workId |
GET | 获取在线人数 |
/api/user/info |
GET | 获取当前用户信息 |
- 支持自定义 AI 提示词
- 支持多种 AI 模型
- PM2 管理,自动重启
- 支持多作品同时服务
- 提供管理工具
ai_bridge_manager.py
使用管理工具可以同时为多个作品提供 AI 服务:
# 进入管理工具
python3 ai_bridge_manager.py
# 命令行快速操作
python3 ai_bridge_manager.py status # 查看所有实例
python3 ai_bridge_manager.py add # 添加新作品
python3 ai_bridge_manager.py remove 123456 # 移除作品
python3 ai_bridge_manager.py logs 123456 # 查看日志
python3 ai_bridge_manager.py clear-logs # 清除所有日志| 功能 | 说明 |
|---|---|
| 查看所有实例 | 显示所有运行中的 AI 桥接实例 |
| 添加作品 | 一键添加新作品并启动服务 |
| 移除作品 | 停止并删除实例 |
| 重启/停止实例 | 管理单个实例 |
| 查看日志 | 查看指定实例的运行日志 |
| 清除日志 | 一键清除所有日志文件 |
| 编辑配置 | 修改 API 地址、模型、云变量名等 |
| 编辑提示词 | 自定义 AI 回复风格 |
💡 提示:每个作品独立配置,可以使用不同的 AI 模型和提示词。
部署完成后,访问 http://你的服务器IP:端口 即可打开管理后台。
- 📊 仪表盘:连接状态、在线人数、API 统计
- 📝 API 日志:查看所有调用记录
- 🚫 IP 黑名单:防止恶意调用
- ⚙️ 系统设置:端口、API Key、日志配置、修改密码
| 情况 | 是否需要登录 |
|---|---|
| 首次部署 | ✅ 需要输入部署时设置的密码 |
| 已登录状态 | 24小时内免登录 |
💡 安全建议:密码可在设置页面修改,建议定期更换密码。
kittenapi/
├── Kitten-Cloud-Function/ # 依赖项目(AGPL-3.0)
├── server/ # Node.js 后端服务
│ ├── src/ # TypeScript 源码
│ └── .env.example # 配置模板
├── web/ # Vue 3 前端
│ └── src/ # Vue 源码
├── deploy/ # 部署脚本
│ └── auto-deploy.sh # 一键部署
├── kitten_ai_bridge.py # AI 桥接程序
├── ai_bridge_manager.py # AI 桥接管理工具
├── docs/ # 文档
├── LICENSE # AGPL-3.0 许可证
└── README.md # 本文件
# 1. 克隆项目(国内服务器推荐使用 Gitee 镜像)
git clone https://gitee.com/txcxgzs/kittenapi.git
# 或 GitHub
# git clone https://github.com/txcxgzs/kittenapi.git
cd kittenapi
# 2. 运行部署脚本
bash deploy/auto-deploy.sh脚本会引导你完成:
- 环境检测和依赖安装
- 项目构建
- 设置管理后台密码(至少6位)
- 服务配置(端口、Cookie、API Key)
- AI 桥接配置(可选)
- Nginx 反向代理配置(可选)
- 服务启动和验证
# 1. 安装依赖并构建(国内服务器使用镜像)
cd server && npm install --registry=https://registry.npmmirror.com && npm run build
cd ../web && npm install --registry=https://registry.npmmirror.com && npm run build
# 2. 配置环境变量
cp server/.env.example server/.env
nano server/.env # 填入你的配置
# 3. 启动服务
cd server && pm2 start dist/app.js --name kitten-cloud-api
⚠️ 注意:手动部署时,首次访问管理后台会提示设置密码。建议使用一键部署脚本自动完成密码设置。
部署脚本会自动创建 ktai 快捷命令,无需手动配置。
一键部署脚本会在安装完成后自动创建 ktai 快捷命令到 ~/.bashrc 或 ~/.zshrc。
如果需要手动创建,执行以下命令:
# 将路径替换为你的实际项目路径
echo "alias ktai='cd /你的项目路径 && python3 ai_bridge_manager.py'" >> ~/.bashrc
source ~/.bashrc# 直接输入 ktai 即可打开 AI 桥接管理器
ktaiAI 桥接管理器是一个交互式命令行工具,用于管理 AI 桥接服务。
# 方式一:使用快捷命令(推荐)
ktai
# 方式二:完整命令
cd /你的项目路径
python3 ai_bridge_manager.py╔══════════════════════════════════════════════════════════════╗
║ AI 桥接管理工具 v2.0.0 ║
║ ║
║ 多作品管理 | 配置管理 | 日志管理 | 提示词管理 ║
╚══════════════════════════════════════════════════════════════╝
AI 桥接管理菜单
══════════════════════════════════════════════════════════════
1. 查看所有实例状态
2. 添加作品 ← 一键添加新作品
3. 移除作品 ← 停止并删除实例
4. 重启实例
5. 停止实例
6. 查看日志
7. 清除日志 ← 一键清除所有日志
8. 编辑配置
9. 编辑提示词 ← 自定义 AI 的行为和回复风格
10. 设置编程猫 Cookie ← 更换编程猫账号
0. 退出
| 功能 | 说明 |
|---|---|
| 查看所有实例状态 | 查看所有运行中的 AI 桥接实例 |
| 添加作品 | 一键添加新作品并启动服务 |
| 移除作品 | 停止并删除指定作品的实例 |
| 查看日志 | 查看指定实例的运行日志 |
| 清除日志 | 一键清除所有日志文件 |
| 编辑提示词 | 自定义 AI 的行为、回复风格等 |
| 设置编程猫 Cookie | 更换编程猫账号授权 |
部署脚本会引导你输入这些值,以下为配置文件格式:
# 服务配置(部署时输入)
PORT=你设置的端口 # 默认建议: 9178
HOST=0.0.0.0
# 管理后台密码(部署时输入,至少6位)
ADMIN_PASSWORD=你设置的密码
# 编程猫身份认证(部署时输入)
CODEMAO_AUTHORIZATION=你的authorization值
# API 密钥(部署时输入,可选)
API_KEY=你设置的API密钥
# 日志保留天数(部署时输入)
LOG_RETENTION_DAYS=你设置的天数💡 提示:默认端口建议使用
9178,部署脚本会引导你输入这些值。
部署时会自动创建 ai-bridge/config_{作品ID}.py,配置内容根据你部署时的输入生成:
CONFIG = {
"api_base_url": "部署时配置的API地址",
"ai_api_url": "部署时配置的AI API地址",
"ai_api_key": "部署时配置的AI API Key",
"ai_model": "部署时配置的AI模型",
"variable_name": "部署时配置的云变量名",
"question_prefix": "部署时配置的问题前缀",
"answer_prefix": "部署时配置的答案前缀",
"system_prompt_file": "系统提示词文件路径(可选)",
"request_timeout": 60, # 请求超时时间(秒)
"max_retries": 3 # 最大重试次数
}| 配置项 | 说明 | 默认值 |
|---|---|---|
api_base_url |
Kitten Cloud API 地址 | - |
ai_api_url |
AI API 地址(如 OpenAI 兼容接口) | - |
ai_api_key |
AI API 密钥 | - |
ai_model |
AI 模型名称 | - |
variable_name |
用于接收问题的云变量名 | - |
question_prefix |
问题前缀(用于识别问题) | 问: |
answer_prefix |
答案前缀(用于识别答案) | 答: |
system_prompt_file |
系统提示词文件路径 | ai-bridge/system_prompt_{作品ID}.txt |
request_timeout |
AI API 请求超时时间(秒) | 60 |
max_retries |
请求失败时的最大重试次数 | 3 |
💡 提示:部署脚本会引导你输入这些值,无需手动创建配置文件。
# 查看服务状态
pm2 status
# 查看日志
pm2 logs kitten-cloud-api
# 重启服务
pm2 restart kitten-cloud-api
# 停止服务
pm2 stop kitten-cloud-api
# AI 桥接管理工具(推荐使用 ktai 快捷命令)
ktai| 文档 | 说明 |
|---|---|
| API 文档 | 完整 API 接口说明 |
本项目采用 AGPL-3.0 许可证,详见 LICENSE 文件。
- SLIGHTNING - Kitten-Cloud-Function 项目作者