langchain 0.0.74 → 0.0.76

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 (163) hide show
  1. package/client.cjs +1 -0
  2. package/client.d.ts +1 -0
  3. package/client.js +1 -0
  4. package/dist/base_language/count_tokens.cjs +5 -21
  5. package/dist/base_language/count_tokens.d.ts +1 -6
  6. package/dist/base_language/count_tokens.js +4 -19
  7. package/dist/base_language/index.cjs +16 -24
  8. package/dist/base_language/index.d.ts +22 -3
  9. package/dist/base_language/index.js +17 -25
  10. package/dist/cache/redis.d.ts +3 -1
  11. package/dist/callbacks/base.d.ts +17 -3
  12. package/dist/callbacks/handlers/console.cjs +15 -28
  13. package/dist/callbacks/handlers/console.d.ts +11 -20
  14. package/dist/callbacks/handlers/console.js +14 -27
  15. package/dist/callbacks/handlers/initialize.cjs +8 -3
  16. package/dist/callbacks/handlers/initialize.d.ts +4 -2
  17. package/dist/callbacks/handlers/initialize.js +6 -2
  18. package/dist/callbacks/handlers/tracer.cjs +193 -0
  19. package/dist/callbacks/handlers/tracer.d.ts +65 -0
  20. package/dist/callbacks/handlers/tracer.js +189 -0
  21. package/dist/callbacks/handlers/tracer_langchain.cjs +163 -0
  22. package/dist/callbacks/handlers/tracer_langchain.d.ts +39 -0
  23. package/dist/callbacks/handlers/tracer_langchain.js +159 -0
  24. package/dist/callbacks/handlers/tracer_langchain_v1.cjs +202 -0
  25. package/dist/callbacks/handlers/tracer_langchain_v1.d.ts +57 -0
  26. package/dist/callbacks/handlers/tracer_langchain_v1.js +198 -0
  27. package/dist/callbacks/index.cjs +10 -5
  28. package/dist/callbacks/index.d.ts +5 -3
  29. package/dist/callbacks/index.js +5 -3
  30. package/dist/callbacks/manager.cjs +39 -9
  31. package/dist/callbacks/manager.d.ts +5 -2
  32. package/dist/callbacks/manager.js +40 -10
  33. package/dist/chains/llm_chain.cjs +17 -5
  34. package/dist/chains/llm_chain.d.ts +9 -3
  35. package/dist/chains/llm_chain.js +17 -5
  36. package/dist/chains/question_answering/map_reduce_prompts.cjs +5 -5
  37. package/dist/chains/question_answering/map_reduce_prompts.d.ts +1 -1
  38. package/dist/chains/question_answering/map_reduce_prompts.js +1 -1
  39. package/dist/chains/question_answering/refine_prompts.cjs +5 -5
  40. package/dist/chains/question_answering/refine_prompts.d.ts +1 -1
  41. package/dist/chains/question_answering/refine_prompts.js +1 -1
  42. package/dist/chains/question_answering/stuff_prompts.cjs +2 -2
  43. package/dist/chains/question_answering/stuff_prompts.d.ts +1 -1
  44. package/dist/chains/question_answering/stuff_prompts.js +1 -1
  45. package/dist/chains/sequential_chain.cjs +2 -2
  46. package/dist/chains/sequential_chain.d.ts +2 -2
  47. package/dist/chains/sequential_chain.js +2 -2
  48. package/dist/chains/sql_db/sql_db_prompt.cjs +20 -1
  49. package/dist/chains/sql_db/sql_db_prompt.d.ts +1 -0
  50. package/dist/chains/sql_db/sql_db_prompt.js +19 -0
  51. package/dist/chains/summarization/load.cjs +14 -5
  52. package/dist/chains/summarization/load.d.ts +7 -2
  53. package/dist/chains/summarization/load.js +14 -5
  54. package/dist/chat_models/anthropic.cjs +36 -9
  55. package/dist/chat_models/anthropic.d.ts +6 -3
  56. package/dist/chat_models/anthropic.js +36 -9
  57. package/dist/chat_models/base.cjs +40 -13
  58. package/dist/chat_models/base.d.ts +14 -7
  59. package/dist/chat_models/base.js +41 -14
  60. package/dist/chat_models/openai.cjs +20 -14
  61. package/dist/chat_models/openai.d.ts +2 -1
  62. package/dist/chat_models/openai.js +20 -14
  63. package/dist/client/index.cjs +5 -0
  64. package/dist/client/index.d.ts +1 -0
  65. package/dist/client/index.js +1 -0
  66. package/dist/client/langchainplus.cjs +405 -0
  67. package/dist/client/langchainplus.d.ts +65 -0
  68. package/dist/client/langchainplus.js +398 -0
  69. package/dist/document_loaders/fs/unstructured.cjs +8 -0
  70. package/dist/document_loaders/fs/unstructured.d.ts +3 -0
  71. package/dist/document_loaders/fs/unstructured.js +8 -0
  72. package/dist/document_loaders/web/apify_dataset.cjs +64 -0
  73. package/dist/document_loaders/web/apify_dataset.d.ts +28 -0
  74. package/dist/document_loaders/web/apify_dataset.js +60 -0
  75. package/dist/embeddings/openai.cjs +2 -2
  76. package/dist/embeddings/openai.js +2 -2
  77. package/dist/llms/base.cjs +43 -17
  78. package/dist/llms/base.d.ts +16 -9
  79. package/dist/llms/base.js +44 -18
  80. package/dist/llms/cohere.cjs +3 -2
  81. package/dist/llms/cohere.d.ts +1 -1
  82. package/dist/llms/cohere.js +3 -2
  83. package/dist/llms/hf.cjs +2 -2
  84. package/dist/llms/hf.d.ts +1 -1
  85. package/dist/llms/hf.js +2 -2
  86. package/dist/llms/openai-chat.cjs +13 -14
  87. package/dist/llms/openai-chat.d.ts +2 -1
  88. package/dist/llms/openai-chat.js +13 -14
  89. package/dist/llms/openai.cjs +15 -13
  90. package/dist/llms/openai.d.ts +4 -3
  91. package/dist/llms/openai.js +15 -13
  92. package/dist/llms/replicate.cjs +2 -2
  93. package/dist/llms/replicate.d.ts +1 -1
  94. package/dist/llms/replicate.js +2 -2
  95. package/dist/memory/base.cjs +9 -1
  96. package/dist/memory/base.d.ts +1 -0
  97. package/dist/memory/base.js +7 -0
  98. package/dist/memory/entity_memory.cjs +151 -0
  99. package/dist/memory/entity_memory.d.ts +35 -0
  100. package/dist/memory/entity_memory.js +147 -0
  101. package/dist/memory/index.cjs +5 -1
  102. package/dist/memory/index.d.ts +2 -0
  103. package/dist/memory/index.js +2 -0
  104. package/dist/memory/prompt.cjs +84 -1
  105. package/dist/memory/prompt.d.ts +6 -0
  106. package/dist/memory/prompt.js +83 -0
  107. package/dist/memory/stores/entity/in_memory.cjs +32 -0
  108. package/dist/memory/stores/entity/in_memory.d.ts +10 -0
  109. package/dist/memory/stores/entity/in_memory.js +28 -0
  110. package/dist/prompts/index.cjs +6 -1
  111. package/dist/prompts/index.d.ts +1 -0
  112. package/dist/prompts/index.js +1 -0
  113. package/dist/{chains/prompt_selector.d.ts → prompts/selectors/conditional.d.ts} +4 -4
  114. package/dist/retrievers/document_compressors/chain_extract.cjs +9 -11
  115. package/dist/retrievers/document_compressors/chain_extract.js +9 -11
  116. package/dist/schema/index.cjs +13 -1
  117. package/dist/schema/index.d.ts +19 -0
  118. package/dist/schema/index.js +11 -0
  119. package/dist/stores/message/dynamodb.cjs +8 -6
  120. package/dist/stores/message/dynamodb.js +8 -6
  121. package/dist/stores/message/redis.cjs +69 -0
  122. package/dist/stores/message/redis.d.ts +18 -0
  123. package/dist/stores/message/redis.js +65 -0
  124. package/dist/stores/message/utils.cjs +30 -15
  125. package/dist/stores/message/utils.d.ts +4 -2
  126. package/dist/stores/message/utils.js +28 -14
  127. package/dist/text_splitter.cjs +3 -23
  128. package/dist/text_splitter.d.ts +1 -3
  129. package/dist/text_splitter.js +3 -23
  130. package/dist/tools/webbrowser.cjs +5 -7
  131. package/dist/tools/webbrowser.js +3 -5
  132. package/dist/types/openai-types.d.ts +3 -2
  133. package/dist/util/async_caller.cjs +16 -0
  134. package/dist/util/async_caller.d.ts +4 -0
  135. package/dist/util/async_caller.js +16 -0
  136. package/dist/util/axios-fetch-adapter.cjs +6 -0
  137. package/dist/util/axios-fetch-adapter.js +6 -0
  138. package/dist/util/env.cjs +39 -7
  139. package/dist/util/env.d.ts +19 -0
  140. package/dist/util/env.js +32 -6
  141. package/dist/util/sql_utils.cjs +18 -0
  142. package/dist/util/sql_utils.js +19 -1
  143. package/dist/util/tiktoken.cjs +26 -0
  144. package/dist/util/tiktoken.d.ts +9 -0
  145. package/dist/util/tiktoken.js +21 -0
  146. package/dist/vectorstores/redis.cjs +236 -0
  147. package/dist/vectorstores/redis.d.ts +80 -0
  148. package/dist/vectorstores/redis.js +232 -0
  149. package/document_loaders/web/apify_dataset.cjs +1 -0
  150. package/document_loaders/web/apify_dataset.d.ts +1 -0
  151. package/document_loaders/web/apify_dataset.js +1 -0
  152. package/package.json +41 -5
  153. package/stores/message/redis.cjs +1 -0
  154. package/stores/message/redis.d.ts +1 -0
  155. package/stores/message/redis.js +1 -0
  156. package/vectorstores/redis.cjs +1 -0
  157. package/vectorstores/redis.d.ts +1 -0
  158. package/vectorstores/redis.js +1 -0
  159. package/dist/callbacks/handlers/tracers.cjs +0 -341
  160. package/dist/callbacks/handlers/tracers.d.ts +0 -100
  161. package/dist/callbacks/handlers/tracers.js +0 -336
  162. /package/dist/{chains/prompt_selector.cjs → prompts/selectors/conditional.cjs} +0 -0
  163. /package/dist/{chains/prompt_selector.js → prompts/selectors/conditional.js} +0 -0
@@ -1,336 +0,0 @@
1
- import { BaseCallbackHandler } from "../base.js";
2
- export class BaseTracer extends BaseCallbackHandler {
3
- constructor() {
4
- super();
5
- Object.defineProperty(this, "session", {
6
- enumerable: true,
7
- configurable: true,
8
- writable: true,
9
- value: void 0
10
- });
11
- Object.defineProperty(this, "runMap", {
12
- enumerable: true,
13
- configurable: true,
14
- writable: true,
15
- value: new Map()
16
- });
17
- }
18
- copy() {
19
- return this;
20
- }
21
- async newSession(sessionName) {
22
- const sessionCreate = {
23
- start_time: Date.now(),
24
- name: sessionName,
25
- };
26
- const session = await this.persistSession(sessionCreate);
27
- this.session = session;
28
- return session;
29
- }
30
- _addChildRun(parentRun, childRun) {
31
- if (childRun.type === "llm") {
32
- parentRun.child_llm_runs.push(childRun);
33
- }
34
- else if (childRun.type === "chain") {
35
- parentRun.child_chain_runs.push(childRun);
36
- }
37
- else if (childRun.type === "tool") {
38
- parentRun.child_tool_runs.push(childRun);
39
- }
40
- else {
41
- throw new Error("Invalid run type");
42
- }
43
- }
44
- _startTrace(run) {
45
- if (run.parent_uuid) {
46
- const parentRun = this.runMap.get(run.parent_uuid);
47
- if (parentRun) {
48
- if (!(parentRun.type === "tool" || parentRun.type === "chain")) {
49
- throw new Error("Caller run can only be a tool or chain");
50
- }
51
- else {
52
- this._addChildRun(parentRun, run);
53
- }
54
- }
55
- else {
56
- throw new Error(`Caller run ${run.parent_uuid} not found`);
57
- }
58
- }
59
- this.runMap.set(run.uuid, run);
60
- }
61
- async _endTrace(run) {
62
- if (!run.parent_uuid) {
63
- await this.persistRun(run);
64
- }
65
- else {
66
- const parentRun = this.runMap.get(run.parent_uuid);
67
- if (parentRun === undefined) {
68
- throw new Error(`Parent run ${run.parent_uuid} not found`);
69
- }
70
- parentRun.child_execution_order = Math.max(parentRun.child_execution_order, run.child_execution_order);
71
- }
72
- this.runMap.delete(run.uuid);
73
- }
74
- _getExecutionOrder(parentRunId) {
75
- // If a run has no parent then execution order is 1
76
- if (parentRunId === undefined) {
77
- return 1;
78
- }
79
- const parentRun = this.runMap.get(parentRunId);
80
- if (parentRun === undefined) {
81
- throw new Error(`Parent run ${parentRunId} not found`);
82
- }
83
- return parentRun.child_execution_order + 1;
84
- }
85
- async handleLLMStart(llm, prompts, runId, parentRunId) {
86
- if (this.session === undefined) {
87
- this.session = await this.loadDefaultSession();
88
- }
89
- const execution_order = this._getExecutionOrder(parentRunId);
90
- const run = {
91
- uuid: runId,
92
- parent_uuid: parentRunId,
93
- start_time: Date.now(),
94
- end_time: 0,
95
- serialized: llm,
96
- prompts,
97
- session_id: this.session.id,
98
- execution_order,
99
- child_execution_order: execution_order,
100
- type: "llm",
101
- };
102
- this._startTrace(run);
103
- await this.onLLMStart?.(run);
104
- }
105
- async handleLLMEnd(output, runId) {
106
- const run = this.runMap.get(runId);
107
- if (!run || run?.type !== "llm") {
108
- throw new Error("No LLM run to end.");
109
- }
110
- const llmRun = run;
111
- llmRun.end_time = Date.now();
112
- llmRun.response = output;
113
- await this.onLLMEnd?.(llmRun);
114
- await this._endTrace(llmRun);
115
- }
116
- async handleLLMError(error, runId) {
117
- const run = this.runMap.get(runId);
118
- if (!run || run?.type !== "llm") {
119
- throw new Error("No LLM run to end.");
120
- }
121
- const llmRun = run;
122
- llmRun.end_time = Date.now();
123
- llmRun.error = error.message;
124
- await this.onLLMError?.(llmRun);
125
- await this._endTrace(llmRun);
126
- }
127
- async handleChainStart(chain, inputs, runId, parentRunId) {
128
- if (this.session === undefined) {
129
- this.session = await this.loadDefaultSession();
130
- }
131
- const execution_order = this._getExecutionOrder(parentRunId);
132
- const run = {
133
- uuid: runId,
134
- parent_uuid: parentRunId,
135
- start_time: Date.now(),
136
- end_time: 0,
137
- serialized: chain,
138
- inputs,
139
- session_id: this.session.id,
140
- execution_order,
141
- child_execution_order: execution_order,
142
- type: "chain",
143
- child_llm_runs: [],
144
- child_chain_runs: [],
145
- child_tool_runs: [],
146
- };
147
- this._startTrace(run);
148
- await this.onChainStart?.(run);
149
- }
150
- async handleChainEnd(outputs, runId) {
151
- const run = this.runMap.get(runId);
152
- if (!run || run?.type !== "chain") {
153
- throw new Error("No chain run to end.");
154
- }
155
- const chainRun = run;
156
- chainRun.end_time = Date.now();
157
- chainRun.outputs = outputs;
158
- await this.onChainEnd?.(chainRun);
159
- await this._endTrace(chainRun);
160
- }
161
- async handleChainError(error, runId) {
162
- const run = this.runMap.get(runId);
163
- if (!run || run?.type !== "chain") {
164
- throw new Error("No chain run to end.");
165
- }
166
- const chainRun = run;
167
- chainRun.end_time = Date.now();
168
- chainRun.error = error.message;
169
- await this.onChainError?.(chainRun);
170
- await this._endTrace(chainRun);
171
- }
172
- async handleToolStart(tool, input, runId, parentRunId) {
173
- if (this.session === undefined) {
174
- this.session = await this.loadDefaultSession();
175
- }
176
- const execution_order = this._getExecutionOrder(parentRunId);
177
- const run = {
178
- uuid: runId,
179
- parent_uuid: parentRunId,
180
- start_time: Date.now(),
181
- end_time: 0,
182
- serialized: tool,
183
- tool_input: input,
184
- session_id: this.session.id,
185
- execution_order,
186
- child_execution_order: execution_order,
187
- type: "tool",
188
- action: JSON.stringify(tool),
189
- child_llm_runs: [],
190
- child_chain_runs: [],
191
- child_tool_runs: [],
192
- };
193
- this._startTrace(run);
194
- await this.onToolStart?.(run);
195
- }
196
- async handleToolEnd(output, runId) {
197
- const run = this.runMap.get(runId);
198
- if (!run || run?.type !== "tool") {
199
- throw new Error("No tool run to end");
200
- }
201
- const toolRun = run;
202
- toolRun.end_time = Date.now();
203
- toolRun.output = output;
204
- await this.onToolEnd?.(toolRun);
205
- await this._endTrace(toolRun);
206
- }
207
- async handleToolError(error, runId) {
208
- const run = this.runMap.get(runId);
209
- if (!run || run?.type !== "tool") {
210
- throw new Error("No tool run to end");
211
- }
212
- const toolRun = run;
213
- toolRun.end_time = Date.now();
214
- toolRun.error = error.message;
215
- await this.onToolError?.(toolRun);
216
- await this._endTrace(toolRun);
217
- }
218
- async handleAgentAction(action, runId) {
219
- const run = this.runMap.get(runId);
220
- if (!run || run?.type !== "chain") {
221
- return;
222
- }
223
- const agentRun = run;
224
- agentRun.actions = agentRun.actions || [];
225
- agentRun.actions.push(action);
226
- await this.onAgentAction?.(run);
227
- }
228
- }
229
- export class LangChainTracer extends BaseTracer {
230
- constructor() {
231
- super();
232
- Object.defineProperty(this, "name", {
233
- enumerable: true,
234
- configurable: true,
235
- writable: true,
236
- value: "langchain_tracer"
237
- });
238
- Object.defineProperty(this, "endpoint", {
239
- enumerable: true,
240
- configurable: true,
241
- writable: true,
242
- value: (typeof process !== "undefined"
243
- ? // eslint-disable-next-line no-process-env
244
- process.env?.LANGCHAIN_ENDPOINT
245
- : undefined) || "http://localhost:8000"
246
- });
247
- Object.defineProperty(this, "headers", {
248
- enumerable: true,
249
- configurable: true,
250
- writable: true,
251
- value: {
252
- "Content-Type": "application/json",
253
- }
254
- });
255
- // eslint-disable-next-line no-process-env
256
- if (typeof process !== "undefined" && process.env?.LANGCHAIN_API_KEY) {
257
- // eslint-disable-next-line no-process-env
258
- this.headers["x-api-key"] = process.env?.LANGCHAIN_API_KEY;
259
- }
260
- }
261
- async persistRun(run) {
262
- let endpoint;
263
- if (run.type === "llm") {
264
- endpoint = `${this.endpoint}/llm-runs`;
265
- }
266
- else if (run.type === "chain") {
267
- endpoint = `${this.endpoint}/chain-runs`;
268
- }
269
- else {
270
- endpoint = `${this.endpoint}/tool-runs`;
271
- }
272
- const response = await fetch(endpoint, {
273
- method: "POST",
274
- headers: this.headers,
275
- body: JSON.stringify(run),
276
- });
277
- if (!response.ok) {
278
- console.error(`Failed to persist run: ${response.status} ${response.statusText}`);
279
- }
280
- }
281
- async persistSession(sessionCreate) {
282
- const endpoint = `${this.endpoint}/sessions`;
283
- const response = await fetch(endpoint, {
284
- method: "POST",
285
- headers: this.headers,
286
- body: JSON.stringify(sessionCreate),
287
- });
288
- if (!response.ok) {
289
- console.error(`Failed to persist session: ${response.status} ${response.statusText}, using default session.`);
290
- return {
291
- id: 1,
292
- ...sessionCreate,
293
- };
294
- }
295
- return {
296
- id: (await response.json()).id,
297
- ...sessionCreate,
298
- };
299
- }
300
- async loadSession(sessionName) {
301
- const endpoint = `${this.endpoint}/sessions?name=${sessionName}`;
302
- return this._handleSessionResponse(endpoint);
303
- }
304
- async loadDefaultSession() {
305
- const endpoint = `${this.endpoint}/sessions?name=default`;
306
- return this._handleSessionResponse(endpoint);
307
- }
308
- async _handleSessionResponse(endpoint) {
309
- const response = await fetch(endpoint, {
310
- method: "GET",
311
- headers: this.headers,
312
- });
313
- let tracerSession;
314
- if (!response.ok) {
315
- console.error(`Failed to load session: ${response.status} ${response.statusText}`);
316
- tracerSession = {
317
- id: 1,
318
- start_time: Date.now(),
319
- };
320
- this.session = tracerSession;
321
- return tracerSession;
322
- }
323
- const resp = (await response.json());
324
- if (resp.length === 0) {
325
- tracerSession = {
326
- id: 1,
327
- start_time: Date.now(),
328
- };
329
- this.session = tracerSession;
330
- return tracerSession;
331
- }
332
- [tracerSession] = resp;
333
- this.session = tracerSession;
334
- return tracerSession;
335
- }
336
- }