langchain 0.0.194 → 0.0.196
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/agents/toolkits/conversational_retrieval/token_buffer_memory.d.ts +1 -1
- package/dist/base_language/count_tokens.cjs +5 -70
- package/dist/base_language/count_tokens.d.ts +1 -10
- package/dist/base_language/count_tokens.js +1 -65
- package/dist/base_language/index.cjs +6 -196
- package/dist/base_language/index.d.ts +1 -111
- package/dist/base_language/index.js +1 -191
- package/dist/cache/base.cjs +15 -37
- package/dist/cache/base.d.ts +1 -20
- package/dist/cache/base.js +1 -33
- package/dist/cache/index.cjs +2 -46
- package/dist/cache/index.d.ts +1 -29
- package/dist/cache/index.js +1 -45
- package/dist/callbacks/base.cjs +3 -139
- package/dist/callbacks/base.d.ts +1 -266
- package/dist/callbacks/base.js +1 -126
- package/dist/callbacks/handlers/console.cjs +14 -221
- package/dist/callbacks/handlers/console.d.ts +1 -117
- package/dist/callbacks/handlers/console.js +1 -217
- package/dist/callbacks/handlers/initialize.cjs +15 -30
- package/dist/callbacks/handlers/initialize.d.ts +1 -16
- package/dist/callbacks/handlers/initialize.js +1 -27
- package/dist/callbacks/handlers/log_stream.cjs +15 -293
- package/dist/callbacks/handlers/log_stream.d.ts +1 -100
- package/dist/callbacks/handlers/log_stream.js +1 -289
- package/dist/callbacks/handlers/run_collector.cjs +15 -48
- package/dist/callbacks/handlers/run_collector.d.ts +1 -26
- package/dist/callbacks/handlers/run_collector.js +1 -46
- package/dist/callbacks/handlers/tracer.cjs +15 -375
- package/dist/callbacks/handlers/tracer.d.ts +1 -70
- package/dist/callbacks/handlers/tracer.js +1 -373
- package/dist/callbacks/handlers/tracer_langchain.cjs +15 -104
- package/dist/callbacks/handlers/tracer_langchain.d.ts +1 -41
- package/dist/callbacks/handlers/tracer_langchain.js +1 -102
- package/dist/callbacks/handlers/tracer_langchain_v1.cjs +15 -197
- package/dist/callbacks/handlers/tracer_langchain_v1.d.ts +1 -57
- package/dist/callbacks/handlers/tracer_langchain_v1.js +1 -195
- package/dist/callbacks/manager.cjs +15 -676
- package/dist/callbacks/manager.d.ts +1 -180
- package/dist/callbacks/manager.js +1 -666
- package/dist/callbacks/promises.cjs +14 -42
- package/dist/callbacks/promises.d.ts +1 -11
- package/dist/callbacks/promises.js +1 -37
- package/dist/chains/graph_qa/prompts.d.ts +1 -1
- package/dist/chains/openai_functions/structured_output.cjs +2 -2
- package/dist/chains/openai_functions/structured_output.d.ts +1 -1
- package/dist/chains/openai_functions/structured_output.js +1 -1
- package/dist/chat_models/baiduwenxin.d.ts +1 -1
- package/dist/chat_models/base.cjs +15 -296
- package/dist/chat_models/base.d.ts +1 -122
- package/dist/chat_models/base.js +1 -292
- package/dist/chat_models/bedrock/web.d.ts +1 -1
- package/dist/chat_models/fireworks.d.ts +1 -1
- package/dist/document.cjs +2 -24
- package/dist/document.d.ts +1 -12
- package/dist/document.js +1 -23
- package/dist/document_loaders/web/azure_blob_storage_file.d.ts +1 -1
- package/dist/document_loaders/web/s3.d.ts +1 -1
- package/dist/embeddings/base.cjs +15 -22
- package/dist/embeddings/base.d.ts +1 -33
- package/dist/embeddings/base.js +1 -20
- package/dist/embeddings/cache_backed.cjs +2 -2
- package/dist/embeddings/cache_backed.js +1 -1
- package/dist/embeddings/hf.cjs +1 -2
- package/dist/embeddings/hf.js +1 -2
- package/dist/evaluation/agents/trajectory.d.ts +1 -1
- package/dist/evaluation/criteria/prompt.d.ts +2 -2
- package/dist/evaluation/qa/prompt.d.ts +2 -2
- package/dist/experimental/hubs/makersuite/googlemakersuitehub.d.ts +1 -1
- package/dist/experimental/openai_assistant/index.cjs +2 -1
- package/dist/experimental/openai_assistant/index.d.ts +2 -1
- package/dist/experimental/openai_assistant/index.js +2 -1
- package/dist/experimental/openai_files/index.cjs +88 -0
- package/dist/experimental/openai_files/index.d.ts +79 -0
- package/dist/experimental/openai_files/index.js +84 -0
- package/dist/experimental/plan_and_execute/prompt.d.ts +1 -1
- package/dist/llms/base.cjs +15 -278
- package/dist/llms/base.d.ts +1 -115
- package/dist/llms/base.js +1 -275
- package/dist/llms/bedrock/web.d.ts +1 -1
- package/dist/llms/fireworks.d.ts +1 -1
- package/dist/load/import_constants.cjs +1 -0
- package/dist/load/import_constants.js +1 -0
- package/dist/load/import_map.cjs +4 -2
- package/dist/load/import_map.d.ts +2 -0
- package/dist/load/import_map.js +2 -0
- package/dist/load/index.cjs +7 -148
- package/dist/load/index.js +7 -148
- package/dist/load/map_keys.cjs +0 -24
- package/dist/load/map_keys.d.ts +0 -6
- package/dist/load/map_keys.js +1 -17
- package/dist/load/serializable.cjs +15 -178
- package/dist/load/serializable.d.ts +1 -66
- package/dist/load/serializable.js +1 -175
- package/dist/memory/base.cjs +17 -92
- package/dist/memory/base.d.ts +2 -68
- package/dist/memory/base.js +2 -87
- package/dist/output_parsers/openai_functions.cjs +2 -2
- package/dist/output_parsers/openai_functions.d.ts +1 -1
- package/dist/output_parsers/openai_functions.js +1 -1
- package/dist/output_parsers/regex.d.ts +1 -1
- package/dist/output_parsers/structured.d.ts +1 -1
- package/dist/prompts/base.cjs +8 -183
- package/dist/prompts/base.d.ts +3 -132
- package/dist/prompts/base.js +3 -178
- package/dist/prompts/chat.cjs +15 -477
- package/dist/prompts/chat.d.ts +1 -219
- package/dist/prompts/chat.js +1 -466
- package/dist/prompts/few_shot.cjs +15 -353
- package/dist/prompts/few_shot.d.ts +1 -192
- package/dist/prompts/few_shot.js +1 -350
- package/dist/prompts/index.cjs +3 -2
- package/dist/prompts/index.d.ts +2 -1
- package/dist/prompts/index.js +2 -1
- package/dist/prompts/pipeline.cjs +15 -142
- package/dist/prompts/pipeline.d.ts +1 -98
- package/dist/prompts/pipeline.js +1 -140
- package/dist/prompts/prompt.cjs +15 -146
- package/dist/prompts/prompt.d.ts +1 -92
- package/dist/prompts/prompt.js +1 -144
- package/dist/prompts/selectors/LengthBasedExampleSelector.cjs +15 -148
- package/dist/prompts/selectors/LengthBasedExampleSelector.d.ts +1 -89
- package/dist/prompts/selectors/LengthBasedExampleSelector.js +1 -146
- package/dist/prompts/selectors/SemanticSimilarityExampleSelector.cjs +15 -137
- package/dist/prompts/selectors/SemanticSimilarityExampleSelector.d.ts +1 -91
- package/dist/prompts/selectors/SemanticSimilarityExampleSelector.js +1 -135
- package/dist/prompts/selectors/conditional.cjs +15 -74
- package/dist/prompts/selectors/conditional.d.ts +1 -63
- package/dist/prompts/selectors/conditional.js +1 -69
- package/dist/prompts/serde.cjs +15 -0
- package/dist/prompts/serde.d.ts +1 -43
- package/dist/prompts/serde.js +1 -1
- package/dist/prompts/template.cjs +14 -88
- package/dist/prompts/template.d.ts +1 -36
- package/dist/prompts/template.js +1 -83
- package/dist/retrievers/chaindesk.cjs +9 -1
- package/dist/retrievers/chaindesk.d.ts +3 -1
- package/dist/retrievers/chaindesk.js +9 -1
- package/dist/retrievers/self_query/vectara.cjs +138 -0
- package/dist/retrievers/self_query/vectara.d.ts +41 -0
- package/dist/retrievers/self_query/vectara.js +134 -0
- package/dist/{util/@cfworker/json-schema → runnables}/index.cjs +1 -1
- package/dist/runnables/index.d.ts +1 -0
- package/dist/runnables/index.js +1 -0
- package/dist/schema/document.cjs +3 -34
- package/dist/schema/document.d.ts +2 -29
- package/dist/schema/document.js +2 -32
- package/dist/schema/index.cjs +37 -612
- package/dist/schema/index.d.ts +11 -311
- package/dist/schema/index.js +8 -583
- package/dist/schema/output_parser.cjs +15 -309
- package/dist/schema/output_parser.d.ts +1 -173
- package/dist/schema/output_parser.js +1 -301
- package/dist/schema/retriever.cjs +15 -77
- package/dist/schema/retriever.d.ts +1 -43
- package/dist/schema/retriever.js +1 -75
- package/dist/schema/runnable/base.cjs +10 -1072
- package/dist/schema/runnable/base.d.ts +1 -356
- package/dist/schema/runnable/base.js +1 -1060
- package/dist/schema/runnable/branch.cjs +2 -131
- package/dist/schema/runnable/branch.d.ts +1 -94
- package/dist/schema/runnable/branch.js +1 -130
- package/dist/schema/runnable/config.cjs +0 -6
- package/dist/schema/runnable/config.d.ts +1 -3
- package/dist/schema/runnable/config.js +1 -4
- package/dist/schema/runnable/index.cjs +15 -16
- package/dist/schema/runnable/index.d.ts +1 -5
- package/dist/schema/runnable/index.js +1 -4
- package/dist/schema/runnable/passthrough.cjs +3 -113
- package/dist/schema/runnable/passthrough.d.ts +1 -72
- package/dist/schema/runnable/passthrough.js +1 -111
- package/dist/schema/runnable/router.cjs +2 -71
- package/dist/schema/runnable/router.d.ts +1 -29
- package/dist/schema/runnable/router.js +1 -70
- package/dist/schema/storage.cjs +15 -8
- package/dist/schema/storage.d.ts +1 -57
- package/dist/schema/storage.js +1 -6
- package/dist/tools/bingserpapi.d.ts +1 -1
- package/dist/tools/searchapi.d.ts +1 -1
- package/dist/tools/serpapi.d.ts +1 -1
- package/dist/tools/serper.d.ts +1 -1
- package/dist/util/async_caller.cjs +14 -128
- package/dist/util/async_caller.d.ts +1 -45
- package/dist/util/async_caller.js +1 -124
- package/dist/vectorstores/vectara.cjs +77 -7
- package/dist/vectorstores/vectara.d.ts +9 -3
- package/dist/vectorstores/vectara.js +54 -7
- package/experimental/openai_files.cjs +1 -0
- package/experimental/openai_files.d.ts +1 -0
- package/experimental/openai_files.js +1 -0
- package/package.json +27 -5
- package/retrievers/self_query/vectara.cjs +1 -0
- package/retrievers/self_query/vectara.d.ts +1 -0
- package/retrievers/self_query/vectara.js +1 -0
- package/runnables.cjs +1 -0
- package/runnables.d.ts +1 -0
- package/runnables.js +1 -0
- package/dist/util/@cfworker/json-schema/index.d.ts +0 -1
- package/dist/util/@cfworker/json-schema/index.js +0 -1
- package/dist/util/@cfworker/json-schema/src/deep-compare-strict.cjs +0 -43
- package/dist/util/@cfworker/json-schema/src/deep-compare-strict.d.ts +0 -1
- package/dist/util/@cfworker/json-schema/src/deep-compare-strict.js +0 -39
- package/dist/util/@cfworker/json-schema/src/dereference.cjs +0 -169
- package/dist/util/@cfworker/json-schema/src/dereference.d.ts +0 -12
- package/dist/util/@cfworker/json-schema/src/dereference.js +0 -165
- package/dist/util/@cfworker/json-schema/src/format.cjs +0 -139
- package/dist/util/@cfworker/json-schema/src/format.d.ts +0 -2
- package/dist/util/@cfworker/json-schema/src/format.js +0 -136
- package/dist/util/@cfworker/json-schema/src/index.cjs +0 -24
- package/dist/util/@cfworker/json-schema/src/index.d.ts +0 -8
- package/dist/util/@cfworker/json-schema/src/index.js +0 -8
- package/dist/util/@cfworker/json-schema/src/pointer.cjs +0 -11
- package/dist/util/@cfworker/json-schema/src/pointer.d.ts +0 -2
- package/dist/util/@cfworker/json-schema/src/pointer.js +0 -6
- package/dist/util/@cfworker/json-schema/src/types.cjs +0 -2
- package/dist/util/@cfworker/json-schema/src/types.d.ts +0 -72
- package/dist/util/@cfworker/json-schema/src/types.js +0 -1
- package/dist/util/@cfworker/json-schema/src/ucs2-length.cjs +0 -28
- package/dist/util/@cfworker/json-schema/src/ucs2-length.d.ts +0 -6
- package/dist/util/@cfworker/json-schema/src/ucs2-length.js +0 -24
- package/dist/util/@cfworker/json-schema/src/validate.cjs +0 -808
- package/dist/util/@cfworker/json-schema/src/validate.d.ts +0 -3
- package/dist/util/@cfworker/json-schema/src/validate.js +0 -804
- package/dist/util/@cfworker/json-schema/src/validator.cjs +0 -44
- package/dist/util/@cfworker/json-schema/src/validator.d.ts +0 -10
- package/dist/util/@cfworker/json-schema/src/validator.js +0 -40
- package/dist/util/fast-json-patch/index.cjs +0 -49
- package/dist/util/fast-json-patch/index.d.ts +0 -22
- package/dist/util/fast-json-patch/index.js +0 -16
- package/dist/util/fast-json-patch/src/core.cjs +0 -469
- package/dist/util/fast-json-patch/src/core.d.ts +0 -111
- package/dist/util/fast-json-patch/src/core.js +0 -459
- package/dist/util/fast-json-patch/src/duplex.cjs +0 -237
- package/dist/util/fast-json-patch/src/duplex.d.ts +0 -23
- package/dist/util/fast-json-patch/src/duplex.js +0 -230
- package/dist/util/fast-json-patch/src/helpers.cjs +0 -194
- package/dist/util/fast-json-patch/src/helpers.d.ts +0 -36
- package/dist/util/fast-json-patch/src/helpers.js +0 -181
- package/dist/util/js-sha1/hash.cjs +0 -358
- package/dist/util/js-sha1/hash.d.ts +0 -1
- package/dist/util/js-sha1/hash.js +0 -355
|
@@ -1,666 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import { BaseCallbackHandler, } from "./base.js";
|
|
3
|
-
import { ConsoleCallbackHandler } from "./handlers/console.js";
|
|
4
|
-
import { getTracingCallbackHandler, getTracingV2CallbackHandler, } from "./handlers/initialize.js";
|
|
5
|
-
import { getBufferString } from "../memory/base.js";
|
|
6
|
-
import { getEnvironmentVariable } from "../util/env.js";
|
|
7
|
-
import { LangChainTracer, } from "./handlers/tracer_langchain.js";
|
|
8
|
-
import { consumeCallback } from "./promises.js";
|
|
9
|
-
export function parseCallbackConfigArg(arg) {
|
|
10
|
-
if (!arg) {
|
|
11
|
-
return {};
|
|
12
|
-
}
|
|
13
|
-
else if (Array.isArray(arg) || "name" in arg) {
|
|
14
|
-
return { callbacks: arg };
|
|
15
|
-
}
|
|
16
|
-
else {
|
|
17
|
-
return arg;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Manage callbacks from different components of LangChain.
|
|
22
|
-
*/
|
|
23
|
-
export class BaseCallbackManager {
|
|
24
|
-
setHandler(handler) {
|
|
25
|
-
return this.setHandlers([handler]);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Base class for run manager in LangChain.
|
|
30
|
-
*/
|
|
31
|
-
class BaseRunManager {
|
|
32
|
-
constructor(runId, handlers, inheritableHandlers, tags, inheritableTags, metadata, inheritableMetadata, _parentRunId) {
|
|
33
|
-
Object.defineProperty(this, "runId", {
|
|
34
|
-
enumerable: true,
|
|
35
|
-
configurable: true,
|
|
36
|
-
writable: true,
|
|
37
|
-
value: runId
|
|
38
|
-
});
|
|
39
|
-
Object.defineProperty(this, "handlers", {
|
|
40
|
-
enumerable: true,
|
|
41
|
-
configurable: true,
|
|
42
|
-
writable: true,
|
|
43
|
-
value: handlers
|
|
44
|
-
});
|
|
45
|
-
Object.defineProperty(this, "inheritableHandlers", {
|
|
46
|
-
enumerable: true,
|
|
47
|
-
configurable: true,
|
|
48
|
-
writable: true,
|
|
49
|
-
value: inheritableHandlers
|
|
50
|
-
});
|
|
51
|
-
Object.defineProperty(this, "tags", {
|
|
52
|
-
enumerable: true,
|
|
53
|
-
configurable: true,
|
|
54
|
-
writable: true,
|
|
55
|
-
value: tags
|
|
56
|
-
});
|
|
57
|
-
Object.defineProperty(this, "inheritableTags", {
|
|
58
|
-
enumerable: true,
|
|
59
|
-
configurable: true,
|
|
60
|
-
writable: true,
|
|
61
|
-
value: inheritableTags
|
|
62
|
-
});
|
|
63
|
-
Object.defineProperty(this, "metadata", {
|
|
64
|
-
enumerable: true,
|
|
65
|
-
configurable: true,
|
|
66
|
-
writable: true,
|
|
67
|
-
value: metadata
|
|
68
|
-
});
|
|
69
|
-
Object.defineProperty(this, "inheritableMetadata", {
|
|
70
|
-
enumerable: true,
|
|
71
|
-
configurable: true,
|
|
72
|
-
writable: true,
|
|
73
|
-
value: inheritableMetadata
|
|
74
|
-
});
|
|
75
|
-
Object.defineProperty(this, "_parentRunId", {
|
|
76
|
-
enumerable: true,
|
|
77
|
-
configurable: true,
|
|
78
|
-
writable: true,
|
|
79
|
-
value: _parentRunId
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
async handleText(text) {
|
|
83
|
-
await Promise.all(this.handlers.map((handler) => consumeCallback(async () => {
|
|
84
|
-
try {
|
|
85
|
-
await handler.handleText?.(text, this.runId, this._parentRunId, this.tags);
|
|
86
|
-
}
|
|
87
|
-
catch (err) {
|
|
88
|
-
console.error(`Error in handler ${handler.constructor.name}, handleText: ${err}`);
|
|
89
|
-
}
|
|
90
|
-
}, handler.awaitHandlers)));
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Manages callbacks for retriever runs.
|
|
95
|
-
*/
|
|
96
|
-
export class CallbackManagerForRetrieverRun extends BaseRunManager {
|
|
97
|
-
getChild(tag) {
|
|
98
|
-
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
99
|
-
const manager = new CallbackManager(this.runId);
|
|
100
|
-
manager.setHandlers(this.inheritableHandlers);
|
|
101
|
-
manager.addTags(this.inheritableTags);
|
|
102
|
-
manager.addMetadata(this.inheritableMetadata);
|
|
103
|
-
if (tag) {
|
|
104
|
-
manager.addTags([tag], false);
|
|
105
|
-
}
|
|
106
|
-
return manager;
|
|
107
|
-
}
|
|
108
|
-
async handleRetrieverEnd(documents) {
|
|
109
|
-
await Promise.all(this.handlers.map((handler) => consumeCallback(async () => {
|
|
110
|
-
if (!handler.ignoreRetriever) {
|
|
111
|
-
try {
|
|
112
|
-
await handler.handleRetrieverEnd?.(documents, this.runId, this._parentRunId, this.tags);
|
|
113
|
-
}
|
|
114
|
-
catch (err) {
|
|
115
|
-
console.error(`Error in handler ${handler.constructor.name}, handleRetriever`);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
}, handler.awaitHandlers)));
|
|
119
|
-
}
|
|
120
|
-
async handleRetrieverError(err) {
|
|
121
|
-
await Promise.all(this.handlers.map((handler) => consumeCallback(async () => {
|
|
122
|
-
if (!handler.ignoreRetriever) {
|
|
123
|
-
try {
|
|
124
|
-
await handler.handleRetrieverError?.(err, this.runId, this._parentRunId, this.tags);
|
|
125
|
-
}
|
|
126
|
-
catch (error) {
|
|
127
|
-
console.error(`Error in handler ${handler.constructor.name}, handleRetrieverError: ${error}`);
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
}, handler.awaitHandlers)));
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
export class CallbackManagerForLLMRun extends BaseRunManager {
|
|
134
|
-
async handleLLMNewToken(token, idx, _runId, _parentRunId, _tags, fields) {
|
|
135
|
-
await Promise.all(this.handlers.map((handler) => consumeCallback(async () => {
|
|
136
|
-
if (!handler.ignoreLLM) {
|
|
137
|
-
try {
|
|
138
|
-
await handler.handleLLMNewToken?.(token, idx ?? { prompt: 0, completion: 0 }, this.runId, this._parentRunId, this.tags, fields);
|
|
139
|
-
}
|
|
140
|
-
catch (err) {
|
|
141
|
-
console.error(`Error in handler ${handler.constructor.name}, handleLLMNewToken: ${err}`);
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
}, handler.awaitHandlers)));
|
|
145
|
-
}
|
|
146
|
-
async handleLLMError(err) {
|
|
147
|
-
await Promise.all(this.handlers.map((handler) => consumeCallback(async () => {
|
|
148
|
-
if (!handler.ignoreLLM) {
|
|
149
|
-
try {
|
|
150
|
-
await handler.handleLLMError?.(err, this.runId, this._parentRunId, this.tags);
|
|
151
|
-
}
|
|
152
|
-
catch (err) {
|
|
153
|
-
console.error(`Error in handler ${handler.constructor.name}, handleLLMError: ${err}`);
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
}, handler.awaitHandlers)));
|
|
157
|
-
}
|
|
158
|
-
async handleLLMEnd(output) {
|
|
159
|
-
await Promise.all(this.handlers.map((handler) => consumeCallback(async () => {
|
|
160
|
-
if (!handler.ignoreLLM) {
|
|
161
|
-
try {
|
|
162
|
-
await handler.handleLLMEnd?.(output, this.runId, this._parentRunId, this.tags);
|
|
163
|
-
}
|
|
164
|
-
catch (err) {
|
|
165
|
-
console.error(`Error in handler ${handler.constructor.name}, handleLLMEnd: ${err}`);
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
}, handler.awaitHandlers)));
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
export class CallbackManagerForChainRun extends BaseRunManager {
|
|
172
|
-
getChild(tag) {
|
|
173
|
-
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
174
|
-
const manager = new CallbackManager(this.runId);
|
|
175
|
-
manager.setHandlers(this.inheritableHandlers);
|
|
176
|
-
manager.addTags(this.inheritableTags);
|
|
177
|
-
manager.addMetadata(this.inheritableMetadata);
|
|
178
|
-
if (tag) {
|
|
179
|
-
manager.addTags([tag], false);
|
|
180
|
-
}
|
|
181
|
-
return manager;
|
|
182
|
-
}
|
|
183
|
-
async handleChainError(err, _runId, _parentRunId, _tags, kwargs) {
|
|
184
|
-
await Promise.all(this.handlers.map((handler) => consumeCallback(async () => {
|
|
185
|
-
if (!handler.ignoreChain) {
|
|
186
|
-
try {
|
|
187
|
-
await handler.handleChainError?.(err, this.runId, this._parentRunId, this.tags, kwargs);
|
|
188
|
-
}
|
|
189
|
-
catch (err) {
|
|
190
|
-
console.error(`Error in handler ${handler.constructor.name}, handleChainError: ${err}`);
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
}, handler.awaitHandlers)));
|
|
194
|
-
}
|
|
195
|
-
async handleChainEnd(output, _runId, _parentRunId, _tags, kwargs) {
|
|
196
|
-
await Promise.all(this.handlers.map((handler) => consumeCallback(async () => {
|
|
197
|
-
if (!handler.ignoreChain) {
|
|
198
|
-
try {
|
|
199
|
-
await handler.handleChainEnd?.(output, this.runId, this._parentRunId, this.tags, kwargs);
|
|
200
|
-
}
|
|
201
|
-
catch (err) {
|
|
202
|
-
console.error(`Error in handler ${handler.constructor.name}, handleChainEnd: ${err}`);
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
}, handler.awaitHandlers)));
|
|
206
|
-
}
|
|
207
|
-
async handleAgentAction(action) {
|
|
208
|
-
await Promise.all(this.handlers.map((handler) => consumeCallback(async () => {
|
|
209
|
-
if (!handler.ignoreAgent) {
|
|
210
|
-
try {
|
|
211
|
-
await handler.handleAgentAction?.(action, this.runId, this._parentRunId, this.tags);
|
|
212
|
-
}
|
|
213
|
-
catch (err) {
|
|
214
|
-
console.error(`Error in handler ${handler.constructor.name}, handleAgentAction: ${err}`);
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
}, handler.awaitHandlers)));
|
|
218
|
-
}
|
|
219
|
-
async handleAgentEnd(action) {
|
|
220
|
-
await Promise.all(this.handlers.map((handler) => consumeCallback(async () => {
|
|
221
|
-
if (!handler.ignoreAgent) {
|
|
222
|
-
try {
|
|
223
|
-
await handler.handleAgentEnd?.(action, this.runId, this._parentRunId, this.tags);
|
|
224
|
-
}
|
|
225
|
-
catch (err) {
|
|
226
|
-
console.error(`Error in handler ${handler.constructor.name}, handleAgentEnd: ${err}`);
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
}, handler.awaitHandlers)));
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
export class CallbackManagerForToolRun extends BaseRunManager {
|
|
233
|
-
getChild(tag) {
|
|
234
|
-
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
235
|
-
const manager = new CallbackManager(this.runId);
|
|
236
|
-
manager.setHandlers(this.inheritableHandlers);
|
|
237
|
-
manager.addTags(this.inheritableTags);
|
|
238
|
-
manager.addMetadata(this.inheritableMetadata);
|
|
239
|
-
if (tag) {
|
|
240
|
-
manager.addTags([tag], false);
|
|
241
|
-
}
|
|
242
|
-
return manager;
|
|
243
|
-
}
|
|
244
|
-
async handleToolError(err) {
|
|
245
|
-
await Promise.all(this.handlers.map((handler) => consumeCallback(async () => {
|
|
246
|
-
if (!handler.ignoreAgent) {
|
|
247
|
-
try {
|
|
248
|
-
await handler.handleToolError?.(err, this.runId, this._parentRunId, this.tags);
|
|
249
|
-
}
|
|
250
|
-
catch (err) {
|
|
251
|
-
console.error(`Error in handler ${handler.constructor.name}, handleToolError: ${err}`);
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
}, handler.awaitHandlers)));
|
|
255
|
-
}
|
|
256
|
-
async handleToolEnd(output) {
|
|
257
|
-
await Promise.all(this.handlers.map((handler) => consumeCallback(async () => {
|
|
258
|
-
if (!handler.ignoreAgent) {
|
|
259
|
-
try {
|
|
260
|
-
await handler.handleToolEnd?.(output, this.runId, this._parentRunId, this.tags);
|
|
261
|
-
}
|
|
262
|
-
catch (err) {
|
|
263
|
-
console.error(`Error in handler ${handler.constructor.name}, handleToolEnd: ${err}`);
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
}, handler.awaitHandlers)));
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
/**
|
|
270
|
-
* @example
|
|
271
|
-
* ```typescript
|
|
272
|
-
* const prompt = PromptTemplate.fromTemplate("What is the answer to {question}?");
|
|
273
|
-
*
|
|
274
|
-
* // Example of using LLMChain with OpenAI and a simple prompt
|
|
275
|
-
* const chain = new LLMChain({
|
|
276
|
-
* llm: new ChatOpenAI({ temperature: 0.9 }),
|
|
277
|
-
* prompt,
|
|
278
|
-
* });
|
|
279
|
-
*
|
|
280
|
-
* // Running the chain with a single question
|
|
281
|
-
* const result = await chain.call({
|
|
282
|
-
* question: "What is the airspeed velocity of an unladen swallow?",
|
|
283
|
-
* });
|
|
284
|
-
* console.log("The answer is:", result);
|
|
285
|
-
* ```
|
|
286
|
-
*/
|
|
287
|
-
export class CallbackManager extends BaseCallbackManager {
|
|
288
|
-
constructor(parentRunId) {
|
|
289
|
-
super();
|
|
290
|
-
Object.defineProperty(this, "handlers", {
|
|
291
|
-
enumerable: true,
|
|
292
|
-
configurable: true,
|
|
293
|
-
writable: true,
|
|
294
|
-
value: void 0
|
|
295
|
-
});
|
|
296
|
-
Object.defineProperty(this, "inheritableHandlers", {
|
|
297
|
-
enumerable: true,
|
|
298
|
-
configurable: true,
|
|
299
|
-
writable: true,
|
|
300
|
-
value: void 0
|
|
301
|
-
});
|
|
302
|
-
Object.defineProperty(this, "tags", {
|
|
303
|
-
enumerable: true,
|
|
304
|
-
configurable: true,
|
|
305
|
-
writable: true,
|
|
306
|
-
value: []
|
|
307
|
-
});
|
|
308
|
-
Object.defineProperty(this, "inheritableTags", {
|
|
309
|
-
enumerable: true,
|
|
310
|
-
configurable: true,
|
|
311
|
-
writable: true,
|
|
312
|
-
value: []
|
|
313
|
-
});
|
|
314
|
-
Object.defineProperty(this, "metadata", {
|
|
315
|
-
enumerable: true,
|
|
316
|
-
configurable: true,
|
|
317
|
-
writable: true,
|
|
318
|
-
value: {}
|
|
319
|
-
});
|
|
320
|
-
Object.defineProperty(this, "inheritableMetadata", {
|
|
321
|
-
enumerable: true,
|
|
322
|
-
configurable: true,
|
|
323
|
-
writable: true,
|
|
324
|
-
value: {}
|
|
325
|
-
});
|
|
326
|
-
Object.defineProperty(this, "name", {
|
|
327
|
-
enumerable: true,
|
|
328
|
-
configurable: true,
|
|
329
|
-
writable: true,
|
|
330
|
-
value: "callback_manager"
|
|
331
|
-
});
|
|
332
|
-
Object.defineProperty(this, "_parentRunId", {
|
|
333
|
-
enumerable: true,
|
|
334
|
-
configurable: true,
|
|
335
|
-
writable: true,
|
|
336
|
-
value: void 0
|
|
337
|
-
});
|
|
338
|
-
this.handlers = [];
|
|
339
|
-
this.inheritableHandlers = [];
|
|
340
|
-
this._parentRunId = parentRunId;
|
|
341
|
-
}
|
|
342
|
-
async handleLLMStart(llm, prompts, _runId = undefined, _parentRunId = undefined, extraParams = undefined, _tags = undefined, _metadata = undefined, runName = undefined) {
|
|
343
|
-
return Promise.all(prompts.map(async (prompt) => {
|
|
344
|
-
const runId = uuidv4();
|
|
345
|
-
await Promise.all(this.handlers.map((handler) => consumeCallback(async () => {
|
|
346
|
-
if (!handler.ignoreLLM) {
|
|
347
|
-
try {
|
|
348
|
-
await handler.handleLLMStart?.(llm, [prompt], runId, this._parentRunId, extraParams, this.tags, this.metadata, runName);
|
|
349
|
-
}
|
|
350
|
-
catch (err) {
|
|
351
|
-
console.error(`Error in handler ${handler.constructor.name}, handleLLMStart: ${err}`);
|
|
352
|
-
}
|
|
353
|
-
}
|
|
354
|
-
}, handler.awaitHandlers)));
|
|
355
|
-
return new CallbackManagerForLLMRun(runId, this.handlers, this.inheritableHandlers, this.tags, this.inheritableTags, this.metadata, this.inheritableMetadata, this._parentRunId);
|
|
356
|
-
}));
|
|
357
|
-
}
|
|
358
|
-
async handleChatModelStart(llm, messages, _runId = undefined, _parentRunId = undefined, extraParams = undefined, _tags = undefined, _metadata = undefined, runName = undefined) {
|
|
359
|
-
return Promise.all(messages.map(async (messageGroup) => {
|
|
360
|
-
const runId = uuidv4();
|
|
361
|
-
await Promise.all(this.handlers.map((handler) => consumeCallback(async () => {
|
|
362
|
-
if (!handler.ignoreLLM) {
|
|
363
|
-
try {
|
|
364
|
-
if (handler.handleChatModelStart) {
|
|
365
|
-
await handler.handleChatModelStart?.(llm, [messageGroup], runId, this._parentRunId, extraParams, this.tags, this.metadata, runName);
|
|
366
|
-
}
|
|
367
|
-
else if (handler.handleLLMStart) {
|
|
368
|
-
const messageString = getBufferString(messageGroup);
|
|
369
|
-
await handler.handleLLMStart?.(llm, [messageString], runId, this._parentRunId, extraParams, this.tags, this.metadata, runName);
|
|
370
|
-
}
|
|
371
|
-
}
|
|
372
|
-
catch (err) {
|
|
373
|
-
console.error(`Error in handler ${handler.constructor.name}, handleLLMStart: ${err}`);
|
|
374
|
-
}
|
|
375
|
-
}
|
|
376
|
-
}, handler.awaitHandlers)));
|
|
377
|
-
return new CallbackManagerForLLMRun(runId, this.handlers, this.inheritableHandlers, this.tags, this.inheritableTags, this.metadata, this.inheritableMetadata, this._parentRunId);
|
|
378
|
-
}));
|
|
379
|
-
}
|
|
380
|
-
async handleChainStart(chain, inputs, runId = uuidv4(), runType = undefined, _tags = undefined, _metadata = undefined, runName = undefined) {
|
|
381
|
-
await Promise.all(this.handlers.map((handler) => consumeCallback(async () => {
|
|
382
|
-
if (!handler.ignoreChain) {
|
|
383
|
-
try {
|
|
384
|
-
await handler.handleChainStart?.(chain, inputs, runId, this._parentRunId, this.tags, this.metadata, runType, runName);
|
|
385
|
-
}
|
|
386
|
-
catch (err) {
|
|
387
|
-
console.error(`Error in handler ${handler.constructor.name}, handleChainStart: ${err}`);
|
|
388
|
-
}
|
|
389
|
-
}
|
|
390
|
-
}, handler.awaitHandlers)));
|
|
391
|
-
return new CallbackManagerForChainRun(runId, this.handlers, this.inheritableHandlers, this.tags, this.inheritableTags, this.metadata, this.inheritableMetadata, this._parentRunId);
|
|
392
|
-
}
|
|
393
|
-
async handleToolStart(tool, input, runId = uuidv4(), _parentRunId = undefined, _tags = undefined, _metadata = undefined, runName = undefined) {
|
|
394
|
-
await Promise.all(this.handlers.map((handler) => consumeCallback(async () => {
|
|
395
|
-
if (!handler.ignoreAgent) {
|
|
396
|
-
try {
|
|
397
|
-
await handler.handleToolStart?.(tool, input, runId, this._parentRunId, this.tags, this.metadata, runName);
|
|
398
|
-
}
|
|
399
|
-
catch (err) {
|
|
400
|
-
console.error(`Error in handler ${handler.constructor.name}, handleToolStart: ${err}`);
|
|
401
|
-
}
|
|
402
|
-
}
|
|
403
|
-
}, handler.awaitHandlers)));
|
|
404
|
-
return new CallbackManagerForToolRun(runId, this.handlers, this.inheritableHandlers, this.tags, this.inheritableTags, this.metadata, this.inheritableMetadata, this._parentRunId);
|
|
405
|
-
}
|
|
406
|
-
async handleRetrieverStart(retriever, query, runId = uuidv4(), _parentRunId = undefined, _tags = undefined, _metadata = undefined, runName = undefined) {
|
|
407
|
-
await Promise.all(this.handlers.map((handler) => consumeCallback(async () => {
|
|
408
|
-
if (!handler.ignoreRetriever) {
|
|
409
|
-
try {
|
|
410
|
-
await handler.handleRetrieverStart?.(retriever, query, runId, this._parentRunId, this.tags, this.metadata, runName);
|
|
411
|
-
}
|
|
412
|
-
catch (err) {
|
|
413
|
-
console.error(`Error in handler ${handler.constructor.name}, handleRetrieverStart: ${err}`);
|
|
414
|
-
}
|
|
415
|
-
}
|
|
416
|
-
}, handler.awaitHandlers)));
|
|
417
|
-
return new CallbackManagerForRetrieverRun(runId, this.handlers, this.inheritableHandlers, this.tags, this.inheritableTags, this.metadata, this.inheritableMetadata, this._parentRunId);
|
|
418
|
-
}
|
|
419
|
-
addHandler(handler, inherit = true) {
|
|
420
|
-
this.handlers.push(handler);
|
|
421
|
-
if (inherit) {
|
|
422
|
-
this.inheritableHandlers.push(handler);
|
|
423
|
-
}
|
|
424
|
-
}
|
|
425
|
-
removeHandler(handler) {
|
|
426
|
-
this.handlers = this.handlers.filter((_handler) => _handler !== handler);
|
|
427
|
-
this.inheritableHandlers = this.inheritableHandlers.filter((_handler) => _handler !== handler);
|
|
428
|
-
}
|
|
429
|
-
setHandlers(handlers, inherit = true) {
|
|
430
|
-
this.handlers = [];
|
|
431
|
-
this.inheritableHandlers = [];
|
|
432
|
-
for (const handler of handlers) {
|
|
433
|
-
this.addHandler(handler, inherit);
|
|
434
|
-
}
|
|
435
|
-
}
|
|
436
|
-
addTags(tags, inherit = true) {
|
|
437
|
-
this.removeTags(tags); // Remove duplicates
|
|
438
|
-
this.tags.push(...tags);
|
|
439
|
-
if (inherit) {
|
|
440
|
-
this.inheritableTags.push(...tags);
|
|
441
|
-
}
|
|
442
|
-
}
|
|
443
|
-
removeTags(tags) {
|
|
444
|
-
this.tags = this.tags.filter((tag) => !tags.includes(tag));
|
|
445
|
-
this.inheritableTags = this.inheritableTags.filter((tag) => !tags.includes(tag));
|
|
446
|
-
}
|
|
447
|
-
addMetadata(metadata, inherit = true) {
|
|
448
|
-
this.metadata = { ...this.metadata, ...metadata };
|
|
449
|
-
if (inherit) {
|
|
450
|
-
this.inheritableMetadata = { ...this.inheritableMetadata, ...metadata };
|
|
451
|
-
}
|
|
452
|
-
}
|
|
453
|
-
removeMetadata(metadata) {
|
|
454
|
-
for (const key of Object.keys(metadata)) {
|
|
455
|
-
delete this.metadata[key];
|
|
456
|
-
delete this.inheritableMetadata[key];
|
|
457
|
-
}
|
|
458
|
-
}
|
|
459
|
-
copy(additionalHandlers = [], inherit = true) {
|
|
460
|
-
const manager = new CallbackManager(this._parentRunId);
|
|
461
|
-
for (const handler of this.handlers) {
|
|
462
|
-
const inheritable = this.inheritableHandlers.includes(handler);
|
|
463
|
-
manager.addHandler(handler, inheritable);
|
|
464
|
-
}
|
|
465
|
-
for (const tag of this.tags) {
|
|
466
|
-
const inheritable = this.inheritableTags.includes(tag);
|
|
467
|
-
manager.addTags([tag], inheritable);
|
|
468
|
-
}
|
|
469
|
-
for (const key of Object.keys(this.metadata)) {
|
|
470
|
-
const inheritable = Object.keys(this.inheritableMetadata).includes(key);
|
|
471
|
-
manager.addMetadata({ [key]: this.metadata[key] }, inheritable);
|
|
472
|
-
}
|
|
473
|
-
for (const handler of additionalHandlers) {
|
|
474
|
-
if (
|
|
475
|
-
// Prevent multiple copies of console_callback_handler
|
|
476
|
-
manager.handlers
|
|
477
|
-
.filter((h) => h.name === "console_callback_handler")
|
|
478
|
-
.some((h) => h.name === handler.name)) {
|
|
479
|
-
continue;
|
|
480
|
-
}
|
|
481
|
-
manager.addHandler(handler, inherit);
|
|
482
|
-
}
|
|
483
|
-
return manager;
|
|
484
|
-
}
|
|
485
|
-
static fromHandlers(handlers) {
|
|
486
|
-
class Handler extends BaseCallbackHandler {
|
|
487
|
-
constructor() {
|
|
488
|
-
super();
|
|
489
|
-
Object.defineProperty(this, "name", {
|
|
490
|
-
enumerable: true,
|
|
491
|
-
configurable: true,
|
|
492
|
-
writable: true,
|
|
493
|
-
value: uuidv4()
|
|
494
|
-
});
|
|
495
|
-
Object.assign(this, handlers);
|
|
496
|
-
}
|
|
497
|
-
}
|
|
498
|
-
const manager = new this();
|
|
499
|
-
manager.addHandler(new Handler());
|
|
500
|
-
return manager;
|
|
501
|
-
}
|
|
502
|
-
static async configure(inheritableHandlers, localHandlers, inheritableTags, localTags, inheritableMetadata, localMetadata, options) {
|
|
503
|
-
let callbackManager;
|
|
504
|
-
if (inheritableHandlers || localHandlers) {
|
|
505
|
-
if (Array.isArray(inheritableHandlers) || !inheritableHandlers) {
|
|
506
|
-
callbackManager = new CallbackManager();
|
|
507
|
-
callbackManager.setHandlers(inheritableHandlers?.map(ensureHandler) ?? [], true);
|
|
508
|
-
}
|
|
509
|
-
else {
|
|
510
|
-
callbackManager = inheritableHandlers;
|
|
511
|
-
}
|
|
512
|
-
callbackManager = callbackManager.copy(Array.isArray(localHandlers)
|
|
513
|
-
? localHandlers.map(ensureHandler)
|
|
514
|
-
: localHandlers?.handlers, false);
|
|
515
|
-
}
|
|
516
|
-
const verboseEnabled = getEnvironmentVariable("LANGCHAIN_VERBOSE") === "true" ||
|
|
517
|
-
options?.verbose;
|
|
518
|
-
const tracingV2Enabled = getEnvironmentVariable("LANGCHAIN_TRACING_V2") === "true";
|
|
519
|
-
const tracingEnabled = tracingV2Enabled ||
|
|
520
|
-
(getEnvironmentVariable("LANGCHAIN_TRACING") ?? false);
|
|
521
|
-
if (verboseEnabled || tracingEnabled) {
|
|
522
|
-
if (!callbackManager) {
|
|
523
|
-
callbackManager = new CallbackManager();
|
|
524
|
-
}
|
|
525
|
-
if (verboseEnabled &&
|
|
526
|
-
!callbackManager.handlers.some((handler) => handler.name === ConsoleCallbackHandler.prototype.name)) {
|
|
527
|
-
const consoleHandler = new ConsoleCallbackHandler();
|
|
528
|
-
callbackManager.addHandler(consoleHandler, true);
|
|
529
|
-
}
|
|
530
|
-
if (tracingEnabled &&
|
|
531
|
-
!callbackManager.handlers.some((handler) => handler.name === "langchain_tracer")) {
|
|
532
|
-
if (tracingV2Enabled) {
|
|
533
|
-
callbackManager.addHandler(await getTracingV2CallbackHandler(), true);
|
|
534
|
-
}
|
|
535
|
-
else {
|
|
536
|
-
const session = getEnvironmentVariable("LANGCHAIN_PROJECT") &&
|
|
537
|
-
getEnvironmentVariable("LANGCHAIN_SESSION");
|
|
538
|
-
callbackManager.addHandler(await getTracingCallbackHandler(session), true);
|
|
539
|
-
}
|
|
540
|
-
}
|
|
541
|
-
}
|
|
542
|
-
if (inheritableTags || localTags) {
|
|
543
|
-
if (callbackManager) {
|
|
544
|
-
callbackManager.addTags(inheritableTags ?? []);
|
|
545
|
-
callbackManager.addTags(localTags ?? [], false);
|
|
546
|
-
}
|
|
547
|
-
}
|
|
548
|
-
if (inheritableMetadata || localMetadata) {
|
|
549
|
-
if (callbackManager) {
|
|
550
|
-
callbackManager.addMetadata(inheritableMetadata ?? {});
|
|
551
|
-
callbackManager.addMetadata(localMetadata ?? {}, false);
|
|
552
|
-
}
|
|
553
|
-
}
|
|
554
|
-
return callbackManager;
|
|
555
|
-
}
|
|
556
|
-
}
|
|
557
|
-
function ensureHandler(handler) {
|
|
558
|
-
if ("name" in handler) {
|
|
559
|
-
return handler;
|
|
560
|
-
}
|
|
561
|
-
return BaseCallbackHandler.fromMethods(handler);
|
|
562
|
-
}
|
|
563
|
-
/**
|
|
564
|
-
* @example
|
|
565
|
-
* ```typescript
|
|
566
|
-
* const prompt = PromptTemplate.fromTemplate(`What is the answer to {question}?`);
|
|
567
|
-
*
|
|
568
|
-
* // Example of using LLMChain to process a series of questions
|
|
569
|
-
* const chain = new LLMChain({
|
|
570
|
-
* llm: new ChatOpenAI({ temperature: 0.9 }),
|
|
571
|
-
* prompt,
|
|
572
|
-
* });
|
|
573
|
-
*
|
|
574
|
-
* // Process questions using the chain
|
|
575
|
-
* const processQuestions = async (questions) => {
|
|
576
|
-
* for (const question of questions) {
|
|
577
|
-
* const result = await chain.call({ question });
|
|
578
|
-
* console.log(result);
|
|
579
|
-
* }
|
|
580
|
-
* };
|
|
581
|
-
*
|
|
582
|
-
* // Example questions
|
|
583
|
-
* const questions = [
|
|
584
|
-
* "What is your name?",
|
|
585
|
-
* "What is your quest?",
|
|
586
|
-
* "What is your favorite color?",
|
|
587
|
-
* ];
|
|
588
|
-
*
|
|
589
|
-
* // Run the example
|
|
590
|
-
* processQuestions(questions).catch(console.error);
|
|
591
|
-
*
|
|
592
|
-
* ```
|
|
593
|
-
*/
|
|
594
|
-
export class TraceGroup {
|
|
595
|
-
constructor(groupName, options) {
|
|
596
|
-
Object.defineProperty(this, "groupName", {
|
|
597
|
-
enumerable: true,
|
|
598
|
-
configurable: true,
|
|
599
|
-
writable: true,
|
|
600
|
-
value: groupName
|
|
601
|
-
});
|
|
602
|
-
Object.defineProperty(this, "options", {
|
|
603
|
-
enumerable: true,
|
|
604
|
-
configurable: true,
|
|
605
|
-
writable: true,
|
|
606
|
-
value: options
|
|
607
|
-
});
|
|
608
|
-
Object.defineProperty(this, "runManager", {
|
|
609
|
-
enumerable: true,
|
|
610
|
-
configurable: true,
|
|
611
|
-
writable: true,
|
|
612
|
-
value: void 0
|
|
613
|
-
});
|
|
614
|
-
}
|
|
615
|
-
async getTraceGroupCallbackManager(group_name, inputs, options) {
|
|
616
|
-
const cb = new LangChainTracer(options);
|
|
617
|
-
const cm = await CallbackManager.configure([cb]);
|
|
618
|
-
const runManager = await cm?.handleChainStart({
|
|
619
|
-
lc: 1,
|
|
620
|
-
type: "not_implemented",
|
|
621
|
-
id: ["langchain", "callbacks", "groups", group_name],
|
|
622
|
-
}, inputs ?? {});
|
|
623
|
-
if (!runManager) {
|
|
624
|
-
throw new Error("Failed to create run group callback manager.");
|
|
625
|
-
}
|
|
626
|
-
return runManager;
|
|
627
|
-
}
|
|
628
|
-
async start(inputs) {
|
|
629
|
-
if (!this.runManager) {
|
|
630
|
-
this.runManager = await this.getTraceGroupCallbackManager(this.groupName, inputs, this.options);
|
|
631
|
-
}
|
|
632
|
-
return this.runManager.getChild();
|
|
633
|
-
}
|
|
634
|
-
async error(err) {
|
|
635
|
-
if (this.runManager) {
|
|
636
|
-
await this.runManager.handleChainError(err);
|
|
637
|
-
this.runManager = undefined;
|
|
638
|
-
}
|
|
639
|
-
}
|
|
640
|
-
async end(output) {
|
|
641
|
-
if (this.runManager) {
|
|
642
|
-
await this.runManager.handleChainEnd(output ?? {});
|
|
643
|
-
this.runManager = undefined;
|
|
644
|
-
}
|
|
645
|
-
}
|
|
646
|
-
}
|
|
647
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
648
|
-
function _coerceToDict(value, defaultKey) {
|
|
649
|
-
return value && !Array.isArray(value) && typeof value === "object"
|
|
650
|
-
? value
|
|
651
|
-
: { [defaultKey]: value };
|
|
652
|
-
}
|
|
653
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
654
|
-
export async function traceAsGroup(groupOptions, enclosedCode, ...args) {
|
|
655
|
-
const traceGroup = new TraceGroup(groupOptions.name, groupOptions);
|
|
656
|
-
const callbackManager = await traceGroup.start({ ...args });
|
|
657
|
-
try {
|
|
658
|
-
const result = await enclosedCode(callbackManager, ...args);
|
|
659
|
-
await traceGroup.end(_coerceToDict(result, "output"));
|
|
660
|
-
return result;
|
|
661
|
-
}
|
|
662
|
-
catch (err) {
|
|
663
|
-
await traceGroup.error(err);
|
|
664
|
-
throw err;
|
|
665
|
-
}
|
|
666
|
-
}
|
|
1
|
+
export * from "langchain-core/callbacks/manager";
|