KevinLiss/ApeAdmin

Apeadmin 面向现代AI应用打造的Python后台管理框架,基于 FastAPI+Vue3 设计100%开源,内置 RBAC 权限管控、审计日志等企业级基础能力。框架集成 MCP‑SSE 网关,具备强大插件生态完整,帮助开发者快速搭建兼具业务管理与 AI 工具输出能力的应用。

ApeAdmin – 現代のAIアプリケーション向けに設計されたオープンソースの管理プラットフォーム

何であるか – ApeAdmin は、AI駆動型サービスをホストするためのフルスタックでプラグイン対応の管理フレームワークです。FastAPIバックエンドとVue 3フロントエンドを統合し、MCP-SSEゲートウェイを追加することで、管理機能(RBAC、プラグイン、ログなど)をAIエージェントが関数呼び出しで利用できる ツール として公開します。要するに、独立したPythonプラグインで拡張可能な「バックエンドとしてのサービス」を提供し、人間のオペレーターとLLMエージェントの両方からアクセス可能になります。


コア機能

カテゴリ 提供される機能
インストールウィザード WordPress風の3ステップ設定(DB設定 → サイトと管理者 → 完了)。MySQLデータベースを自動作成、JWTシークレットを生成、再実行を防ぐためのロックファイルを書き込みます。
RBAC 5テーブルモデル(ユーザー、ロール、メニュー、部門、関連)。4層の権限チェック(未ログイン → 認証不要 → ルール → データスコープ)と、ボタンレベルの非表示に対応するフロントエンド v-permission ディレクティブ。
プラグインシステム importlib によるPythonパッケージの自動検出。ホットロード/アンロード、Docker分離デプロイ、ZIPアップロード、オンラインプラグインマーケットプレイスをサポート。プラグインはルート、MCPツール、イベントリスナーを登録可能。
MCP-SSEゲートウェイ 内部管理APIをツール/リソース/プロンプトテンプレートに変換し、LLMエージェントが呼び出せるようにします。JSON-Schemaは関数シグネチャから自動生成され、RBACでフィルタリングされ、一時チケットと30秒のタイムアウトで保護されます。すべての呼び出しは監査されます。
AIチャットアシスタント OpenAI、DeepSeek、Alibaba Tongyi、Zhipu GLM、または任意のOpenAI互換エンドポイントに対応。ストリーミングSSE出力、Markdownレンダリング、最大5ラウンドのツールコールループをサポート。モデルキーはFernetで暗号化して保存されます。
監査・モニタリング Request-IDミドルウェア、操作ログ、APIごとのレイテンシーチェック、検索可能な監査ログ。
データベースの柔軟性 クイックローカル開発にはSQLite、本番環境にはMySQL。DB_TYPEで自動ドライバ切り替え。Redisキャッシュ(オプション)は、メモリ内ストアへのスムーズなフォールバックをサポート。

アーキテクチャの概要

apeadmin/
  backend/          # FastAPI (async SQLAlchemy, Alembicマイグレーション)
    src/
      api/          # RESTエンドポイント(認証、ユーザー、ロール、プラグイン、AIチャット…)
      core/         # 設定、セキュリティ(JWT + bcrypt)、ミドルウェア、シードデータ
      crud/         # RBACフック付きの汎用CRUD
      db/           # エンジンとセッション処理
      models/       # ORM定義(rbac、プラグイン、AI、MCPログ)
      mcp/          # MCPマネージャ、ルート、組み込みツール
      plugins/      # プラグインインターフェース、マネージャ、ビルトイン例
      ai/           # エージェントオーケストレーション、関数呼び出しループ
      schemas/      # Pydanticリクエスト/レスポンスモデル
      main.py       # アプリエントリポイント(ライフサイクル、セットアップモード)
  frontend/         # Vue 3 + Vite + TypeScript + Element Plus UI
    src/
      api/          # すべてのバックエンドルート用Axiosラッパー
      components/   # ヘッダー、サイドバーなど
      directives/   # `v-permission`
      router/       # バックエンドメニュー木から動的に生成されたルート
      stores/       # Piniaストア(ユーザー、メニュー、権限)
      views/        # ページ(ログイン、システム管理、プラグインマーケット、AIチャット…)

設計原則は 「インストールして実行」 です。設定されていないインスタンスは /setup にリダイレクトし、.env ファイルを書き込み、テーブルを作成して、通常のマルチテナント管理システムとして動作します。


どのような場面で使うべきか?

シナリオ ApeAdminが役立つ理由
AI SaaSプラットフォーム データ取得、ユーザー管理、カスタムビジネスロジックなどの内部ツールを、別途APIを書かずにLLMエージェントに公開できます。
企業内ツール ユーザー、部門、カスタムプラグインを管理する権限付きUIを迅速に構築し、単一の真実のソースを維持できます。
プラグインエコシステム チームは独立したPythonプラグイン(例:データコネクタ、モデルラッパー)を開発でき、自動検出とホットロードが可能で、コア部分は安定したままです。
迅速なプロトタイピング SQLite開発モードと3ステップウィザードを使って、数分で機能する管理パネルを起動できます。

クイックスタート

  1. バックエンド
    cd backend
    python -m venv .venv && source .venv/bin/activate   # Windows: .venv\Scripts\activate
    pip install -e .
    uvicorn src.main:app --reload --host 0.0.0.0 --port 8000
    
  2. フロントエンド
    cd frontend
    npm install --legacy-peer-deps
    npm run dev   # http://localhost:5173 で提供
    
  3. URLを開くと、設定が不足していることを検出し、セットアップウィザードを起動します。SQLite(ゼロコンフィグ)を選択するか、MySQLインスタンスに接続できます。
  4. インストール後、定義した管理者資格情報を使用してログインし、以下の機能を探索します:
    • システム → ユーザー / ロール / メニュー / 部門
    • プラグイン → マーケットプレイス、ZIPアップロード、有効/無効
    • MCP → ツール / リソース / プロンプトテンプレート
    • AI → モデルAPIキーを追加し、登録したツールを呼び出せるチャットセッションを開始

本番環境では、deploy/DEPLOY.md に記載のDocker/Nginxスクリプトに従ってください。


技術スタック

レイヤー 技術
バックエンド FastAPI, async SQLAlchemy 2.0, Alembic, Pydantic-Settings, JWT, bcrypt
フロントエンド Vue 3.5, Vite 6, TypeScript 5.7, Element Plus 2.9, Pinia, ECharts
データベース MySQL(aiomysql経由)または SQLite(aiosqlite)
キャッシュ Redis(オプション)
AI統合 Server-Sent Events上のMCP(Model Context Protocol)、OpenAI互換エンドポイントをサポート
パッケージング MITライセンス、バックエンドはpip編集可能インストール、フロントエンドはnpm

ライセンスとコミュニティ

  • ライセンス: MIT – 商用・非商用問わず自由に利用可能。
  • コミュニティ: 公式サイト、プラグインマーケットプレイス、ドキュメントポータル、WeChatユーザー群(リポジトリ内のQRコード参照)。貢献は標準的なフォーク・ブランチ・PRワークフローに従い、明確なブランチ命名規則があります。

TL;DR

ApeAdminは、プラグイン最優先、AI対応の管理フレームワークであり、ユーザー、権限、カスタムビジネスロジックを管理しながら、それらの機能をLLMエージェントが呼び出せるツールとして自動公開します。準備済みのUI、インストールウィザード、完全なプラグインエコシステムを備えており、現代のAI中心製品の堅実な基盤となります。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト