Skip to content

Releases: LunaStev/FlowModel

v1

18 Jan 08:31
9cba980
Compare
Choose a tag to compare

FlowModel

FlowModel is a lightweight and extensible machine learning framework designed for beginners who want to explore AI development. With its modular plugin-based architecture, users can easily extend its functionality while keeping the core simple and maintainable.


Table of Contents

  1. Introduction
  2. Installation
  3. Directory Structure
  4. Usage
  5. Creating Plugins
  6. Command-Line Interface
  7. Contributing
  8. License

Introduction

FlowModel provides a simple entry point for experimenting with AI and machine learning. It allows users to start with a minimal framework and extend it by creating and adding plugins. The framework is designed to focus on simplicity, modularity, and extensibility.


Installation

Prerequisites

  • Python 3.8 or higher
  • pip package manager

Steps

  1. Clone the repository:

    git clone https://github.com/LunaStev/FlowModel.git
    cd FlowModel
  2. Create and activate a virtual environment:

    python -m venv .venv
    source .venv/bin/activate  # For Unix/MacOS
    .venv\Scripts\activate   # For Windows
  3. Install dependencies:

    pip install -r requirements.txt

Directory Structure

FlowModel/
├── main.py             # Entry point for the application
├── plugins/            # Directory for plugins
│   ├── __init__.py     # Initializes the plugin package
│   ├── example_plugin.py # Example plugin
├── data/               # Placeholder for datasets
├── requirements.txt    # Python dependencies

Usage

Training a Model

To train a model using FlowModel, run:

python main.py train

This will load any available plugins from the plugins/ directory and apply their logic during the training process.

Adding Plugins

To add a plugin, place a .py file with your plugin class in the plugins/ directory. FlowModel automatically detects and loads plugins at runtime.


Creating Plugins

Plugins extend the functionality of FlowModel. To create a plugin:

  1. Create a new Python file in the plugins/ directory:

    plugins/my_plugin.py
  2. Define your plugin class:

    class MyPlugin:
        def __init__(self):
            print("MyPlugin initialized.")
    
        def modify_model(self, model):
            print("MyPlugin: Modifying the model.")
            return model
    
        def on_train_start(self):
            print("MyPlugin: Training started.")
    
        def on_train_end(self):
            print("MyPlugin: Training finished.")
  3. Use your plugin during training:
    When main.py runs, it automatically loads your plugin and calls its methods.


Command-Line Interface

FlowModel includes a simple CLI for interacting with the framework.

Commands

  • Train: Start the training process with plugins.
    python main.py train

Contributing

Contributions are welcome! To contribute:

  1. Fork the repository.
  2. Create a new branch for your feature.
  3. Commit your changes and push them.
  4. Open a pull request.

License

FlowModel is released under the MPL-2.0 License. See LICENSE for details.


Happy experimenting with FlowModel! 🚀