mirror of
https://wget.la/https://github.com/Wxw-Gu/WechatExplorer
synced 2026-08-18 20:19:09 +08:00
feat: 优化问问微信检索性能与分析交互
- 补充 Worker、WCDB、sender、IPC、序列化时间账 - 增加 Agent 增量覆盖统计和重复检索停止条件 - 补充性能与交互回归测试
This commit is contained in:
+29
-1
@@ -118,6 +118,13 @@ export interface AiSearchAgentTraceItem {
|
||||
/** Sanitized, human-readable arguments only. */
|
||||
arguments?: Record<string, string | number | boolean>
|
||||
resultCount?: number
|
||||
uniqueCandidateCount?: number
|
||||
newCandidateCount?: number
|
||||
newEvidenceCount?: number
|
||||
newConversationCount?: number
|
||||
newSenderCount?: number
|
||||
queryFingerprint?: string
|
||||
hasMore?: boolean
|
||||
elapsedMs?: number
|
||||
decision?: string
|
||||
}
|
||||
@@ -177,6 +184,16 @@ export interface AiSearchPipelineTimings {
|
||||
workerSqlMs: number
|
||||
responseSerializeMs: number
|
||||
responseTransferMs: number
|
||||
workerQueueMs: number
|
||||
workerExecutionMs: number
|
||||
globalCountMs: number
|
||||
voiceCoverageMs: number
|
||||
wcdbQueueMs: number
|
||||
wcdbExecutionMs: number
|
||||
senderEnrichmentMs: number
|
||||
ipcMs: number
|
||||
serializationMs: number
|
||||
otherMs: number
|
||||
ftsMs: number
|
||||
chunkExpandMs: number
|
||||
messageLoadMs: number
|
||||
@@ -208,6 +225,7 @@ export interface AiSearchRetrievalContract {
|
||||
| 'conversation_name'
|
||||
| 'unresolved_identity'
|
||||
candidateCount: number
|
||||
uniqueCandidateCount: number
|
||||
sourceMessageCount?: number
|
||||
sourceCoverage: 'complete' | 'partial' | 'keyword_match' | 'unknown'
|
||||
isComplete: boolean
|
||||
@@ -219,7 +237,13 @@ export interface AiSearchRetrievalContract {
|
||||
|
||||
export interface AiSearchPipelineResult {
|
||||
requestId: string
|
||||
status: 'completed' | 'no_evidence' | 'retrieval_incomplete' | 'ai_failed' | 'failed'
|
||||
status:
|
||||
| 'completed'
|
||||
| 'no_evidence'
|
||||
| 'retrieval_incomplete'
|
||||
| 'ai_failed'
|
||||
| 'failed'
|
||||
| 'cancelled'
|
||||
plan: AiSearchPlan
|
||||
knowledge: Pick<
|
||||
KnowledgeSearchIpcResult,
|
||||
@@ -251,6 +275,10 @@ export interface AiSearchPipelineResult {
|
||||
elapsedMs: number
|
||||
}
|
||||
|
||||
export interface AiSearchCancelResult {
|
||||
cancelled: boolean
|
||||
}
|
||||
|
||||
const RANGE_LABELS: Record<AiSearchRange, string> = {
|
||||
today: '今天',
|
||||
'7d': '近 7 天',
|
||||
|
||||
@@ -243,6 +243,26 @@ export interface KnowledgeSearchTimings {
|
||||
rankingMs: number
|
||||
/** Worker-side local search total. */
|
||||
totalMs: number
|
||||
/** Time spent refreshing a stale on-disk statistics snapshot. */
|
||||
globalCountMs?: number
|
||||
/** Voice coverage aggregation time for this query. */
|
||||
voiceCoverageMs?: number
|
||||
/** Full Worker handler execution, including status and coverage bookkeeping. */
|
||||
workerExecutionMs?: number
|
||||
/** Worker queue wait in the main-process host, when observable. */
|
||||
workerQueueMs?: number
|
||||
/** Main-process WCDB FIFO wait, when observable. */
|
||||
wcdbQueueMs?: number
|
||||
/** Main-process WCDB operation execution, when observable. */
|
||||
wcdbExecutionMs?: number
|
||||
/** Main-process sender/contact enrichment duration. */
|
||||
senderEnrichmentMs?: number
|
||||
/** Main-process IPC/transport duration, when separated from Worker execution. */
|
||||
ipcMs?: number
|
||||
/** Serialization/encoding duration outside the Worker SQL timer. */
|
||||
serializationMs?: number
|
||||
/** Other unclassified waiting in the retrieval path. */
|
||||
otherMs?: number
|
||||
}
|
||||
|
||||
export const emptyKnowledgeSearchTimings = (): KnowledgeSearchTimings => ({
|
||||
@@ -273,6 +293,8 @@ export interface KnowledgeSearchResult {
|
||||
export interface KnowledgeSearchIpcRequest {
|
||||
text: string
|
||||
terms: string[]
|
||||
/** Bounded request/session cache key for sender enrichment only. */
|
||||
retrievalSessionId?: string
|
||||
conversationIds?: string[]
|
||||
senderIds?: string[]
|
||||
startTime?: number
|
||||
@@ -341,9 +363,12 @@ export interface KnowledgeWorkerResponse {
|
||||
| { removed: true }
|
||||
error?: string
|
||||
transport?: {
|
||||
/** IPC message arrival timestamp in the Worker event loop. */
|
||||
messageReceivedAt?: number
|
||||
workerReceivedAt: number
|
||||
workerCompletedAt: number
|
||||
responseSerializeMs: number
|
||||
workerQueueMs?: number
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user