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: 1.0.4

    Documentation

  • Smart Infographic


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

    Version: 1.6.4

    Documentation

  • Flash Card


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

    Version: 0.2.6

    Documentation

  • Export to Excel


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

    Version: 0.3.11

    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.5.3

    Documentation

  • Deep Dive


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

    Version: 1.1.0

    Documentation


Quick Installation

  1. Download the desired plugin .py file
  2. Navigate to Admin Panel → Settings → Functions
  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.