Visual Data Preparation Powered by Python

Simple, intutive and easy to use with AI.


Test Slack License PyPI version PyPI Downloads PyPI - Downloads

![amphi-github-banner](https://github.com/user-attachments/assets/01832e09-3e8a-4d7b-987b-311f3af72071) English ยท [Try the demo](https://demo.amphi.ai) ยท [Report Bug](https://github.com/amphi-ai/amphi-etl/issues) ยท [Request Feature](https://github.com/amphi-ai/amphi-etl/issues)
Table of contents #### TOC - [๐Ÿ“ฆ Installation](#-installation) - [๐Ÿ”จ Usage](#-usage) - [โœจ Features](#-features) - [๐Ÿค Contributing](#-contributing) - [๐Ÿ›ฃ๏ธ Ecosystem](#๏ธ-ecosystem) ####
## ๐Ÿ“ฆ Installation & Update Amphi is available as both a standalone application or as a JupyterLab extension. | Amphi ETL (standalone) | Amphi for JupyterLab (extension) | |------------------------|----------------------| | ![amphi-etl-home-page](https://github.com/user-attachments/assets/3a37e271-7c8d-495a-9caf-2087804305ef) | ![amphi-for-jupyterlab-homepage2](https://github.com/user-attachments/assets/52abe431-e4c3-4cfc-8ed1-71ab24eaabdf) | | ```pip install amphi-etl``` | ```pip install jupyterlab-amphi``` | | ```pip install --upgrade amphi-etl``` | ```pip install --upgrade jupyterlab-amphi``` |
> \[!NOTE] > > If you prefer to install Amphi's **Jupyterlab extension** through the extension manager, make sure to install `jupyerlab-amphi` package
## ๐Ÿ”จ Usage To start Amphi ETL (standalone), simply run: ```bash amphi start ``` Use the following parameters to specify your: - workspace (where you can access files and create pipelines on your system), - IP address to expose - port to use ### Deploy on your local machine ```bash amphi start -w /your/workspace/path ``` ### Deploy on a server For deploying on a server, you need to specify `-i 0.0.0.0` to expose Amphi and access it through the internet. Optionaly specify a different port. ```bash amphi start -w /your/workspace/path -i 0.0.0.0 -p 8888 ``` - ๐Ÿ“š [Documentation](https://docs.amphi.ai) - ๐Ÿš€ [Getting Started](https://docs.amphi.ai/getting-started/installation)
To update Amphi ETL run the following: ```bash pip install --upgrade amphi-etl ``` ## โœจ Features > \[!NOTE] > > Amphi focuses on data transformation for data preparation, reporting and lightweight ETL. It's designed to be super simple to use, quick to ramp up and easy to use with AI (ChatGTP, Claude, Mistra, etc). **Data Preparation:** - **Visual Interface / Low-code**: Accelerate data pipeline development and reduce maintenance time. - **Python-code Generation**: Generate native Python code leveraging common libraries such as [pandas](https://github.com/pandas-dev/pandas), [DuckDB](https://github.com/duckdb/duckdb) that you can run anywhere. - **Private and Secure**: Self-host Amphi on your laptop or in the cloud for complete privacy and security over your data. ## ๐Ÿงฉ Extensibility: Amphi is extremely flexible and extensible. - **Custom code**: Directly use Python or SQL in your pipelines. - **Custom components**: Add custom components directly from the interface. How to add a component: ```javascript // Component file: HelloDate.tsx class HelloDate extends (globalThis as any).Amphi.BaseCoreComponent { constructor() { const description = 'Takes a date and outputs a pandas DataFrame with a message including that date.'; const defaultConfig = { selectedDate: "" }; const form = { idPrefix: 'component__form', fields: [ { type: 'date', id: 'selectedDate', label: 'Select a Date', placeholder: 'Choose a date' } ] }; const icon = { name: 'amphi-date-input-hello', svgstr: '' }; // Parameters: Display Name, Technical ID, Description, Output Type, Inputs, Category, Icon, DefaultConfig, Form super('Hello Date', 'helloDate', description, 'pandas_df_input', [], 'inputs', icon, defaultConfig, form); } provideImports() { return ['import pandas as pd']; } generateComponentCode({ config, outputName }) { const date = String(config?.selectedDate ?? '').trim() || 'No Date Selected'; // We create a DataFrame and assign it to the outputName variable return ` data = { 'event': ['Date Selection'], 'selected_date': ['${date}'], 'message': ['The user selected the date: ${date}'] } ${outputName} = pd.DataFrame(data) `; } } export default new HelloDate(); ``` Create a new file in your workspace, such as `HelloDate.tsx` and then right-click and select "Add Component". You should see a notification "ent "Hello Date" (helloDate) updated successfully." Then either open a new pipeline or refresh the component palette to see the new component appear in the Inputs.
## ๐Ÿค Contributing - **Use and Innovate**: Try Amphi and share your use case with us. Your real-world usage and feedback help us improve our product. - **Voice Your Insights**: Encounter a bug? Have a question? Share them by submitting [issues](https://github.com/amphi-ai/amphi-etl/issues) and help us enhance the user experience. - **Shape the Future**: Have code enhancements or feature ideas? We invite you to propose [pull requests](https://github.com/amphi-ai/amphi-etl/pulls) and contribute directly. Every contribution is helpful.
## ๐Ÿ“ก Telemetry Amphi collects **anonymous telemetry data** to help us understand users and their use-cases better to improve the product. You can of course **opt out** in the settings and disable any telemetry data collection.
--- #### ๐Ÿ“ License Copyright ยฉ 2024-2026 - present [Amphi Labs](https://amphi.ai).
This project is [ELv2](./LICENSE) licensed.