Skip to content

txcxgzs/kittenapi

Repository files navigation

Kitten API

基于 Kitten-Cloud-Function 开发 - 让编程猫云功能得以通过 HTTP 调用,并有图形化管理后台,还能使得让你的编程猫Kitten作品接入 AI。

License


🚀 快速开始(一条命令部署)

# 克隆项目(国内服务器推荐使用 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

两大核心功能

1️⃣ HTTP API 服务

将编程猫云功能封装为 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/分数

2️⃣ AI 桥接服务

让你的编程猫作品接入 AI(ChatGPT、Claude、DeepSeek 等):

玩家在作品中提问 → 云变量 → AI 桥接 → AI 回复 → 云变量 → 玩家看到答案

⚠️ 重要声明

依赖项目

本项目核心功能依赖 Kitten-Cloud-Function 项目。

项目 作者 许可证 说明
Kitten-Cloud-Function SLIGHTNING AGPL-3.0 编程猫云功能客户端库

💡 提示:本项目已内置 Kitten-Cloud-Function/ 目录,无需额外下载依赖项目。

因此,本项目同样采用 AGPL-3.0 许可证。


🚀 功能特性

HTTP API 接口

接口 方法 说明
/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 提示词
  • 支持多种 AI 模型
  • PM2 管理,自动重启
  • 支持多作品同时服务
  • 提供管理工具 ai_bridge_manager.py

多作品 AI 桥接

使用管理工具可以同时为多个作品提供 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

脚本会引导你完成:

  1. 环境检测和依赖安装
  2. 项目构建
  3. 设置管理后台密码(至少6位)
  4. 服务配置(端口、Cookie、API Key)
  5. AI 桥接配置(可选)
  6. Nginx 反向代理配置(可选)
  7. 服务启动和验证

方式二:手动部署

# 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 桥接管理器
ktai

🛠️ AI 桥接管理器

AI 桥接管理器是一个交互式命令行工具,用于管理 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 更换编程猫账号授权

⚙️ 配置说明

服务配置(server/.env)

部署脚本会引导你输入这些值,以下为配置文件格式:

# 服务配置(部署时输入)
PORT=你设置的端口          # 默认建议: 9178
HOST=0.0.0.0

# 管理后台密码(部署时输入,至少6位)
ADMIN_PASSWORD=你设置的密码

# 编程猫身份认证(部署时输入)
CODEMAO_AUTHORIZATION=你的authorization值

# API 密钥(部署时输入,可选)
API_KEY=你设置的API密钥

# 日志保留天数(部署时输入)
LOG_RETENTION_DAYS=你设置的天数

💡 提示:默认端口建议使用 9178,部署脚本会引导你输入这些值。

AI 桥接配置

部署时会自动创建 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 文件。


🙏 致谢

About

基于 Kitten-Cloud-Function 开发的编程猫云变量/云列表 HTTP API 服务,让你的编程猫作品支持 AI 对话

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors