# 이벤트 조회

## Query 및 Filter Events

Vision Events dashboard에서 filters를 사용해 특정 events를 찾거나, REST API를 통해 programmatically query할 수 있습니다.

### Dashboard에서 Events 둘러보기

#### Use Case 선택

Vision Events page에서 Use Case를 클릭해 해당 events를 확인하세요. Events는 최신순 역순으로 표시됩니다.

<figure><img src="/files/470b2086abc3225b024ddc246bc2c030895d8cb0" alt="" width="375"><figcaption></figcaption></figure>

#### Events Filter

events 목록 상단의 filter controls를 사용해 다음 기준으로 결과를 좁힐 수 있습니다:

* **날짜 범위** — 시작 및 종료 타임스탬프
* **Event type** — quality\_check, inventory\_count, safety\_alert, custom, operator\_feedback
* **Device** — device ID로 filter
* **Stream** — stream 또는 camera ID로 filter
* **Workflow** — events를 생성한 workflow로 filter
* **Detection class** — 특정 감지된 object class로 filter
* **Feedback status** — correct, incorrect, inconclusive, 또는 no feedback
* **Custom metadata** — 모든 custom metadata field와 value로 filter
* **Warnings** — ingestion warnings가 있었던 events만 표시

event detail sidebar의 값들(예: device ID, stream, quality check result, 또는 custom metadata values)을 클릭해서 빠르게 filter로 추가할 수도 있습니다.

Filter chip은 수정 가능합니다 -- 활성화된 filter chip을 클릭하면 제거 후 다시 추가하지 않고도 value나 operator를 수정할 수 있습니다.

filters가 적용되면, **total count** 의 matching events가 results list 상단에 표시됩니다. 이 count는 event list와 별도로 업데이트되므로, events가 아직 로딩 중이어도 filters에 일치하는 events 수를 확인할 수 있습니다.

<figure><img src="/files/41b919230b476a7c403e0da7ad0b2f1ff1dd362c" alt="" width="375"><figcaption></figcaption></figure>

#### Event Details 보기

목록의 어떤 event든 클릭하면 전체 세부 정보를 볼 수 있습니다:

* source image 및 모든 output image
* 모든 source metadata(device, stream, workflow)
* Event type별 데이터(예: pass/fail result, item count, alert severity)
* Custom metadata key-value 쌍

**Detections 그리기**

event에 prediction data(object detections, instance segmentations, 또는 keypoints)가 포함되어 있으면 이미지 위에 "Draw Detections" 체크박스가 표시됩니다. 이를 활성화하면 source image 위에 confidence score가 포함된 bounding box, segmentation polygon, label을 오버레이할 수 있습니다.

파이프라인이 원본 input image만 저장하고 별도의 output image를 저장하지 않을 때, 모델이 무엇을 감지했는지 시각화하는 데 유용합니다.

{% hint style="info" %}
distinct output image를 볼 때는 체크박스가 숨겨집니다. 해당 이미지에는 이미 detections가 렌더링되어 있기 때문입니다.
{% endhint %}

<figure><img src="/files/2b2b1f4af5e4a6f7e757f08075834cf148c6aff9" alt="" width="375"><figcaption></figcaption></figure>

### API를 통해 Events Query

query endpoint는 dashboard와 동일한 filters를 지원하며, cursor 기반 pagination도 지원합니다. 파라미터와 response field의 전체 목록은 다음을 참고하세요: [Vision Events API Reference](https://docs.roboflow.com/developer/rest-api/vision-events).

#### 기본 Query

```bash
curl -X POST "https://api.roboflow.com/vision-events/query" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "useCaseId": "assembly-line-qa",
    "startTime": "2026-03-01T00:00:00Z",
    "endTime": "2026-03-31T23:59:59Z",
    "limit": 25
  }'
```

**응답:**

```json
{
  "events": [
    {
      "eventId": "evt-789ghi",
      "eventType": "quality_check",
      "timestamp": "2026-03-30T14:30:00.000Z",
      "deviceId": "factory-cam-01",
      "streamId": "line-3",
      "images": [],
      "eventData": { "result": "fail" },
      "customMetadata": {
        "line_id": "line-3",
        "shift": "morning",
        "part_number": "PN-4421"
      }
    }
  ],
  "nextCursor": "eyJ0cyI6IjIwMjYtMDMtMzAifQ==",
  "hasMore": true
}
```

#### Pagination

결과는 cursor를 사용해 paginated됩니다. 응답에 `nextCursor` 값이 포함되고 `hasMore` 가 `true`이면, 다음 페이지를 가져오기 위해 다음 요청에 cursor를 전달하세요:

```bash
curl -X POST "https://api.roboflow.com/vision-events/query" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "useCaseId": "assembly-line-qa",
    "limit": 25,
    "cursor": "eyJ0cyI6IjIwMjYtMDMtMzAifQ=="
  }'
```

다음이 될 때까지 계속하세요 `hasMore` 가 `false`.

#### Event Type별 Filter

단일 event type을 query하세요:

```json
{
  "useCaseId": "assembly-line-qa",
  "eventType": "quality_check"
}
```

또는 여러 event type을 query하세요(최대 20개):

```json
{
  "useCaseId": "assembly-line-qa",
  "eventTypes": ["quality_check", "operator_feedback"]
}
```

#### Feedback Status별 Filter

사용 `feedbackStatus` 를 사용해 operator가 검토했는지 여부와 평점에 따라 events를 찾으세요:

```json
{
  "useCaseId": "assembly-line-qa",
  "feedbackStatus": ["incorrect", "none"]
}
```

유효한 값: `correct`, `incorrect`, `inconclusive`, `none`. 사용 `none` 아직 검토되지 않은 events를 찾으세요.

#### Custom Metadata별 Filter

사용 `customMetadataFilters` 를 사용해 자신만의 metadata fields로 events를 filter하세요:

```json
{
  "useCaseId": "assembly-line-qa",
  "customMetadataFilters": [
    { "key": "line_id", "operator": "eq", "value": "line-3" },
    { "key": "shift", "operator": "eq", "value": "morning" }
  ]
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.roboflow.com/roboflow/roboflow-ko/deploy/vision-events/query-events.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
