Skip to content

ElGap/ai-curator-openwebui

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AI Curator OpenWebUI Plugin

Export your best conversation pairs from OpenWebUI to AI Curator for LLM fine-tuning dataset management.

Open WebUI Version AI Cuurator License: MIT

✨ Features

  • 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

🚀 Quick Start

Prerequisites

Installation

  1. Install the Plugin

    • Go to OpenWebUI → Admin Panel → Functions
    • Click "New Function" → Import from Link
    • Paste this URL:
      https://github.com/ElGap/edukaai-openwebui
      
  2. 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
    • Configure default category, quality rating, and dataset ID
    • Save
  3. Enable the Plugin

    • Toggle the AI Curator Export function to "On"
    • Click on More and make sure Global is also set to "On"

Usage

  1. Have a conversation in OpenWebUI
  2. When you see a good exchange you want to save, look for the 📚 Export to AI Curator button under the assistant's message
  3. Click the button - it will immediately export using your pre-configured settings
  4. Get instant feedback: "✅ Exported to AI Curator!"
  5. Open AI Curator at http://localhost:3333 to 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.

⚙️ 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 with ip addr show docker0)
  • Native installation: http://localhost:3333

🏗️ How It Works

The plugin captures:

  • User's questioninstruction field
  • Assistant's responseoutput field
  • System prompt (if any) → systemPrompt field
  • Model namecontext.model.name
  • File attachmentscontext.files array

Data is sent to EdukaAI's /api/capture endpoint via REST API.

📊 Data Format

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
  }
}

🛠️ Development

Local Testing

  1. Clone this repository:

    git clone https://github.com/ElGap/edukaai-openwebui.git
    cd edukaai-openwebui
  2. Copy the function to your OpenWebUI instance for testing

  3. Make changes and test locally

Project Structure

edukaai-openwebui/
├── edukaai_openwebui.py    # Main plugin file
├── README.md               # This file
├── LICENSE                 # MIT License
└── .github/                # GitHub templates and workflows

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🔗 Links

🙏 Acknowledgments

  • 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

About

Export conversation pairs from OpenWebUI to AI Curator for LLM fine-tuning dataset management.

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages