Skip to content

Action Plugins

Action plugins add custom buttons below messages in the chat interface, allowing you to trigger specific functionalities with a single click.

What are Actions?

Actions are interactive plugins that:

  • Add buttons to the message action bar
  • Generate and export content (mind maps, charts, files)
  • Interact with external services and APIs
  • Create visualizations and interactive content

Available Action Plugins

  • Smart Mind Map


    Intelligently analyzes text content and generates interactive mind maps with beautiful visualizations.

    Version: 0.9.1

    Documentation

  • Smart Infographic


    Transform text into professional infographics using AntV visualization engine with various templates.

    Version: 1.4.9

    Documentation

  • Flash Card


    Quickly generates beautiful flashcards from text, extracting key points and categories.

    Version: 0.2.4

    Documentation

  • Export to Excel


    Export chat conversations to Excel spreadsheet format for analysis and archiving.

    Version: 0.3.7

    Documentation

  • Export to Word (Enhanced Formatting)


    Export the current conversation to a formatted Word doc with syntax highlighting, native math equations, Mermaid diagrams, citations, and enhanced table formatting.

    Version: 0.4.2

    Documentation

  • Deep Dive


    A comprehensive thinking lens that dives deep into any content - Context → Logic → Insight → Path. Supports theme auto-adaptation.

    Version: 1.0.0

    Documentation


Quick Installation

  1. Download the desired plugin .py file
  2. Navigate to Admin PanelSettingsFunctions
  3. Upload the file and configure settings
  4. Use the action button in chat messages

Development Template

Want to create your own Action plugin? Use our template:

"""
title: My Custom Action
author: Your Name
version: 1.0.0
description: Description of your action plugin
"""

from pydantic import BaseModel, Field
from typing import Optional, Dict, Any

class Action:
    class Valves(BaseModel):
        # Add your configuration options here
        show_status: bool = Field(
            default=True,
            description="Show status updates during processing"
        )

    def __init__(self):
        self.valves = self.Valves()

    async def action(
        self,
        body: dict,
        __user__: Optional[Dict[str, Any]] = None,
        __event_emitter__: Optional[Any] = None,
        __request__: Optional[Any] = None,
    ) -> Optional[dict]:
        """
        Main action method triggered when user clicks the action button.

        Args:
            body: Message body containing conversation data
            __user__: Current user information
            __event_emitter__: For sending notifications and status updates
            __request__: FastAPI request object

        Returns:
            Modified body dict or None
        """
        # Send status update
        if __event_emitter__ and self.valves.show_status:
            await __event_emitter__({
                "type": "status",
                "data": {"description": "Processing...", "done": False}
            })

        # Your plugin logic here
        messages = body.get("messages", [])
        if messages:
            last_message = messages[-1].get("content", "")
            # Process the message...

        # Complete status
        if __event_emitter__ and self.valves.show_status:
            await __event_emitter__({
                "type": "status",
                "data": {"description": "Done!", "done": True}
            })

        return body

For more details, check our Plugin Development Guide.