Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions samples/ai/edge-ai-demo-studio/.gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# Python environment
.venv
.export-venv
__pycache__
.cache

Expand Down
53 changes: 49 additions & 4 deletions samples/ai/edge-ai-demo-studio/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,8 @@ Edge AI Demo Studio is a modern toolkit for deploying, managing, and serving AI
- **Image Generation** — Generate images from text prompts using diffusion models accelerated with OpenVINO.
- **MCP Manager** — Manage Model Context Protocol servers and their tool integrations.
- **Wake Word Detection** — Detect custom wake words from microphone input and send webhook notifications on detection events.
- **Samples:** Sample use cases that implement the AI services (see [Exporting Samples](#exporting-samples) to package a subset for standalone deployment)
- **OCR** — Optical character recognition — extract text and its location from images using OCR models on OpenVINO.
- **Samples:** Sample use cases that implement the AI services (see [Exporting Samples & Services](#exporting-samples--services) to package a subset for standalone deployment)
- **Digital Avatar** — Interact with an AI-powered avatar that combines real-time video with intelligent conversation.
- **Digital Avatar Lite** — A lightweight animated robot avatar that brings conversations to life with responsive movements and expressions.
- **RAG Chatbot** — Upload documents and chat with an AI that retrieves relevant context to answer your questions.
Expand Down Expand Up @@ -121,17 +122,19 @@ By default, every service is created with its built-in defaults and stays stoppe

The file is read on every startup: the default services are loaded first, then your presets overwrite them. Services with `"status": "online"` are started automatically (they move to `prepare` and are promoted to `active` once their health check passes); everything else stays offline.

The Electron packaging scripts (`scripts/bash/package.sh` / `scripts/win/package.ps1`) bundle the project-root `deployment.json` into the package, so presets set before packaging ship with the app. In a packaged build the file lives at `resources/deployment.json` (next to the bundled frontend) — edit it there and restart the app to change the presets of an existing package, or point the `DEPLOYMENT_CONFIG_PATH` environment variable at a file elsewhere. See [docs/deployment-config.md](docs/deployment-config.md#packaged-electron-builds) for details.

See [docs/deployment-config.md](docs/deployment-config.md) for the full JSON guidelines — all supported fields plus each service's available models, devices, and engines. The reference (and the [docs/deployment.schema.json](docs/deployment.schema.json) editor schema referenced via `$schema` above) is auto-generated from the service registry, so it always matches the version you are running.

---

## Exporting Samples
## Exporting Samples & Services

The **Export Samples** feature lets you produce a slim, self-contained copy of Demo Studio that contains only the sample(s) you select, together with the services and workers they depend on. The exported directory includes its own `setup.sh` / `setup_win.bat` and `start.sh` / `start_win.bat` scripts so it can be set up and run independently.
The **Export Bundle** feature (`scripts/export-bundle.mjs`) lets you produce a slim, self-contained copy of Demo Studio that contains only the sample(s) and/or service(s) you select, together with the services and workers they depend on. You can export samples (their services are resolved automatically), specific services on their own with no samples at all, or a mix of both. The exported directory includes its own `setup.sh` / `setup_win.bat` and `start.sh` / `start_win.bat` scripts so it can be set up and run independently.

### Via the Launcher Script

Run from the repository root — Node.js is bootstrapped automatically from `thirdparty/` if not already installed. The script lists all available samples, lets you pick one or more by number, then prompts for output directory, optional dependencies, and dry-run preference.
Run from the repository root — Node.js is bootstrapped automatically from `thirdparty/` if not already installed. The script lists all available samples and services, lets you pick any combination by number (leave a prompt blank to skip that category — e.g. pick only services for a samples-free export), then prompts for output directory, optional dependencies, and dry-run preference.

For Linux:
```bash
Expand All @@ -143,6 +146,16 @@ For Windows (PowerShell/Command Prompt):
.\export.bat
```

Arguments are forwarded to `scripts/export-bundle.mjs` for non-interactive use:

```bash
./export.sh --samples=rag-chatbot # sample + its service deps
./export.sh --services=text-to-speech,ocr # services only, no samples
./export.sh --samples=rag-chatbot --services=ocr # mix of both
./export.sh --list # list available ids
./export.sh --samples=rag-chatbot --dry-run # preview the plan only
```

### Via the Frontend GUI

1. Open the web UI and navigate to the **Samples** page (`http://localhost:8080/samples`).
Expand Down Expand Up @@ -191,3 +204,35 @@ See [docs/DEPLOYMENT.md](docs/DEPLOYMENT.md) for deployment guidelines.
**Q: Why is Electron Skipped by default**

This is because Electron is being used to create a packaged release only. If you need a packaged release, please refer to [docs/DEPLOYMENT.md](docs/DEPLOYMENT.md)

**Q: Unable to Start Text Generation service (possibly due to Long Paths Issue) on Windows**

The model could not be downloaded because the path is too long, causing the service to fail to start. Move the `edge-ai-demo-studio` project folder to a shorter path (e.g. `C:\edge-ai-demo-studio`) and try again.

**Q: Unable to start Speech-to-Text service (or other services) on Windows**

If you are behind a private/corporate network, check whether `NO_PROXY` is set in the terminal (CMD prompt/PowerShell) that you start Edge AI Demo Studio from, e.g.:

```powershell
echo %NO_PROXY%
```

or in PowerShell:

```powershell
echo $env:NO_PROXY
```

The terminal may not have picked up a `NO_PROXY` value that was set via the GUI (Settings > Network & internet > Proxy). Try setting `NO_PROXY` directly in the same terminal session before starting Edge AI Demo Studio:

- CMD prompt (session-only):

```cmd
set NO_PROXY=localhost,127.0.0.1
```

- PowerShell (session-only):

```powershell
$env:NO_PROXY = "localhost,127.0.0.1"
```
57 changes: 57 additions & 0 deletions samples/ai/edge-ai-demo-studio/docs/deployment-config.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,22 @@ it to `active`).
The file location can be overridden with the `DEPLOYMENT_CONFIG_PATH` environment variable.
Add `"$schema": "./docs/deployment.schema.json"` for editor validation and autocompletion.

## Packaged (Electron) builds

The packaging scripts (`scripts/bash/package.sh` / `scripts/win/package.ps1`)
bundle the project-root `deployment.json` (plus `docs/deployment.schema.json`)
into the Electron package automatically, so presets set before packaging ship
with the app. Inside the packaged app the file lives in the `resources`
directory next to the bundled frontend:

- Linux (zip): `EdgeAIDemoStudio/linux-unpacked/resources/deployment.json`
- Windows (installer): `<install dir>\resources\deployment.json`

To change the presets of an already packaged build, edit that file and
restart the app; delete it to fall back to the built-in defaults. Setting
the `DEPLOYMENT_CONFIG_PATH` environment variable before launching the app
overrides the bundled file.

## Example

```json
Expand Down Expand Up @@ -122,6 +138,27 @@ Known models:
| `OpenVINO/Qwen3-Embedding-0.6B-int8-ov` | `CPU`, `GPU`, `NPU` | — |
| `Qwen/Qwen3-Embedding-0.6B-GGUF` | `CPU`, `GPU` | — |

### `face-recognition` — Face Recognition

Detect and identify faces against a reference gallery using Open Model Zoo or OpenCV Zoo pipelines.

| Field | Value |
| --- | --- |
| Default port | 8031 |
| Engines | `worker` |
| Default model | `omz-retail` on `CPU` |
| Devices | `CPU`, `GPU` |
| Custom models | no |
| Supported OS | `linux`, `windows` |

Known models:

| Model (`models.default.name`) | Devices | Backend |
| --- | --- | --- |
| `omz-retail` | `CPU`, `GPU` | `openvino` |
| `omz-adas` | `CPU`, `GPU` | `openvino` |
| `yunet-sface` | `CPU`, `GPU` | `openvino` |

### `file-watcher` — File Watcher

Watches a folder for new image files and broadcasts them over WebSocket for real-time processing.
Expand All @@ -135,6 +172,26 @@ Watches a folder for new image files and broadcasts them over WebSocket for real
| Custom models | no |
| Supported OS | `linux`, `windows` |

### `frame-generation` — Frame Generation

RIFE video frame interpolation: fill in-between frames or upscale video FPS.

| Field | Value |
| --- | --- |
| Default port | 8031 |
| Engines | `worker` |
| Default model | `RIFE` on `CPU` |
| Devices | `CPU`, `GPU` |
| Custom models | no |
| Model sources | `huggingface`, `modelscope` |
| Supported OS | `linux`, `windows` |

Known models:

| Model (`models.default.name`) | Devices | Backend |
| --- | --- | --- |
| `RIFE` | `CPU`, `GPU` | `openvino` |

### `geti-classifier` — Geti Image Classifier

Serves inference from a local Intel Geti deployment and collects feedback for continuous model improvement.
Expand Down
Loading