@langchain/core 0.1.6 → 0.1.8
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/callbacks/manager.cjs +0 -5
- package/dist/callbacks/manager.js +1 -6
- package/dist/language_models/base.d.ts +9 -0
- package/dist/load/import_map.cjs +2 -2
- package/dist/load/import_map.d.ts +1 -1
- package/dist/load/import_map.js +1 -1
- package/dist/runnables/base.cjs +8 -12
- package/dist/runnables/base.d.ts +4 -4
- package/dist/runnables/base.js +9 -13
- package/dist/runnables/branch.cjs +1 -1
- package/dist/runnables/branch.d.ts +1 -1
- package/dist/runnables/branch.js +1 -1
- package/dist/runnables/passthrough.cjs +1 -3
- package/dist/runnables/passthrough.d.ts +1 -1
- package/dist/runnables/passthrough.js +1 -3
- package/dist/tracers/base.cjs +29 -6
- package/dist/tracers/base.d.ts +2 -0
- package/dist/tracers/base.js +29 -6
- package/dist/tracers/initialize.cjs +2 -0
- package/dist/tracers/initialize.d.ts +2 -0
- package/dist/tracers/initialize.js +2 -0
- package/dist/tracers/tracer_langchain_v1.cjs +1 -0
- package/dist/tracers/tracer_langchain_v1.d.ts +1 -0
- package/dist/tracers/tracer_langchain_v1.js +1 -0
- package/dist/utils/stream.cjs +7 -1
- package/dist/utils/stream.d.ts +4 -0
- package/dist/utils/stream.js +5 -0
- package/package.json +9 -9
|
@@ -547,11 +547,6 @@ class CallbackManager extends BaseCallbackManager {
|
|
|
547
547
|
if (tracingV2Enabled) {
|
|
548
548
|
callbackManager.addHandler(await (0, initialize_js_1.getTracingV2CallbackHandler)(), true);
|
|
549
549
|
}
|
|
550
|
-
else {
|
|
551
|
-
const session = (0, env_js_1.getEnvironmentVariable)("LANGCHAIN_PROJECT") &&
|
|
552
|
-
(0, env_js_1.getEnvironmentVariable)("LANGCHAIN_SESSION");
|
|
553
|
-
callbackManager.addHandler(await (0, initialize_js_1.getTracingCallbackHandler)(session), true);
|
|
554
|
-
}
|
|
555
550
|
}
|
|
556
551
|
}
|
|
557
552
|
if (inheritableTags || localTags) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { v4 as uuidv4 } from "uuid";
|
|
2
2
|
import { BaseCallbackHandler, } from "./base.js";
|
|
3
3
|
import { ConsoleCallbackHandler } from "../tracers/console.js";
|
|
4
|
-
import {
|
|
4
|
+
import { getTracingV2CallbackHandler } from "../tracers/initialize.js";
|
|
5
5
|
import { getBufferString } from "../messages/index.js";
|
|
6
6
|
import { getEnvironmentVariable } from "../utils/env.js";
|
|
7
7
|
import { LangChainTracer, } from "../tracers/tracer_langchain.js";
|
|
@@ -538,11 +538,6 @@ export class CallbackManager extends BaseCallbackManager {
|
|
|
538
538
|
if (tracingV2Enabled) {
|
|
539
539
|
callbackManager.addHandler(await getTracingV2CallbackHandler(), true);
|
|
540
540
|
}
|
|
541
|
-
else {
|
|
542
|
-
const session = getEnvironmentVariable("LANGCHAIN_PROJECT") &&
|
|
543
|
-
getEnvironmentVariable("LANGCHAIN_SESSION");
|
|
544
|
-
callbackManager.addHandler(await getTracingCallbackHandler(session), true);
|
|
545
|
-
}
|
|
546
541
|
}
|
|
547
542
|
}
|
|
548
543
|
if (inheritableTags || localTags) {
|
|
@@ -163,4 +163,13 @@ export declare abstract class BaseLanguageModel<RunOutput = any, CallOptions ext
|
|
|
163
163
|
*/
|
|
164
164
|
static deserialize(_data: SerializedLLM): Promise<BaseLanguageModel>;
|
|
165
165
|
}
|
|
166
|
+
/**
|
|
167
|
+
* Shared interface for token usage
|
|
168
|
+
* return type from LLM calls.
|
|
169
|
+
*/
|
|
170
|
+
export interface TokenUsage {
|
|
171
|
+
completionTokens?: number;
|
|
172
|
+
promptTokens?: number;
|
|
173
|
+
totalTokens?: number;
|
|
174
|
+
}
|
|
166
175
|
export {};
|
package/dist/load/import_map.cjs
CHANGED
|
@@ -24,7 +24,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
24
24
|
return result;
|
|
25
25
|
};
|
|
26
26
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
-
exports.vectorstores = exports.utils__types = exports.utils__tiktoken = exports.utils__testing = exports.utils__stream = exports.utils__math = exports.utils__json_schema = exports.utils__json_patch = exports.utils__hash = exports.utils__env = exports.utils__chunk_array = exports.utils__async_caller = exports.
|
|
27
|
+
exports.vectorstores = exports.utils__types = exports.utils__tiktoken = exports.utils__testing = exports.utils__stream = exports.utils__math = exports.utils__json_schema = exports.utils__json_patch = exports.utils__hash = exports.utils__env = exports.utils__chunk_array = exports.utils__async_caller = exports.tracers__tracer_langchain_v1 = exports.tracers__tracer_langchain = exports.tracers__run_collector = exports.tracers__log_stream = exports.tracers__initialize = exports.tracers__console = exports.tracers__base = exports.tools = exports.stores = exports.retrievers = exports.runnables = exports.prompt_values = exports.prompts = exports.outputs = exports.output_parsers = exports.messages = exports.memory = exports.load__serializable = exports.language_models__llms = exports.language_models__chat_models = exports.language_models__base = exports.example_selectors = exports.embeddings = exports.documents = exports.chat_history = exports.callbacks__promises = exports.callbacks__manager = exports.callbacks__base = exports.caches = exports.agents = void 0;
|
|
28
28
|
exports.agents = __importStar(require("../agents.cjs"));
|
|
29
29
|
exports.caches = __importStar(require("../caches.cjs"));
|
|
30
30
|
exports.callbacks__base = __importStar(require("../callbacks/base.cjs"));
|
|
@@ -53,8 +53,8 @@ exports.tracers__console = __importStar(require("../tracers/console.cjs"));
|
|
|
53
53
|
exports.tracers__initialize = __importStar(require("../tracers/initialize.cjs"));
|
|
54
54
|
exports.tracers__log_stream = __importStar(require("../tracers/log_stream.cjs"));
|
|
55
55
|
exports.tracers__run_collector = __importStar(require("../tracers/run_collector.cjs"));
|
|
56
|
-
exports.tracers__tracer_langchain_v1 = __importStar(require("../tracers/tracer_langchain_v1.cjs"));
|
|
57
56
|
exports.tracers__tracer_langchain = __importStar(require("../tracers/tracer_langchain.cjs"));
|
|
57
|
+
exports.tracers__tracer_langchain_v1 = __importStar(require("../tracers/tracer_langchain_v1.cjs"));
|
|
58
58
|
exports.utils__async_caller = __importStar(require("../utils/async_caller.cjs"));
|
|
59
59
|
exports.utils__chunk_array = __importStar(require("../utils/chunk_array.cjs"));
|
|
60
60
|
exports.utils__env = __importStar(require("../utils/env.cjs"));
|
|
@@ -26,8 +26,8 @@ export * as tracers__console from "../tracers/console.js";
|
|
|
26
26
|
export * as tracers__initialize from "../tracers/initialize.js";
|
|
27
27
|
export * as tracers__log_stream from "../tracers/log_stream.js";
|
|
28
28
|
export * as tracers__run_collector from "../tracers/run_collector.js";
|
|
29
|
-
export * as tracers__tracer_langchain_v1 from "../tracers/tracer_langchain_v1.js";
|
|
30
29
|
export * as tracers__tracer_langchain from "../tracers/tracer_langchain.js";
|
|
30
|
+
export * as tracers__tracer_langchain_v1 from "../tracers/tracer_langchain_v1.js";
|
|
31
31
|
export * as utils__async_caller from "../utils/async_caller.js";
|
|
32
32
|
export * as utils__chunk_array from "../utils/chunk_array.js";
|
|
33
33
|
export * as utils__env from "../utils/env.js";
|
package/dist/load/import_map.js
CHANGED
|
@@ -27,8 +27,8 @@ export * as tracers__console from "../tracers/console.js";
|
|
|
27
27
|
export * as tracers__initialize from "../tracers/initialize.js";
|
|
28
28
|
export * as tracers__log_stream from "../tracers/log_stream.js";
|
|
29
29
|
export * as tracers__run_collector from "../tracers/run_collector.js";
|
|
30
|
-
export * as tracers__tracer_langchain_v1 from "../tracers/tracer_langchain_v1.js";
|
|
31
30
|
export * as tracers__tracer_langchain from "../tracers/tracer_langchain.js";
|
|
31
|
+
export * as tracers__tracer_langchain_v1 from "../tracers/tracer_langchain_v1.js";
|
|
32
32
|
export * as utils__async_caller from "../utils/async_caller.js";
|
|
33
33
|
export * as utils__chunk_array from "../utils/chunk_array.js";
|
|
34
34
|
export * as utils__env from "../utils/env.js";
|
package/dist/runnables/base.cjs
CHANGED
|
@@ -216,9 +216,8 @@ class Runnable extends serializable_js_1.Serializable {
|
|
|
216
216
|
let finalOutput;
|
|
217
217
|
let finalOutputSupported = true;
|
|
218
218
|
const callbackManager_ = await (0, config_js_1.getCallbackManagerForConfig)(options);
|
|
219
|
-
const inputGeneratorWithSetup = new stream_js_1.AsyncGeneratorWithSetup(inputGenerator, async () => callbackManager_?.handleChainStart(this.toJSON(), { input: "" }, undefined, options?.runType, undefined, undefined, options?.runName ?? this.getName()));
|
|
220
219
|
async function* wrapInputForTracing() {
|
|
221
|
-
for await (const chunk of
|
|
220
|
+
for await (const chunk of inputGenerator) {
|
|
222
221
|
if (finalInputSupported) {
|
|
223
222
|
if (finalInput === undefined) {
|
|
224
223
|
finalInput = chunk;
|
|
@@ -237,9 +236,11 @@ class Runnable extends serializable_js_1.Serializable {
|
|
|
237
236
|
yield chunk;
|
|
238
237
|
}
|
|
239
238
|
}
|
|
239
|
+
let runManager;
|
|
240
240
|
try {
|
|
241
|
-
const
|
|
242
|
-
|
|
241
|
+
const pipe = await (0, stream_js_1.pipeGeneratorWithSetup)(transformer, wrapInputForTracing(), async () => callbackManager_?.handleChainStart(this.toJSON(), { input: "" }, undefined, options?.runType, undefined, undefined, options?.runName ?? this.getName()), options);
|
|
242
|
+
runManager = pipe.setup;
|
|
243
|
+
for await (const chunk of pipe.output) {
|
|
243
244
|
yield chunk;
|
|
244
245
|
if (finalOutputSupported) {
|
|
245
246
|
if (finalOutput === undefined) {
|
|
@@ -259,13 +260,11 @@ class Runnable extends serializable_js_1.Serializable {
|
|
|
259
260
|
}
|
|
260
261
|
}
|
|
261
262
|
catch (e) {
|
|
262
|
-
const runManager = await inputGeneratorWithSetup.setup;
|
|
263
263
|
await runManager?.handleChainError(e, undefined, undefined, undefined, {
|
|
264
264
|
inputs: _coerceToDict(finalInput, "input"),
|
|
265
265
|
});
|
|
266
266
|
throw e;
|
|
267
267
|
}
|
|
268
|
-
const runManager = await inputGeneratorWithSetup.setup;
|
|
269
268
|
await runManager?.handleChainEnd(finalOutput ?? {}, undefined, undefined, undefined, { inputs: _coerceToDict(finalInput, "input") });
|
|
270
269
|
}
|
|
271
270
|
_patchConfig(config = {}, callbackManager = undefined, recursionLimit = undefined) {
|
|
@@ -1006,12 +1005,11 @@ class RunnableMap extends Runnable {
|
|
|
1006
1005
|
await runManager?.handleChainEnd(output);
|
|
1007
1006
|
return output;
|
|
1008
1007
|
}
|
|
1009
|
-
async *_transform(generator,
|
|
1008
|
+
async *_transform(generator, runManager, options) {
|
|
1010
1009
|
// shallow copy steps to ignore changes while iterating
|
|
1011
1010
|
const steps = { ...this.steps };
|
|
1012
1011
|
// each step gets a copy of the input iterator
|
|
1013
1012
|
const inputCopies = (0, stream_js_1.atee)(generator, Object.keys(steps).length);
|
|
1014
|
-
const runManager = await runManagerPromise;
|
|
1015
1013
|
// start the first iteration of each output iterator
|
|
1016
1014
|
const tasks = new Map(Object.entries(steps).map(([key, runnable], i) => {
|
|
1017
1015
|
const gen = runnable.transform(inputCopies[i], this._patchConfig(options, runManager?.getChild(`map:key:${key}`)));
|
|
@@ -1081,7 +1079,7 @@ class RunnableLambda extends Runnable {
|
|
|
1081
1079
|
async invoke(input, options) {
|
|
1082
1080
|
return this._callWithConfig(this._invoke, input, options);
|
|
1083
1081
|
}
|
|
1084
|
-
async *_transform(generator,
|
|
1082
|
+
async *_transform(generator, runManager, config) {
|
|
1085
1083
|
let finalChunk;
|
|
1086
1084
|
for await (const chunk of generator) {
|
|
1087
1085
|
if (finalChunk === undefined) {
|
|
@@ -1103,7 +1101,6 @@ class RunnableLambda extends Runnable {
|
|
|
1103
1101
|
if (config?.recursionLimit === 0) {
|
|
1104
1102
|
throw new Error("Recursion limit reached.");
|
|
1105
1103
|
}
|
|
1106
|
-
const runManager = await runManagerPromise;
|
|
1107
1104
|
const stream = await output.stream(finalChunk, this._patchConfig(config, runManager?.getChild(), (config?.recursionLimit ?? config_js_1.DEFAULT_RECURSION_LIMIT) - 1));
|
|
1108
1105
|
for await (const chunk of stream) {
|
|
1109
1106
|
yield chunk;
|
|
@@ -1283,12 +1280,11 @@ class RunnableAssign extends Runnable {
|
|
|
1283
1280
|
...mapperResult,
|
|
1284
1281
|
};
|
|
1285
1282
|
}
|
|
1286
|
-
async *_transform(generator,
|
|
1283
|
+
async *_transform(generator, runManager, options) {
|
|
1287
1284
|
// collect mapper keys
|
|
1288
1285
|
const mapperKeys = this.mapper.getStepsKeys();
|
|
1289
1286
|
// create two input gens, one for the mapper, one for the input
|
|
1290
1287
|
const [forPassthrough, forMapper] = (0, stream_js_1.atee)(generator);
|
|
1291
|
-
const runManager = await runManagerPromise;
|
|
1292
1288
|
// create mapper output gen
|
|
1293
1289
|
const mapperOutput = this.mapper.transform(forMapper, this._patchConfig(options, runManager?.getChild()));
|
|
1294
1290
|
// start the mapper
|
package/dist/runnables/base.d.ts
CHANGED
|
@@ -137,7 +137,7 @@ export declare abstract class Runnable<RunInput = any, RunOutput = any, CallOpti
|
|
|
137
137
|
* Output values, with callbacks.
|
|
138
138
|
* Use this to implement `stream()` or `transform()` in Runnable subclasses.
|
|
139
139
|
*/
|
|
140
|
-
protected _transformStreamWithConfig<I extends RunInput, O extends RunOutput>(inputGenerator: AsyncGenerator<I>, transformer: (generator: AsyncGenerator<I>, runManager?:
|
|
140
|
+
protected _transformStreamWithConfig<I extends RunInput, O extends RunOutput>(inputGenerator: AsyncGenerator<I>, transformer: (generator: AsyncGenerator<I>, runManager?: CallbackManagerForChainRun, options?: Partial<CallOptions>) => AsyncGenerator<O>, options?: CallOptions & {
|
|
141
141
|
runType?: string;
|
|
142
142
|
}): AsyncGenerator<O>;
|
|
143
143
|
_patchConfig(config?: Partial<CallOptions>, callbackManager?: CallbackManager | undefined, recursionLimit?: number | undefined): Partial<CallOptions>;
|
|
@@ -402,7 +402,7 @@ export declare class RunnableMap<RunInput = any, RunOutput extends Record<string
|
|
|
402
402
|
});
|
|
403
403
|
static from<RunInput, RunOutput extends Record<string, any> = Record<string, any>>(steps: RunnableMapLike<RunInput, RunOutput>): RunnableMap<RunInput, RunOutput>;
|
|
404
404
|
invoke(input: RunInput, options?: Partial<RunnableConfig>): Promise<RunOutput>;
|
|
405
|
-
_transform(generator: AsyncGenerator<RunInput>,
|
|
405
|
+
_transform(generator: AsyncGenerator<RunInput>, runManager?: CallbackManagerForChainRun, options?: Partial<RunnableConfig>): AsyncGenerator<RunOutput>;
|
|
406
406
|
transform(generator: AsyncGenerator<RunInput>, options?: Partial<RunnableConfig>): AsyncGenerator<RunOutput>;
|
|
407
407
|
stream(input: RunInput, options?: Partial<RunnableConfig>): Promise<IterableReadableStream<RunOutput>>;
|
|
408
408
|
}
|
|
@@ -419,7 +419,7 @@ export declare class RunnableLambda<RunInput, RunOutput> extends Runnable<RunInp
|
|
|
419
419
|
static from<RunInput, RunOutput>(func: RunnableFunc<RunInput, RunOutput | Runnable<RunInput, RunOutput>>): RunnableLambda<RunInput, RunOutput>;
|
|
420
420
|
_invoke(input: RunInput, config?: Partial<RunnableConfig>, runManager?: CallbackManagerForChainRun): Promise<RunOutput>;
|
|
421
421
|
invoke(input: RunInput, options?: Partial<RunnableConfig>): Promise<RunOutput>;
|
|
422
|
-
_transform(generator: AsyncGenerator<RunInput>,
|
|
422
|
+
_transform(generator: AsyncGenerator<RunInput>, runManager?: CallbackManagerForChainRun, config?: Partial<RunnableConfig>): AsyncGenerator<RunOutput>;
|
|
423
423
|
transform(generator: AsyncGenerator<RunInput>, options?: Partial<RunnableConfig>): AsyncGenerator<RunOutput>;
|
|
424
424
|
stream(input: RunInput, options?: Partial<RunnableConfig>): Promise<IterableReadableStream<RunOutput>>;
|
|
425
425
|
}
|
|
@@ -462,7 +462,7 @@ export declare class RunnableAssign<RunInput extends Record<string, any> = Recor
|
|
|
462
462
|
mapper: RunnableMap<RunInput>;
|
|
463
463
|
constructor(fields: RunnableMap<RunInput> | RunnableAssignFields<RunInput>);
|
|
464
464
|
invoke(input: RunInput, options?: Partial<CallOptions>): Promise<RunOutput>;
|
|
465
|
-
_transform(generator: AsyncGenerator<RunInput>,
|
|
465
|
+
_transform(generator: AsyncGenerator<RunInput>, runManager?: CallbackManagerForChainRun, options?: Partial<RunnableConfig>): AsyncGenerator<RunOutput>;
|
|
466
466
|
transform(generator: AsyncGenerator<RunInput>, options?: Partial<RunnableConfig>): AsyncGenerator<RunOutput>;
|
|
467
467
|
stream(input: RunInput, options?: Partial<RunnableConfig>): Promise<IterableReadableStream<RunOutput>>;
|
|
468
468
|
}
|
package/dist/runnables/base.js
CHANGED
|
@@ -2,7 +2,7 @@ import pRetry from "p-retry";
|
|
|
2
2
|
import { CallbackManager, } from "../callbacks/manager.js";
|
|
3
3
|
import { LogStreamCallbackHandler, RunLogPatch, } from "../tracers/log_stream.js";
|
|
4
4
|
import { Serializable } from "../load/serializable.js";
|
|
5
|
-
import { IterableReadableStream, concat, atee,
|
|
5
|
+
import { IterableReadableStream, concat, atee, pipeGeneratorWithSetup, } from "../utils/stream.js";
|
|
6
6
|
import { DEFAULT_RECURSION_LIMIT, getCallbackManagerForConfig, mergeConfigs, } from "./config.js";
|
|
7
7
|
import { AsyncCaller } from "../utils/async_caller.js";
|
|
8
8
|
import { RootListenersTracer } from "../tracers/root_listener.js";
|
|
@@ -210,9 +210,8 @@ export class Runnable extends Serializable {
|
|
|
210
210
|
let finalOutput;
|
|
211
211
|
let finalOutputSupported = true;
|
|
212
212
|
const callbackManager_ = await getCallbackManagerForConfig(options);
|
|
213
|
-
const inputGeneratorWithSetup = new AsyncGeneratorWithSetup(inputGenerator, async () => callbackManager_?.handleChainStart(this.toJSON(), { input: "" }, undefined, options?.runType, undefined, undefined, options?.runName ?? this.getName()));
|
|
214
213
|
async function* wrapInputForTracing() {
|
|
215
|
-
for await (const chunk of
|
|
214
|
+
for await (const chunk of inputGenerator) {
|
|
216
215
|
if (finalInputSupported) {
|
|
217
216
|
if (finalInput === undefined) {
|
|
218
217
|
finalInput = chunk;
|
|
@@ -231,9 +230,11 @@ export class Runnable extends Serializable {
|
|
|
231
230
|
yield chunk;
|
|
232
231
|
}
|
|
233
232
|
}
|
|
233
|
+
let runManager;
|
|
234
234
|
try {
|
|
235
|
-
const
|
|
236
|
-
|
|
235
|
+
const pipe = await pipeGeneratorWithSetup(transformer, wrapInputForTracing(), async () => callbackManager_?.handleChainStart(this.toJSON(), { input: "" }, undefined, options?.runType, undefined, undefined, options?.runName ?? this.getName()), options);
|
|
236
|
+
runManager = pipe.setup;
|
|
237
|
+
for await (const chunk of pipe.output) {
|
|
237
238
|
yield chunk;
|
|
238
239
|
if (finalOutputSupported) {
|
|
239
240
|
if (finalOutput === undefined) {
|
|
@@ -253,13 +254,11 @@ export class Runnable extends Serializable {
|
|
|
253
254
|
}
|
|
254
255
|
}
|
|
255
256
|
catch (e) {
|
|
256
|
-
const runManager = await inputGeneratorWithSetup.setup;
|
|
257
257
|
await runManager?.handleChainError(e, undefined, undefined, undefined, {
|
|
258
258
|
inputs: _coerceToDict(finalInput, "input"),
|
|
259
259
|
});
|
|
260
260
|
throw e;
|
|
261
261
|
}
|
|
262
|
-
const runManager = await inputGeneratorWithSetup.setup;
|
|
263
262
|
await runManager?.handleChainEnd(finalOutput ?? {}, undefined, undefined, undefined, { inputs: _coerceToDict(finalInput, "input") });
|
|
264
263
|
}
|
|
265
264
|
_patchConfig(config = {}, callbackManager = undefined, recursionLimit = undefined) {
|
|
@@ -995,12 +994,11 @@ export class RunnableMap extends Runnable {
|
|
|
995
994
|
await runManager?.handleChainEnd(output);
|
|
996
995
|
return output;
|
|
997
996
|
}
|
|
998
|
-
async *_transform(generator,
|
|
997
|
+
async *_transform(generator, runManager, options) {
|
|
999
998
|
// shallow copy steps to ignore changes while iterating
|
|
1000
999
|
const steps = { ...this.steps };
|
|
1001
1000
|
// each step gets a copy of the input iterator
|
|
1002
1001
|
const inputCopies = atee(generator, Object.keys(steps).length);
|
|
1003
|
-
const runManager = await runManagerPromise;
|
|
1004
1002
|
// start the first iteration of each output iterator
|
|
1005
1003
|
const tasks = new Map(Object.entries(steps).map(([key, runnable], i) => {
|
|
1006
1004
|
const gen = runnable.transform(inputCopies[i], this._patchConfig(options, runManager?.getChild(`map:key:${key}`)));
|
|
@@ -1069,7 +1067,7 @@ export class RunnableLambda extends Runnable {
|
|
|
1069
1067
|
async invoke(input, options) {
|
|
1070
1068
|
return this._callWithConfig(this._invoke, input, options);
|
|
1071
1069
|
}
|
|
1072
|
-
async *_transform(generator,
|
|
1070
|
+
async *_transform(generator, runManager, config) {
|
|
1073
1071
|
let finalChunk;
|
|
1074
1072
|
for await (const chunk of generator) {
|
|
1075
1073
|
if (finalChunk === undefined) {
|
|
@@ -1091,7 +1089,6 @@ export class RunnableLambda extends Runnable {
|
|
|
1091
1089
|
if (config?.recursionLimit === 0) {
|
|
1092
1090
|
throw new Error("Recursion limit reached.");
|
|
1093
1091
|
}
|
|
1094
|
-
const runManager = await runManagerPromise;
|
|
1095
1092
|
const stream = await output.stream(finalChunk, this._patchConfig(config, runManager?.getChild(), (config?.recursionLimit ?? DEFAULT_RECURSION_LIMIT) - 1));
|
|
1096
1093
|
for await (const chunk of stream) {
|
|
1097
1094
|
yield chunk;
|
|
@@ -1267,12 +1264,11 @@ export class RunnableAssign extends Runnable {
|
|
|
1267
1264
|
...mapperResult,
|
|
1268
1265
|
};
|
|
1269
1266
|
}
|
|
1270
|
-
async *_transform(generator,
|
|
1267
|
+
async *_transform(generator, runManager, options) {
|
|
1271
1268
|
// collect mapper keys
|
|
1272
1269
|
const mapperKeys = this.mapper.getStepsKeys();
|
|
1273
1270
|
// create two input gens, one for the mapper, one for the input
|
|
1274
1271
|
const [forPassthrough, forMapper] = atee(generator);
|
|
1275
|
-
const runManager = await runManagerPromise;
|
|
1276
1272
|
// create mapper output gen
|
|
1277
1273
|
const mapperOutput = this.mapper.transform(forMapper, this._patchConfig(options, runManager?.getChild()));
|
|
1278
1274
|
// start the mapper
|
|
@@ -84,7 +84,7 @@ class RunnableBranch extends base_js_1.Runnable {
|
|
|
84
84
|
*
|
|
85
85
|
* @example
|
|
86
86
|
* ```ts
|
|
87
|
-
* import { RunnableBranch } from "langchain/
|
|
87
|
+
* import { RunnableBranch } from "@langchain/core/runnables";
|
|
88
88
|
*
|
|
89
89
|
* const branch = RunnableBranch.from([
|
|
90
90
|
* [(x: number) => x > 0, (x: number) => x + 1],
|
|
@@ -73,7 +73,7 @@ export declare class RunnableBranch<RunInput = any, RunOutput = any> extends Run
|
|
|
73
73
|
*
|
|
74
74
|
* @example
|
|
75
75
|
* ```ts
|
|
76
|
-
* import { RunnableBranch } from "langchain/
|
|
76
|
+
* import { RunnableBranch } from "@langchain/core/runnables";
|
|
77
77
|
*
|
|
78
78
|
* const branch = RunnableBranch.from([
|
|
79
79
|
* [(x: number) => x > 0, (x: number) => x + 1],
|
package/dist/runnables/branch.js
CHANGED
|
@@ -81,7 +81,7 @@ export class RunnableBranch extends Runnable {
|
|
|
81
81
|
*
|
|
82
82
|
* @example
|
|
83
83
|
* ```ts
|
|
84
|
-
* import { RunnableBranch } from "langchain/
|
|
84
|
+
* import { RunnableBranch } from "@langchain/core/runnables";
|
|
85
85
|
*
|
|
86
86
|
* const branch = RunnableBranch.from([
|
|
87
87
|
* [(x: number) => x > 0, (x: number) => x + 1],
|
|
@@ -81,9 +81,7 @@ class RunnablePassthrough extends base_js_1.Runnable {
|
|
|
81
81
|
* });
|
|
82
82
|
* ```
|
|
83
83
|
*/
|
|
84
|
-
static assign(
|
|
85
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
86
|
-
mapping) {
|
|
84
|
+
static assign(mapping) {
|
|
87
85
|
return new base_js_1.RunnableAssign(new base_js_1.RunnableMap({ steps: mapping }));
|
|
88
86
|
}
|
|
89
87
|
}
|
|
@@ -60,5 +60,5 @@ export declare class RunnablePassthrough<RunInput> extends Runnable<RunInput, Ru
|
|
|
60
60
|
* });
|
|
61
61
|
* ```
|
|
62
62
|
*/
|
|
63
|
-
static assign
|
|
63
|
+
static assign<RunInput extends Record<string, unknown>, RunOutput extends Record<string, unknown>>(mapping: RunnableMapLike<RunInput, RunOutput>): RunnableAssign<RunInput, RunInput & RunOutput>;
|
|
64
64
|
}
|
|
@@ -78,9 +78,7 @@ export class RunnablePassthrough extends Runnable {
|
|
|
78
78
|
* });
|
|
79
79
|
* ```
|
|
80
80
|
*/
|
|
81
|
-
static assign(
|
|
82
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
83
|
-
mapping) {
|
|
81
|
+
static assign(mapping) {
|
|
84
82
|
return new RunnableAssign(new RunnableMap({ steps: mapping }));
|
|
85
83
|
}
|
|
86
84
|
}
|
package/dist/tracers/base.cjs
CHANGED
|
@@ -8,6 +8,13 @@ function _coerceToDict(value, defaultKey) {
|
|
|
8
8
|
? value
|
|
9
9
|
: { [defaultKey]: value };
|
|
10
10
|
}
|
|
11
|
+
function stripNonAlphanumeric(input) {
|
|
12
|
+
return input.replace(/[-:.]/g, "");
|
|
13
|
+
}
|
|
14
|
+
function convertToDottedOrderFormat(epoch, runId) {
|
|
15
|
+
return (stripNonAlphanumeric(`${new Date(epoch).toISOString().slice(0, -1)}000Z`) +
|
|
16
|
+
runId);
|
|
17
|
+
}
|
|
11
18
|
class BaseTracer extends base_js_1.BaseCallbackHandler {
|
|
12
19
|
constructor(_fields) {
|
|
13
20
|
super(...arguments);
|
|
@@ -25,15 +32,31 @@ class BaseTracer extends base_js_1.BaseCallbackHandler {
|
|
|
25
32
|
parentRun.child_runs.push(childRun);
|
|
26
33
|
}
|
|
27
34
|
async _startTrace(run) {
|
|
28
|
-
|
|
29
|
-
|
|
35
|
+
const currentDottedOrder = convertToDottedOrderFormat(run.start_time, run.id);
|
|
36
|
+
const storedRun = { ...run };
|
|
37
|
+
if (storedRun.parent_run_id !== undefined) {
|
|
38
|
+
const parentRun = this.runMap.get(storedRun.parent_run_id);
|
|
30
39
|
if (parentRun) {
|
|
31
|
-
this._addChildRun(parentRun,
|
|
32
|
-
parentRun.child_execution_order = Math.max(parentRun.child_execution_order,
|
|
40
|
+
this._addChildRun(parentRun, storedRun);
|
|
41
|
+
parentRun.child_execution_order = Math.max(parentRun.child_execution_order, storedRun.child_execution_order);
|
|
42
|
+
storedRun.trace_id = parentRun.trace_id;
|
|
43
|
+
if (parentRun.dotted_order !== undefined) {
|
|
44
|
+
storedRun.dotted_order = [
|
|
45
|
+
parentRun.dotted_order,
|
|
46
|
+
currentDottedOrder,
|
|
47
|
+
].join(".");
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
console.warn(`Parent run with UUID ${storedRun.parent_run_id} not found.`);
|
|
51
|
+
}
|
|
33
52
|
}
|
|
34
53
|
}
|
|
35
|
-
|
|
36
|
-
|
|
54
|
+
else {
|
|
55
|
+
storedRun.trace_id = storedRun.id;
|
|
56
|
+
storedRun.dotted_order = currentDottedOrder;
|
|
57
|
+
}
|
|
58
|
+
this.runMap.set(storedRun.id, storedRun);
|
|
59
|
+
await this.onRunCreate?.(storedRun);
|
|
37
60
|
}
|
|
38
61
|
async _endTrace(run) {
|
|
39
62
|
const parentRun = run.parent_run_id !== undefined && this.runMap.get(run.parent_run_id);
|
package/dist/tracers/base.d.ts
CHANGED
package/dist/tracers/base.js
CHANGED
|
@@ -5,6 +5,13 @@ function _coerceToDict(value, defaultKey) {
|
|
|
5
5
|
? value
|
|
6
6
|
: { [defaultKey]: value };
|
|
7
7
|
}
|
|
8
|
+
function stripNonAlphanumeric(input) {
|
|
9
|
+
return input.replace(/[-:.]/g, "");
|
|
10
|
+
}
|
|
11
|
+
function convertToDottedOrderFormat(epoch, runId) {
|
|
12
|
+
return (stripNonAlphanumeric(`${new Date(epoch).toISOString().slice(0, -1)}000Z`) +
|
|
13
|
+
runId);
|
|
14
|
+
}
|
|
8
15
|
export class BaseTracer extends BaseCallbackHandler {
|
|
9
16
|
constructor(_fields) {
|
|
10
17
|
super(...arguments);
|
|
@@ -22,15 +29,31 @@ export class BaseTracer extends BaseCallbackHandler {
|
|
|
22
29
|
parentRun.child_runs.push(childRun);
|
|
23
30
|
}
|
|
24
31
|
async _startTrace(run) {
|
|
25
|
-
|
|
26
|
-
|
|
32
|
+
const currentDottedOrder = convertToDottedOrderFormat(run.start_time, run.id);
|
|
33
|
+
const storedRun = { ...run };
|
|
34
|
+
if (storedRun.parent_run_id !== undefined) {
|
|
35
|
+
const parentRun = this.runMap.get(storedRun.parent_run_id);
|
|
27
36
|
if (parentRun) {
|
|
28
|
-
this._addChildRun(parentRun,
|
|
29
|
-
parentRun.child_execution_order = Math.max(parentRun.child_execution_order,
|
|
37
|
+
this._addChildRun(parentRun, storedRun);
|
|
38
|
+
parentRun.child_execution_order = Math.max(parentRun.child_execution_order, storedRun.child_execution_order);
|
|
39
|
+
storedRun.trace_id = parentRun.trace_id;
|
|
40
|
+
if (parentRun.dotted_order !== undefined) {
|
|
41
|
+
storedRun.dotted_order = [
|
|
42
|
+
parentRun.dotted_order,
|
|
43
|
+
currentDottedOrder,
|
|
44
|
+
].join(".");
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
console.warn(`Parent run with UUID ${storedRun.parent_run_id} not found.`);
|
|
48
|
+
}
|
|
30
49
|
}
|
|
31
50
|
}
|
|
32
|
-
|
|
33
|
-
|
|
51
|
+
else {
|
|
52
|
+
storedRun.trace_id = storedRun.id;
|
|
53
|
+
storedRun.dotted_order = currentDottedOrder;
|
|
54
|
+
}
|
|
55
|
+
this.runMap.set(storedRun.id, storedRun);
|
|
56
|
+
await this.onRunCreate?.(storedRun);
|
|
34
57
|
}
|
|
35
58
|
async _endTrace(run) {
|
|
36
59
|
const parentRun = run.parent_run_id !== undefined && this.runMap.get(run.parent_run_id);
|
|
@@ -4,6 +4,8 @@ exports.getTracingV2CallbackHandler = exports.getTracingCallbackHandler = void 0
|
|
|
4
4
|
const tracer_langchain_js_1 = require("./tracer_langchain.cjs");
|
|
5
5
|
const tracer_langchain_v1_js_1 = require("./tracer_langchain_v1.cjs");
|
|
6
6
|
/**
|
|
7
|
+
* @deprecated Use the V2 handler instead.
|
|
8
|
+
*
|
|
7
9
|
* Function that returns an instance of `LangChainTracerV1`. If a session
|
|
8
10
|
* is provided, it loads that session into the tracer; otherwise, it loads
|
|
9
11
|
* a default session.
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { LangChainTracer } from "./tracer_langchain.js";
|
|
2
2
|
import { LangChainTracerV1 } from "./tracer_langchain_v1.js";
|
|
3
3
|
/**
|
|
4
|
+
* @deprecated Use the V2 handler instead.
|
|
5
|
+
*
|
|
4
6
|
* Function that returns an instance of `LangChainTracerV1`. If a session
|
|
5
7
|
* is provided, it loads that session into the tracer; otherwise, it loads
|
|
6
8
|
* a default session.
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { LangChainTracer } from "./tracer_langchain.js";
|
|
2
2
|
import { LangChainTracerV1 } from "./tracer_langchain_v1.js";
|
|
3
3
|
/**
|
|
4
|
+
* @deprecated Use the V2 handler instead.
|
|
5
|
+
*
|
|
4
6
|
* Function that returns an instance of `LangChainTracerV1`. If a session
|
|
5
7
|
* is provided, it loads that session into the tracer; otherwise, it loads
|
|
6
8
|
* a default session.
|
|
@@ -4,6 +4,7 @@ exports.LangChainTracerV1 = void 0;
|
|
|
4
4
|
const index_js_1 = require("../messages/index.cjs");
|
|
5
5
|
const env_js_1 = require("../utils/env.cjs");
|
|
6
6
|
const base_js_1 = require("./base.cjs");
|
|
7
|
+
/** @deprecated Use LangChainTracer instead. */
|
|
7
8
|
class LangChainTracerV1 extends base_js_1.BaseTracer {
|
|
8
9
|
constructor() {
|
|
9
10
|
super();
|
|
@@ -42,6 +42,7 @@ export type TracerSessionCreate = BaseTracerSession;
|
|
|
42
42
|
export interface TracerSessionV1 extends BaseTracerSession {
|
|
43
43
|
id: number;
|
|
44
44
|
}
|
|
45
|
+
/** @deprecated Use LangChainTracer instead. */
|
|
45
46
|
export declare class LangChainTracerV1 extends BaseTracer {
|
|
46
47
|
name: string;
|
|
47
48
|
protected endpoint: string;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { getBufferString } from "../messages/index.js";
|
|
2
2
|
import { getEnvironmentVariable } from "../utils/env.js";
|
|
3
3
|
import { BaseTracer } from "./base.js";
|
|
4
|
+
/** @deprecated Use LangChainTracer instead. */
|
|
4
5
|
export class LangChainTracerV1 extends BaseTracer {
|
|
5
6
|
constructor() {
|
|
6
7
|
super();
|
package/dist/utils/stream.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AsyncGeneratorWithSetup = exports.concat = exports.atee = exports.IterableReadableStream = void 0;
|
|
3
|
+
exports.pipeGeneratorWithSetup = exports.AsyncGeneratorWithSetup = exports.concat = exports.atee = exports.IterableReadableStream = void 0;
|
|
4
4
|
/*
|
|
5
5
|
* Support async iterator syntax for ReadableStreams in all environments.
|
|
6
6
|
* Source: https://github.com/MattiasBuelens/web-streams-polyfill/pull/122#issuecomment-1627354490
|
|
@@ -210,3 +210,9 @@ class AsyncGeneratorWithSetup {
|
|
|
210
210
|
}
|
|
211
211
|
}
|
|
212
212
|
exports.AsyncGeneratorWithSetup = AsyncGeneratorWithSetup;
|
|
213
|
+
async function pipeGeneratorWithSetup(to, generator, startSetup, ...args) {
|
|
214
|
+
const gen = new AsyncGeneratorWithSetup(generator, startSetup);
|
|
215
|
+
const setup = await gen.setup;
|
|
216
|
+
return { output: to(gen, setup, ...args), setup };
|
|
217
|
+
}
|
|
218
|
+
exports.pipeGeneratorWithSetup = pipeGeneratorWithSetup;
|
package/dist/utils/stream.d.ts
CHANGED
|
@@ -29,3 +29,7 @@ export declare class AsyncGeneratorWithSetup<S = unknown, T = unknown, TReturn =
|
|
|
29
29
|
throw(e: Error): Promise<IteratorResult<T>>;
|
|
30
30
|
[Symbol.asyncIterator](): this;
|
|
31
31
|
}
|
|
32
|
+
export declare function pipeGeneratorWithSetup<S, A extends unknown[], T, TReturn, TNext, U, UReturn, UNext>(to: (g: AsyncGenerator<T, TReturn, TNext>, s: S, ...args: A) => AsyncGenerator<U, UReturn, UNext>, generator: AsyncGenerator<T, TReturn, TNext>, startSetup: () => Promise<S>, ...args: A): Promise<{
|
|
33
|
+
output: AsyncGenerator<U, UReturn, UNext>;
|
|
34
|
+
setup: Awaited<S>;
|
|
35
|
+
}>;
|
package/dist/utils/stream.js
CHANGED
|
@@ -203,3 +203,8 @@ export class AsyncGeneratorWithSetup {
|
|
|
203
203
|
return this;
|
|
204
204
|
}
|
|
205
205
|
}
|
|
206
|
+
export async function pipeGeneratorWithSetup(to, generator, startSetup, ...args) {
|
|
207
|
+
const gen = new AsyncGeneratorWithSetup(generator, startSetup);
|
|
208
|
+
const setup = await gen.setup;
|
|
209
|
+
return { output: to(gen, setup, ...args), setup };
|
|
210
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@langchain/core",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.8",
|
|
4
4
|
"description": "Core LangChain.js abstractions and schemas",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
@@ -229,16 +229,16 @@
|
|
|
229
229
|
"import": "./tracers/run_collector.js",
|
|
230
230
|
"require": "./tracers/run_collector.cjs"
|
|
231
231
|
},
|
|
232
|
-
"./tracers/tracer_langchain_v1": {
|
|
233
|
-
"types": "./tracers/tracer_langchain_v1.d.ts",
|
|
234
|
-
"import": "./tracers/tracer_langchain_v1.js",
|
|
235
|
-
"require": "./tracers/tracer_langchain_v1.cjs"
|
|
236
|
-
},
|
|
237
232
|
"./tracers/tracer_langchain": {
|
|
238
233
|
"types": "./tracers/tracer_langchain.d.ts",
|
|
239
234
|
"import": "./tracers/tracer_langchain.js",
|
|
240
235
|
"require": "./tracers/tracer_langchain.cjs"
|
|
241
236
|
},
|
|
237
|
+
"./tracers/tracer_langchain_v1": {
|
|
238
|
+
"types": "./tracers/tracer_langchain_v1.d.ts",
|
|
239
|
+
"import": "./tracers/tracer_langchain_v1.js",
|
|
240
|
+
"require": "./tracers/tracer_langchain_v1.cjs"
|
|
241
|
+
},
|
|
242
242
|
"./utils/async_caller": {
|
|
243
243
|
"types": "./utils/async_caller.d.ts",
|
|
244
244
|
"import": "./utils/async_caller.js",
|
|
@@ -390,12 +390,12 @@
|
|
|
390
390
|
"tracers/run_collector.cjs",
|
|
391
391
|
"tracers/run_collector.js",
|
|
392
392
|
"tracers/run_collector.d.ts",
|
|
393
|
-
"tracers/tracer_langchain_v1.cjs",
|
|
394
|
-
"tracers/tracer_langchain_v1.js",
|
|
395
|
-
"tracers/tracer_langchain_v1.d.ts",
|
|
396
393
|
"tracers/tracer_langchain.cjs",
|
|
397
394
|
"tracers/tracer_langchain.js",
|
|
398
395
|
"tracers/tracer_langchain.d.ts",
|
|
396
|
+
"tracers/tracer_langchain_v1.cjs",
|
|
397
|
+
"tracers/tracer_langchain_v1.js",
|
|
398
|
+
"tracers/tracer_langchain_v1.d.ts",
|
|
399
399
|
"utils/async_caller.cjs",
|
|
400
400
|
"utils/async_caller.js",
|
|
401
401
|
"utils/async_caller.d.ts",
|