Track Ultralytics stream=True inference over iterator consumption
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 45/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 活発
- 技術スタック
- python
調査の方向性
Read the Ultralytics adapter and the shared SyncStreamWrapper introduced in #82, then compare the eager predict() coverage in #84. Trace how streamed results are consumed and finalized; preserve lazy iteration and keep result interpretation in the adapter. Done means both entry points emit one consumption-aware event on exhaustion, close, or error, with bounded metadata and compatibility tests for supported Ultralytics versions.
索引モデルが issue の本文から書いたものです。
説明
Current behavior
Ultralytics/YOLO returns a lazy results iterator for model.predict(..., stream=True) and model(..., stream=True). Inference runs as the application consumes it, but the current integration records success and duration when the iterator is returned. This can report success before inference runs, omit detection/classification output metadata, and miss failures during iteration.
PR #84 fixes eager predict() entry-point coverage; it does not address lazy streaming lifecycle tracking.
Possible approach
Reuse the shared SyncStreamWrapper introduced in #82 for iteration timing, exactly-once finalization, closure/error handling, trace correlation, and telemetry failure isolation. Keep YOLO result interpretation in the Ultralytics adapter through integration-specific callbacks.
A proposed starting contract is one inference event per streamed prediction call, finalized when the iterator is exhausted or explicitly closed, with bounded aggregation of available detection/classification metadata. Do not retain every result or consume the iterator ahead of the application. Per-frame events would be a separate design decision.
Verification when implemented
- Creating a lazy iterator emits no premature successful inference event.
- Exhaustion records one event with consumption-aware duration and available result metadata.
- Early closure and iteration errors finalize once without changing application behavior.
- Both entry points behave consistently, with no duplicate events.
- Real supported Ultralytics versions are covered by compatibility tests.
This is a known coverage gap to track for future demand; no user has requested streaming support yet. It is not a prerequisite for the eager-call fix in #84.
- 主要言語
- Python
- スター
- 17
- フォーク
- 1
- 平均マージ
- 17時間 5分
- マージ済み PR(30日)
- 34
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
wild-edge/wildedge-python のほかの issue
-
難易度 4/5 3〜5日 初心者へのやさしさ 55/100
wild-edge/wildedge-python#78 ·
メンテナーはふだん 1 日以内に返信
-
vLLM integration再び着手できるかも @piotrekno1 が 121 日前に担当しましたが、オープン中のプルリクエストはありません。 オープン
wild-edge/wildedge-python#38 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
-
enhancement good first issue help wanted
難易度 3/5 1〜2日 初心者へのやさしさ 48/100
wild-edge/wildedge-python#25 ·
メンテナーはふだん 1 日以内に返信
-
enhancement good first issue help wanted
難易度 4/5 3〜5日 初心者へのやさしさ 25/100
wild-edge/wildedge-python#22 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
enhancement good first issue help wanted
難易度 3/5 1〜2日 初心者へのやさしさ 35/100
wild-edge/wildedge-python#20 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
wild-edge/wildedge-python の issue をすべて見る
似ている issue
-
follow-up
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
メンテナーはふだん 1 日以内に返信
-
Download helper still uses huggingface_hub arguments removed in 1.0: USE_SYMLINKS is silently ignored and every download ends with a WinError 3 line対応中かも @li-lizhe が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
-
IPv6 node addresses produce an invalid request URL対応中かも @RaphaelFakhri が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
typesense/typesense-python#154 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
elastic/elasticsearch-py#3592 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 77/100
developmentseed/titiler-cmr#250 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信