Skip to content

Commit 7fce098

Browse files
authored
Merge branch 'open-edge-platform:main' into main
2 parents 798e3b9 + e41f3fe commit 7fce098

File tree

68 files changed

+946
-900
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

68 files changed

+946
-900
lines changed

education-ai-suite/smart-classroom/config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ models:
2525
min_words: 2
2626

2727
summarizer:
28-
provider: openvino # ipex or openvino
28+
provider: openvino
2929
name: Qwen/Qwen2.5-7B-Instruct # Qwen/Qwen2-7B-Instruct or Qwen/Qwen2.5-7B-Instruct
3030
device: GPU # GPU or CPU
3131
weight_format: int8 # supports fp16, int4, int8 (Recommended)

education-ai-suite/smart-classroom/docs/user-guide/get-started.md

Lines changed: 23 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,15 @@ To install dependencies, do the following:
1010

1111
Download from [https://ffmpeg.org/download.html](https://ffmpeg.org/download.html), and add the `ffmpeg/bin` folder to your system `PATH`.
1212

13+
### B. Install DL Streamer
14+
15+
Download the archive from [DL Streamer assets on GitHub](https://github.com/open-edge-platform/edge-ai-libraries/releases) Extract to a new folder, for example `C:\\dlstreamer_dlls`.
16+
17+
For details, refer to [Install Guide](https://docs.openedgeplatform.intel.com/dev/edge-ai-libraries/dl-streamer/get_started/install/install_guide_windows.html).
18+
1319
**Run your shell with admin privileges before starting the application**
1420

15-
### B. Clone Repository
21+
### C. Clone Repository
1622

1723
```bash
1824
git clone --no-checkout https://github.com/open-edge-platform/edge-ai-suites.git
@@ -23,7 +29,7 @@ Download from [https://ffmpeg.org/download.html](https://ffmpeg.org/download.htm
2329
cd education-ai-suite
2430
```
2531

26-
### C. Install Python dependencies
32+
### D. Install Python dependencies
2733

2834
It’s recommended to create a **dedicated Python virtual environment** for the base dependencies.
2935

@@ -37,32 +43,6 @@ python.exe -m pip install --upgrade pip
3743
pip install --upgrade -r requirements.txt
3844
```
3945

40-
### D. \[Optional] Create Python Venv for Ipex Based Summarizer
41-
42-
If you plan to use IPEX, create a separate virtual environment.
43-
44-
```bash
45-
python -m venv smartclassroom_ipex
46-
smartclassroom_ipex\Scripts\activate
47-
# Use Python 3.12.x before running pip.
48-
python.exe -m pip install --upgrade pip
49-
cd smart-classroom
50-
pip install --upgrade -r requirements.txt
51-
pip install --pre --upgrade ipex-llm[xpu_2.6] --extra-index-url https://download.pytorch.org/whl/xpu
52-
```
53-
54-
> **Note:**
55-
>
56-
> - `smartclassroom_ipex` should only be used with FunAsr and Ipex related models
57-
> (Specified in 2nd section). Don't configure Openvino related models in `smartclassroom_ipex`
58-
> - Use `smartclassroom` if you don’t need IPEX. Use `smartclassroom_ipex` if you want IPEX summarization.
59-
60-
### E. Install DL Streamer
61-
62-
Download the archive from [DL Streamer assets on GitHub](https://github.com/open-edge-platform/edge-ai-libraries/releases) Extract to a new folder, for example `C:\\dlstreamer_dlls`.
63-
64-
For details, refer to [Install Guide](https://docs.openedgeplatform.intel.com/dev/edge-ai-libraries/dl-streamer/get_started/install/install_guide_windows.html).
65-
6646
## Step 2: Configuration
6747

6848
### A. Default Configuration
@@ -71,13 +51,13 @@ By default, the project uses Whisper for transcription and OpenVINO-based Qwen m
7151

7252
```bash
7353
asr:
74-
provider: openvino # Supported: openvino, openai, funasr
75-
name: whisper-tiny # Options: whisper-tiny, whisper-small, paraformer-zh etc.
54+
provider: openai # Supported: openvino, openai, funasr
55+
name: whisper-small # Options: whisper-tiny, whisper-small, paraformer-zh etc.
7656
device: CPU # Whisper currently supports only CPU
7757
temperature: 0.0
7858

7959
summarizer:
80-
provider: openvino # Options: openvino or ipex
60+
provider: openvino
8161
name: Qwen/Qwen2-7B-Instruct # Examples: Qwen/Qwen1.5-7B-Chat, Qwen/Qwen2-7B-Instruct, Qwen/Qwen2.5-7B-Instruct
8262
device: GPU # Options: GPU or CPU
8363
weight_format: int8 # Supported: fp16, fp32, int4, int8
@@ -94,57 +74,21 @@ asr:
9474
name: paraformer-zh
9575
```
9676

97-
### B. IPEX-based Summarization
98-
99-
To use IPEX for summarization, ensure:
100-
101-
- IPEX-LLM is installed.
102-
- The environment for IPEX is activated.
103-
- The configuration (`smart-classroom/config.yaml`) is updated as shown below:
104-
105-
```bash
106-
asr:
107-
provider: funasr
108-
name: paraformer-zh
109-
summarizer:
110-
provider: ipex
111-
```
112-
11377
**Important: After updating the configuration, reload the application for changes to take effect.**
11478

11579
## Step 3: Run the Application
11680

117-
Run the setup script.
118-
Open a PowerShell prompt as and administrator, run the following script and follow instructions:
119-
120-
```sh
121-
cd C:\\dlstreamer_dlls
122-
.\setup_dls_env.ps1
123-
```
124-
12581
Activate the environment before running the application:
12682

12783
```bash
128-
smartclassroom\Scripts\activate # or smartclassroom_ipex
84+
smartclassroom\Scripts\activate
12985
```
13086

13187
Run the backend:
13288

13389
```bash
13490
python main.py
13591
```
136-
137-
Bring Up the Frontend:
138-
139-
```bash
140-
cd ui
141-
npm install
142-
npm run dev -- --host 0.0.0.0 --port 5173
143-
```
144-
145-
> **Note:** Open a second (new) Command Prompt/ terminal window for the frontend.
146-
> The backend terminal stays busy serving requests.
147-
14892
You should see backend logs similar to this:
14993

15094
```text
@@ -158,6 +102,17 @@ INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
158102

159103
This means your pipeline server has started successfully and is ready to accept requests.
160104

105+
Bring Up the Frontend:
106+
107+
> **Note:** Open a second (new) Command Prompt/ terminal window for the frontend.
108+
> The backend terminal stays busy serving requests.
109+
110+
```bash
111+
cd C:\path\to\edge-ai-suites\education-ai-suite\smart-classroom\ui
112+
npm install
113+
npm run dev -- --host 0.0.0.0 --port 5173
114+
```
115+
161116
## Step 4: Access the UI
162117

163118
After starting the frontend you can open the Smart Classroom UI in a browser:

education-ai-suite/smart-classroom/ui/src/components/Footer/Footer.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,10 @@ import "../../assets/css/Footer.css";
44

55
const Footer: React.FC = () => {
66
const { t } = useTranslation();
7+
const currentYear = new Date().getFullYear();
78
return (
89
<footer className="footer-bar">
9-
<span>{t('footer.copyright')}</span>
10+
<span>{t('footer.copyright', { year: currentYear })}</span>
1011
</footer>
1112
);
1213
};

education-ai-suite/smart-classroom/ui/src/i18n/en.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"timer": "Timer"
88
},
99
"footer": {
10-
"copyright": "© 2025 Smart Classroom Sample App"
10+
"copyright": "© 2025-{{year}} Smart Classroom Sample App"
1111
},
1212
"notifications": {
1313
"start": "Upload the files or Start recording to begin a new session",

education-ai-suite/smart-classroom/ui/src/i18n/zh.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"timer": "计时器"
88
},
99
"footer": {
10-
"copyright": "© 2025 智能教室示例应用"
10+
"copyright": "© 2025-{{year}} 智能教室示例应用"
1111
},
1212
"notifications": {
1313
"start": "上传文件或开始录音以开始新会话",

health-and-life-sciences-ai-suite/multi_modal_patient_monitoring/Makefile

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,13 @@
44

55
.PHONY: init-mdpnp build-mdpnp build-dds-bridge run down download-rppg-assets
66

7+
HTTP_PROXY := $(or $(HTTP_PROXY),$(http_proxy))
8+
HTTPS_PROXY := $(or $(HTTPS_PROXY),$(https_proxy))
9+
NO_PROXY := $(or $(NO_PROXY),$(no_proxy))
10+
export HTTP_PROXY
11+
export HTTPS_PROXY
12+
export NO_PROXY
13+
714
MDPNP_PATH := services/mdpnp/mdpnp
815
DDS_BRIDGE_PATH := services/dds-bridge
916
DOCKER_COMPOSE := docker-compose.yaml
@@ -32,10 +39,10 @@ run:
3239
@if [ "$(REGISTRY)" = "true" ]; then \
3340
echo "##############Using registry mode - fetching all images..."; \
3441
echo "Using HOST_IP=$(HOST_IP) for UI backend"; \
35-
docker compose -f $(DOCKER_COMPOSE) --env-file configs/device.env up -d; \
42+
./run_compose.sh -d; \
3643
else \
3744
echo "Using HOST_IP=$(HOST_IP) for UI backend"; \
38-
docker compose -f $(DOCKER_COMPOSE) --env-file configs/device.env up --build -d; \
45+
./run_compose.sh --build -d; \
3946
fi
4047
@echo "==============================================="
4148
@echo "Multi-modal patient monitoring application is starting up."

health-and-life-sciences-ai-suite/multi_modal_patient_monitoring/docker-compose.yaml

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,11 @@ services:
1313
NO_PROXY: ${NO_PROXY}
1414
image: intel/hl-ai-patient-monitoring-assets:${TAG:-1.0.1}
1515
container_name: patient-monitoring-assets
16+
environment:
17+
- MODEL_CONFIG_PATH=/app/configs/model-config.yaml
18+
- HTTP_PROXY=${HTTP_PROXY}
19+
- HTTPS_PROXY=${HTTPS_PROXY}
20+
- NO_PROXY=${NO_PROXY}
1621
volumes:
1722
- ./configs/model-config.yaml:/app/configs/model-config.yaml:ro
1823
- ./models:/models
@@ -60,7 +65,7 @@ services:
6065
- /sys/class/drm:/sys/class/drm:ro
6166
- /sys/kernel/debug:/sys/kernel/debug:ro
6267
- /run:/run
63-
- /proc:/proc:ro
68+
- /proc:/proc
6469

6570
mdpnp:
6671
build:
@@ -121,15 +126,13 @@ services:
121126
condition: service_started
122127
environment:
123128
- ECG_DEVICE=${ECG_DEVICE}
124-
- ZE_ENABLE_ALT_DRIVERS=libze_intel_npu.so
125129
env_file:
126130
- ./configs/device.env
127131
volumes:
128132
- ./models:/models
129133
- ./videos:/videos
130134
devices:
131135
- "/dev/dri:/dev/dri"
132-
- "/dev/accel/accel0:/dev/accel/accel0"
133136
group_add:
134137
- video
135138

@@ -154,7 +157,6 @@ services:
154157
- DEPLOYMENT_ENV=production
155158
- POSE_3D_DEVICE=${POSE_3D_DEVICE:-GPU}
156159
- CONTROL_PORT=8083
157-
- ZE_ENABLE_ALT_DRIVERS=libze_intel_npu.so
158160
env_file:
159161
- ./configs/device.env
160162
depends_on:
@@ -167,7 +169,6 @@ services:
167169
- ./videos:/videos
168170
devices:
169171
- "/dev/dri:/dev/dri"
170-
- "/dev/accel/accel0:/dev/accel/accel0"
171172
group_add:
172173
- video
173174

@@ -189,15 +190,13 @@ services:
189190
condition: service_started
190191
environment:
191192
- RPPG_DEVICE=${RPPG_DEVICE}
192-
- ZE_ENABLE_ALT_DRIVERS=libze_intel_npu.so
193193
env_file:
194194
- ./configs/device.env
195195
volumes:
196196
- ./models:/models
197197
- ./videos:/videos
198198
devices:
199199
- "/dev/dri:/dev/dri"
200-
- "/dev/accel/accel0:/dev/accel/accel0"
201200
group_add:
202201
- video
203202

@@ -225,4 +224,4 @@ services:
225224
3dpose-estimation:
226225
condition: service_started
227226
rppg:
228-
condition: service_started
227+
condition: service_started
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
#!/usr/bin/env bash
2+
set -euo pipefail
3+
4+
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
5+
6+
if [[ ! -f "${ROOT_DIR}/configs/device.env" ]]; then
7+
echo "configs/device.env not found; running without NPU override" >&2
8+
exec docker compose -f "${ROOT_DIR}/docker-compose.yaml" up "$@"
9+
fi
10+
11+
source "${ROOT_DIR}/configs/device.env"
12+
13+
TMP_OVERRIDE="$(mktemp)"
14+
trap 'rm -f "${TMP_OVERRIDE}"' EXIT
15+
16+
echo "services:" > "${TMP_OVERRIDE}"
17+
18+
HAS_NPU=false
19+
20+
if [[ "${ECG_DEVICE:-}" == "NPU" ]]; then
21+
HAS_NPU=true
22+
cat >> "${TMP_OVERRIDE}" <<EOF
23+
ai-ecg:
24+
environment:
25+
- ZE_ENABLE_ALT_DRIVERS=libze_intel_npu.so
26+
devices:
27+
- "/dev/dri:/dev/dri"
28+
- "/dev/accel/accel0:/dev/accel/accel0"
29+
EOF
30+
fi
31+
32+
if [[ "${POSE_3D_DEVICE:-}" == "NPU" ]]; then
33+
HAS_NPU=true
34+
cat >> "${TMP_OVERRIDE}" <<EOF
35+
3dpose-estimation:
36+
environment:
37+
- ZE_ENABLE_ALT_DRIVERS=libze_intel_npu.so
38+
devices:
39+
- "/dev/dri:/dev/dri"
40+
- "/dev/accel/accel0:/dev/accel/accel0"
41+
EOF
42+
fi
43+
44+
if [[ "${RPPG_DEVICE:-}" == "NPU" ]]; then
45+
HAS_NPU=true
46+
cat >> "${TMP_OVERRIDE}" <<EOF
47+
rppg:
48+
environment:
49+
- ZE_ENABLE_ALT_DRIVERS=libze_intel_npu.so
50+
devices:
51+
- "/dev/dri:/dev/dri"
52+
- "/dev/accel/accel0:/dev/accel/accel0"
53+
EOF
54+
fi
55+
56+
if [[ "${HAS_NPU}" == true ]]; then
57+
echo "Detected NPU devices in configs/device.env; using runtime override ${TMP_OVERRIDE}" >&2
58+
exec docker compose --env-file "${ROOT_DIR}/configs/device.env" -f "${ROOT_DIR}/docker-compose.yaml" -f "${TMP_OVERRIDE}" up "$@"
59+
else
60+
echo "No NPU devices configured in configs/device.env; running without NPU override" >&2
61+
exec docker compose --env-file "${ROOT_DIR}/configs/device.env" -f "${ROOT_DIR}/docker-compose.yaml" up "$@"
62+
fi
63+

health-and-life-sciences-ai-suite/multi_modal_patient_monitoring/services/3d-pose-estimation/Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ ARG HTTP_PROXY
44
ARG HTTPS_PROXY
55
ARG NO_PROXY
66

7-
87
# GPU support (if using OpenVINO with GPU plugin, ensure the base image has necessary drivers/libraries)
98
ARG INSTALL_DRIVER_VERSION="25.31.34666"
109
ARG USER_ID=1000
@@ -13,6 +12,7 @@ ARG USER_GROUP_ID=1000
1312
RUN groupadd -g ${USER_GROUP_ID} appuser && useradd -m -s /bin/bash -u ${USER_ID} -g ${USER_GROUP_ID} appuser
1413

1514
RUN apt-get update -y && apt-get install -y --no-install-recommends --fix-missing \
15+
ca-certificates \
1616
curl \
1717
&& rm -rf /var/lib/apt/lists/*
1818

@@ -32,7 +32,7 @@ WORKDIR /app
3232

3333
# Copy requirements and install Python dependencies (relative to build context)
3434
COPY src/requirements.txt .
35-
RUN pip install --no-cache-dir -r requirements.txt
35+
RUN pip install --no-cache-dir --default-timeout=300 --retries=5 -r requirements.txt
3636

3737
# Copy proto files and generate Python code (relative to build context)
3838
COPY proto/ ./proto/

health-and-life-sciences-ai-suite/multi_modal_patient_monitoring/services/3d-pose-estimation/src/requirements.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ numpy>=1.23.0,<2.0
55
scipy>=1.10.0
66

77
# gRPC runtime
8-
grpcio>=1.60.0
9-
grpcio-tools>=1.60.0
10-
protobuf>=4.25.0,<5.0.0
8+
grpcio==1.78.0
9+
grpcio-tools==1.71.2
10+
protobuf==5.29.6
1111

1212
# Control server and MJPEG streaming
1313
fastapi>=0.104.0

0 commit comments

Comments
 (0)