插件开发

插件系统开发指南和示例

插件概述

AI Prompt Studio 提供强大的插件系统,允许开发者扩展应用功能。

插件特性

  • 基于 Python 的插件架构
  • 热插拔支持,无需重启应用
  • 丰富的 API 接口
  • UI 扩展能力
  • 事件驱动机制

插件类型

  • 功能插件:扩展核心功能
  • UI插件:添加新的界面元素
  • 导入导出插件:支持新的文件格式
  • 集成插件:与第三方服务集成

插件结构

标准的插件目录结构如下:

my_plugin/
├── __init__.py
├── plugin.py          # 主插件文件
├── manifest.json      # 插件清单
├── ui/                # UI 文件
│   ├── main.ui
│   └── styles.qss
├── resources/         # 资源文件
│   ├── icons/
│   └── images/
└── README.md         # 插件说明

插件清单 (manifest.json)

{
  "name": "My Plugin",
  "version": "1.0.0",
  "description": "插件描述",
  "author": "作者名称",
  "email": "author@example.com",
  "homepage": "https://example.com",
  "license": "MIT",
  "main": "plugin.py",
  "dependencies": [],
  "permissions": ["read", "write"],
  "min_app_version": "1.0.0"
}

开发指南

插件开发的基本步骤和最佳实践。

基础插件类

from aipromptstudio.plugin import BasePlugin

class MyPlugin(BasePlugin):
    def __init__(self):
        super().__init__()
        self.name = "My Plugin"
        self.version = "1.0.0"
    
    def activate(self):
        """插件激活时调用"""
        print("插件已激活")
    
    def deactivate(self):
        """插件停用时调用"""
        print("插件已停用")
    
    def on_prompt_created(self, prompt):
        """提示词创建事件"""
        pass
    
    def on_prompt_updated(self, prompt):
        """提示词更新事件"""
        pass

API 接口

插件可以使用以下 API:

  • self.app - 应用实例
  • self.db - 数据库接口
  • self.ui - UI 管理器
  • self.config - 配置管理
  • self.logger - 日志记录

示例插件

一些常见的插件开发示例。

导出插件示例

class ExportPlugin(BasePlugin):
    def __init__(self):
        super().__init__()
        self.name = "Export Plugin"
    
    def activate(self):
        # 添加菜单项
        self.ui.add_menu_item(
            "文件", "导出为 PDF", 
            self.export_to_pdf
        )
    
    def export_to_pdf(self):
        """导出为 PDF 文件"""
        prompts = self.db.get_all_prompts()
        # PDF 生成逻辑
        pass

AI 集成插件示例

class AIIntegrationPlugin(BasePlugin):
    def __init__(self):
        super().__init__()
        self.name = "AI Integration"
    
    def activate(self):
        # 添加工具栏按钮
        self.ui.add_toolbar_button(
            "AI 优化", self.optimize_prompt
        )
    
    def optimize_prompt(self):
        """使用 AI 优化提示词"""
        current_prompt = self.ui.get_current_prompt()
        # AI API 调用逻辑
        optimized = self.call_ai_api(current_prompt)
        self.ui.set_current_prompt(optimized)

发布插件

如何打包和发布您的插件。

打包插件

  1. 确保所有文件都在插件目录中
  2. 检查 manifest.json 配置
  3. 测试插件功能
  4. 创建 ZIP 压缩包

发布渠道

  • 官方插件商店:提交到官方审核
  • GitHub:开源发布
  • 个人网站:自主发布

最佳实践

  • 编写详细的文档
  • 提供使用示例
  • 遵循编码规范
  • 进行充分测试
  • 及时更新维护

开发资源

插件开发相关的资源和工具。

开发工具

  • 插件开发模板
  • 调试工具
  • 测试框架
  • 文档生成器

社区资源

  • 开发者论坛
  • 示例代码库
  • 技术博客
  • 视频教程