@absolutejs/absolute 0.19.0-beta.606 → 0.19.0-beta.608
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai/client/index.js +195 -18
- package/dist/ai/client/index.js.map +4 -4
- package/dist/ai/client/ui.js +197 -18
- package/dist/ai/client/ui.js.map +4 -4
- package/dist/ai/index.js +424 -28
- package/dist/ai/index.js.map +7 -7
- package/dist/ai/rag/quality.js +145 -16
- package/dist/ai/rag/quality.js.map +3 -3
- package/dist/ai/rag/ui.js +197 -18
- package/dist/ai/rag/ui.js.map +4 -4
- package/dist/ai-client/angular/ai/index.js +194 -17
- package/dist/ai-client/react/ai/index.js +194 -17
- package/dist/ai-client/vue/ai/index.js +194 -17
- package/dist/angular/ai/index.js +195 -18
- package/dist/angular/ai/index.js.map +4 -4
- package/dist/react/ai/index.js +195 -18
- package/dist/react/ai/index.js.map +6 -6
- package/dist/src/ai/client/ui.d.ts +1 -1
- package/dist/src/ai/rag/grounding.d.ts +2 -1
- package/dist/src/ai/rag/index.d.ts +1 -1
- package/dist/src/ai/rag/presentation.d.ts +6 -3
- package/dist/src/ai/rag/ui.d.ts +1 -1
- package/dist/src/vue/ai/useRAG.d.ts +14 -4
- package/dist/src/vue/ai/useRAGChunkPreview.d.ts +12 -2
- package/dist/src/vue/ai/useRAGSearch.d.ts +2 -2
- package/dist/svelte/ai/index.js +195 -18
- package/dist/svelte/ai/index.js.map +6 -6
- package/dist/types/ai.d.ts +26 -2
- package/dist/vue/ai/index.js +195 -18
- package/dist/vue/ai/index.js.map +5 -5
- package/package.json +1 -1
package/dist/types/ai.d.ts
CHANGED
|
@@ -45,6 +45,7 @@ export type RAGSourceSummary = {
|
|
|
45
45
|
bestScore: number;
|
|
46
46
|
count: number;
|
|
47
47
|
excerpt: string;
|
|
48
|
+
excerpts?: RAGChunkExcerpts;
|
|
48
49
|
chunkIds: string[];
|
|
49
50
|
citationNumbers: number[];
|
|
50
51
|
citations: RAGCitation[];
|
|
@@ -62,6 +63,7 @@ export type RAGGroundingReference = {
|
|
|
62
63
|
score: number;
|
|
63
64
|
text: string;
|
|
64
65
|
excerpt: string;
|
|
66
|
+
excerpts?: RAGChunkExcerpts;
|
|
65
67
|
contextLabel?: string;
|
|
66
68
|
provenanceLabel?: string;
|
|
67
69
|
locatorLabel?: string;
|
|
@@ -73,12 +75,27 @@ export type RAGGroundedAnswerCitationDetail = {
|
|
|
73
75
|
source?: string;
|
|
74
76
|
title?: string;
|
|
75
77
|
excerpt: string;
|
|
78
|
+
excerpts?: RAGChunkExcerpts;
|
|
76
79
|
contextLabel?: string;
|
|
77
80
|
provenanceLabel?: string;
|
|
78
81
|
locatorLabel?: string;
|
|
79
82
|
evidenceLabel: string;
|
|
80
83
|
evidenceSummary: string;
|
|
81
84
|
};
|
|
85
|
+
export type RAGGroundedAnswerSectionSummary = {
|
|
86
|
+
key: string;
|
|
87
|
+
label: string;
|
|
88
|
+
summary: string;
|
|
89
|
+
count: number;
|
|
90
|
+
excerpt?: string;
|
|
91
|
+
excerpts?: RAGChunkExcerpts;
|
|
92
|
+
chunkIds: string[];
|
|
93
|
+
referenceNumbers: number[];
|
|
94
|
+
references: RAGGroundingReference[];
|
|
95
|
+
contextLabel?: string;
|
|
96
|
+
locatorLabel?: string;
|
|
97
|
+
provenanceLabel?: string;
|
|
98
|
+
};
|
|
82
99
|
export type RAGGroundedAnswerPart = {
|
|
83
100
|
type: 'text';
|
|
84
101
|
text: string;
|
|
@@ -96,6 +113,7 @@ export type RAGGroundedAnswer = {
|
|
|
96
113
|
coverage: 'grounded' | 'partial' | 'ungrounded';
|
|
97
114
|
parts: RAGGroundedAnswerPart[];
|
|
98
115
|
references: RAGGroundingReference[];
|
|
116
|
+
sectionSummaries: RAGGroundedAnswerSectionSummary[];
|
|
99
117
|
ungroundedReferenceNumbers: number[];
|
|
100
118
|
};
|
|
101
119
|
export type RAGRetrievedState = {
|
|
@@ -414,9 +432,15 @@ export type RAGDocumentChunkPreview = {
|
|
|
414
432
|
normalizedText: string;
|
|
415
433
|
chunks: Array<RAGDocumentChunk & {
|
|
416
434
|
labels?: RAGSourceLabels;
|
|
435
|
+
excerpts?: RAGChunkExcerpts;
|
|
417
436
|
structure?: RAGChunkStructure;
|
|
418
437
|
}>;
|
|
419
438
|
};
|
|
439
|
+
export type RAGChunkExcerpts = {
|
|
440
|
+
chunkExcerpt: string;
|
|
441
|
+
windowExcerpt: string;
|
|
442
|
+
sectionExcerpt: string;
|
|
443
|
+
};
|
|
420
444
|
export type RAGSourceLabels = {
|
|
421
445
|
contextLabel?: string;
|
|
422
446
|
locatorLabel?: string;
|
|
@@ -426,7 +450,7 @@ export type RAGChunkSection = {
|
|
|
426
450
|
title?: string;
|
|
427
451
|
path?: string[];
|
|
428
452
|
depth?: number;
|
|
429
|
-
kind?: 'markdown_heading' | 'html_heading';
|
|
453
|
+
kind?: 'markdown_heading' | 'html_heading' | 'office_heading' | 'spreadsheet_rows' | 'presentation_slide';
|
|
430
454
|
};
|
|
431
455
|
export type RAGChunkSequence = {
|
|
432
456
|
sectionChunkId?: string;
|
|
@@ -460,7 +484,7 @@ export type RAGChunkGraphSectionGroup = {
|
|
|
460
484
|
title?: string;
|
|
461
485
|
path?: string[];
|
|
462
486
|
depth?: number;
|
|
463
|
-
kind?: 'markdown_heading' | 'html_heading';
|
|
487
|
+
kind?: 'markdown_heading' | 'html_heading' | 'office_heading' | 'spreadsheet_rows' | 'presentation_slide';
|
|
464
488
|
chunkIds: string[];
|
|
465
489
|
chunkCount: number;
|
|
466
490
|
leadChunkId?: string;
|
package/dist/vue/ai/index.js
CHANGED
|
@@ -347,6 +347,56 @@ var buildExcerpt = (text, maxLength = 160) => {
|
|
|
347
347
|
}
|
|
348
348
|
return `${normalized.slice(0, Math.max(0, maxLength - 1)).trimEnd()}\u2026`;
|
|
349
349
|
};
|
|
350
|
+
var selectPreferredExcerpt = (excerpts, sectionChunkCount) => {
|
|
351
|
+
if (!excerpts) {
|
|
352
|
+
return "";
|
|
353
|
+
}
|
|
354
|
+
const chunkExcerpt = excerpts.chunkExcerpt?.trim() ?? "";
|
|
355
|
+
const windowExcerpt = excerpts.windowExcerpt?.trim() ?? "";
|
|
356
|
+
const sectionExcerpt = excerpts.sectionExcerpt?.trim() ?? "";
|
|
357
|
+
if (sectionChunkCount && sectionChunkCount > 1 && chunkExcerpt.length > 0 && chunkExcerpt.length < 72) {
|
|
358
|
+
if (sectionChunkCount <= 3 && sectionExcerpt) {
|
|
359
|
+
return sectionExcerpt;
|
|
360
|
+
}
|
|
361
|
+
if (windowExcerpt) {
|
|
362
|
+
return windowExcerpt;
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
return chunkExcerpt || windowExcerpt || sectionExcerpt;
|
|
366
|
+
};
|
|
367
|
+
var buildGroundingChunkExcerpts = (sources, activeChunkId) => {
|
|
368
|
+
if (sources.length === 0) {
|
|
369
|
+
return;
|
|
370
|
+
}
|
|
371
|
+
const activeSource = (activeChunkId ? sources.find((source) => source.chunkId === activeChunkId) : undefined) ?? sources[0];
|
|
372
|
+
if (!activeSource) {
|
|
373
|
+
return;
|
|
374
|
+
}
|
|
375
|
+
const chunkMap = new Map(sources.map((source) => [source.chunkId, source]));
|
|
376
|
+
const activeMetadata = activeSource.metadata ?? {};
|
|
377
|
+
const previousChunkId = getContextString(activeMetadata.previousChunkId);
|
|
378
|
+
const nextChunkId = getContextString(activeMetadata.nextChunkId);
|
|
379
|
+
const sectionChunkId = getContextString(activeMetadata.sectionChunkId);
|
|
380
|
+
const sectionSources = sectionChunkId ? sources.filter((source) => getContextString(source.metadata?.sectionChunkId) === sectionChunkId).sort((left, right) => {
|
|
381
|
+
const leftIndex = getContextNumber(left.metadata?.sectionChunkIndex) ?? Number.MAX_SAFE_INTEGER;
|
|
382
|
+
const rightIndex = getContextNumber(right.metadata?.sectionChunkIndex) ?? Number.MAX_SAFE_INTEGER;
|
|
383
|
+
if (leftIndex !== rightIndex) {
|
|
384
|
+
return leftIndex - rightIndex;
|
|
385
|
+
}
|
|
386
|
+
return left.chunkId.localeCompare(right.chunkId);
|
|
387
|
+
}) : [activeSource];
|
|
388
|
+
const collectText = (chunkIds) => chunkIds.map((chunkId) => chunkMap.get(chunkId)?.text).filter((text) => typeof text === "string").join(`
|
|
389
|
+
|
|
390
|
+
`);
|
|
391
|
+
const orderedWindowIds = [previousChunkId, activeSource.chunkId, nextChunkId].filter((chunkId, index, values) => Boolean(chunkId) && values.indexOf(chunkId) === index);
|
|
392
|
+
return {
|
|
393
|
+
chunkExcerpt: buildExcerpt(activeSource.text, 160),
|
|
394
|
+
sectionExcerpt: buildExcerpt(sectionSources.map((source) => source.text).join(`
|
|
395
|
+
|
|
396
|
+
`), 320),
|
|
397
|
+
windowExcerpt: buildExcerpt(collectText(orderedWindowIds), 240)
|
|
398
|
+
};
|
|
399
|
+
};
|
|
350
400
|
var buildGroundingReferenceEvidenceLabel = (reference) => [reference.label, reference.locatorLabel, reference.contextLabel].filter((value) => Boolean(value && value.length > 0)).filter((value, index, values) => values.findIndex((entry) => entry === value) === index).join(" \xB7 ");
|
|
351
401
|
var buildGroundingReferenceEvidenceSummary = (reference) => [
|
|
352
402
|
reference.source ?? reference.title ?? reference.chunkId,
|
|
@@ -354,11 +404,19 @@ var buildGroundingReferenceEvidenceSummary = (reference) => [
|
|
|
354
404
|
reference.contextLabel,
|
|
355
405
|
reference.provenanceLabel
|
|
356
406
|
].filter((value) => Boolean(value && value.length > 0)).filter((value, index, values) => values.findIndex((entry) => entry === value) === index).join(" \xB7 ");
|
|
407
|
+
var buildGroundingSectionKey = (reference) => reference.contextLabel ?? reference.locatorLabel ?? reference.label ?? reference.source ?? reference.chunkId;
|
|
408
|
+
var buildGroundingSectionSummaryLine = (reference) => [
|
|
409
|
+
reference.source ?? reference.title ?? reference.chunkId,
|
|
410
|
+
reference.locatorLabel,
|
|
411
|
+
reference.contextLabel,
|
|
412
|
+
reference.provenanceLabel
|
|
413
|
+
].filter((value) => Boolean(value && value.length > 0)).filter((value, index, values) => values.findIndex((entry) => entry === value) === index).join(" \xB7 ");
|
|
357
414
|
var buildGroundedAnswerCitationDetail = (reference) => ({
|
|
358
415
|
contextLabel: reference.contextLabel,
|
|
359
416
|
evidenceLabel: buildGroundingReferenceEvidenceLabel(reference),
|
|
360
417
|
evidenceSummary: buildGroundingReferenceEvidenceSummary(reference),
|
|
361
|
-
excerpt: reference.excerpt,
|
|
418
|
+
excerpt: selectPreferredExcerpt(reference.excerpts, getContextNumber(reference.metadata?.sectionChunkCount)) || reference.excerpt,
|
|
419
|
+
excerpts: reference.excerpts,
|
|
362
420
|
label: reference.label,
|
|
363
421
|
locatorLabel: reference.locatorLabel,
|
|
364
422
|
number: reference.number,
|
|
@@ -444,26 +502,97 @@ var buildRAGGroundedAnswer = (content, sources) => {
|
|
|
444
502
|
hasCitations,
|
|
445
503
|
parts,
|
|
446
504
|
references,
|
|
505
|
+
sectionSummaries: buildRAGGroundedAnswerSectionSummaries(references),
|
|
447
506
|
ungroundedReferenceNumbers: [...ungroundedReferenceNumbers].sort((left, right) => left - right)
|
|
448
507
|
};
|
|
449
508
|
};
|
|
509
|
+
var buildRAGGroundedAnswerSectionSummaries = (references) => {
|
|
510
|
+
const groups = new Map;
|
|
511
|
+
for (const reference of references) {
|
|
512
|
+
const key = buildGroundingSectionKey(reference);
|
|
513
|
+
const existing = groups.get(key);
|
|
514
|
+
if (!existing) {
|
|
515
|
+
const excerpts = reference.excerpts ? {
|
|
516
|
+
chunkExcerpt: reference.excerpts.chunkExcerpt,
|
|
517
|
+
sectionExcerpt: reference.excerpts.sectionExcerpt,
|
|
518
|
+
windowExcerpt: reference.excerpts.windowExcerpt
|
|
519
|
+
} : undefined;
|
|
520
|
+
groups.set(key, {
|
|
521
|
+
chunkIds: [reference.chunkId],
|
|
522
|
+
contextLabel: reference.contextLabel,
|
|
523
|
+
count: 1,
|
|
524
|
+
excerpt: selectPreferredExcerpt(excerpts, getContextNumber(reference.metadata?.sectionChunkCount)) || excerpts?.sectionExcerpt || reference.excerpt,
|
|
525
|
+
excerpts,
|
|
526
|
+
key,
|
|
527
|
+
label: key,
|
|
528
|
+
locatorLabel: reference.locatorLabel,
|
|
529
|
+
provenanceLabel: reference.provenanceLabel,
|
|
530
|
+
referenceNumbers: [reference.number],
|
|
531
|
+
references: [reference],
|
|
532
|
+
summary: buildGroundingSectionSummaryLine(reference) || reference.label || reference.chunkId
|
|
533
|
+
});
|
|
534
|
+
continue;
|
|
535
|
+
}
|
|
536
|
+
existing.count += 1;
|
|
537
|
+
if (!existing.chunkIds.includes(reference.chunkId)) {
|
|
538
|
+
existing.chunkIds.push(reference.chunkId);
|
|
539
|
+
}
|
|
540
|
+
if (!existing.referenceNumbers.includes(reference.number)) {
|
|
541
|
+
existing.referenceNumbers.push(reference.number);
|
|
542
|
+
}
|
|
543
|
+
existing.references.push(reference);
|
|
544
|
+
if (!existing.contextLabel && reference.contextLabel) {
|
|
545
|
+
existing.contextLabel = reference.contextLabel;
|
|
546
|
+
}
|
|
547
|
+
if (!existing.locatorLabel && reference.locatorLabel) {
|
|
548
|
+
existing.locatorLabel = reference.locatorLabel;
|
|
549
|
+
}
|
|
550
|
+
if (!existing.provenanceLabel && reference.provenanceLabel) {
|
|
551
|
+
existing.provenanceLabel = reference.provenanceLabel;
|
|
552
|
+
}
|
|
553
|
+
if (!existing.excerpts && reference.excerpts) {
|
|
554
|
+
existing.excerpts = {
|
|
555
|
+
chunkExcerpt: reference.excerpts.chunkExcerpt,
|
|
556
|
+
sectionExcerpt: reference.excerpts.sectionExcerpt,
|
|
557
|
+
windowExcerpt: reference.excerpts.windowExcerpt
|
|
558
|
+
};
|
|
559
|
+
existing.excerpt = reference.excerpts.sectionExcerpt;
|
|
560
|
+
}
|
|
561
|
+
}
|
|
562
|
+
return [...groups.values()].map((group) => ({
|
|
563
|
+
...group,
|
|
564
|
+
referenceNumbers: [...group.referenceNumbers].sort((left, right) => left - right),
|
|
565
|
+
references: group.references.slice().sort((left, right) => left.number - right.number)
|
|
566
|
+
})).sort((left, right) => {
|
|
567
|
+
const leftFirst = left.referenceNumbers[0] ?? Number.POSITIVE_INFINITY;
|
|
568
|
+
const rightFirst = right.referenceNumbers[0] ?? Number.POSITIVE_INFINITY;
|
|
569
|
+
if (leftFirst !== rightFirst) {
|
|
570
|
+
return leftFirst - rightFirst;
|
|
571
|
+
}
|
|
572
|
+
return left.label.localeCompare(right.label);
|
|
573
|
+
});
|
|
574
|
+
};
|
|
450
575
|
var buildRAGGroundingReferences = (sources) => {
|
|
451
576
|
const citations = buildRAGCitations(sources);
|
|
452
577
|
const citationReferenceMap = buildRAGCitationReferenceMap(citations);
|
|
453
|
-
return citations.map((citation) =>
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
578
|
+
return citations.map((citation) => {
|
|
579
|
+
const excerpts = buildGroundingChunkExcerpts(sources, citation.chunkId);
|
|
580
|
+
return {
|
|
581
|
+
chunkId: citation.chunkId,
|
|
582
|
+
contextLabel: citation.contextLabel ?? buildContextLabel(citation.metadata),
|
|
583
|
+
excerpt: selectPreferredExcerpt(excerpts, getContextNumber(citation.metadata?.sectionChunkCount)) || excerpts?.chunkExcerpt || buildExcerpt(citation.text),
|
|
584
|
+
excerpts,
|
|
585
|
+
label: citation.label,
|
|
586
|
+
locatorLabel: citation.locatorLabel ?? buildLocatorLabel(citation.metadata, citation.source, citation.title),
|
|
587
|
+
metadata: citation.metadata,
|
|
588
|
+
number: citationReferenceMap[citation.chunkId] ?? 0,
|
|
589
|
+
provenanceLabel: citation.provenanceLabel ?? buildProvenanceLabel(citation.metadata),
|
|
590
|
+
score: citation.score,
|
|
591
|
+
source: citation.source,
|
|
592
|
+
text: citation.text,
|
|
593
|
+
title: citation.title
|
|
594
|
+
};
|
|
595
|
+
});
|
|
467
596
|
};
|
|
468
597
|
|
|
469
598
|
// src/ai/rag/quality.ts
|
|
@@ -4123,7 +4252,7 @@ var buildRAGChunkStructure = (metadata) => {
|
|
|
4123
4252
|
return;
|
|
4124
4253
|
}
|
|
4125
4254
|
const sectionPath = Array.isArray(metadata.sectionPath) ? metadata.sectionPath.filter((value) => typeof value === "string" && value.trim().length > 0) : undefined;
|
|
4126
|
-
const sectionKind = metadata.sectionKind === "markdown_heading" || metadata.sectionKind === "html_heading" ? metadata.sectionKind : undefined;
|
|
4255
|
+
const sectionKind = metadata.sectionKind === "markdown_heading" || metadata.sectionKind === "html_heading" || metadata.sectionKind === "office_heading" || metadata.sectionKind === "spreadsheet_rows" || metadata.sectionKind === "presentation_slide" ? metadata.sectionKind : undefined;
|
|
4127
4256
|
const section = {
|
|
4128
4257
|
depth: getContextNumber2(metadata.sectionDepth),
|
|
4129
4258
|
kind: sectionKind,
|
|
@@ -4152,6 +4281,52 @@ var buildExcerpt2 = (text, maxLength = 160) => {
|
|
|
4152
4281
|
}
|
|
4153
4282
|
return `${normalized.slice(0, Math.max(0, maxLength - 1)).trimEnd()}\u2026`;
|
|
4154
4283
|
};
|
|
4284
|
+
var buildRAGChunkExcerpts = (chunks, activeChunkId) => {
|
|
4285
|
+
if (chunks.length === 0) {
|
|
4286
|
+
return;
|
|
4287
|
+
}
|
|
4288
|
+
const graph = buildRAGChunkGraph(chunks.map((chunk) => ({
|
|
4289
|
+
chunkId: chunk.chunkId,
|
|
4290
|
+
metadata: chunk.metadata,
|
|
4291
|
+
structure: chunk.structure
|
|
4292
|
+
})));
|
|
4293
|
+
const navigation = buildRAGChunkGraphNavigation(graph, activeChunkId);
|
|
4294
|
+
const activeChunk = chunks.find((chunk) => chunk.chunkId === navigation.activeChunkId) ?? chunks[0];
|
|
4295
|
+
if (!activeChunk) {
|
|
4296
|
+
return;
|
|
4297
|
+
}
|
|
4298
|
+
const chunkMap = new Map(chunks.map((chunk) => [chunk.chunkId, chunk]));
|
|
4299
|
+
const orderedWindowIds = [
|
|
4300
|
+
navigation.previousNode?.chunkId,
|
|
4301
|
+
activeChunk.chunkId,
|
|
4302
|
+
navigation.nextNode?.chunkId
|
|
4303
|
+
].filter((chunkId, index, ids) => Boolean(chunkId) && ids.indexOf(chunkId) === index);
|
|
4304
|
+
const orderedSectionIds = navigation.sectionNodes.length > 0 ? navigation.sectionNodes.map((node) => node.chunkId) : [activeChunk.chunkId];
|
|
4305
|
+
const collectText = (chunkIds) => chunkIds.map((chunkId) => chunkMap.get(chunkId)?.text).filter((text) => typeof text === "string").join(`
|
|
4306
|
+
|
|
4307
|
+
`);
|
|
4308
|
+
return {
|
|
4309
|
+
chunkExcerpt: buildExcerpt2(activeChunk.text, 160),
|
|
4310
|
+
sectionExcerpt: buildExcerpt2(collectText(orderedSectionIds), 320),
|
|
4311
|
+
windowExcerpt: buildExcerpt2(collectText(orderedWindowIds), 240)
|
|
4312
|
+
};
|
|
4313
|
+
};
|
|
4314
|
+
var buildRAGPreferredExcerpt = (excerpts, structure) => {
|
|
4315
|
+
if (!excerpts) {
|
|
4316
|
+
return "";
|
|
4317
|
+
}
|
|
4318
|
+
const chunkLength = excerpts.chunkExcerpt.trim().length;
|
|
4319
|
+
const sectionChunkCount = structure?.sequence?.sectionChunkCount ?? 1;
|
|
4320
|
+
if (sectionChunkCount > 1 && chunkLength > 0 && chunkLength < 72) {
|
|
4321
|
+
if (sectionChunkCount <= 3 && excerpts.sectionExcerpt.trim().length > 0) {
|
|
4322
|
+
return excerpts.sectionExcerpt;
|
|
4323
|
+
}
|
|
4324
|
+
if (excerpts.windowExcerpt.trim().length > 0) {
|
|
4325
|
+
return excerpts.windowExcerpt;
|
|
4326
|
+
}
|
|
4327
|
+
}
|
|
4328
|
+
return excerpts.chunkExcerpt;
|
|
4329
|
+
};
|
|
4155
4330
|
var buildRAGChunkGraph = (chunks) => {
|
|
4156
4331
|
const nodes = [];
|
|
4157
4332
|
const edges = [];
|
|
@@ -4363,6 +4538,7 @@ var buildRAGSourceSummaries = (sources) => {
|
|
|
4363
4538
|
return sourceGroups.map((group) => {
|
|
4364
4539
|
const groupCitations = citations.filter((citation) => group.chunks.some((chunk) => chunk.chunkId === citation.chunkId));
|
|
4365
4540
|
const leadChunk = group.chunks.slice().sort((left, right) => right.score - left.score)[0];
|
|
4541
|
+
const excerpts = leadChunk ? buildRAGChunkExcerpts(group.chunks, leadChunk.chunkId) : undefined;
|
|
4366
4542
|
return {
|
|
4367
4543
|
bestScore: group.bestScore,
|
|
4368
4544
|
citationNumbers: groupCitations.map((citation) => citationReferenceMap[citation.chunkId] ?? 0),
|
|
@@ -4370,7 +4546,8 @@ var buildRAGSourceSummaries = (sources) => {
|
|
|
4370
4546
|
chunkIds: group.chunks.map((chunk) => chunk.chunkId),
|
|
4371
4547
|
contextLabel: leadChunk?.labels?.contextLabel ?? buildContextLabel2(leadChunk?.metadata),
|
|
4372
4548
|
count: group.count,
|
|
4373
|
-
excerpt: buildExcerpt2(leadChunk?.text ?? ""),
|
|
4549
|
+
excerpt: buildRAGPreferredExcerpt(excerpts, leadChunk?.structure ?? buildRAGChunkStructure(leadChunk?.metadata)) || buildExcerpt2(leadChunk?.text ?? ""),
|
|
4550
|
+
excerpts,
|
|
4374
4551
|
key: group.key,
|
|
4375
4552
|
label: group.label,
|
|
4376
4553
|
locatorLabel: leadChunk?.labels?.locatorLabel ?? buildLocatorLabel2(leadChunk?.metadata, leadChunk?.source, leadChunk?.title),
|
|
@@ -7636,5 +7813,5 @@ export {
|
|
|
7636
7813
|
AIStreamKey
|
|
7637
7814
|
};
|
|
7638
7815
|
|
|
7639
|
-
//# debugId=
|
|
7816
|
+
//# debugId=8644A303847A540964756E2164756E21
|
|
7640
7817
|
//# sourceMappingURL=index.js.map
|