Extensions

Plugin Architecture API

Extend MoroAI with custom database connectors, proprietary loss objectives, and enterprise deployment engines.

Entry Points Specification

Plugins register themselves in their pyproject.toml under the moro.plugins namespace:

[project.entry-points."moro.plugins"]
custom_loader = "my_moro_plugin.loaders:PostgresDataLoader"
custom_target = "my_moro_plugin.deploy:KubeflowTarget"
  

Writing a Custom Data Loader

from moro.core.plugins import BaseDataLoader

class PostgresDataLoader(BaseDataLoader):
    name = "postgres"

    def load(self, connection_uri: str, query: str):
        # Fetch rows and yield standard messages dictionary
        yield {"messages": [{"role": "user", "content": "..."}]}