langchain 0.0.178 → 0.0.179

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.
Files changed (41) hide show
  1. package/chains/combine_documents/reduce.cjs +1 -0
  2. package/chains/combine_documents/reduce.d.ts +1 -0
  3. package/chains/combine_documents/reduce.js +1 -0
  4. package/dist/cache/base.d.ts +1 -1
  5. package/dist/callbacks/index.d.ts +1 -1
  6. package/dist/chains/combine_documents/reduce.cjs +67 -0
  7. package/dist/chains/combine_documents/reduce.d.ts +28 -0
  8. package/dist/chains/combine_documents/reduce.js +62 -0
  9. package/dist/chat_models/iflytek_xinghuo/index.cjs +1 -1
  10. package/dist/chat_models/iflytek_xinghuo/index.js +1 -1
  11. package/dist/load/import_map.cjs +4 -2
  12. package/dist/load/import_map.d.ts +2 -0
  13. package/dist/load/import_map.js +2 -0
  14. package/dist/output_parsers/json.cjs +77 -0
  15. package/dist/output_parsers/json.d.ts +1 -0
  16. package/dist/output_parsers/json.js +73 -0
  17. package/dist/output_parsers/openai_functions.cjs +37 -2
  18. package/dist/output_parsers/openai_functions.d.ts +10 -5
  19. package/dist/output_parsers/openai_functions.js +38 -3
  20. package/dist/schema/index.cjs +33 -1
  21. package/dist/schema/index.d.ts +3 -1
  22. package/dist/schema/index.js +31 -0
  23. package/dist/schema/output_parser.cjs +63 -3
  24. package/dist/schema/output_parser.d.ts +16 -1
  25. package/dist/schema/output_parser.js +59 -0
  26. package/dist/schema/prompt_template.cjs +33 -0
  27. package/dist/schema/prompt_template.d.ts +12 -0
  28. package/dist/schema/prompt_template.js +29 -0
  29. package/dist/storage/convex.d.ts +21 -0
  30. package/dist/stores/message/convex.d.ts +21 -0
  31. package/dist/util/fast-json-patch/index.cjs +1 -0
  32. package/dist/util/fast-json-patch/index.d.ts +1 -0
  33. package/dist/util/fast-json-patch/index.js +1 -0
  34. package/dist/util/fast-json-patch/src/duplex.cjs +237 -0
  35. package/dist/util/fast-json-patch/src/duplex.d.ts +23 -0
  36. package/dist/util/fast-json-patch/src/duplex.js +230 -0
  37. package/dist/vectorstores/convex.d.ts +21 -0
  38. package/package.json +17 -1
  39. package/schema/prompt_template.cjs +1 -0
  40. package/schema/prompt_template.d.ts +1 -0
  41. package/schema/prompt_template.js +1 -0
@@ -0,0 +1,237 @@
1
+ "use strict";
2
+ // @ts-nocheck
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.compare = exports.generate = exports.observe = exports.unobserve = void 0;
5
+ // Inlined because of ESM import issues
6
+ /*!
7
+ * https://github.com/Starcounter-Jack/JSON-Patch
8
+ * (c) 2013-2021 Joachim Wester
9
+ * MIT license
10
+ */
11
+ const helpers_js_1 = require("./helpers.cjs");
12
+ const core_js_1 = require("./core.cjs");
13
+ var beforeDict = new WeakMap();
14
+ class Mirror {
15
+ constructor(obj) {
16
+ Object.defineProperty(this, "obj", {
17
+ enumerable: true,
18
+ configurable: true,
19
+ writable: true,
20
+ value: void 0
21
+ });
22
+ Object.defineProperty(this, "observers", {
23
+ enumerable: true,
24
+ configurable: true,
25
+ writable: true,
26
+ value: new Map()
27
+ });
28
+ Object.defineProperty(this, "value", {
29
+ enumerable: true,
30
+ configurable: true,
31
+ writable: true,
32
+ value: void 0
33
+ });
34
+ this.obj = obj;
35
+ }
36
+ }
37
+ class ObserverInfo {
38
+ constructor(callback, observer) {
39
+ Object.defineProperty(this, "callback", {
40
+ enumerable: true,
41
+ configurable: true,
42
+ writable: true,
43
+ value: void 0
44
+ });
45
+ Object.defineProperty(this, "observer", {
46
+ enumerable: true,
47
+ configurable: true,
48
+ writable: true,
49
+ value: void 0
50
+ });
51
+ this.callback = callback;
52
+ this.observer = observer;
53
+ }
54
+ }
55
+ function getMirror(obj) {
56
+ return beforeDict.get(obj);
57
+ }
58
+ function getObserverFromMirror(mirror, callback) {
59
+ return mirror.observers.get(callback);
60
+ }
61
+ function removeObserverFromMirror(mirror, observer) {
62
+ mirror.observers.delete(observer.callback);
63
+ }
64
+ /**
65
+ * Detach an observer from an object
66
+ */
67
+ function unobserve(root, observer) {
68
+ observer.unobserve();
69
+ }
70
+ exports.unobserve = unobserve;
71
+ /**
72
+ * Observes changes made to an object, which can then be retrieved using generate
73
+ */
74
+ function observe(obj, callback) {
75
+ var patches = [];
76
+ var observer;
77
+ var mirror = getMirror(obj);
78
+ if (!mirror) {
79
+ mirror = new Mirror(obj);
80
+ beforeDict.set(obj, mirror);
81
+ }
82
+ else {
83
+ const observerInfo = getObserverFromMirror(mirror, callback);
84
+ observer = observerInfo && observerInfo.observer;
85
+ }
86
+ if (observer) {
87
+ return observer;
88
+ }
89
+ observer = {};
90
+ mirror.value = (0, helpers_js_1._deepClone)(obj);
91
+ if (callback) {
92
+ observer.callback = callback;
93
+ observer.next = null;
94
+ var dirtyCheck = () => {
95
+ generate(observer);
96
+ };
97
+ var fastCheck = () => {
98
+ clearTimeout(observer.next);
99
+ observer.next = setTimeout(dirtyCheck);
100
+ };
101
+ if (typeof window !== "undefined") {
102
+ //not Node
103
+ window.addEventListener("mouseup", fastCheck);
104
+ window.addEventListener("keyup", fastCheck);
105
+ window.addEventListener("mousedown", fastCheck);
106
+ window.addEventListener("keydown", fastCheck);
107
+ window.addEventListener("change", fastCheck);
108
+ }
109
+ }
110
+ observer.patches = patches;
111
+ observer.object = obj;
112
+ observer.unobserve = () => {
113
+ generate(observer);
114
+ clearTimeout(observer.next);
115
+ removeObserverFromMirror(mirror, observer);
116
+ if (typeof window !== "undefined") {
117
+ window.removeEventListener("mouseup", fastCheck);
118
+ window.removeEventListener("keyup", fastCheck);
119
+ window.removeEventListener("mousedown", fastCheck);
120
+ window.removeEventListener("keydown", fastCheck);
121
+ window.removeEventListener("change", fastCheck);
122
+ }
123
+ };
124
+ mirror.observers.set(callback, new ObserverInfo(callback, observer));
125
+ return observer;
126
+ }
127
+ exports.observe = observe;
128
+ /**
129
+ * Generate an array of patches from an observer
130
+ */
131
+ function generate(observer, invertible = false) {
132
+ var mirror = beforeDict.get(observer.object);
133
+ _generate(mirror.value, observer.object, observer.patches, "", invertible);
134
+ if (observer.patches.length) {
135
+ (0, core_js_1.applyPatch)(mirror.value, observer.patches);
136
+ }
137
+ var temp = observer.patches;
138
+ if (temp.length > 0) {
139
+ observer.patches = [];
140
+ if (observer.callback) {
141
+ observer.callback(temp);
142
+ }
143
+ }
144
+ return temp;
145
+ }
146
+ exports.generate = generate;
147
+ // Dirty check if obj is different from mirror, generate patches and update mirror
148
+ function _generate(mirror, obj, patches, path, invertible) {
149
+ if (obj === mirror) {
150
+ return;
151
+ }
152
+ if (typeof obj.toJSON === "function") {
153
+ obj = obj.toJSON();
154
+ }
155
+ var newKeys = (0, helpers_js_1._objectKeys)(obj);
156
+ var oldKeys = (0, helpers_js_1._objectKeys)(mirror);
157
+ var changed = false;
158
+ var deleted = false;
159
+ //if ever "move" operation is implemented here, make sure this test runs OK: "should not generate the same patch twice (move)"
160
+ for (var t = oldKeys.length - 1; t >= 0; t--) {
161
+ var key = oldKeys[t];
162
+ var oldVal = mirror[key];
163
+ if ((0, helpers_js_1.hasOwnProperty)(obj, key) &&
164
+ !(obj[key] === undefined &&
165
+ oldVal !== undefined &&
166
+ Array.isArray(obj) === false)) {
167
+ var newVal = obj[key];
168
+ if (typeof oldVal == "object" &&
169
+ oldVal != null &&
170
+ typeof newVal == "object" &&
171
+ newVal != null &&
172
+ Array.isArray(oldVal) === Array.isArray(newVal)) {
173
+ _generate(oldVal, newVal, patches, path + "/" + (0, helpers_js_1.escapePathComponent)(key), invertible);
174
+ }
175
+ else {
176
+ if (oldVal !== newVal) {
177
+ changed = true;
178
+ if (invertible) {
179
+ patches.push({
180
+ op: "test",
181
+ path: path + "/" + (0, helpers_js_1.escapePathComponent)(key),
182
+ value: (0, helpers_js_1._deepClone)(oldVal),
183
+ });
184
+ }
185
+ patches.push({
186
+ op: "replace",
187
+ path: path + "/" + (0, helpers_js_1.escapePathComponent)(key),
188
+ value: (0, helpers_js_1._deepClone)(newVal),
189
+ });
190
+ }
191
+ }
192
+ }
193
+ else if (Array.isArray(mirror) === Array.isArray(obj)) {
194
+ if (invertible) {
195
+ patches.push({
196
+ op: "test",
197
+ path: path + "/" + (0, helpers_js_1.escapePathComponent)(key),
198
+ value: (0, helpers_js_1._deepClone)(oldVal),
199
+ });
200
+ }
201
+ patches.push({
202
+ op: "remove",
203
+ path: path + "/" + (0, helpers_js_1.escapePathComponent)(key),
204
+ });
205
+ deleted = true; // property has been deleted
206
+ }
207
+ else {
208
+ if (invertible) {
209
+ patches.push({ op: "test", path, value: mirror });
210
+ }
211
+ patches.push({ op: "replace", path, value: obj });
212
+ changed = true;
213
+ }
214
+ }
215
+ if (!deleted && newKeys.length == oldKeys.length) {
216
+ return;
217
+ }
218
+ for (var t = 0; t < newKeys.length; t++) {
219
+ var key = newKeys[t];
220
+ if (!(0, helpers_js_1.hasOwnProperty)(mirror, key) && obj[key] !== undefined) {
221
+ patches.push({
222
+ op: "add",
223
+ path: path + "/" + (0, helpers_js_1.escapePathComponent)(key),
224
+ value: (0, helpers_js_1._deepClone)(obj[key]),
225
+ });
226
+ }
227
+ }
228
+ }
229
+ /**
230
+ * Create an array of patches from the differences in two objects
231
+ */
232
+ function compare(tree1, tree2, invertible = false) {
233
+ var patches = [];
234
+ _generate(tree1, tree2, patches, "", invertible);
235
+ return patches;
236
+ }
237
+ exports.compare = compare;
@@ -0,0 +1,23 @@
1
+ import { Operation } from "./core.js";
2
+ export interface Observer<T> {
3
+ object: T;
4
+ patches: Operation[];
5
+ unobserve: () => void;
6
+ callback: (patches: Operation[]) => void;
7
+ }
8
+ /**
9
+ * Detach an observer from an object
10
+ */
11
+ export declare function unobserve<T>(root: T, observer: Observer<T>): void;
12
+ /**
13
+ * Observes changes made to an object, which can then be retrieved using generate
14
+ */
15
+ export declare function observe<T>(obj: Object | Array<T>, callback?: (patches: Operation[]) => void): Observer<T>;
16
+ /**
17
+ * Generate an array of patches from an observer
18
+ */
19
+ export declare function generate<T>(observer: Observer<Object>, invertible?: boolean): Operation[];
20
+ /**
21
+ * Create an array of patches from the differences in two objects
22
+ */
23
+ export declare function compare(tree1: Object | Array<any>, tree2: Object | Array<any>, invertible?: boolean): Operation[];
@@ -0,0 +1,230 @@
1
+ // @ts-nocheck
2
+ // Inlined because of ESM import issues
3
+ /*!
4
+ * https://github.com/Starcounter-Jack/JSON-Patch
5
+ * (c) 2013-2021 Joachim Wester
6
+ * MIT license
7
+ */
8
+ import { _deepClone, _objectKeys, escapePathComponent, hasOwnProperty, } from "./helpers.js";
9
+ import { applyPatch } from "./core.js";
10
+ var beforeDict = new WeakMap();
11
+ class Mirror {
12
+ constructor(obj) {
13
+ Object.defineProperty(this, "obj", {
14
+ enumerable: true,
15
+ configurable: true,
16
+ writable: true,
17
+ value: void 0
18
+ });
19
+ Object.defineProperty(this, "observers", {
20
+ enumerable: true,
21
+ configurable: true,
22
+ writable: true,
23
+ value: new Map()
24
+ });
25
+ Object.defineProperty(this, "value", {
26
+ enumerable: true,
27
+ configurable: true,
28
+ writable: true,
29
+ value: void 0
30
+ });
31
+ this.obj = obj;
32
+ }
33
+ }
34
+ class ObserverInfo {
35
+ constructor(callback, observer) {
36
+ Object.defineProperty(this, "callback", {
37
+ enumerable: true,
38
+ configurable: true,
39
+ writable: true,
40
+ value: void 0
41
+ });
42
+ Object.defineProperty(this, "observer", {
43
+ enumerable: true,
44
+ configurable: true,
45
+ writable: true,
46
+ value: void 0
47
+ });
48
+ this.callback = callback;
49
+ this.observer = observer;
50
+ }
51
+ }
52
+ function getMirror(obj) {
53
+ return beforeDict.get(obj);
54
+ }
55
+ function getObserverFromMirror(mirror, callback) {
56
+ return mirror.observers.get(callback);
57
+ }
58
+ function removeObserverFromMirror(mirror, observer) {
59
+ mirror.observers.delete(observer.callback);
60
+ }
61
+ /**
62
+ * Detach an observer from an object
63
+ */
64
+ export function unobserve(root, observer) {
65
+ observer.unobserve();
66
+ }
67
+ /**
68
+ * Observes changes made to an object, which can then be retrieved using generate
69
+ */
70
+ export function observe(obj, callback) {
71
+ var patches = [];
72
+ var observer;
73
+ var mirror = getMirror(obj);
74
+ if (!mirror) {
75
+ mirror = new Mirror(obj);
76
+ beforeDict.set(obj, mirror);
77
+ }
78
+ else {
79
+ const observerInfo = getObserverFromMirror(mirror, callback);
80
+ observer = observerInfo && observerInfo.observer;
81
+ }
82
+ if (observer) {
83
+ return observer;
84
+ }
85
+ observer = {};
86
+ mirror.value = _deepClone(obj);
87
+ if (callback) {
88
+ observer.callback = callback;
89
+ observer.next = null;
90
+ var dirtyCheck = () => {
91
+ generate(observer);
92
+ };
93
+ var fastCheck = () => {
94
+ clearTimeout(observer.next);
95
+ observer.next = setTimeout(dirtyCheck);
96
+ };
97
+ if (typeof window !== "undefined") {
98
+ //not Node
99
+ window.addEventListener("mouseup", fastCheck);
100
+ window.addEventListener("keyup", fastCheck);
101
+ window.addEventListener("mousedown", fastCheck);
102
+ window.addEventListener("keydown", fastCheck);
103
+ window.addEventListener("change", fastCheck);
104
+ }
105
+ }
106
+ observer.patches = patches;
107
+ observer.object = obj;
108
+ observer.unobserve = () => {
109
+ generate(observer);
110
+ clearTimeout(observer.next);
111
+ removeObserverFromMirror(mirror, observer);
112
+ if (typeof window !== "undefined") {
113
+ window.removeEventListener("mouseup", fastCheck);
114
+ window.removeEventListener("keyup", fastCheck);
115
+ window.removeEventListener("mousedown", fastCheck);
116
+ window.removeEventListener("keydown", fastCheck);
117
+ window.removeEventListener("change", fastCheck);
118
+ }
119
+ };
120
+ mirror.observers.set(callback, new ObserverInfo(callback, observer));
121
+ return observer;
122
+ }
123
+ /**
124
+ * Generate an array of patches from an observer
125
+ */
126
+ export function generate(observer, invertible = false) {
127
+ var mirror = beforeDict.get(observer.object);
128
+ _generate(mirror.value, observer.object, observer.patches, "", invertible);
129
+ if (observer.patches.length) {
130
+ applyPatch(mirror.value, observer.patches);
131
+ }
132
+ var temp = observer.patches;
133
+ if (temp.length > 0) {
134
+ observer.patches = [];
135
+ if (observer.callback) {
136
+ observer.callback(temp);
137
+ }
138
+ }
139
+ return temp;
140
+ }
141
+ // Dirty check if obj is different from mirror, generate patches and update mirror
142
+ function _generate(mirror, obj, patches, path, invertible) {
143
+ if (obj === mirror) {
144
+ return;
145
+ }
146
+ if (typeof obj.toJSON === "function") {
147
+ obj = obj.toJSON();
148
+ }
149
+ var newKeys = _objectKeys(obj);
150
+ var oldKeys = _objectKeys(mirror);
151
+ var changed = false;
152
+ var deleted = false;
153
+ //if ever "move" operation is implemented here, make sure this test runs OK: "should not generate the same patch twice (move)"
154
+ for (var t = oldKeys.length - 1; t >= 0; t--) {
155
+ var key = oldKeys[t];
156
+ var oldVal = mirror[key];
157
+ if (hasOwnProperty(obj, key) &&
158
+ !(obj[key] === undefined &&
159
+ oldVal !== undefined &&
160
+ Array.isArray(obj) === false)) {
161
+ var newVal = obj[key];
162
+ if (typeof oldVal == "object" &&
163
+ oldVal != null &&
164
+ typeof newVal == "object" &&
165
+ newVal != null &&
166
+ Array.isArray(oldVal) === Array.isArray(newVal)) {
167
+ _generate(oldVal, newVal, patches, path + "/" + escapePathComponent(key), invertible);
168
+ }
169
+ else {
170
+ if (oldVal !== newVal) {
171
+ changed = true;
172
+ if (invertible) {
173
+ patches.push({
174
+ op: "test",
175
+ path: path + "/" + escapePathComponent(key),
176
+ value: _deepClone(oldVal),
177
+ });
178
+ }
179
+ patches.push({
180
+ op: "replace",
181
+ path: path + "/" + escapePathComponent(key),
182
+ value: _deepClone(newVal),
183
+ });
184
+ }
185
+ }
186
+ }
187
+ else if (Array.isArray(mirror) === Array.isArray(obj)) {
188
+ if (invertible) {
189
+ patches.push({
190
+ op: "test",
191
+ path: path + "/" + escapePathComponent(key),
192
+ value: _deepClone(oldVal),
193
+ });
194
+ }
195
+ patches.push({
196
+ op: "remove",
197
+ path: path + "/" + escapePathComponent(key),
198
+ });
199
+ deleted = true; // property has been deleted
200
+ }
201
+ else {
202
+ if (invertible) {
203
+ patches.push({ op: "test", path, value: mirror });
204
+ }
205
+ patches.push({ op: "replace", path, value: obj });
206
+ changed = true;
207
+ }
208
+ }
209
+ if (!deleted && newKeys.length == oldKeys.length) {
210
+ return;
211
+ }
212
+ for (var t = 0; t < newKeys.length; t++) {
213
+ var key = newKeys[t];
214
+ if (!hasOwnProperty(mirror, key) && obj[key] !== undefined) {
215
+ patches.push({
216
+ op: "add",
217
+ path: path + "/" + escapePathComponent(key),
218
+ value: _deepClone(obj[key]),
219
+ });
220
+ }
221
+ }
222
+ }
223
+ /**
224
+ * Create an array of patches from the differences in two objects
225
+ */
226
+ export function compare(tree1, tree2, invertible = false) {
227
+ var patches = [];
228
+ _generate(tree1, tree2, patches, "", invertible);
229
+ return patches;
230
+ }
@@ -14,12 +14,33 @@ export type ConvexVectorStoreConfig<DataModel extends GenericDataModel, TableNam
14
14
  id: string;
15
15
  }, object | null>> = {
16
16
  readonly ctx: GenericActionCtx<DataModel>;
17
+ /**
18
+ * Defaults to "documents"
19
+ */
17
20
  readonly table?: TableName;
21
+ /**
22
+ * Defaults to "byEmbedding"
23
+ */
18
24
  readonly index?: IndexName;
25
+ /**
26
+ * Defaults to "text"
27
+ */
19
28
  readonly textField?: TextFieldName;
29
+ /**
30
+ * Defaults to "embedding"
31
+ */
20
32
  readonly embeddingField?: EmbeddingFieldName;
33
+ /**
34
+ * Defaults to "metadata"
35
+ */
21
36
  readonly metadataField?: MetadataFieldName;
37
+ /**
38
+ * Defaults to `internal.langchain.db.insert`
39
+ */
22
40
  readonly insert?: InsertMutation;
41
+ /**
42
+ * Defaults to `internal.langchain.db.get`
43
+ */
23
44
  readonly get?: GetQuery;
24
45
  };
25
46
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "langchain",
3
- "version": "0.0.178",
3
+ "version": "0.0.179",
4
4
  "description": "Typescript bindings for langchain",
5
5
  "type": "module",
6
6
  "engines": {
@@ -82,6 +82,9 @@
82
82
  "chains.cjs",
83
83
  "chains.js",
84
84
  "chains.d.ts",
85
+ "chains/combine_documents/reduce.cjs",
86
+ "chains/combine_documents/reduce.js",
87
+ "chains/combine_documents/reduce.d.ts",
85
88
  "chains/load.cjs",
86
89
  "chains/load.js",
87
90
  "chains/load.d.ts",
@@ -526,6 +529,9 @@
526
529
  "schema/output_parser.cjs",
527
530
  "schema/output_parser.js",
528
531
  "schema/output_parser.d.ts",
532
+ "schema/prompt_template.cjs",
533
+ "schema/prompt_template.js",
534
+ "schema/prompt_template.d.ts",
529
535
  "schema/query_constructor.cjs",
530
536
  "schema/query_constructor.js",
531
537
  "schema/query_constructor.d.ts",
@@ -1491,6 +1497,11 @@
1491
1497
  "import": "./chains.js",
1492
1498
  "require": "./chains.cjs"
1493
1499
  },
1500
+ "./chains/combine_documents/reduce": {
1501
+ "types": "./chains/combine_documents/reduce.d.ts",
1502
+ "import": "./chains/combine_documents/reduce.js",
1503
+ "require": "./chains/combine_documents/reduce.cjs"
1504
+ },
1494
1505
  "./chains/load": {
1495
1506
  "types": "./chains/load.d.ts",
1496
1507
  "import": "./chains/load.js",
@@ -2231,6 +2242,11 @@
2231
2242
  "import": "./schema/output_parser.js",
2232
2243
  "require": "./schema/output_parser.cjs"
2233
2244
  },
2245
+ "./schema/prompt_template": {
2246
+ "types": "./schema/prompt_template.d.ts",
2247
+ "import": "./schema/prompt_template.js",
2248
+ "require": "./schema/prompt_template.cjs"
2249
+ },
2234
2250
  "./schema/query_constructor": {
2235
2251
  "types": "./schema/query_constructor.d.ts",
2236
2252
  "import": "./schema/query_constructor.js",
@@ -0,0 +1 @@
1
+ module.exports = require('../dist/schema/prompt_template.cjs');
@@ -0,0 +1 @@
1
+ export * from '../dist/schema/prompt_template.js'
@@ -0,0 +1 @@
1
+ export * from '../dist/schema/prompt_template.js'