Back to Kirara Ai

Web API 系统 🌐

kirara_ai/web/README.md

3.3.0a23.8 KB
Original Source

Web API 系统 🌐

本系统提供了一套完整的RESTful API,用于管理和监控ChatGPT-Mirai机器人的各个组件。

系统架构 🏗️

  • 基于 Quart 异步Web框架
  • 使用 Pydantic 进行数据验证
  • JWT认证保护所有API端点
  • CORS支持跨域请求
  • 模块化设计,易于扩展

模块说明 📦

1. 认证模块 🔐

2. IM适配器管理 💬

3. LLM后端管理 🤖

4. 调度规则管理 📋

5. Block查询 🧩

6. Workflow管理 ⚡

7. 插件管理 🔌

8. 系统状态 📊

快速开始 🚀

  1. 安装依赖:
bash
pip install -r requirements.txt
  1. 配置系统:
  • 复制 config.yaml.exampleconfig.yaml
  • 修改配置文件中的相关设置
  1. 启动服务:
bash
python main.py

首次启动时会自动创建管理员密码。

API认证 🔑

除了首次设置密码的接口外,所有API都需要在请求头中携带JWT令牌:

http
Authorization: Bearer <your-jwt-token>

获取令牌:

http
POST/backend-api/api/auth/login
Content-Type: application/json

{
    "password": "your-password"
}

开发指南 💻

添加新的API端点

  1. 在相应模块下创建路由文件
  2. 定义数据模型(使用Pydantic)
  3. 实现API逻辑
  4. framework/web/app.py 中注册蓝图

示例:

python
from quart import Blueprint, request
from pydantic import BaseModel

# 定义数据模型
class MyModel(BaseModel):
    name: str
    value: int

# 创建蓝图
my_bp = Blueprint('my_api', __name__)

# 实现API端点
@my_bp.route('/endpoint', methods=['POST'])
@require_auth
async def my_endpoint():
    data = await request.get_json()
    model = MyModel(**data)
    # 处理逻辑
    return model.model_dump()

错误处理

使用HTTP状态码表示错误类型:

  • 400: 请求参数错误
  • 401: 未认证或认证失败
  • 404: 资源不存在
  • 500: 服务器内部错误

返回统一的错误格式:

json
{
    "error": "错误描述信息"
}

依赖说明 📚

主要依赖包:

  • quart: 异步Web框架
  • pydantic: 数据验证
  • PyJWT: JWT认证
  • hypercorn: ASGI服务器
  • psutil: 系统监控

完整依赖列表见 requirements.txt

测试 🧪

运行单元测试:

bash
pytest tests/web

贡献指南 🤝

  1. Fork 本仓库
  2. 创建特性分支
  3. 提交更改
  4. 创建Pull Request