- Add boto3 direct download for S3/MinIO stored images - Implement 6-level file fallback: DB → S3 → Local → URL → API → Attributes - Sync S3 support to Chinese version (export_to_word_cn.py) - Update version to 0.4.2 - Rewrite README.md and README_CN.md following standard format - Update docs version numbers - Add file storage access guidelines to copilot-instructions.md
4.6 KiB
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:
- :material-gesture-tap: Add buttons to the message action bar
- :material-export: Generate and export content (mind maps, charts, files)
- :material-api: Interact with external services and APIs
- :material-animation-play: Create visualizations and interactive content
Available Action Plugins
-
:material-brain:{ .lg .middle } Smart Mind Map
Intelligently analyzes text content and generates interactive mind maps with beautiful visualizations.
Version: 0.8.0
-
:material-chart-bar:{ .lg .middle } Smart Infographic
Transform text into professional infographics using AntV visualization engine with various templates.
Version: 1.4.0
-
:material-card-text:{ .lg .middle } Knowledge Card
Quickly generates beautiful learning memory cards, perfect for studying and memorization.
Version: 0.2.2
-
:material-file-excel:{ .lg .middle } Export to Excel
Export chat conversations to Excel spreadsheet format for analysis and archiving.
Version: 0.3.7
-
:material-file-word-box:{ .lg .middle } 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
-
:material-text-box-search:{ .lg .middle } Summary
Generate concise summaries of long text content with key points extraction.
Version: 0.1.0
-
:material-image-text:{ .lg .middle } Infographic to Markdown
AI-powered infographic generator that renders SVG and embeds it as Markdown Data URL image.
Version: 1.0.0
Quick Installation
- Download the desired plugin
.pyfile - Navigate to Admin Panel → Settings → Functions
- Upload the file and configure settings
- 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.