From fb9a55a64c73f2a87e43e13bafb3d5714ffbeabc Mon Sep 17 00:00:00 2001 From: Momentry Studio Date: Sat, 25 Jul 2026 20:33:15 +0800 Subject: [PATCH] feat: use new search/people API for People search mode --- src/api/index.ts | 7 +++++++ src/views/SearchView.vue | 17 ++++++++++------- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/api/index.ts b/src/api/index.ts index c77e1c8..04404bc 100644 --- a/src/api/index.ts +++ b/src/api/index.ts @@ -263,6 +263,13 @@ case 'search_keyword': { case 'search_identities': { return { url: `/api/v1/identities/search?q=${encodeURIComponent(a.query)}&limit=${a.limit || 50}`, method: 'GET' } } + case 'search_people': { + const params = new URLSearchParams() + if (a.query) params.set('query', a.query) + if (a.fileUuid) params.set('file_uuid', a.fileUuid) + if (a.limit) params.set('limit', String(a.limit)) + return { url: `/api/v1/search/people?${params.toString()}`, method: 'GET' } + } // --- Image APIs --- case 'get_thumbnail': { diff --git a/src/views/SearchView.vue b/src/views/SearchView.vue index ce88254..a8e550b 100644 --- a/src/views/SearchView.vue +++ b/src/views/SearchView.vue @@ -722,15 +722,18 @@ async function sendMessage() { messages.value[msgIdx].loading = false if (res?.chips) messages.value[msgIdx].chips = res.chips } else if (mode.value === 'people') { - const raw: any = await apiCall('search_identities', { query: q, limit: 50 }) + const raw: any = await apiCall('search_people', { query: q, limit: 50 }) if (searchSeq !== seq) return - const results = (Array.isArray(raw) ? raw : []).filter((p: any) => p.file_uuid).map((p: any) => ({ - file_uuid: p.file_uuid, - file_name: p.name, - summary: `FS - ${p.source || 'unknown'}`, + const peopleList = raw?.people || [] + const results = peopleList.map((p: any) => ({ + type: 'person', + identity_id: p.identity_id, + identity_uuid: p.identity_uuid, + file_name: p.name || 'Unknown', + summary: `People ยท ${p.appearance_count || 0} appearances`, similarity: 1.0, - start_frame: p.startFrame || p.start_frame, - end_frame: p.endFrame || p.end_frame, + start_frame: p.first_appearance_time, + end_frame: p.last_appearance_time, search_query: q, })) messages.value[msgIdx].results = results