langchain 0.0.146 → 0.0.147
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/base_language/index.cjs +2 -2
- package/dist/base_language/index.d.ts +2 -1
- package/dist/base_language/index.js +1 -1
- package/dist/chains/base.d.ts +1 -1
- package/dist/chains/openai_functions/openapi.cjs +32 -27
- package/dist/chains/openai_functions/openapi.d.ts +9 -0
- package/dist/chains/openai_functions/openapi.js +31 -27
- package/dist/chat_models/base.d.ts +1 -1
- package/dist/chat_models/openai.cjs +1 -1
- package/dist/chat_models/openai.js +1 -1
- package/dist/experimental/llms/bittensor.cjs +141 -0
- package/dist/experimental/llms/bittensor.d.ts +33 -0
- package/dist/experimental/llms/bittensor.js +137 -0
- package/dist/hub.d.ts +1 -1
- package/dist/llms/base.d.ts +1 -1
- package/dist/llms/openai-chat.cjs +1 -1
- package/dist/llms/openai-chat.js +1 -1
- package/dist/llms/openai.cjs +1 -1
- package/dist/llms/openai.js +1 -1
- package/dist/load/import_constants.cjs +1 -0
- package/dist/load/import_constants.js +1 -0
- package/dist/load/import_map.cjs +1 -1
- package/dist/load/import_map.d.ts +1 -1
- package/dist/load/import_map.js +1 -1
- package/dist/load/index.cjs +2 -1
- package/dist/load/index.js +2 -1
- package/dist/prompts/base.cjs +2 -2
- package/dist/prompts/base.d.ts +1 -1
- package/dist/prompts/base.js +1 -1
- package/dist/prompts/chat.cjs +2 -2
- package/dist/prompts/chat.d.ts +1 -1
- package/dist/prompts/chat.js +1 -1
- package/dist/schema/document.cjs +2 -2
- package/dist/schema/document.d.ts +1 -1
- package/dist/schema/document.js +1 -1
- package/dist/schema/output_parser.cjs +2 -2
- package/dist/schema/output_parser.d.ts +2 -1
- package/dist/schema/output_parser.js +1 -1
- package/dist/schema/retriever.cjs +2 -2
- package/dist/schema/retriever.d.ts +2 -1
- package/dist/schema/retriever.js +1 -1
- package/dist/schema/runnable/config.cjs +8 -0
- package/dist/schema/runnable/config.d.ts +3 -0
- package/dist/schema/runnable/config.js +4 -0
- package/dist/schema/{runnable.cjs → runnable/index.cjs} +290 -101
- package/dist/schema/{runnable.d.ts → runnable/index.d.ts} +127 -41
- package/dist/schema/{runnable.js → runnable/index.js} +284 -99
- package/dist/tools/base.d.ts +1 -1
- package/dist/util/async_caller.cjs +35 -25
- package/dist/util/async_caller.d.ts +8 -0
- package/dist/util/async_caller.js +35 -25
- package/dist/vectorstores/pinecone.cjs +30 -22
- package/dist/vectorstores/pinecone.d.ts +3 -1
- package/dist/vectorstores/pinecone.js +30 -22
- package/dist/vectorstores/vectara.cjs +20 -23
- package/dist/vectorstores/vectara.d.ts +9 -2
- package/dist/vectorstores/vectara.js +20 -23
- package/experimental/llms/bittensor.cjs +1 -0
- package/experimental/llms/bittensor.d.ts +1 -0
- package/experimental/llms/bittensor.js +1 -0
- package/package.json +9 -1
- package/schema/runnable.cjs +1 -1
- package/schema/runnable.d.ts +1 -1
- package/schema/runnable.js +1 -1
|
@@ -12,6 +12,32 @@ const STATUS_NO_RETRY = [
|
|
|
12
12
|
408,
|
|
13
13
|
409, // Conflict
|
|
14
14
|
];
|
|
15
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
16
|
+
const defaultFailedAttemptHandler = (error) => {
|
|
17
|
+
if (error.message.startsWith("Cancel") ||
|
|
18
|
+
error.message.startsWith("TimeoutError") ||
|
|
19
|
+
error.name === "TimeoutError" ||
|
|
20
|
+
error.message.startsWith("AbortError") ||
|
|
21
|
+
error.name === "AbortError") {
|
|
22
|
+
throw error;
|
|
23
|
+
}
|
|
24
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
25
|
+
if (error?.code === "ECONNABORTED") {
|
|
26
|
+
throw error;
|
|
27
|
+
}
|
|
28
|
+
const status =
|
|
29
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
30
|
+
error?.response?.status ?? error?.status;
|
|
31
|
+
if (status && STATUS_NO_RETRY.includes(+status)) {
|
|
32
|
+
throw error;
|
|
33
|
+
}
|
|
34
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
35
|
+
if (error?.error?.code === "insufficient_quota") {
|
|
36
|
+
const err = new Error(error?.message);
|
|
37
|
+
err.name = "InsufficientQuotaError";
|
|
38
|
+
throw err;
|
|
39
|
+
}
|
|
40
|
+
};
|
|
15
41
|
/**
|
|
16
42
|
* A class that can be used to make async calls with concurrency and retry logic.
|
|
17
43
|
*
|
|
@@ -39,6 +65,12 @@ export class AsyncCaller {
|
|
|
39
65
|
writable: true,
|
|
40
66
|
value: void 0
|
|
41
67
|
});
|
|
68
|
+
Object.defineProperty(this, "onFailedAttempt", {
|
|
69
|
+
enumerable: true,
|
|
70
|
+
configurable: true,
|
|
71
|
+
writable: true,
|
|
72
|
+
value: void 0
|
|
73
|
+
});
|
|
42
74
|
Object.defineProperty(this, "queue", {
|
|
43
75
|
enumerable: true,
|
|
44
76
|
configurable: true,
|
|
@@ -47,6 +79,8 @@ export class AsyncCaller {
|
|
|
47
79
|
});
|
|
48
80
|
this.maxConcurrency = params.maxConcurrency ?? Infinity;
|
|
49
81
|
this.maxRetries = params.maxRetries ?? 6;
|
|
82
|
+
this.onFailedAttempt =
|
|
83
|
+
params.onFailedAttempt ?? defaultFailedAttemptHandler;
|
|
50
84
|
const PQueue = "default" in PQueueMod ? PQueueMod.default : PQueueMod;
|
|
51
85
|
this.queue = new PQueue({ concurrency: this.maxConcurrency });
|
|
52
86
|
}
|
|
@@ -61,31 +95,7 @@ export class AsyncCaller {
|
|
|
61
95
|
throw new Error(error);
|
|
62
96
|
}
|
|
63
97
|
}), {
|
|
64
|
-
onFailedAttempt
|
|
65
|
-
if (error.message.startsWith("Cancel") ||
|
|
66
|
-
error.message.startsWith("TimeoutError") ||
|
|
67
|
-
error.name === "TimeoutError" ||
|
|
68
|
-
error.message.startsWith("AbortError") ||
|
|
69
|
-
error.name === "AbortError") {
|
|
70
|
-
throw error;
|
|
71
|
-
}
|
|
72
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
73
|
-
if (error?.code === "ECONNABORTED") {
|
|
74
|
-
throw error;
|
|
75
|
-
}
|
|
76
|
-
const status =
|
|
77
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
78
|
-
error?.response?.status ?? error?.status;
|
|
79
|
-
if (status && STATUS_NO_RETRY.includes(+status)) {
|
|
80
|
-
throw error;
|
|
81
|
-
}
|
|
82
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
83
|
-
if (error?.error?.code === "insufficient_quota") {
|
|
84
|
-
const err = new Error(error?.message);
|
|
85
|
-
err.name = "InsufficientQuotaError";
|
|
86
|
-
throw err;
|
|
87
|
-
}
|
|
88
|
-
},
|
|
98
|
+
onFailedAttempt: this.onFailedAttempt,
|
|
89
99
|
retries: this.maxRetries,
|
|
90
100
|
randomize: true,
|
|
91
101
|
// If needed we can change some of the defaults here,
|
|
@@ -31,6 +31,8 @@ const uuid = __importStar(require("uuid"));
|
|
|
31
31
|
const flat_1 = __importDefault(require("flat"));
|
|
32
32
|
const base_js_1 = require("./base.cjs");
|
|
33
33
|
const document_js_1 = require("../document.cjs");
|
|
34
|
+
const chunk_js_1 = require("../util/chunk.cjs");
|
|
35
|
+
const async_caller_js_1 = require("../util/async_caller.cjs");
|
|
34
36
|
/**
|
|
35
37
|
* Class that extends the VectorStore class and provides methods to
|
|
36
38
|
* interact with the Pinecone vector database.
|
|
@@ -65,11 +67,19 @@ class PineconeStore extends base_js_1.VectorStore {
|
|
|
65
67
|
writable: true,
|
|
66
68
|
value: void 0
|
|
67
69
|
});
|
|
70
|
+
Object.defineProperty(this, "caller", {
|
|
71
|
+
enumerable: true,
|
|
72
|
+
configurable: true,
|
|
73
|
+
writable: true,
|
|
74
|
+
value: void 0
|
|
75
|
+
});
|
|
68
76
|
this.embeddings = embeddings;
|
|
69
|
-
|
|
70
|
-
this.
|
|
71
|
-
this.
|
|
72
|
-
this.
|
|
77
|
+
const { namespace, pineconeIndex, textKey, filter, ...asyncCallerArgs } = args;
|
|
78
|
+
this.namespace = namespace;
|
|
79
|
+
this.pineconeIndex = pineconeIndex;
|
|
80
|
+
this.textKey = textKey ?? "text";
|
|
81
|
+
this.filter = filter;
|
|
82
|
+
this.caller = new async_caller_js_1.AsyncCaller(asyncCallerArgs);
|
|
73
83
|
}
|
|
74
84
|
/**
|
|
75
85
|
* Method that adds documents to the Pinecone database.
|
|
@@ -126,16 +136,15 @@ class PineconeStore extends base_js_1.VectorStore {
|
|
|
126
136
|
};
|
|
127
137
|
});
|
|
128
138
|
// Pinecone recommends a limit of 100 vectors per upsert request
|
|
129
|
-
const chunkSize =
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
}
|
|
139
|
+
const chunkSize = 100;
|
|
140
|
+
const chunkedVectors = (0, chunk_js_1.chunkArray)(pineconeVectors, chunkSize);
|
|
141
|
+
const batchRequests = chunkedVectors.map((chunk) => this.caller.call(async () => this.pineconeIndex.upsert({
|
|
142
|
+
upsertRequest: {
|
|
143
|
+
vectors: chunk,
|
|
144
|
+
namespace: this.namespace,
|
|
145
|
+
},
|
|
146
|
+
})));
|
|
147
|
+
await Promise.all(batchRequests);
|
|
139
148
|
return documentIds;
|
|
140
149
|
}
|
|
141
150
|
/**
|
|
@@ -154,14 +163,13 @@ class PineconeStore extends base_js_1.VectorStore {
|
|
|
154
163
|
}
|
|
155
164
|
else if (ids) {
|
|
156
165
|
const batchSize = 1000;
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
}
|
|
166
|
+
const batchedIds = (0, chunk_js_1.chunkArray)(ids, batchSize);
|
|
167
|
+
const batchRequests = batchedIds.map((batchIds) => this.caller.call(async () => this.pineconeIndex.delete1({
|
|
168
|
+
ids: batchIds,
|
|
169
|
+
namespace,
|
|
170
|
+
...rest,
|
|
171
|
+
})));
|
|
172
|
+
await Promise.all(batchRequests);
|
|
165
173
|
}
|
|
166
174
|
else {
|
|
167
175
|
throw new Error("Either ids or delete_all must be provided.");
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { VectorStore } from "./base.js";
|
|
2
2
|
import { Embeddings } from "../embeddings/base.js";
|
|
3
3
|
import { Document } from "../document.js";
|
|
4
|
+
import { AsyncCaller, type AsyncCallerParams } from "../util/async_caller.js";
|
|
4
5
|
type PineconeMetadata = Record<string, any>;
|
|
5
6
|
type VectorOperationsApi = ReturnType<import("@pinecone-database/pinecone").PineconeClient["Index"]>;
|
|
6
|
-
export interface PineconeLibArgs {
|
|
7
|
+
export interface PineconeLibArgs extends AsyncCallerParams {
|
|
7
8
|
pineconeIndex: VectorOperationsApi;
|
|
8
9
|
textKey?: string;
|
|
9
10
|
namespace?: string;
|
|
@@ -28,6 +29,7 @@ export declare class PineconeStore extends VectorStore {
|
|
|
28
29
|
namespace?: string;
|
|
29
30
|
pineconeIndex: VectorOperationsApi;
|
|
30
31
|
filter?: PineconeMetadata;
|
|
32
|
+
caller: AsyncCaller;
|
|
31
33
|
_vectorstoreType(): string;
|
|
32
34
|
constructor(embeddings: Embeddings, args: PineconeLibArgs);
|
|
33
35
|
/**
|
|
@@ -2,6 +2,8 @@ import * as uuid from "uuid";
|
|
|
2
2
|
import flatten from "flat";
|
|
3
3
|
import { VectorStore } from "./base.js";
|
|
4
4
|
import { Document } from "../document.js";
|
|
5
|
+
import { chunkArray } from "../util/chunk.js";
|
|
6
|
+
import { AsyncCaller } from "../util/async_caller.js";
|
|
5
7
|
/**
|
|
6
8
|
* Class that extends the VectorStore class and provides methods to
|
|
7
9
|
* interact with the Pinecone vector database.
|
|
@@ -36,11 +38,19 @@ export class PineconeStore extends VectorStore {
|
|
|
36
38
|
writable: true,
|
|
37
39
|
value: void 0
|
|
38
40
|
});
|
|
41
|
+
Object.defineProperty(this, "caller", {
|
|
42
|
+
enumerable: true,
|
|
43
|
+
configurable: true,
|
|
44
|
+
writable: true,
|
|
45
|
+
value: void 0
|
|
46
|
+
});
|
|
39
47
|
this.embeddings = embeddings;
|
|
40
|
-
|
|
41
|
-
this.
|
|
42
|
-
this.
|
|
43
|
-
this.
|
|
48
|
+
const { namespace, pineconeIndex, textKey, filter, ...asyncCallerArgs } = args;
|
|
49
|
+
this.namespace = namespace;
|
|
50
|
+
this.pineconeIndex = pineconeIndex;
|
|
51
|
+
this.textKey = textKey ?? "text";
|
|
52
|
+
this.filter = filter;
|
|
53
|
+
this.caller = new AsyncCaller(asyncCallerArgs);
|
|
44
54
|
}
|
|
45
55
|
/**
|
|
46
56
|
* Method that adds documents to the Pinecone database.
|
|
@@ -97,16 +107,15 @@ export class PineconeStore extends VectorStore {
|
|
|
97
107
|
};
|
|
98
108
|
});
|
|
99
109
|
// Pinecone recommends a limit of 100 vectors per upsert request
|
|
100
|
-
const chunkSize =
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
}
|
|
110
|
+
const chunkSize = 100;
|
|
111
|
+
const chunkedVectors = chunkArray(pineconeVectors, chunkSize);
|
|
112
|
+
const batchRequests = chunkedVectors.map((chunk) => this.caller.call(async () => this.pineconeIndex.upsert({
|
|
113
|
+
upsertRequest: {
|
|
114
|
+
vectors: chunk,
|
|
115
|
+
namespace: this.namespace,
|
|
116
|
+
},
|
|
117
|
+
})));
|
|
118
|
+
await Promise.all(batchRequests);
|
|
110
119
|
return documentIds;
|
|
111
120
|
}
|
|
112
121
|
/**
|
|
@@ -125,14 +134,13 @@ export class PineconeStore extends VectorStore {
|
|
|
125
134
|
}
|
|
126
135
|
else if (ids) {
|
|
127
136
|
const batchSize = 1000;
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
}
|
|
137
|
+
const batchedIds = chunkArray(ids, batchSize);
|
|
138
|
+
const batchRequests = batchedIds.map((batchIds) => this.caller.call(async () => this.pineconeIndex.delete1({
|
|
139
|
+
ids: batchIds,
|
|
140
|
+
namespace,
|
|
141
|
+
...rest,
|
|
142
|
+
})));
|
|
143
|
+
await Promise.all(batchRequests);
|
|
136
144
|
}
|
|
137
145
|
else {
|
|
138
146
|
throw new Error("Either ids or delete_all must be provided.");
|
|
@@ -185,42 +185,39 @@ class VectaraStore extends base_js_1.VectorStore {
|
|
|
185
185
|
* pre-processing and chunking internally in an optimal manner. This method is a wrapper
|
|
186
186
|
* to utilize that API within LangChain.
|
|
187
187
|
*
|
|
188
|
-
* @param
|
|
188
|
+
* @param files An array of VectaraFile objects representing the files and their respective file names to be uploaded to Vectara.
|
|
189
189
|
* @param metadata Optional. An array of metadata objects corresponding to each file in the `filePaths` array.
|
|
190
190
|
* @returns A Promise that resolves to the number of successfully uploaded files.
|
|
191
191
|
*/
|
|
192
|
-
async addFiles(
|
|
192
|
+
async addFiles(files, metadatas = undefined) {
|
|
193
193
|
if (this.corpusId.length > 1)
|
|
194
194
|
throw new Error("addFiles does not support multiple corpus ids");
|
|
195
195
|
let numDocs = 0;
|
|
196
|
-
for (const [index,
|
|
196
|
+
for (const [index, file] of files.entries()) {
|
|
197
197
|
const md = metadatas ? metadatas[index] : {};
|
|
198
198
|
const data = new FormData();
|
|
199
|
-
data.append("file",
|
|
199
|
+
data.append("file", file.blob, file.fileName);
|
|
200
200
|
data.append("doc-metadata", JSON.stringify(md));
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
}
|
|
214
|
-
else {
|
|
215
|
-
numDocs += 1;
|
|
216
|
-
}
|
|
201
|
+
const response = await fetch(`https://api.vectara.io/v1/upload?c=${this.customerId}&o=${this.corpusId[0]}`, {
|
|
202
|
+
method: "POST",
|
|
203
|
+
headers: {
|
|
204
|
+
"x-api-key": this.apiKey,
|
|
205
|
+
},
|
|
206
|
+
body: data,
|
|
207
|
+
});
|
|
208
|
+
const { status } = response;
|
|
209
|
+
if (status === 409) {
|
|
210
|
+
throw new Error(`File at index ${index} already exists in Vectara`);
|
|
211
|
+
}
|
|
212
|
+
else if (status !== 200) {
|
|
213
|
+
throw new Error(`Vectara API returned status code ${status}`);
|
|
217
214
|
}
|
|
218
|
-
|
|
219
|
-
|
|
215
|
+
else {
|
|
216
|
+
numDocs += 1;
|
|
220
217
|
}
|
|
221
218
|
}
|
|
222
219
|
if (this.verbose) {
|
|
223
|
-
console.log(`Uploaded ${
|
|
220
|
+
console.log(`Uploaded ${files.length} files to Vectara`);
|
|
224
221
|
}
|
|
225
222
|
return numDocs;
|
|
226
223
|
}
|
|
@@ -21,6 +21,13 @@ interface VectaraCallHeader {
|
|
|
21
21
|
"customer-id": string;
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* Interface for the file objects to be uploaded to Vectara.
|
|
26
|
+
*/
|
|
27
|
+
export interface VectaraFile {
|
|
28
|
+
blob: Blob;
|
|
29
|
+
fileName: string;
|
|
30
|
+
}
|
|
24
31
|
/**
|
|
25
32
|
* Interface for the filter options used in Vectara API calls.
|
|
26
33
|
*/
|
|
@@ -80,11 +87,11 @@ export declare class VectaraStore extends VectorStore {
|
|
|
80
87
|
* pre-processing and chunking internally in an optimal manner. This method is a wrapper
|
|
81
88
|
* to utilize that API within LangChain.
|
|
82
89
|
*
|
|
83
|
-
* @param
|
|
90
|
+
* @param files An array of VectaraFile objects representing the files and their respective file names to be uploaded to Vectara.
|
|
84
91
|
* @param metadata Optional. An array of metadata objects corresponding to each file in the `filePaths` array.
|
|
85
92
|
* @returns A Promise that resolves to the number of successfully uploaded files.
|
|
86
93
|
*/
|
|
87
|
-
addFiles(
|
|
94
|
+
addFiles(files: VectaraFile[], metadatas?: Record<string, unknown> | undefined): Promise<number>;
|
|
88
95
|
/**
|
|
89
96
|
* Performs a similarity search and returns documents along with their
|
|
90
97
|
* scores.
|
|
@@ -182,42 +182,39 @@ export class VectaraStore extends VectorStore {
|
|
|
182
182
|
* pre-processing and chunking internally in an optimal manner. This method is a wrapper
|
|
183
183
|
* to utilize that API within LangChain.
|
|
184
184
|
*
|
|
185
|
-
* @param
|
|
185
|
+
* @param files An array of VectaraFile objects representing the files and their respective file names to be uploaded to Vectara.
|
|
186
186
|
* @param metadata Optional. An array of metadata objects corresponding to each file in the `filePaths` array.
|
|
187
187
|
* @returns A Promise that resolves to the number of successfully uploaded files.
|
|
188
188
|
*/
|
|
189
|
-
async addFiles(
|
|
189
|
+
async addFiles(files, metadatas = undefined) {
|
|
190
190
|
if (this.corpusId.length > 1)
|
|
191
191
|
throw new Error("addFiles does not support multiple corpus ids");
|
|
192
192
|
let numDocs = 0;
|
|
193
|
-
for (const [index,
|
|
193
|
+
for (const [index, file] of files.entries()) {
|
|
194
194
|
const md = metadatas ? metadatas[index] : {};
|
|
195
195
|
const data = new FormData();
|
|
196
|
-
data.append("file",
|
|
196
|
+
data.append("file", file.blob, file.fileName);
|
|
197
197
|
data.append("doc-metadata", JSON.stringify(md));
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
}
|
|
211
|
-
else {
|
|
212
|
-
numDocs += 1;
|
|
213
|
-
}
|
|
198
|
+
const response = await fetch(`https://api.vectara.io/v1/upload?c=${this.customerId}&o=${this.corpusId[0]}`, {
|
|
199
|
+
method: "POST",
|
|
200
|
+
headers: {
|
|
201
|
+
"x-api-key": this.apiKey,
|
|
202
|
+
},
|
|
203
|
+
body: data,
|
|
204
|
+
});
|
|
205
|
+
const { status } = response;
|
|
206
|
+
if (status === 409) {
|
|
207
|
+
throw new Error(`File at index ${index} already exists in Vectara`);
|
|
208
|
+
}
|
|
209
|
+
else if (status !== 200) {
|
|
210
|
+
throw new Error(`Vectara API returned status code ${status}`);
|
|
214
211
|
}
|
|
215
|
-
|
|
216
|
-
|
|
212
|
+
else {
|
|
213
|
+
numDocs += 1;
|
|
217
214
|
}
|
|
218
215
|
}
|
|
219
216
|
if (this.verbose) {
|
|
220
|
-
console.log(`Uploaded ${
|
|
217
|
+
console.log(`Uploaded ${files.length} files to Vectara`);
|
|
221
218
|
}
|
|
222
219
|
return numDocs;
|
|
223
220
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require('../../dist/experimental/llms/bittensor.cjs');
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '../../dist/experimental/llms/bittensor.js'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '../../dist/experimental/llms/bittensor.js'
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "langchain",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.147",
|
|
4
4
|
"description": "Typescript bindings for langchain",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
@@ -583,6 +583,9 @@
|
|
|
583
583
|
"experimental/chat_models/anthropic_functions.cjs",
|
|
584
584
|
"experimental/chat_models/anthropic_functions.js",
|
|
585
585
|
"experimental/chat_models/anthropic_functions.d.ts",
|
|
586
|
+
"experimental/llms/bittensor.cjs",
|
|
587
|
+
"experimental/llms/bittensor.js",
|
|
588
|
+
"experimental/llms/bittensor.d.ts",
|
|
586
589
|
"evaluation.cjs",
|
|
587
590
|
"evaluation.js",
|
|
588
591
|
"evaluation.d.ts",
|
|
@@ -2050,6 +2053,11 @@
|
|
|
2050
2053
|
"import": "./experimental/chat_models/anthropic_functions.js",
|
|
2051
2054
|
"require": "./experimental/chat_models/anthropic_functions.cjs"
|
|
2052
2055
|
},
|
|
2056
|
+
"./experimental/llms/bittensor": {
|
|
2057
|
+
"types": "./experimental/llms/bittensor.d.ts",
|
|
2058
|
+
"import": "./experimental/llms/bittensor.js",
|
|
2059
|
+
"require": "./experimental/llms/bittensor.cjs"
|
|
2060
|
+
},
|
|
2053
2061
|
"./evaluation": {
|
|
2054
2062
|
"types": "./evaluation.d.ts",
|
|
2055
2063
|
"import": "./evaluation.js",
|
package/schema/runnable.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
module.exports = require('../dist/schema/runnable.cjs');
|
|
1
|
+
module.exports = require('../dist/schema/runnable/index.cjs');
|
package/schema/runnable.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from '../dist/schema/runnable.js'
|
|
1
|
+
export * from '../dist/schema/runnable/index.js'
|
package/schema/runnable.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from '../dist/schema/runnable.js'
|
|
1
|
+
export * from '../dist/schema/runnable/index.js'
|