Skip to main content

geti-using-the-pipeline

Use the Geti application end to end through its REST API — the project → dataset → annotate → train → deploy pipeline served by the FastAPI backend in `application/backend/`. Use when a user (not a contributor) wants to create a project, upload media, add annotations, launch a training or quantization job, track job status, configure a source → model → sink inference pipeline, and enable live inference. Covers the `/api/...` endpoints and the async job model, not backend code changes.

ソース情報

リポジトリ
open-edge-platform/geti
ソースの最終更新活動
2026年8月25日 09:29
検出された SKILL.md の言語
英語
スター
1,352
フォーク
480

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
geti-using-the-pipeline
description
Use the Geti application end to end through its REST API — the project → dataset → annotate → train → deploy pipeline served by the FastAPI backend in `application/backend/`. Use when a user (not a contributor) wants to create a project, upload media, add annotations, launch a training or quantization job, track job status, configure a source → model → sink inference pipeline, and enable live inference. Covers the `/api/...` endpoints and the async job model, not backend code changes.
# Using the Geti pipeline (application) The Geti application is a FastAPI server (`application/backend/`, the `geti` package) that exposes a REST API for the full computer-vision workflow: create a **project**, upload and **annotate** media, **train** a model as an async job, then configure and **enable** a live inference **pipeline** (source → model → sink). This skill is about _using_ that API; to change backend code use the `geti-backend-dev` skill instead. These endpoints are served by a **running Geti instance**; how it was launched does not matter (Docker container, Windows MSIX app, install script, or `just run-server` from `application/backend/` for development). Ask the user for their base URL rather than assuming one — `https://localhost:7860` is only the default for a local deployment, the port is configurable and remote instances use a different host. See `application/docs/install.md` for the deployment modes. The authoritative API reference is the spec the instance serves; fetch it as JSON from `/api/openapi.json` (the `/api/docs` page is only an HTML viewer for humans). Read endpoint paths and payloads from there rather than from any checked-in Markdown, which may be out of date. If no instance is running and you have the sources, generate the spec with `just gen-api-spec --output-path openapi.json` from `application/backend/`. ## End-to-end pipeline ```mermaid flowchart LR A[Create project] --> B[Upload media] B --> C[Annotate media] C --> D[Train job] D --> E[Configure pipeline: source, model, sink] E --> F[Enable pipeline / live inference] ``` 1. **Create a project** with a task type and labels. - `POST /api/projects` (name, task, labels) → project info. - Done when: `GET /api/projects/<id>` returns the project with its labels. 2. **Upload media** (images/videos) to the project dataset. - `POST /api/projects/<id>/dataset/media` (binary) → media info. - Done when: `GET /api/projects/<id>/dataset/media` lists the uploaded item. 3. **Annotate media** so the dataset is trainable. - `POST /api/projects/<id>/dataset/media/<media_id>/annotations` (annotation info). - Done when: `GET .../annotations` returns the saved annotation. - (Optional) import an existing dataset instead via the dataset jobs below. 4. **Train a model** as an async job. - `POST /api/jobs` with job type `train` → job id. - Track it: `GET /api/jobs/<id>`, stream `GET /api/jobs/<id>/status` and `GET /api/jobs/<id>/logs`; cancel with `POST /api/jobs/<id>:cancel`. - Done when: the job reaches a finished state and `GET /api/projects/<id>/models` lists the new model. 5. **(Optional) Quantize** the trained model for faster inference. - `POST /api/jobs` with job type `quantize`. - Done when: the quantized model variant appears under the project's models. 6. **Configure the inference pipeline** — bind a source, the model, and a sink. - Sources: `POST /api/sources`; sinks: `POST /api/sinks`. - `PATCH /api/projects/<id>/pipeline` with the ids of source, sink, and model. - Done when: `GET /api/projects/<id>/pipeline` shows the wired components. 7. **Enable live inference** and monitor it. - `POST /api/projects/<id>/pipeline:enable` (disable with `:disable`). - Metrics: `GET /api/projects/<id>/pipeline/metrics` (latency, throughput). - `POST /api/projects/<id>/pipeline:capture` collects the next frame into the dataset for continued annotation/retraining. - Done when: the pipeline reports active and metrics update. ## The async job model Long-running work runs as **jobs** (`POST /api/jobs`), keeping the API responsive. Job types: `train`, `quantize`, `prepare_dataset_for_import`, `import_dataset_to_existing_project`, `import_dataset_as_new_project`, `export_dataset`. Poll `GET /api/jobs/<id>` or stream `/status` and `/logs`; jobs are cancelable. ## Datasets: import instead of manual annotation To bring in an existing dataset rather than annotating from scratch: - Upload an archive to staging: `POST /api/staged_datasets`. - Then submit an import job (`import_dataset_as_new_project` or `import_dataset_to_existing_project`) via `POST /api/jobs`. - Export a project's dataset with the `export_dataset` job. ## Notes - Training and quantization jobs run out-of-process and call into the `getitune` library; the underlying capabilities map to the `getitune-training-a-model` and `getitune-optimizing-a-model` skills. - This skill covers API usage; the contract for endpoint paths and payloads is the spec at `/api/openapi.json`. To add or change endpoints, use `geti-backend-dev` and `geti-openapi-sync`. ## Related skills - `getitune-training-a-model` / `getitune-optimizing-a-model` — the library capabilities behind the `train` and `quantize` jobs. - `geti-backend-dev` — change the backend/API itself. - `geti-ui-dev` — the web UI that drives this same API.
GitHubで見る