langchain 0.1.35 → 0.1.37
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/chains/conversational_retrieval_chain.cjs +61 -19
- package/dist/chains/conversational_retrieval_chain.d.ts +61 -19
- package/dist/chains/conversational_retrieval_chain.js +61 -19
- package/dist/chains/llm_chain.cjs +10 -5
- package/dist/chains/llm_chain.d.ts +10 -5
- package/dist/chains/llm_chain.js +10 -5
- package/dist/chains/openai_functions/base.cjs +2 -0
- package/dist/chains/openai_functions/base.d.ts +2 -0
- package/dist/chains/openai_functions/base.js +2 -0
- package/dist/chains/query_constructor/index.cjs +5 -8
- package/dist/chains/query_constructor/index.d.ts +5 -4
- package/dist/chains/query_constructor/index.js +3 -6
- package/dist/chains/query_constructor/ir.cjs +15 -139
- package/dist/chains/query_constructor/ir.d.ts +1 -138
- package/dist/chains/query_constructor/ir.js +1 -132
- package/dist/chains/query_constructor/prompt.cjs +2 -2
- package/dist/chains/query_constructor/prompt.d.ts +1 -1
- package/dist/chains/query_constructor/prompt.js +1 -1
- package/dist/chains/retrieval_qa.cjs +23 -14
- package/dist/chains/retrieval_qa.d.ts +23 -14
- package/dist/chains/retrieval_qa.js +23 -14
- package/dist/document_loaders/fs/unstructured.cjs +1 -1
- package/dist/document_loaders/fs/unstructured.js +1 -1
- package/dist/document_loaders/web/browserbase.cjs +87 -0
- package/dist/document_loaders/web/browserbase.d.ts +49 -0
- package/dist/document_loaders/web/browserbase.js +80 -0
- package/dist/document_loaders/web/firecrawl.cjs +88 -0
- package/dist/document_loaders/web/firecrawl.d.ts +48 -0
- package/dist/document_loaders/web/firecrawl.js +81 -0
- package/dist/document_loaders/web/s3.cjs +2 -2
- package/dist/document_loaders/web/s3.js +2 -2
- package/dist/load/import_constants.cjs +2 -0
- package/dist/load/import_constants.js +2 -0
- package/dist/output_parsers/expression.cjs +1 -1
- package/dist/output_parsers/expression.d.ts +1 -1
- package/dist/output_parsers/expression.js +1 -1
- package/dist/retrievers/self_query/base.cjs +3 -136
- package/dist/retrievers/self_query/base.d.ts +1 -69
- package/dist/retrievers/self_query/base.js +1 -134
- package/dist/retrievers/self_query/chroma.cjs +9 -10
- package/dist/retrievers/self_query/chroma.d.ts +1 -1
- package/dist/retrievers/self_query/chroma.js +1 -2
- package/dist/retrievers/self_query/functional.cjs +2 -195
- package/dist/retrievers/self_query/functional.d.ts +1 -87
- package/dist/retrievers/self_query/functional.js +1 -194
- package/dist/retrievers/self_query/index.cjs +9 -13
- package/dist/retrievers/self_query/index.d.ts +11 -8
- package/dist/retrievers/self_query/index.js +7 -11
- package/dist/retrievers/self_query/pinecone.cjs +9 -10
- package/dist/retrievers/self_query/pinecone.d.ts +1 -1
- package/dist/retrievers/self_query/pinecone.js +1 -2
- package/dist/retrievers/self_query/supabase.cjs +28 -30
- package/dist/retrievers/self_query/supabase.d.ts +1 -2
- package/dist/retrievers/self_query/supabase.js +1 -3
- package/dist/retrievers/self_query/supabase_utils.cjs +2 -2
- package/dist/retrievers/self_query/supabase_utils.d.ts +1 -1
- package/dist/retrievers/self_query/supabase_utils.js +1 -1
- package/dist/retrievers/self_query/vectara.cjs +15 -17
- package/dist/retrievers/self_query/vectara.d.ts +1 -2
- package/dist/retrievers/self_query/vectara.js +1 -3
- package/dist/retrievers/self_query/weaviate.cjs +19 -21
- package/dist/retrievers/self_query/weaviate.d.ts +1 -2
- package/dist/retrievers/self_query/weaviate.js +1 -3
- package/dist/smith/config.d.ts +4 -4
- package/dist/storage/in_memory.cjs +2 -81
- package/dist/storage/in_memory.d.ts +1 -49
- package/dist/storage/in_memory.js +1 -80
- package/dist/text_splitter.cjs +15 -727
- package/dist/text_splitter.d.ts +1 -77
- package/dist/text_splitter.js +1 -720
- package/dist/vectorstores/qdrant.cjs +2 -0
- package/dist/vectorstores/qdrant.js +2 -0
- package/document_loaders/web/browserbase.cjs +1 -0
- package/document_loaders/web/browserbase.d.cts +1 -0
- package/document_loaders/web/browserbase.d.ts +1 -0
- package/document_loaders/web/browserbase.js +1 -0
- package/document_loaders/web/firecrawl.cjs +1 -0
- package/document_loaders/web/firecrawl.d.cts +1 -0
- package/document_loaders/web/firecrawl.d.ts +1 -0
- package/document_loaders/web/firecrawl.js +1 -0
- package/package.json +40 -3
- package/dist/retrievers/self_query/utils.cjs +0 -94
- package/dist/retrievers/self_query/utils.d.ts +0 -29
- package/dist/retrievers/self_query/utils.js +0 -85
|
@@ -17,5 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
const entrypoint_deprecation_js_1 = require("../util/entrypoint_deprecation.cjs");
|
|
18
18
|
/* #__PURE__ */ (0, entrypoint_deprecation_js_1.logVersion010MigrationWarning)({
|
|
19
19
|
oldEntrypointName: "vectorstores/qdrant",
|
|
20
|
+
newEntrypointName: "",
|
|
21
|
+
newPackageName: "@langchain/qdrant",
|
|
20
22
|
});
|
|
21
23
|
__exportStar(require("@langchain/community/vectorstores/qdrant"), exports);
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { logVersion010MigrationWarning } from "../util/entrypoint_deprecation.js";
|
|
2
2
|
/* #__PURE__ */ logVersion010MigrationWarning({
|
|
3
3
|
oldEntrypointName: "vectorstores/qdrant",
|
|
4
|
+
newEntrypointName: "",
|
|
5
|
+
newPackageName: "@langchain/qdrant",
|
|
4
6
|
});
|
|
5
7
|
export * from "@langchain/community/vectorstores/qdrant";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require('../../dist/document_loaders/web/browserbase.cjs');
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '../../dist/document_loaders/web/browserbase.js'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '../../dist/document_loaders/web/browserbase.js'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '../../dist/document_loaders/web/browserbase.js'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require('../../dist/document_loaders/web/firecrawl.cjs');
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '../../dist/document_loaders/web/firecrawl.js'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '../../dist/document_loaders/web/firecrawl.js'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '../../dist/document_loaders/web/firecrawl.js'
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "langchain",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.37",
|
|
4
4
|
"description": "Typescript bindings for langchain",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
@@ -546,6 +546,10 @@
|
|
|
546
546
|
"document_loaders/web/azure_blob_storage_file.js",
|
|
547
547
|
"document_loaders/web/azure_blob_storage_file.d.ts",
|
|
548
548
|
"document_loaders/web/azure_blob_storage_file.d.cts",
|
|
549
|
+
"document_loaders/web/browserbase.cjs",
|
|
550
|
+
"document_loaders/web/browserbase.js",
|
|
551
|
+
"document_loaders/web/browserbase.d.ts",
|
|
552
|
+
"document_loaders/web/browserbase.d.cts",
|
|
549
553
|
"document_loaders/web/cheerio.cjs",
|
|
550
554
|
"document_loaders/web/cheerio.js",
|
|
551
555
|
"document_loaders/web/cheerio.d.ts",
|
|
@@ -578,6 +582,10 @@
|
|
|
578
582
|
"document_loaders/web/figma.js",
|
|
579
583
|
"document_loaders/web/figma.d.ts",
|
|
580
584
|
"document_loaders/web/figma.d.cts",
|
|
585
|
+
"document_loaders/web/firecrawl.cjs",
|
|
586
|
+
"document_loaders/web/firecrawl.js",
|
|
587
|
+
"document_loaders/web/firecrawl.d.ts",
|
|
588
|
+
"document_loaders/web/firecrawl.d.cts",
|
|
581
589
|
"document_loaders/web/github.cjs",
|
|
582
590
|
"document_loaders/web/github.js",
|
|
583
591
|
"document_loaders/web/github.d.ts",
|
|
@@ -1190,7 +1198,7 @@
|
|
|
1190
1198
|
"homepage": "https://github.com/langchain-ai/langchainjs/tree/main/langchain/",
|
|
1191
1199
|
"scripts": {
|
|
1192
1200
|
"build": "yarn run build:deps && yarn clean && yarn build:esm && yarn build:cjs && yarn build:scripts",
|
|
1193
|
-
"build:deps": "yarn run turbo:command build --filter=@langchain/openai --filter=@langchain/community --concurrency=1",
|
|
1201
|
+
"build:deps": "yarn run turbo:command build --filter=@langchain/openai --filter=@langchain/community --filter=@langchain/textsplitters --concurrency=1",
|
|
1194
1202
|
"build:esm": "NODE_OPTIONS=--max-old-space-size=4096 tsc --outDir dist/ && rimraf dist/tests dist/**/tests",
|
|
1195
1203
|
"build:cjs": "NODE_OPTIONS=--max-old-space-size=4096 tsc --outDir dist-cjs/ -p tsconfig.cjs.json && yarn move-cjs-to-dist && rimraf dist-cjs",
|
|
1196
1204
|
"build:watch": "yarn create-entrypoints && tsc --outDir dist/ --watch",
|
|
@@ -1222,6 +1230,7 @@
|
|
|
1222
1230
|
"@aws-sdk/credential-provider-node": "^3.388.0",
|
|
1223
1231
|
"@aws-sdk/types": "^3.357.0",
|
|
1224
1232
|
"@azure/storage-blob": "^12.15.0",
|
|
1233
|
+
"@browserbasehq/sdk": "^1.0.0",
|
|
1225
1234
|
"@cloudflare/workers-types": "^4.20230922.0",
|
|
1226
1235
|
"@faker-js/faker": "^7.6.0",
|
|
1227
1236
|
"@gomomento/sdk": "^1.51.1",
|
|
@@ -1230,6 +1239,7 @@
|
|
|
1230
1239
|
"@google-cloud/storage": "^7.7.0",
|
|
1231
1240
|
"@jest/globals": "^29.5.0",
|
|
1232
1241
|
"@langchain/scripts": "~0.0",
|
|
1242
|
+
"@mendable/firecrawl-js": "^0.0.13",
|
|
1233
1243
|
"@notionhq/client": "^2.2.10",
|
|
1234
1244
|
"@pinecone-database/pinecone": "^1.1.0",
|
|
1235
1245
|
"@supabase/supabase-js": "^2.10.0",
|
|
@@ -1309,11 +1319,13 @@
|
|
|
1309
1319
|
"@aws-sdk/client-sfn": "^3.310.0",
|
|
1310
1320
|
"@aws-sdk/credential-provider-node": "^3.388.0",
|
|
1311
1321
|
"@azure/storage-blob": "^12.15.0",
|
|
1322
|
+
"@browserbasehq/sdk": "*",
|
|
1312
1323
|
"@gomomento/sdk": "^1.51.1",
|
|
1313
1324
|
"@gomomento/sdk-core": "^1.51.1",
|
|
1314
1325
|
"@gomomento/sdk-web": "^1.51.1",
|
|
1315
1326
|
"@google-ai/generativelanguage": "^0.2.1",
|
|
1316
1327
|
"@google-cloud/storage": "^6.10.1 || ^7.7.0",
|
|
1328
|
+
"@mendable/firecrawl-js": "^0.0.13",
|
|
1317
1329
|
"@notionhq/client": "^2.2.10",
|
|
1318
1330
|
"@pinecone-database/pinecone": "*",
|
|
1319
1331
|
"@supabase/supabase-js": "^2.10.0",
|
|
@@ -1371,6 +1383,9 @@
|
|
|
1371
1383
|
"@azure/storage-blob": {
|
|
1372
1384
|
"optional": true
|
|
1373
1385
|
},
|
|
1386
|
+
"@browserbasehq/sdk": {
|
|
1387
|
+
"optional": true
|
|
1388
|
+
},
|
|
1374
1389
|
"@gomomento/sdk": {
|
|
1375
1390
|
"optional": true
|
|
1376
1391
|
},
|
|
@@ -1386,6 +1401,9 @@
|
|
|
1386
1401
|
"@google-cloud/storage": {
|
|
1387
1402
|
"optional": true
|
|
1388
1403
|
},
|
|
1404
|
+
"@mendable/firecrawl-js": {
|
|
1405
|
+
"optional": true
|
|
1406
|
+
},
|
|
1389
1407
|
"@notionhq/client": {
|
|
1390
1408
|
"optional": true
|
|
1391
1409
|
},
|
|
@@ -1513,8 +1531,9 @@
|
|
|
1513
1531
|
"dependencies": {
|
|
1514
1532
|
"@anthropic-ai/sdk": "^0.9.1",
|
|
1515
1533
|
"@langchain/community": "~0.0.47",
|
|
1516
|
-
"@langchain/core": "~0.1.
|
|
1534
|
+
"@langchain/core": "~0.1.60",
|
|
1517
1535
|
"@langchain/openai": "~0.0.28",
|
|
1536
|
+
"@langchain/textsplitters": "~0.0.0",
|
|
1518
1537
|
"binary-extensions": "^2.2.0",
|
|
1519
1538
|
"js-tiktoken": "^1.0.7",
|
|
1520
1539
|
"js-yaml": "^4.1.0",
|
|
@@ -2753,6 +2772,15 @@
|
|
|
2753
2772
|
"import": "./document_loaders/web/azure_blob_storage_file.js",
|
|
2754
2773
|
"require": "./document_loaders/web/azure_blob_storage_file.cjs"
|
|
2755
2774
|
},
|
|
2775
|
+
"./document_loaders/web/browserbase": {
|
|
2776
|
+
"types": {
|
|
2777
|
+
"import": "./document_loaders/web/browserbase.d.ts",
|
|
2778
|
+
"require": "./document_loaders/web/browserbase.d.cts",
|
|
2779
|
+
"default": "./document_loaders/web/browserbase.d.ts"
|
|
2780
|
+
},
|
|
2781
|
+
"import": "./document_loaders/web/browserbase.js",
|
|
2782
|
+
"require": "./document_loaders/web/browserbase.cjs"
|
|
2783
|
+
},
|
|
2756
2784
|
"./document_loaders/web/cheerio": {
|
|
2757
2785
|
"types": {
|
|
2758
2786
|
"import": "./document_loaders/web/cheerio.d.ts",
|
|
@@ -2825,6 +2853,15 @@
|
|
|
2825
2853
|
"import": "./document_loaders/web/figma.js",
|
|
2826
2854
|
"require": "./document_loaders/web/figma.cjs"
|
|
2827
2855
|
},
|
|
2856
|
+
"./document_loaders/web/firecrawl": {
|
|
2857
|
+
"types": {
|
|
2858
|
+
"import": "./document_loaders/web/firecrawl.d.ts",
|
|
2859
|
+
"require": "./document_loaders/web/firecrawl.d.cts",
|
|
2860
|
+
"default": "./document_loaders/web/firecrawl.d.ts"
|
|
2861
|
+
},
|
|
2862
|
+
"import": "./document_loaders/web/firecrawl.js",
|
|
2863
|
+
"require": "./document_loaders/web/firecrawl.cjs"
|
|
2864
|
+
},
|
|
2828
2865
|
"./document_loaders/web/github": {
|
|
2829
2866
|
"types": {
|
|
2830
2867
|
"import": "./document_loaders/web/github.d.ts",
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.castValue = exports.isString = exports.isFloat = exports.isInt = exports.isFilterEmpty = exports.isObject = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Checks if the provided argument is an object and not an array.
|
|
6
|
-
*/
|
|
7
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
8
|
-
function isObject(obj) {
|
|
9
|
-
return obj && typeof obj === "object" && !Array.isArray(obj);
|
|
10
|
-
}
|
|
11
|
-
exports.isObject = isObject;
|
|
12
|
-
/**
|
|
13
|
-
* Checks if a provided filter is empty. The filter can be a function, an
|
|
14
|
-
* object, a string, or undefined.
|
|
15
|
-
*/
|
|
16
|
-
function isFilterEmpty(
|
|
17
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
18
|
-
filter) {
|
|
19
|
-
if (!filter)
|
|
20
|
-
return true;
|
|
21
|
-
// for Milvus
|
|
22
|
-
if (typeof filter === "string" && filter.length > 0) {
|
|
23
|
-
return false;
|
|
24
|
-
}
|
|
25
|
-
if (typeof filter === "function") {
|
|
26
|
-
return false;
|
|
27
|
-
}
|
|
28
|
-
return isObject(filter) && Object.keys(filter).length === 0;
|
|
29
|
-
}
|
|
30
|
-
exports.isFilterEmpty = isFilterEmpty;
|
|
31
|
-
/**
|
|
32
|
-
* Checks if the provided value is an integer.
|
|
33
|
-
*/
|
|
34
|
-
function isInt(value) {
|
|
35
|
-
if (typeof value === "number") {
|
|
36
|
-
return value % 1 === 0;
|
|
37
|
-
}
|
|
38
|
-
else if (typeof value === "string") {
|
|
39
|
-
const numberValue = parseInt(value, 10);
|
|
40
|
-
return (!Number.isNaN(numberValue) &&
|
|
41
|
-
numberValue % 1 === 0 &&
|
|
42
|
-
numberValue.toString() === value);
|
|
43
|
-
}
|
|
44
|
-
return false;
|
|
45
|
-
}
|
|
46
|
-
exports.isInt = isInt;
|
|
47
|
-
/**
|
|
48
|
-
* Checks if the provided value is a floating-point number.
|
|
49
|
-
*/
|
|
50
|
-
function isFloat(value) {
|
|
51
|
-
if (typeof value === "number") {
|
|
52
|
-
return value % 1 !== 0;
|
|
53
|
-
}
|
|
54
|
-
else if (typeof value === "string") {
|
|
55
|
-
const numberValue = parseFloat(value);
|
|
56
|
-
return (!Number.isNaN(numberValue) &&
|
|
57
|
-
numberValue % 1 !== 0 &&
|
|
58
|
-
numberValue.toString() === value);
|
|
59
|
-
}
|
|
60
|
-
return false;
|
|
61
|
-
}
|
|
62
|
-
exports.isFloat = isFloat;
|
|
63
|
-
/**
|
|
64
|
-
* Checks if the provided value is a string that cannot be parsed into a
|
|
65
|
-
* number.
|
|
66
|
-
*/
|
|
67
|
-
function isString(value) {
|
|
68
|
-
return (typeof value === "string" &&
|
|
69
|
-
(Number.isNaN(parseFloat(value)) || parseFloat(value).toString() !== value));
|
|
70
|
-
}
|
|
71
|
-
exports.isString = isString;
|
|
72
|
-
/**
|
|
73
|
-
* Casts a value that might be string or number to actual string or number.
|
|
74
|
-
* Since LLM might return back an integer/float as a string, we need to cast
|
|
75
|
-
* it back to a number, as many vector databases can't handle number as string
|
|
76
|
-
* values as a comparator.
|
|
77
|
-
*/
|
|
78
|
-
function castValue(input) {
|
|
79
|
-
let value;
|
|
80
|
-
if (isString(input)) {
|
|
81
|
-
value = input;
|
|
82
|
-
}
|
|
83
|
-
else if (isInt(input)) {
|
|
84
|
-
value = parseInt(input, 10);
|
|
85
|
-
}
|
|
86
|
-
else if (isFloat(input)) {
|
|
87
|
-
value = parseFloat(input);
|
|
88
|
-
}
|
|
89
|
-
else {
|
|
90
|
-
throw new Error("Unsupported value type");
|
|
91
|
-
}
|
|
92
|
-
return value;
|
|
93
|
-
}
|
|
94
|
-
exports.castValue = castValue;
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Checks if the provided argument is an object and not an array.
|
|
3
|
-
*/
|
|
4
|
-
export declare function isObject(obj: any): obj is object;
|
|
5
|
-
/**
|
|
6
|
-
* Checks if a provided filter is empty. The filter can be a function, an
|
|
7
|
-
* object, a string, or undefined.
|
|
8
|
-
*/
|
|
9
|
-
export declare function isFilterEmpty(filter: ((q: any) => any) | object | string | undefined): filter is undefined;
|
|
10
|
-
/**
|
|
11
|
-
* Checks if the provided value is an integer.
|
|
12
|
-
*/
|
|
13
|
-
export declare function isInt(value: unknown): boolean;
|
|
14
|
-
/**
|
|
15
|
-
* Checks if the provided value is a floating-point number.
|
|
16
|
-
*/
|
|
17
|
-
export declare function isFloat(value: unknown): boolean;
|
|
18
|
-
/**
|
|
19
|
-
* Checks if the provided value is a string that cannot be parsed into a
|
|
20
|
-
* number.
|
|
21
|
-
*/
|
|
22
|
-
export declare function isString(value: unknown): boolean;
|
|
23
|
-
/**
|
|
24
|
-
* Casts a value that might be string or number to actual string or number.
|
|
25
|
-
* Since LLM might return back an integer/float as a string, we need to cast
|
|
26
|
-
* it back to a number, as many vector databases can't handle number as string
|
|
27
|
-
* values as a comparator.
|
|
28
|
-
*/
|
|
29
|
-
export declare function castValue(input: unknown): string | number;
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Checks if the provided argument is an object and not an array.
|
|
3
|
-
*/
|
|
4
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
5
|
-
export function isObject(obj) {
|
|
6
|
-
return obj && typeof obj === "object" && !Array.isArray(obj);
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* Checks if a provided filter is empty. The filter can be a function, an
|
|
10
|
-
* object, a string, or undefined.
|
|
11
|
-
*/
|
|
12
|
-
export function isFilterEmpty(
|
|
13
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
14
|
-
filter) {
|
|
15
|
-
if (!filter)
|
|
16
|
-
return true;
|
|
17
|
-
// for Milvus
|
|
18
|
-
if (typeof filter === "string" && filter.length > 0) {
|
|
19
|
-
return false;
|
|
20
|
-
}
|
|
21
|
-
if (typeof filter === "function") {
|
|
22
|
-
return false;
|
|
23
|
-
}
|
|
24
|
-
return isObject(filter) && Object.keys(filter).length === 0;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Checks if the provided value is an integer.
|
|
28
|
-
*/
|
|
29
|
-
export function isInt(value) {
|
|
30
|
-
if (typeof value === "number") {
|
|
31
|
-
return value % 1 === 0;
|
|
32
|
-
}
|
|
33
|
-
else if (typeof value === "string") {
|
|
34
|
-
const numberValue = parseInt(value, 10);
|
|
35
|
-
return (!Number.isNaN(numberValue) &&
|
|
36
|
-
numberValue % 1 === 0 &&
|
|
37
|
-
numberValue.toString() === value);
|
|
38
|
-
}
|
|
39
|
-
return false;
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Checks if the provided value is a floating-point number.
|
|
43
|
-
*/
|
|
44
|
-
export function isFloat(value) {
|
|
45
|
-
if (typeof value === "number") {
|
|
46
|
-
return value % 1 !== 0;
|
|
47
|
-
}
|
|
48
|
-
else if (typeof value === "string") {
|
|
49
|
-
const numberValue = parseFloat(value);
|
|
50
|
-
return (!Number.isNaN(numberValue) &&
|
|
51
|
-
numberValue % 1 !== 0 &&
|
|
52
|
-
numberValue.toString() === value);
|
|
53
|
-
}
|
|
54
|
-
return false;
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Checks if the provided value is a string that cannot be parsed into a
|
|
58
|
-
* number.
|
|
59
|
-
*/
|
|
60
|
-
export function isString(value) {
|
|
61
|
-
return (typeof value === "string" &&
|
|
62
|
-
(Number.isNaN(parseFloat(value)) || parseFloat(value).toString() !== value));
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Casts a value that might be string or number to actual string or number.
|
|
66
|
-
* Since LLM might return back an integer/float as a string, we need to cast
|
|
67
|
-
* it back to a number, as many vector databases can't handle number as string
|
|
68
|
-
* values as a comparator.
|
|
69
|
-
*/
|
|
70
|
-
export function castValue(input) {
|
|
71
|
-
let value;
|
|
72
|
-
if (isString(input)) {
|
|
73
|
-
value = input;
|
|
74
|
-
}
|
|
75
|
-
else if (isInt(input)) {
|
|
76
|
-
value = parseInt(input, 10);
|
|
77
|
-
}
|
|
78
|
-
else if (isFloat(input)) {
|
|
79
|
-
value = parseFloat(input);
|
|
80
|
-
}
|
|
81
|
-
else {
|
|
82
|
-
throw new Error("Unsupported value type");
|
|
83
|
-
}
|
|
84
|
-
return value;
|
|
85
|
-
}
|