Skip to content

main

Main entry point for MADA.

Provides the main launcher that dispatches to different interface modes.

main(ctx, mode)

Run MADA.

MODE is one of 'gradio', 'cli', or 'openai-api' and will determine the interface.

Examples:

mada gradio -p 7860 -s config.json

mada cli config.json

mada openai-api --port 8000 config.json

Source code in src/mada/main.py
@click.command(
    context_settings={
        "help_option_names": ["-h", "--help"],
        "ignore_unknown_options": True,
        "allow_extra_args": True,
    }
)
@click.argument(
    "mode",
    type=click.Choice(["gradio", "cli", "openai-api"], case_sensitive=False),
)
@click.pass_context
def main(ctx: click.Context, mode: str) -> None:
    """
    Run MADA.

    MODE is one of 'gradio', 'cli', or 'openai-api' and will determine the interface.

    Examples:

      mada gradio -p 7860 -s config.json

      mada cli config.json

      mada openai-api --port 8000 config.json
    """
    mode = mode.lower()

    # Remaining args after MODE
    remaining = list(ctx.args)

    if mode == "gradio":
        _run_gradio_from_args(remaining)
    elif mode == "cli":
        _run_cli_from_args(remaining)
    elif mode == "openai-api":
        _run_openai_api_from_args(remaining)
    else:
        # Protected by click.Choice, here just in case
        raise click.ClickException(f"Unsupported mode: {mode}")