@retrivora-ai/rag-engine 0.2.8 → 0.3.0
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/{RagConfig--ibz0b3W.d.mts → RagConfig-D3Inaf9N.d.mts} +1 -1
- package/dist/{RagConfig--ibz0b3W.d.ts → RagConfig-D3Inaf9N.d.ts} +1 -1
- package/dist/{chunk-CYVPACA7.mjs → chunk-GT72OIOD.mjs} +88 -5
- package/dist/handlers/index.d.mts +2 -2
- package/dist/handlers/index.d.ts +2 -2
- package/dist/handlers/index.js +88 -5
- package/dist/handlers/index.mjs +1 -1
- package/dist/{index-Dr1HN0se.d.ts → index-BhNJQ2SS.d.ts} +1 -1
- package/dist/{index-w8qIEFvi.d.mts → index-Ymwm-_OR.d.mts} +1 -1
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/server.d.mts +5 -7
- package/dist/server.d.ts +5 -7
- package/dist/server.js +124 -117
- package/dist/server.mjs +37 -113
- package/package.json +1 -1
- package/src/config/RagConfig.ts +1 -1
- package/src/core/ConfigValidator.ts +16 -0
- package/src/core/Pipeline.ts +110 -9
- package/src/providers/vectordb/MultiTablePostgresProvider.ts +58 -167
|
@@ -47,7 +47,7 @@ interface VectorDBConfig {
|
|
|
47
47
|
*
|
|
48
48
|
* For multi-table PostgreSQL search, the following options are also supported:
|
|
49
49
|
* - tables?: string[] | string
|
|
50
|
-
* - searchFields?: string[] // optional override for which columns receive exact-match boosts
|
|
50
|
+
* - searchFields?: string[] | string // optional override for which columns receive exact-match boosts
|
|
51
51
|
*/
|
|
52
52
|
options: Record<string, unknown>;
|
|
53
53
|
}
|
|
@@ -47,7 +47,7 @@ interface VectorDBConfig {
|
|
|
47
47
|
*
|
|
48
48
|
* For multi-table PostgreSQL search, the following options are also supported:
|
|
49
49
|
* - tables?: string[] | string
|
|
50
|
-
* - searchFields?: string[] // optional override for which columns receive exact-match boosts
|
|
50
|
+
* - searchFields?: string[] | string // optional override for which columns receive exact-match boosts
|
|
51
51
|
*/
|
|
52
52
|
options: Record<string, unknown>;
|
|
53
53
|
}
|
|
@@ -316,6 +316,20 @@ var ConfigValidator = class {
|
|
|
316
316
|
severity: "error"
|
|
317
317
|
});
|
|
318
318
|
}
|
|
319
|
+
if (opts.tables && typeof opts.tables !== "string" && !Array.isArray(opts.tables)) {
|
|
320
|
+
errors.push({
|
|
321
|
+
field: "vectorDb.options.tables",
|
|
322
|
+
message: "PostgreSQL tables must be a string or a string array",
|
|
323
|
+
severity: "error"
|
|
324
|
+
});
|
|
325
|
+
}
|
|
326
|
+
if (opts.searchFields && typeof opts.searchFields !== "string" && !Array.isArray(opts.searchFields)) {
|
|
327
|
+
errors.push({
|
|
328
|
+
field: "vectorDb.options.searchFields",
|
|
329
|
+
message: "PostgreSQL searchFields must be a string or a string array",
|
|
330
|
+
severity: "error"
|
|
331
|
+
});
|
|
332
|
+
}
|
|
319
333
|
return errors;
|
|
320
334
|
}
|
|
321
335
|
/**
|
|
@@ -1556,7 +1570,11 @@ var EmbeddingStrategyResolver = class {
|
|
|
1556
1570
|
function normalizeHintValue(value) {
|
|
1557
1571
|
return value.replace(/\s+/g, " ").trim();
|
|
1558
1572
|
}
|
|
1573
|
+
function isLikelyPromptPhrase(value) {
|
|
1574
|
+
return /^(what|which|who|where|when|why|how)\b/i.test(value.trim());
|
|
1575
|
+
}
|
|
1559
1576
|
function extractQueryFieldHints(question) {
|
|
1577
|
+
var _a, _b, _c, _d;
|
|
1560
1578
|
if (!question.trim()) return [];
|
|
1561
1579
|
const hints = /* @__PURE__ */ new Map();
|
|
1562
1580
|
const addHint = (value, field) => {
|
|
@@ -1573,6 +1591,46 @@ function extractQueryFieldHints(question) {
|
|
|
1573
1591
|
for (const match of question.matchAll(/["']([^"']{2,100})["']/g)) {
|
|
1574
1592
|
addHint(match[1]);
|
|
1575
1593
|
}
|
|
1594
|
+
const naturalQuestionPatterns = [
|
|
1595
|
+
/\b(?:what|which)\s+(?:is|are|was|were)\s+(?:the\s+)?([^?.!,]{1,60}?)\s+of\s+["']?([^"'\n?.!,]{2,120})["']?(?=[?.!,]|$)/gi,
|
|
1596
|
+
/\b(?:who|what)\s+(?:is|are|was|were)\s+["']?([^"'\n?.!,]{2,120})["']?(?=[?.!,]|$)/gi,
|
|
1597
|
+
/\b(?:about|for|regarding)\s+["']?([^"'\n?.!,]{2,120})["']?(?=[?.!,]|$)/gi
|
|
1598
|
+
];
|
|
1599
|
+
const personCompanyPatterns = [
|
|
1600
|
+
/\bcompany(?:\s+name)?\s+(?:of|for)\s+["']?([^"'\n?.!,]{2,120})["']?(?=[?.!,]|$)/gi,
|
|
1601
|
+
/\b(?:which|what)\s+company\s+does\s+["']?([^"'\n?.!,]{2,120})["']?\s+work(?:\s+for|\s+at)?(?=[?.!,]|$)/gi,
|
|
1602
|
+
/\bwhere\s+does\s+["']?([^"'\n?.!,]{2,120})["']?\s+work(?:\s+for|\s+at)?(?=[?.!,]|$)/gi
|
|
1603
|
+
];
|
|
1604
|
+
for (const pattern of personCompanyPatterns) {
|
|
1605
|
+
for (const match of question.matchAll(pattern)) {
|
|
1606
|
+
const name = match[1];
|
|
1607
|
+
if (name) addHint(name, "name");
|
|
1608
|
+
}
|
|
1609
|
+
}
|
|
1610
|
+
const universalPatterns = [
|
|
1611
|
+
{ regex: /([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,})/gi, field: "email", group: 1 },
|
|
1612
|
+
{ regex: /(\+?\d[\d\-\.\s\(\)]{6,}\d)/g, field: "phone", group: 1 },
|
|
1613
|
+
{ regex: /(\b\d{4}-\d{2}-\d{2}\b|\b\d{1,2}\/\d{1,2}\/\d{2,4}\b)/g, field: "date", group: 1 },
|
|
1614
|
+
{ regex: /(\$\s?\d{1,3}(?:,\d{3})*(?:\.\d+)?)/g, field: "amount", group: 1 },
|
|
1615
|
+
{ regex: /\b(ID|id|identifier)[: ]\s*([A-Za-z0-9\-]{3,})\b/gi, field: "id", group: 2 },
|
|
1616
|
+
// Generic quoted phrase / proper-noun sequences as keywords (already partially handled above)
|
|
1617
|
+
{ regex: /"([^"]{2,120})"/g, group: 1 },
|
|
1618
|
+
{ regex: /'([^']{2,120})'/g, group: 1 }
|
|
1619
|
+
];
|
|
1620
|
+
for (const p of universalPatterns) {
|
|
1621
|
+
for (const match of question.matchAll(p.regex)) {
|
|
1622
|
+
const val = p.group ? (_a = match[p.group]) != null ? _a : match[0] : match[0];
|
|
1623
|
+
if (!val) continue;
|
|
1624
|
+
if (p.field) addHint(val, p.field);
|
|
1625
|
+
else addHint(val);
|
|
1626
|
+
}
|
|
1627
|
+
}
|
|
1628
|
+
for (const pattern of naturalQuestionPatterns) {
|
|
1629
|
+
for (const match of question.matchAll(pattern)) {
|
|
1630
|
+
const value = (_b = match[2]) != null ? _b : match[1];
|
|
1631
|
+
if (value) addHint(value);
|
|
1632
|
+
}
|
|
1633
|
+
}
|
|
1576
1634
|
const fieldPattern = `([^\\n:=?.!,]{1,60}?)`;
|
|
1577
1635
|
const valuePattern = `([^\\n?.!,]{1,120}?)`;
|
|
1578
1636
|
const fieldValuePatterns = [
|
|
@@ -1582,11 +1640,37 @@ function extractQueryFieldHints(question) {
|
|
|
1582
1640
|
];
|
|
1583
1641
|
for (const pattern of fieldValuePatterns) {
|
|
1584
1642
|
for (const match of question.matchAll(pattern)) {
|
|
1585
|
-
|
|
1643
|
+
const field = normalizeHintValue((_c = match[1]) != null ? _c : "");
|
|
1644
|
+
const value = (_d = match[2]) != null ? _d : "";
|
|
1645
|
+
if (field && !isLikelyPromptPhrase(field)) {
|
|
1646
|
+
addHint(value, field);
|
|
1647
|
+
} else {
|
|
1648
|
+
addHint(value);
|
|
1649
|
+
}
|
|
1586
1650
|
}
|
|
1587
1651
|
}
|
|
1652
|
+
for (const match of question.matchAll(/\b[A-Z][a-z]+(?:\s+[A-Z][a-z]+){0,3}\b/g)) {
|
|
1653
|
+
addHint(match[0]);
|
|
1654
|
+
}
|
|
1588
1655
|
return [...hints.values()];
|
|
1589
1656
|
}
|
|
1657
|
+
function buildQueryFilter(question, hints) {
|
|
1658
|
+
const filter = { metadata: {}, keywords: [], queryText: question };
|
|
1659
|
+
for (const hint of hints) {
|
|
1660
|
+
if (hint.field) {
|
|
1661
|
+
filter.metadata[hint.field] = hint.value;
|
|
1662
|
+
} else {
|
|
1663
|
+
filter.keywords.push(hint.value);
|
|
1664
|
+
}
|
|
1665
|
+
}
|
|
1666
|
+
for (const match of question.matchAll(/\b[A-Z][a-z]+(?:\s+[A-Z][a-z]+){0,3}\b/g)) {
|
|
1667
|
+
const term = normalizeHintValue(match[0]);
|
|
1668
|
+
if (term && !filter.keywords.includes(term)) filter.keywords.push(term);
|
|
1669
|
+
}
|
|
1670
|
+
if (Object.keys(filter.metadata || {}).length === 0) delete filter.metadata;
|
|
1671
|
+
if (filter.keywords && filter.keywords.length === 0) delete filter.keywords;
|
|
1672
|
+
return filter;
|
|
1673
|
+
}
|
|
1590
1674
|
var Pipeline = class {
|
|
1591
1675
|
constructor(config) {
|
|
1592
1676
|
this.initialised = false;
|
|
@@ -1675,10 +1759,9 @@ var Pipeline = class {
|
|
|
1675
1759
|
try {
|
|
1676
1760
|
const queryVector = await this.embeddingProvider.embed(question, { taskType: "query" });
|
|
1677
1761
|
const fieldHints = extractQueryFieldHints(question);
|
|
1678
|
-
const
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
});
|
|
1762
|
+
const filter = buildQueryFilter(question, fieldHints);
|
|
1763
|
+
filter.__entityHints = fieldHints;
|
|
1764
|
+
const rawMatches = await this.vectorDB.query(queryVector, topK, ns, filter);
|
|
1682
1765
|
const sources = rawMatches.filter((m) => m.score >= scoreThreshold);
|
|
1683
1766
|
const context = sources.length ? sources.map((m, i) => `[Source ${i + 1}]
|
|
1684
1767
|
${m.content}`).join("\n\n---\n\n") : "No relevant context found.";
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import '../RagConfig
|
|
2
|
-
export { c as createChatHandler, a as createHealthHandler, b as createIngestHandler, d as createUploadHandler } from '../index-
|
|
1
|
+
import '../RagConfig-D3Inaf9N.mjs';
|
|
2
|
+
export { c as createChatHandler, a as createHealthHandler, b as createIngestHandler, d as createUploadHandler } from '../index-Ymwm-_OR.mjs';
|
|
3
3
|
import 'next/server';
|
package/dist/handlers/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import '../RagConfig
|
|
2
|
-
export { c as createChatHandler, a as createHealthHandler, b as createIngestHandler, d as createUploadHandler } from '../index-
|
|
1
|
+
import '../RagConfig-D3Inaf9N.js';
|
|
2
|
+
export { c as createChatHandler, a as createHealthHandler, b as createIngestHandler, d as createUploadHandler } from '../index-BhNJQ2SS.js';
|
|
3
3
|
import 'next/server';
|
package/dist/handlers/index.js
CHANGED
|
@@ -1484,6 +1484,20 @@ var ConfigValidator = class {
|
|
|
1484
1484
|
severity: "error"
|
|
1485
1485
|
});
|
|
1486
1486
|
}
|
|
1487
|
+
if (opts.tables && typeof opts.tables !== "string" && !Array.isArray(opts.tables)) {
|
|
1488
|
+
errors.push({
|
|
1489
|
+
field: "vectorDb.options.tables",
|
|
1490
|
+
message: "PostgreSQL tables must be a string or a string array",
|
|
1491
|
+
severity: "error"
|
|
1492
|
+
});
|
|
1493
|
+
}
|
|
1494
|
+
if (opts.searchFields && typeof opts.searchFields !== "string" && !Array.isArray(opts.searchFields)) {
|
|
1495
|
+
errors.push({
|
|
1496
|
+
field: "vectorDb.options.searchFields",
|
|
1497
|
+
message: "PostgreSQL searchFields must be a string or a string array",
|
|
1498
|
+
severity: "error"
|
|
1499
|
+
});
|
|
1500
|
+
}
|
|
1487
1501
|
return errors;
|
|
1488
1502
|
}
|
|
1489
1503
|
/**
|
|
@@ -2680,7 +2694,11 @@ var EmbeddingStrategyResolver = class {
|
|
|
2680
2694
|
function normalizeHintValue(value) {
|
|
2681
2695
|
return value.replace(/\s+/g, " ").trim();
|
|
2682
2696
|
}
|
|
2697
|
+
function isLikelyPromptPhrase(value) {
|
|
2698
|
+
return /^(what|which|who|where|when|why|how)\b/i.test(value.trim());
|
|
2699
|
+
}
|
|
2683
2700
|
function extractQueryFieldHints(question) {
|
|
2701
|
+
var _a, _b, _c, _d;
|
|
2684
2702
|
if (!question.trim()) return [];
|
|
2685
2703
|
const hints = /* @__PURE__ */ new Map();
|
|
2686
2704
|
const addHint = (value, field) => {
|
|
@@ -2697,6 +2715,46 @@ function extractQueryFieldHints(question) {
|
|
|
2697
2715
|
for (const match of question.matchAll(/["']([^"']{2,100})["']/g)) {
|
|
2698
2716
|
addHint(match[1]);
|
|
2699
2717
|
}
|
|
2718
|
+
const naturalQuestionPatterns = [
|
|
2719
|
+
/\b(?:what|which)\s+(?:is|are|was|were)\s+(?:the\s+)?([^?.!,]{1,60}?)\s+of\s+["']?([^"'\n?.!,]{2,120})["']?(?=[?.!,]|$)/gi,
|
|
2720
|
+
/\b(?:who|what)\s+(?:is|are|was|were)\s+["']?([^"'\n?.!,]{2,120})["']?(?=[?.!,]|$)/gi,
|
|
2721
|
+
/\b(?:about|for|regarding)\s+["']?([^"'\n?.!,]{2,120})["']?(?=[?.!,]|$)/gi
|
|
2722
|
+
];
|
|
2723
|
+
const personCompanyPatterns = [
|
|
2724
|
+
/\bcompany(?:\s+name)?\s+(?:of|for)\s+["']?([^"'\n?.!,]{2,120})["']?(?=[?.!,]|$)/gi,
|
|
2725
|
+
/\b(?:which|what)\s+company\s+does\s+["']?([^"'\n?.!,]{2,120})["']?\s+work(?:\s+for|\s+at)?(?=[?.!,]|$)/gi,
|
|
2726
|
+
/\bwhere\s+does\s+["']?([^"'\n?.!,]{2,120})["']?\s+work(?:\s+for|\s+at)?(?=[?.!,]|$)/gi
|
|
2727
|
+
];
|
|
2728
|
+
for (const pattern of personCompanyPatterns) {
|
|
2729
|
+
for (const match of question.matchAll(pattern)) {
|
|
2730
|
+
const name = match[1];
|
|
2731
|
+
if (name) addHint(name, "name");
|
|
2732
|
+
}
|
|
2733
|
+
}
|
|
2734
|
+
const universalPatterns = [
|
|
2735
|
+
{ regex: /([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,})/gi, field: "email", group: 1 },
|
|
2736
|
+
{ regex: /(\+?\d[\d\-\.\s\(\)]{6,}\d)/g, field: "phone", group: 1 },
|
|
2737
|
+
{ regex: /(\b\d{4}-\d{2}-\d{2}\b|\b\d{1,2}\/\d{1,2}\/\d{2,4}\b)/g, field: "date", group: 1 },
|
|
2738
|
+
{ regex: /(\$\s?\d{1,3}(?:,\d{3})*(?:\.\d+)?)/g, field: "amount", group: 1 },
|
|
2739
|
+
{ regex: /\b(ID|id|identifier)[: ]\s*([A-Za-z0-9\-]{3,})\b/gi, field: "id", group: 2 },
|
|
2740
|
+
// Generic quoted phrase / proper-noun sequences as keywords (already partially handled above)
|
|
2741
|
+
{ regex: /"([^"]{2,120})"/g, group: 1 },
|
|
2742
|
+
{ regex: /'([^']{2,120})'/g, group: 1 }
|
|
2743
|
+
];
|
|
2744
|
+
for (const p of universalPatterns) {
|
|
2745
|
+
for (const match of question.matchAll(p.regex)) {
|
|
2746
|
+
const val = p.group ? (_a = match[p.group]) != null ? _a : match[0] : match[0];
|
|
2747
|
+
if (!val) continue;
|
|
2748
|
+
if (p.field) addHint(val, p.field);
|
|
2749
|
+
else addHint(val);
|
|
2750
|
+
}
|
|
2751
|
+
}
|
|
2752
|
+
for (const pattern of naturalQuestionPatterns) {
|
|
2753
|
+
for (const match of question.matchAll(pattern)) {
|
|
2754
|
+
const value = (_b = match[2]) != null ? _b : match[1];
|
|
2755
|
+
if (value) addHint(value);
|
|
2756
|
+
}
|
|
2757
|
+
}
|
|
2700
2758
|
const fieldPattern = `([^\\n:=?.!,]{1,60}?)`;
|
|
2701
2759
|
const valuePattern = `([^\\n?.!,]{1,120}?)`;
|
|
2702
2760
|
const fieldValuePatterns = [
|
|
@@ -2706,11 +2764,37 @@ function extractQueryFieldHints(question) {
|
|
|
2706
2764
|
];
|
|
2707
2765
|
for (const pattern of fieldValuePatterns) {
|
|
2708
2766
|
for (const match of question.matchAll(pattern)) {
|
|
2709
|
-
|
|
2767
|
+
const field = normalizeHintValue((_c = match[1]) != null ? _c : "");
|
|
2768
|
+
const value = (_d = match[2]) != null ? _d : "";
|
|
2769
|
+
if (field && !isLikelyPromptPhrase(field)) {
|
|
2770
|
+
addHint(value, field);
|
|
2771
|
+
} else {
|
|
2772
|
+
addHint(value);
|
|
2773
|
+
}
|
|
2710
2774
|
}
|
|
2711
2775
|
}
|
|
2776
|
+
for (const match of question.matchAll(/\b[A-Z][a-z]+(?:\s+[A-Z][a-z]+){0,3}\b/g)) {
|
|
2777
|
+
addHint(match[0]);
|
|
2778
|
+
}
|
|
2712
2779
|
return [...hints.values()];
|
|
2713
2780
|
}
|
|
2781
|
+
function buildQueryFilter(question, hints) {
|
|
2782
|
+
const filter = { metadata: {}, keywords: [], queryText: question };
|
|
2783
|
+
for (const hint of hints) {
|
|
2784
|
+
if (hint.field) {
|
|
2785
|
+
filter.metadata[hint.field] = hint.value;
|
|
2786
|
+
} else {
|
|
2787
|
+
filter.keywords.push(hint.value);
|
|
2788
|
+
}
|
|
2789
|
+
}
|
|
2790
|
+
for (const match of question.matchAll(/\b[A-Z][a-z]+(?:\s+[A-Z][a-z]+){0,3}\b/g)) {
|
|
2791
|
+
const term = normalizeHintValue(match[0]);
|
|
2792
|
+
if (term && !filter.keywords.includes(term)) filter.keywords.push(term);
|
|
2793
|
+
}
|
|
2794
|
+
if (Object.keys(filter.metadata || {}).length === 0) delete filter.metadata;
|
|
2795
|
+
if (filter.keywords && filter.keywords.length === 0) delete filter.keywords;
|
|
2796
|
+
return filter;
|
|
2797
|
+
}
|
|
2714
2798
|
var Pipeline = class {
|
|
2715
2799
|
constructor(config) {
|
|
2716
2800
|
this.initialised = false;
|
|
@@ -2799,10 +2883,9 @@ var Pipeline = class {
|
|
|
2799
2883
|
try {
|
|
2800
2884
|
const queryVector = await this.embeddingProvider.embed(question, { taskType: "query" });
|
|
2801
2885
|
const fieldHints = extractQueryFieldHints(question);
|
|
2802
|
-
const
|
|
2803
|
-
|
|
2804
|
-
|
|
2805
|
-
});
|
|
2886
|
+
const filter = buildQueryFilter(question, fieldHints);
|
|
2887
|
+
filter.__entityHints = fieldHints;
|
|
2888
|
+
const rawMatches = await this.vectorDB.query(queryVector, topK, ns, filter);
|
|
2806
2889
|
const sources = rawMatches.filter((m) => m.score >= scoreThreshold);
|
|
2807
2890
|
const context = sources.length ? sources.map((m, i) => `[Source ${i + 1}]
|
|
2808
2891
|
${m.content}`).join("\n\n---\n\n") : "No relevant context found.";
|
package/dist/handlers/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { c as VectorDBConfig, L as LLMConfig, E as EmbeddingConfig, a as RagConfig, C as ChatResponse } from './RagConfig
|
|
1
|
+
import { c as VectorDBConfig, L as LLMConfig, E as EmbeddingConfig, a as RagConfig, C as ChatResponse } from './RagConfig-D3Inaf9N.js';
|
|
2
2
|
import { NextRequest, NextResponse } from 'next/server';
|
|
3
3
|
|
|
4
4
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { c as VectorDBConfig, L as LLMConfig, E as EmbeddingConfig, a as RagConfig, C as ChatResponse } from './RagConfig
|
|
1
|
+
import { c as VectorDBConfig, L as LLMConfig, E as EmbeddingConfig, a as RagConfig, C as ChatResponse } from './RagConfig-D3Inaf9N.mjs';
|
|
2
2
|
import { NextRequest, NextResponse } from 'next/server';
|
|
3
3
|
|
|
4
4
|
/**
|
package/dist/index.d.mts
CHANGED
|
@@ -2,8 +2,8 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
|
2
2
|
import React$1, { ReactNode } from 'react';
|
|
3
3
|
import { C as ChatMessage } from './DocumentChunker-BICIjSuG.mjs';
|
|
4
4
|
export { a as ChatOptions, b as Chunk, c as ChunkOptions, E as EmbedOptions, I as ILLMProvider } from './DocumentChunker-BICIjSuG.mjs';
|
|
5
|
-
import { V as VectorMatch, U as UIConfig } from './RagConfig
|
|
6
|
-
export { C as ChatResponse, E as EmbeddingConfig, I as IngestDocument, L as LLMConfig, R as RAGConfig, a as RagConfig, b as UpsertDocument, c as VectorDBConfig } from './RagConfig
|
|
5
|
+
import { V as VectorMatch, U as UIConfig } from './RagConfig-D3Inaf9N.mjs';
|
|
6
|
+
export { C as ChatResponse, E as EmbeddingConfig, I as IngestDocument, L as LLMConfig, R as RAGConfig, a as RagConfig, b as UpsertDocument, c as VectorDBConfig } from './RagConfig-D3Inaf9N.mjs';
|
|
7
7
|
|
|
8
8
|
interface ChatWidgetProps {
|
|
9
9
|
/** Position of the floating button. Defaults to bottom-right. */
|
package/dist/index.d.ts
CHANGED
|
@@ -2,8 +2,8 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
|
2
2
|
import React$1, { ReactNode } from 'react';
|
|
3
3
|
import { C as ChatMessage } from './DocumentChunker-BICIjSuG.js';
|
|
4
4
|
export { a as ChatOptions, b as Chunk, c as ChunkOptions, E as EmbedOptions, I as ILLMProvider } from './DocumentChunker-BICIjSuG.js';
|
|
5
|
-
import { V as VectorMatch, U as UIConfig } from './RagConfig
|
|
6
|
-
export { C as ChatResponse, E as EmbeddingConfig, I as IngestDocument, L as LLMConfig, R as RAGConfig, a as RagConfig, b as UpsertDocument, c as VectorDBConfig } from './RagConfig
|
|
5
|
+
import { V as VectorMatch, U as UIConfig } from './RagConfig-D3Inaf9N.js';
|
|
6
|
+
export { C as ChatResponse, E as EmbeddingConfig, I as IngestDocument, L as LLMConfig, R as RAGConfig, a as RagConfig, b as UpsertDocument, c as VectorDBConfig } from './RagConfig-D3Inaf9N.js';
|
|
7
7
|
|
|
8
8
|
interface ChatWidgetProps {
|
|
9
9
|
/** Position of the floating button. Defaults to bottom-right. */
|
package/dist/server.d.mts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { a as RagConfig, C as ChatResponse, I as IngestDocument, c as VectorDBConfig, b as UpsertDocument, V as VectorMatch, L as LLMConfig, E as EmbeddingConfig, d as VectorDBProvider, e as LLMProvider, f as EmbeddingProvider } from './RagConfig
|
|
2
|
-
export { R as RAGConfig, U as UIConfig } from './RagConfig
|
|
1
|
+
import { a as RagConfig, C as ChatResponse, I as IngestDocument, c as VectorDBConfig, b as UpsertDocument, V as VectorMatch, L as LLMConfig, E as EmbeddingConfig, d as VectorDBProvider, e as LLMProvider, f as EmbeddingProvider } from './RagConfig-D3Inaf9N.mjs';
|
|
2
|
+
export { R as RAGConfig, U as UIConfig } from './RagConfig-D3Inaf9N.mjs';
|
|
3
3
|
import { C as ChatMessage, I as ILLMProvider, a as ChatOptions, E as EmbedOptions } from './DocumentChunker-BICIjSuG.mjs';
|
|
4
4
|
export { b as Chunk, c as ChunkOptions, D as DocumentChunker } from './DocumentChunker-BICIjSuG.mjs';
|
|
5
|
-
import { H as HealthCheckResult } from './index-
|
|
6
|
-
export { P as ProviderHealthCheck, c as createChatHandler, a as createHealthHandler, b as createIngestHandler, d as createUploadHandler } from './index-
|
|
5
|
+
import { H as HealthCheckResult } from './index-Ymwm-_OR.mjs';
|
|
6
|
+
export { P as ProviderHealthCheck, c as createChatHandler, a as createHealthHandler, b as createIngestHandler, d as createUploadHandler } from './index-Ymwm-_OR.mjs';
|
|
7
7
|
import 'next/server';
|
|
8
8
|
|
|
9
9
|
/**
|
|
@@ -706,7 +706,7 @@ declare class MultiTablePostgresProvider extends BaseVectorProvider {
|
|
|
706
706
|
private readonly dimensions;
|
|
707
707
|
private readonly connectionString;
|
|
708
708
|
private tables;
|
|
709
|
-
private
|
|
709
|
+
private searchFields;
|
|
710
710
|
constructor(config: VectorDBConfig);
|
|
711
711
|
initialize(): Promise<void>;
|
|
712
712
|
/**
|
|
@@ -726,8 +726,6 @@ declare class MultiTablePostgresProvider extends BaseVectorProvider {
|
|
|
726
726
|
deleteNamespace(_namespace: string): Promise<void>;
|
|
727
727
|
ping(): Promise<boolean>;
|
|
728
728
|
disconnect(): Promise<void>;
|
|
729
|
-
private loadTableSearchConfig;
|
|
730
|
-
private parseConfiguredSearchFields;
|
|
731
729
|
}
|
|
732
730
|
|
|
733
731
|
/**
|
package/dist/server.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { a as RagConfig, C as ChatResponse, I as IngestDocument, c as VectorDBConfig, b as UpsertDocument, V as VectorMatch, L as LLMConfig, E as EmbeddingConfig, d as VectorDBProvider, e as LLMProvider, f as EmbeddingProvider } from './RagConfig
|
|
2
|
-
export { R as RAGConfig, U as UIConfig } from './RagConfig
|
|
1
|
+
import { a as RagConfig, C as ChatResponse, I as IngestDocument, c as VectorDBConfig, b as UpsertDocument, V as VectorMatch, L as LLMConfig, E as EmbeddingConfig, d as VectorDBProvider, e as LLMProvider, f as EmbeddingProvider } from './RagConfig-D3Inaf9N.js';
|
|
2
|
+
export { R as RAGConfig, U as UIConfig } from './RagConfig-D3Inaf9N.js';
|
|
3
3
|
import { C as ChatMessage, I as ILLMProvider, a as ChatOptions, E as EmbedOptions } from './DocumentChunker-BICIjSuG.js';
|
|
4
4
|
export { b as Chunk, c as ChunkOptions, D as DocumentChunker } from './DocumentChunker-BICIjSuG.js';
|
|
5
|
-
import { H as HealthCheckResult } from './index-
|
|
6
|
-
export { P as ProviderHealthCheck, c as createChatHandler, a as createHealthHandler, b as createIngestHandler, d as createUploadHandler } from './index-
|
|
5
|
+
import { H as HealthCheckResult } from './index-BhNJQ2SS.js';
|
|
6
|
+
export { P as ProviderHealthCheck, c as createChatHandler, a as createHealthHandler, b as createIngestHandler, d as createUploadHandler } from './index-BhNJQ2SS.js';
|
|
7
7
|
import 'next/server';
|
|
8
8
|
|
|
9
9
|
/**
|
|
@@ -706,7 +706,7 @@ declare class MultiTablePostgresProvider extends BaseVectorProvider {
|
|
|
706
706
|
private readonly dimensions;
|
|
707
707
|
private readonly connectionString;
|
|
708
708
|
private tables;
|
|
709
|
-
private
|
|
709
|
+
private searchFields;
|
|
710
710
|
constructor(config: VectorDBConfig);
|
|
711
711
|
initialize(): Promise<void>;
|
|
712
712
|
/**
|
|
@@ -726,8 +726,6 @@ declare class MultiTablePostgresProvider extends BaseVectorProvider {
|
|
|
726
726
|
deleteNamespace(_namespace: string): Promise<void>;
|
|
727
727
|
ping(): Promise<boolean>;
|
|
728
728
|
disconnect(): Promise<void>;
|
|
729
|
-
private loadTableSearchConfig;
|
|
730
|
-
private parseConfiguredSearchFields;
|
|
731
729
|
}
|
|
732
730
|
|
|
733
731
|
/**
|