feat: smart search response includes start_frame/end_frame/fps, add limit param

This commit is contained in:
Accusys
2026-05-18 01:21:43 +08:00
parent 4125163f7b
commit 362c63007c
3 changed files with 25 additions and 13 deletions
+10 -5
View File
@@ -759,6 +759,9 @@ pub struct PostgresCache {
pub struct SemanticSearchResult {
pub id: i32,
pub scene_order: i32,
pub start_frame: i64,
pub end_frame: i64,
pub fps: f64,
pub start_time: f64,
pub end_time: f64,
pub summary: String,
@@ -2000,11 +2003,13 @@ impl PostgresDb {
let results = sqlx::query_as::<_, SemanticSearchResult>(
&format!(
"SELECT \
id, id as scene_order, start_time, end_time, \
COALESCE(summary_text, text_content, '') as summary, \
metadata, \
(1 - (embedding <=> $1::vector)) as similarity \
FROM {} \
id, id as scene_order, \
(start_time * fps)::bigint as start_frame, (end_time * fps)::bigint as end_frame, \
fps, start_time, end_time, \
COALESCE(summary_text, text_content, '') as summary, \
metadata, \
(1 - (embedding <=> $1::vector)) as similarity \
FROM {} \
WHERE file_uuid = $2 AND chunk_type IN ('story_parent', 'llm_parent') AND embedding IS NOT NULL \
ORDER BY embedding <=> $1::vector \
LIMIT $3",