Export your best conversation pairs from OpenWebUI to AI Curator for LLM fine-tuning dataset management.
- One-Click Export: Capture high-quality conversations with a single button click
- Smart Metadata: Auto-detects model info and file attachments
- Pre-configured Settings: Set default category, quality rating, and dataset in the plugin settings
- Duplicate Detection: Automatically skips duplicate conversations
- Privacy First: Your data goes directly to your local EdukaAI instance
- Docker Compatible: Works seamlessly with Docker-based OpenWebUI installations
- AI Curator running locally (default: http://localhost:3333)
- OpenWebUI >= 0.3.0
-
Install the Plugin
- Go to OpenWebUI → Admin Panel → Functions
- Click "New Function" → Import from Link
- Paste this URL:
https://github.com/ElGap/edukaai-openwebui
-
Configure AI Curator Connection
- Click the gear icon next to the AI Curator Export function
- Set your AI Curator endpoint:
- Docker + macOS/Windows:
http://host.docker.internal:3333 - Docker + Linux: Use your host IP (e.g.,
http://172.17.0.1:3333) - Native install:
http://localhost:3333
- Docker + macOS/Windows:
- Configure default category, quality rating, and dataset ID
- Save
-
Enable the Plugin
- Toggle the AI Curator Export function to "On"
- Click on More and make sure Global is also set to "On"
- Have a conversation in OpenWebUI
- When you see a good exchange you want to save, look for the 📚 Export to AI Curator button under the assistant's message
- Click the button - it will immediately export using your pre-configured settings
- Get instant feedback: "✅ Exported to AI Curator!"
- Open AI Curator at
http://localhost:3333to view and manage your saved samples
Tip: The export uses your default settings (category, quality, dataset). You can change these defaults in the plugin configuration.
Configure via the Valves (settings) in OpenWebUI:
| Setting | Description | Default |
|---|---|---|
EDUKAAI_ENDPOINT |
EdukaAI server URL | http://host.docker.internal:3333 |
EDUKAAI_DATASET_ID |
Target dataset ID (leave empty for default) | None |
DEFAULT_CATEGORY |
Default category for exports | general |
DEFAULT_QUALITY |
Default quality rating (1-5) | 4 |
AUTO_APPROVE |
Skip review queue in EdukaAI | false |
Important: The EDUKAAI_ENDPOINT must match your setup:
- Docker on macOS/Windows:
http://host.docker.internal:3333(default, should work) - Docker on Linux: Use
http://YOUR_HOST_IP:3333(find IP withip addr show docker0) - Native installation:
http://localhost:3333
The plugin captures:
- User's question →
instructionfield - Assistant's response →
outputfield - System prompt (if any) →
systemPromptfield - Model name →
context.model.name - File attachments →
context.filesarray
Data is sent to EdukaAI's /api/capture endpoint via REST API.
Exported records follow the EdukaAI Universal Record format:
{
"source": "openwebui",
"apiVersion": "1.0",
"records": [{
"instruction": "User's question here",
"output": "Assistant's response here",
"systemPrompt": "Optional system instructions",
"category": "coding",
"qualityRating": 4,
"tags": ["python", "debugging"],
"context": {
"model": {"name": "gpt-4"},
"files": []
}
}],
"options": {
"autoApprove": false,
"skipDuplicates": true
}
}-
Clone this repository:
git clone https://github.com/ElGap/edukaai-openwebui.git cd edukaai-openwebui -
Copy the function to your OpenWebUI instance for testing
-
Make changes and test locally
edukaai-openwebui/
├── edukaai_openwebui.py # Main plugin file
├── README.md # This file
├── LICENSE # MIT License
└── .github/ # GitHub templates and workflows
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Built for the AI Curator and EdukaAI project
- Inspired by the need for simple, privacy-focused LLM training data collection
- Thanks to the OpenWebUI team for the excellent plugin system