langchain 0.0.195 → 0.0.197-rc.0

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