langchain 0.0.197-rc.1 → 0.0.198
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/openai_moderation.cjs +2 -2
- package/dist/chains/openai_moderation.d.ts +1 -1
- package/dist/chains/openai_moderation.js +1 -1
- package/dist/chat_models/anthropic.cjs +351 -15
- package/dist/chat_models/anthropic.d.ts +157 -1
- package/dist/chat_models/anthropic.js +348 -1
- package/dist/chat_models/cloudflare_workersai.cjs +5 -0
- package/dist/chat_models/cloudflare_workersai.d.ts +3 -0
- package/dist/chat_models/cloudflare_workersai.js +5 -0
- package/dist/chat_models/fireworks.d.ts +1 -1
- package/dist/chat_models/iflytek_xinghuo/common.d.ts +1 -1
- package/dist/chat_models/llama_cpp.cjs +24 -0
- package/dist/chat_models/llama_cpp.d.ts +3 -1
- package/dist/chat_models/llama_cpp.js +24 -0
- package/dist/chat_models/minimax.d.ts +1 -1
- package/dist/chat_models/openai.cjs +698 -4
- package/dist/chat_models/openai.d.ts +137 -4
- package/dist/chat_models/openai.js +695 -2
- package/dist/document_loaders/fs/openai_whisper_audio.cjs +2 -2
- package/dist/document_loaders/fs/openai_whisper_audio.d.ts +1 -1
- package/dist/document_loaders/fs/openai_whisper_audio.js +1 -1
- package/dist/document_loaders/fs/pptx.cjs +39 -0
- package/dist/document_loaders/fs/pptx.d.ts +23 -0
- package/dist/document_loaders/fs/pptx.js +35 -0
- package/dist/embeddings/openai.cjs +240 -2
- package/dist/embeddings/openai.d.ts +82 -1
- package/dist/embeddings/openai.js +239 -1
- package/dist/experimental/openai_assistant/index.cjs +35 -3
- package/dist/experimental/openai_assistant/index.d.ts +27 -1
- package/dist/experimental/openai_assistant/index.js +33 -1
- package/dist/experimental/openai_assistant/schema.d.ts +1 -1
- package/dist/experimental/openai_files/index.cjs +2 -2
- package/dist/experimental/openai_files/index.d.ts +1 -1
- package/dist/experimental/openai_files/index.js +1 -1
- package/dist/experimental/tools/pyinterpreter.cjs +248 -0
- package/dist/experimental/tools/pyinterpreter.d.ts +18 -0
- package/dist/experimental/tools/pyinterpreter.js +244 -0
- package/dist/graphs/neo4j_graph.cjs +49 -14
- package/dist/graphs/neo4j_graph.d.ts +30 -0
- package/dist/graphs/neo4j_graph.js +49 -14
- package/dist/llms/fireworks.d.ts +1 -1
- package/dist/llms/hf.cjs +13 -2
- package/dist/llms/hf.d.ts +5 -0
- package/dist/llms/hf.js +13 -2
- package/dist/llms/llama_cpp.cjs +17 -3
- package/dist/llms/llama_cpp.d.ts +4 -1
- package/dist/llms/llama_cpp.js +17 -3
- package/dist/llms/openai-chat.cjs +445 -3
- package/dist/llms/openai-chat.d.ts +123 -4
- package/dist/llms/openai-chat.js +443 -2
- package/dist/llms/openai.cjs +530 -6
- package/dist/llms/openai.d.ts +123 -4
- package/dist/llms/openai.js +525 -2
- package/dist/load/import_constants.cjs +3 -0
- package/dist/load/import_constants.js +3 -0
- package/dist/output_parsers/json.cjs +4 -0
- package/dist/output_parsers/json.js +4 -0
- package/dist/schema/index.d.ts +1 -1
- package/dist/tools/convert_to_openai.cjs +38 -4
- package/dist/tools/convert_to_openai.d.ts +11 -1
- package/dist/tools/convert_to_openai.js +35 -1
- package/dist/types/openai-types.d.ts +133 -1
- package/dist/util/env.cjs +9 -70
- package/dist/util/env.d.ts +1 -21
- package/dist/util/env.js +1 -62
- package/dist/util/openai-format-fndef.cjs +81 -0
- package/dist/util/openai-format-fndef.d.ts +44 -0
- package/dist/util/openai-format-fndef.js +77 -0
- package/dist/util/openai.cjs +18 -2
- package/dist/util/openai.d.ts +1 -1
- package/dist/util/openai.js +17 -1
- package/dist/util/openapi.d.ts +2 -2
- package/dist/util/prompt-layer.d.ts +1 -1
- package/dist/vectorstores/clickhouse.cjs +286 -0
- package/dist/vectorstores/clickhouse.d.ts +126 -0
- package/dist/vectorstores/clickhouse.js +259 -0
- package/dist/vectorstores/pgvector.cjs +142 -18
- package/dist/vectorstores/pgvector.d.ts +21 -0
- package/dist/vectorstores/pgvector.js +142 -18
- package/dist/vectorstores/weaviate.cjs +45 -2
- package/dist/vectorstores/weaviate.d.ts +27 -1
- package/dist/vectorstores/weaviate.js +45 -2
- package/document_loaders/fs/pptx.cjs +1 -0
- package/document_loaders/fs/pptx.d.ts +1 -0
- package/document_loaders/fs/pptx.js +1 -0
- package/experimental/tools/pyinterpreter.cjs +1 -0
- package/experimental/tools/pyinterpreter.d.ts +1 -0
- package/experimental/tools/pyinterpreter.js +1 -0
- package/package.json +41 -9
- package/vectorstores/clickhouse.cjs +1 -0
- package/vectorstores/clickhouse.d.ts +1 -0
- package/vectorstores/clickhouse.js +1 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as uuid from "uuid";
|
|
2
2
|
import { VectorStore } from "./base.js";
|
|
3
3
|
import { Document } from "../document.js";
|
|
4
|
+
import { maximalMarginalRelevance } from "../util/math.js";
|
|
4
5
|
// Note this function is not generic, it is designed specifically for Weaviate
|
|
5
6
|
// https://weaviate.io/developers/weaviate/config-refs/datatypes#introduction
|
|
6
7
|
export const flattenObjectForWeaviate = (
|
|
@@ -208,11 +209,27 @@ export class WeaviateStore extends VectorStore {
|
|
|
208
209
|
* @returns An array of tuples, where each tuple contains a document and its similarity score.
|
|
209
210
|
*/
|
|
210
211
|
async similaritySearchVectorWithScore(query, k, filter) {
|
|
212
|
+
const resultsWithEmbedding = await this.similaritySearchVectorWithScoreAndEmbedding(query, k, filter);
|
|
213
|
+
return resultsWithEmbedding.map(([document, score, _embedding]) => [
|
|
214
|
+
document,
|
|
215
|
+
score,
|
|
216
|
+
]);
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Method to perform a similarity search on the stored vectors in the
|
|
220
|
+
* Weaviate index. It returns the top k most similar documents, their
|
|
221
|
+
* similarity scores and embedding vectors.
|
|
222
|
+
* @param query The query vector.
|
|
223
|
+
* @param k The number of most similar documents to return.
|
|
224
|
+
* @param filter Optional filter to apply to the search.
|
|
225
|
+
* @returns An array of tuples, where each tuple contains a document, its similarity score and its embedding vector.
|
|
226
|
+
*/
|
|
227
|
+
async similaritySearchVectorWithScoreAndEmbedding(query, k, filter) {
|
|
211
228
|
try {
|
|
212
|
-
let builder =
|
|
229
|
+
let builder = this.client.graphql
|
|
213
230
|
.get()
|
|
214
231
|
.withClassName(this.indexName)
|
|
215
|
-
.withFields(`${this.queryAttrs.join(" ")} _additional { distance }`)
|
|
232
|
+
.withFields(`${this.queryAttrs.join(" ")} _additional { distance vector }`)
|
|
216
233
|
.withNearVector({
|
|
217
234
|
vector: query,
|
|
218
235
|
distance: filter?.distance,
|
|
@@ -234,6 +251,7 @@ export class WeaviateStore extends VectorStore {
|
|
|
234
251
|
metadata: rest,
|
|
235
252
|
}),
|
|
236
253
|
_additional.distance,
|
|
254
|
+
_additional.vector,
|
|
237
255
|
]);
|
|
238
256
|
}
|
|
239
257
|
return documents;
|
|
@@ -242,6 +260,31 @@ export class WeaviateStore extends VectorStore {
|
|
|
242
260
|
throw Error(`'Error in similaritySearch' ${e}`);
|
|
243
261
|
}
|
|
244
262
|
}
|
|
263
|
+
/**
|
|
264
|
+
* Return documents selected using the maximal marginal relevance.
|
|
265
|
+
* Maximal marginal relevance optimizes for similarity to the query AND diversity
|
|
266
|
+
* among selected documents.
|
|
267
|
+
*
|
|
268
|
+
* @param {string} query - Text to look up documents similar to.
|
|
269
|
+
* @param {number} options.k - Number of documents to return.
|
|
270
|
+
* @param {number} options.fetchK - Number of documents to fetch before passing to the MMR algorithm.
|
|
271
|
+
* @param {number} options.lambda - Number between 0 and 1 that determines the degree of diversity among the results,
|
|
272
|
+
* where 0 corresponds to maximum diversity and 1 to minimum diversity.
|
|
273
|
+
* @param {this["FilterType"]} options.filter - Optional filter
|
|
274
|
+
* @param _callbacks
|
|
275
|
+
*
|
|
276
|
+
* @returns {Promise<Document[]>} - List of documents selected by maximal marginal relevance.
|
|
277
|
+
*/
|
|
278
|
+
async maxMarginalRelevanceSearch(query, options, _callbacks) {
|
|
279
|
+
const { k, fetchK = 20, lambda = 0.5, filter } = options;
|
|
280
|
+
const queryEmbedding = await this.embeddings.embedQuery(query);
|
|
281
|
+
const allResults = await this.similaritySearchVectorWithScoreAndEmbedding(queryEmbedding, fetchK, filter);
|
|
282
|
+
const embeddingList = allResults.map(([_doc, _score, embedding]) => embedding);
|
|
283
|
+
const mmrIndexes = maximalMarginalRelevance(queryEmbedding, embeddingList, lambda, k);
|
|
284
|
+
return mmrIndexes
|
|
285
|
+
.filter((idx) => idx !== -1)
|
|
286
|
+
.map((idx) => allResults[idx][0]);
|
|
287
|
+
}
|
|
245
288
|
/**
|
|
246
289
|
* Static method to create a new `WeaviateStore` instance from a list of
|
|
247
290
|
* texts. It first creates documents from the texts and metadata, then
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require('../../dist/document_loaders/fs/pptx.cjs');
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '../../dist/document_loaders/fs/pptx.js'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '../../dist/document_loaders/fs/pptx.js'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require('../../dist/experimental/tools/pyinterpreter.cjs');
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '../../dist/experimental/tools/pyinterpreter.js'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '../../dist/experimental/tools/pyinterpreter.js'
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "langchain",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.198",
|
|
4
4
|
"description": "Typescript bindings for langchain",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
@@ -229,6 +229,9 @@
|
|
|
229
229
|
"prompts/load.cjs",
|
|
230
230
|
"prompts/load.js",
|
|
231
231
|
"prompts/load.d.ts",
|
|
232
|
+
"vectorstores/clickhouse.cjs",
|
|
233
|
+
"vectorstores/clickhouse.js",
|
|
234
|
+
"vectorstores/clickhouse.d.ts",
|
|
232
235
|
"vectorstores/analyticdb.cjs",
|
|
233
236
|
"vectorstores/analyticdb.js",
|
|
234
237
|
"vectorstores/analyticdb.d.ts",
|
|
@@ -469,6 +472,9 @@
|
|
|
469
472
|
"document_loaders/fs/openai_whisper_audio.cjs",
|
|
470
473
|
"document_loaders/fs/openai_whisper_audio.js",
|
|
471
474
|
"document_loaders/fs/openai_whisper_audio.d.ts",
|
|
475
|
+
"document_loaders/fs/pptx.cjs",
|
|
476
|
+
"document_loaders/fs/pptx.js",
|
|
477
|
+
"document_loaders/fs/pptx.d.ts",
|
|
472
478
|
"document_transformers/html_to_text.cjs",
|
|
473
479
|
"document_transformers/html_to_text.js",
|
|
474
480
|
"document_transformers/html_to_text.d.ts",
|
|
@@ -802,6 +808,9 @@
|
|
|
802
808
|
"experimental/chains/violation_of_expectations.cjs",
|
|
803
809
|
"experimental/chains/violation_of_expectations.js",
|
|
804
810
|
"experimental/chains/violation_of_expectations.d.ts",
|
|
811
|
+
"experimental/tools/pyinterpreter.cjs",
|
|
812
|
+
"experimental/tools/pyinterpreter.js",
|
|
813
|
+
"experimental/tools/pyinterpreter.d.ts",
|
|
805
814
|
"evaluation.cjs",
|
|
806
815
|
"evaluation.js",
|
|
807
816
|
"evaluation.d.ts",
|
|
@@ -852,7 +861,7 @@
|
|
|
852
861
|
"@aws-sdk/credential-provider-node": "^3.388.0",
|
|
853
862
|
"@aws-sdk/types": "^3.357.0",
|
|
854
863
|
"@azure/storage-blob": "^12.15.0",
|
|
855
|
-
"@clickhouse/client": "^0.
|
|
864
|
+
"@clickhouse/client": "^0.2.5",
|
|
856
865
|
"@cloudflare/ai": "^1.0.12",
|
|
857
866
|
"@cloudflare/workers-types": "^4.20230922.0",
|
|
858
867
|
"@elastic/elasticsearch": "^8.4.0",
|
|
@@ -865,9 +874,6 @@
|
|
|
865
874
|
"@google-cloud/storage": "^6.10.1",
|
|
866
875
|
"@huggingface/inference": "^2.6.4",
|
|
867
876
|
"@jest/globals": "^29.5.0",
|
|
868
|
-
"@langchain/anthropic": "workspace:*",
|
|
869
|
-
"@langchain/core": "workspace:*",
|
|
870
|
-
"@langchain/openai": "workspace:*",
|
|
871
877
|
"@mozilla/readability": "^0.4.4",
|
|
872
878
|
"@notionhq/client": "^2.2.10",
|
|
873
879
|
"@opensearch-project/opensearch": "^2.2.0",
|
|
@@ -930,6 +936,7 @@
|
|
|
930
936
|
"eslint-config-airbnb-base": "^15.0.0",
|
|
931
937
|
"eslint-config-prettier": "^8.6.0",
|
|
932
938
|
"eslint-plugin-import": "^2.27.5",
|
|
939
|
+
"eslint-plugin-jest": "^27.6.0",
|
|
933
940
|
"eslint-plugin-no-instanceof": "^1.0.1",
|
|
934
941
|
"eslint-plugin-prettier": "^4.2.1",
|
|
935
942
|
"faiss-node": "^0.5.1",
|
|
@@ -954,6 +961,7 @@
|
|
|
954
961
|
"neo4j-driver": "^5.12.0",
|
|
955
962
|
"node-llama-cpp": "2.7.3",
|
|
956
963
|
"notion-to-md": "^3.1.0",
|
|
964
|
+
"officeparser": "^4.0.4",
|
|
957
965
|
"pdf-parse": "1.1.1",
|
|
958
966
|
"peggy": "^3.0.2",
|
|
959
967
|
"pg": "^8.11.0",
|
|
@@ -963,6 +971,7 @@
|
|
|
963
971
|
"portkey-ai": "^0.1.11",
|
|
964
972
|
"prettier": "^2.8.3",
|
|
965
973
|
"puppeteer": "^19.7.2",
|
|
974
|
+
"pyodide": "^0.24.1",
|
|
966
975
|
"redis": "^4.6.6",
|
|
967
976
|
"release-it": "^15.10.1",
|
|
968
977
|
"replicate": "^0.18.0",
|
|
@@ -994,7 +1003,7 @@
|
|
|
994
1003
|
"@aws-sdk/client-sfn": "^3.310.0",
|
|
995
1004
|
"@aws-sdk/credential-provider-node": "^3.388.0",
|
|
996
1005
|
"@azure/storage-blob": "^12.15.0",
|
|
997
|
-
"@clickhouse/client": "^0.
|
|
1006
|
+
"@clickhouse/client": "^0.2.5",
|
|
998
1007
|
"@cloudflare/ai": "^1.0.12",
|
|
999
1008
|
"@elastic/elasticsearch": "^8.4.0",
|
|
1000
1009
|
"@getmetal/metal-sdk": "*",
|
|
@@ -1060,6 +1069,7 @@
|
|
|
1060
1069
|
"neo4j-driver": "*",
|
|
1061
1070
|
"node-llama-cpp": "*",
|
|
1062
1071
|
"notion-to-md": "^3.1.0",
|
|
1072
|
+
"officeparser": "^4.0.4",
|
|
1063
1073
|
"pdf-parse": "1.1.1",
|
|
1064
1074
|
"peggy": "^3.0.2",
|
|
1065
1075
|
"pg": "^8.11.0",
|
|
@@ -1068,6 +1078,7 @@
|
|
|
1068
1078
|
"playwright": "^1.32.1",
|
|
1069
1079
|
"portkey-ai": "^0.1.11",
|
|
1070
1080
|
"puppeteer": "^19.7.2",
|
|
1081
|
+
"pyodide": "^0.24.1",
|
|
1071
1082
|
"redis": "^4.6.4",
|
|
1072
1083
|
"replicate": "^0.18.0",
|
|
1073
1084
|
"sonix-speech-recognition": "^2.1.1",
|
|
@@ -1312,6 +1323,9 @@
|
|
|
1312
1323
|
"notion-to-md": {
|
|
1313
1324
|
"optional": true
|
|
1314
1325
|
},
|
|
1326
|
+
"officeparser": {
|
|
1327
|
+
"optional": true
|
|
1328
|
+
},
|
|
1315
1329
|
"pdf-parse": {
|
|
1316
1330
|
"optional": true
|
|
1317
1331
|
},
|
|
@@ -1336,6 +1350,9 @@
|
|
|
1336
1350
|
"puppeteer": {
|
|
1337
1351
|
"optional": true
|
|
1338
1352
|
},
|
|
1353
|
+
"pyodide": {
|
|
1354
|
+
"optional": true
|
|
1355
|
+
},
|
|
1339
1356
|
"redis": {
|
|
1340
1357
|
"optional": true
|
|
1341
1358
|
},
|
|
@@ -1380,9 +1397,8 @@
|
|
|
1380
1397
|
}
|
|
1381
1398
|
},
|
|
1382
1399
|
"dependencies": {
|
|
1383
|
-
"@
|
|
1384
|
-
"@langchain/core": "
|
|
1385
|
-
"@langchain/openai": "^0.0.1",
|
|
1400
|
+
"@anthropic-ai/sdk": "^0.9.1",
|
|
1401
|
+
"@langchain/core": "~0.0.2",
|
|
1386
1402
|
"binary-extensions": "^2.2.0",
|
|
1387
1403
|
"expr-eval": "^2.0.2",
|
|
1388
1404
|
"flat": "^5.0.2",
|
|
@@ -1392,6 +1408,7 @@
|
|
|
1392
1408
|
"langchainhub": "~0.0.6",
|
|
1393
1409
|
"langsmith": "~0.0.48",
|
|
1394
1410
|
"ml-distance": "^4.0.0",
|
|
1411
|
+
"openai": "^4.19.0",
|
|
1395
1412
|
"openapi-types": "^12.1.3",
|
|
1396
1413
|
"p-retry": "4",
|
|
1397
1414
|
"uuid": "^9.0.0",
|
|
@@ -1782,6 +1799,11 @@
|
|
|
1782
1799
|
"import": "./prompts/load.js",
|
|
1783
1800
|
"require": "./prompts/load.cjs"
|
|
1784
1801
|
},
|
|
1802
|
+
"./vectorstores/clickhouse": {
|
|
1803
|
+
"types": "./vectorstores/clickhouse.d.ts",
|
|
1804
|
+
"import": "./vectorstores/clickhouse.js",
|
|
1805
|
+
"require": "./vectorstores/clickhouse.cjs"
|
|
1806
|
+
},
|
|
1785
1807
|
"./vectorstores/analyticdb": {
|
|
1786
1808
|
"types": "./vectorstores/analyticdb.d.ts",
|
|
1787
1809
|
"import": "./vectorstores/analyticdb.js",
|
|
@@ -2182,6 +2204,11 @@
|
|
|
2182
2204
|
"import": "./document_loaders/fs/openai_whisper_audio.js",
|
|
2183
2205
|
"require": "./document_loaders/fs/openai_whisper_audio.cjs"
|
|
2184
2206
|
},
|
|
2207
|
+
"./document_loaders/fs/pptx": {
|
|
2208
|
+
"types": "./document_loaders/fs/pptx.d.ts",
|
|
2209
|
+
"import": "./document_loaders/fs/pptx.js",
|
|
2210
|
+
"require": "./document_loaders/fs/pptx.cjs"
|
|
2211
|
+
},
|
|
2185
2212
|
"./document_transformers/html_to_text": {
|
|
2186
2213
|
"types": "./document_transformers/html_to_text.d.ts",
|
|
2187
2214
|
"import": "./document_transformers/html_to_text.js",
|
|
@@ -2737,6 +2764,11 @@
|
|
|
2737
2764
|
"import": "./experimental/chains/violation_of_expectations.js",
|
|
2738
2765
|
"require": "./experimental/chains/violation_of_expectations.cjs"
|
|
2739
2766
|
},
|
|
2767
|
+
"./experimental/tools/pyinterpreter": {
|
|
2768
|
+
"types": "./experimental/tools/pyinterpreter.d.ts",
|
|
2769
|
+
"import": "./experimental/tools/pyinterpreter.js",
|
|
2770
|
+
"require": "./experimental/tools/pyinterpreter.cjs"
|
|
2771
|
+
},
|
|
2740
2772
|
"./evaluation": {
|
|
2741
2773
|
"types": "./evaluation.d.ts",
|
|
2742
2774
|
"import": "./evaluation.js",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require('../dist/vectorstores/clickhouse.cjs');
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '../dist/vectorstores/clickhouse.js'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '../dist/vectorstores/clickhouse.js'
|