IPC camera video event search API
更新时间:
复制 MD 格式
The event search service retrieves camera events using natural language. You describe what you are looking for in plain language, and the service parses the time range, generates an embedding, runs the search, and returns matching events. This topic describes the request parameters, response parameters, and usage examples for the API.
Overview
The API is synchronous over HTTP.
URL: POST /api/v1/operators/event-search/search
Content-Type: application/json
Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| query | string | Yes | The natural language query. For example, "Did anyone go out on March 12?" or "Did anyone come home last Friday?" |
| database | string | Yes | The name of the database. |
| table | string | Yes | The name of the table. |
| time_field | string | Yes | The name of the field used for time filtering. For example, alarm_time. |
| result_fields | array[string] | Yes | The list of fields to return. For example, ["uid", "device_uid"]. |
| content_field | string | Yes | The name of the field that holds the searchable content. For example, content. |
| embedding_field | string | Yes | The name of the field that holds the embedding vector. For example, embedding. |
| embedding_dim | int | No | The dimension of the embedding column. Default: 1024. |
| top_k | int | No | The size of the candidate set returned by the vector search. Default: 10. The number of items returned after rerank may be smaller. |
| where_conditions | string | No | An additional filter, expressed as a SQL WHERE clause. For example, uid='U20220509001473' AND device_uid='1c9ffcc04b644176976a117f0de55a8b'. |
| search_range_limit | int | No | The maximum search range, in days. Default: 7. |
Sample request
curl -X POST "http://amv-xxxx.ads.aliyuncs.com:8000/api/v1/operators/event-search/search" \
-H "Content-Type: application/json" \
-d '{
"query": "Did anyone go out on March 12?",
"database": "test",
"table": "expr_alarm_events",
"content_field": "alarm_action",
"embedding_field": "embedding",
"time_field": "alarm_time",
"result_fields": ["uid", "alarm_action", "device_uid", "alarm_id", "alarm_time", "alarm_type", "roles"],
"top_k": 10,
"where_conditions": "uid = '\''xxx'\'' AND device_uid = '\''xxx'\''"
}'
Response parameters
| Parameter | Type | Description |
|---|---|---|
| code | int | The status code. 200 indicates success. |
| message | string | The response message. |
| data | object | The response data. |
| data.query | string | The original query text. |
| data.parsed | object | The parsed query. |
| data.parsed.start_time | string | The start of the time range, in the format YYYY-MM-DD HH:MM:SS. |
| data.parsed.end_time | string | The end of the time range, in the format YYYY-MM-DD HH:MM:SS. |
| data.parsed.real_query | string | The actual content query, with time information removed. |
| data.results | array | The list of matching results, corresponding to the fields requested in result_fields. |
Sample response
{
"code": 200,
"message": null,
"data": {
"query": "Did anyone go out on March 12?",
"parsed": {
"start_time": "2026-03-12 00:00:00",
"end_time": "2026-03-12 23:59:59",
"real_query": "Did anyone go out?"
},
"results": [
{
"uid": "U2022059001473",
"device_uid": "1c9ffcc04b644176976a117f0de55a8b",
"alarm_id": "ae0cff54a5d40d6499f92044cc79ea1c",
"alarm_time": "2026-03-12 15:48:37",
"alarm_type": "2",
"roles": "Stranger"
}
]
}
}
Supported time expressions
The service understands a range of time expressions:
| Type | Examples | Description |
|---|---|---|
| Absolute date | "March 12", "March 12, 2026" | A specific date. |
| Relative date | "today", "yesterday", "the day before yesterday" | Relative to the current date. |
| Week-based | "last Friday", "this Sunday", "last week" | A specific day of the week, or an entire week. |
| Time range | "the past 7 days", "this week" | A range of time. |
If the query does not include time information, the service queries today's data by default.
该文章对您有帮助吗?