langchain 0.0.197-rc.0 → 0.0.197-rc.1
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/executor.cjs +351 -1
- package/dist/agents/executor.d.ts +61 -3
- package/dist/agents/executor.js +350 -1
- package/dist/agents/toolkits/conversational_retrieval/token_buffer_memory.d.ts +1 -1
- package/dist/base_language/count_tokens.cjs +1 -1
- package/dist/base_language/count_tokens.d.ts +1 -1
- package/dist/base_language/count_tokens.js +1 -1
- package/dist/base_language/index.cjs +1 -1
- package/dist/base_language/index.d.ts +1 -1
- package/dist/base_language/index.js +1 -1
- package/dist/cache/base.cjs +1 -1
- package/dist/cache/base.d.ts +1 -1
- package/dist/cache/base.js +1 -1
- package/dist/cache/index.cjs +1 -1
- package/dist/cache/index.d.ts +1 -1
- package/dist/cache/index.js +1 -1
- package/dist/callbacks/base.cjs +1 -1
- package/dist/callbacks/base.d.ts +1 -1
- package/dist/callbacks/base.js +1 -1
- package/dist/callbacks/handlers/console.cjs +1 -1
- package/dist/callbacks/handlers/console.d.ts +1 -1
- package/dist/callbacks/handlers/console.js +1 -1
- package/dist/callbacks/handlers/initialize.cjs +1 -1
- package/dist/callbacks/handlers/initialize.d.ts +1 -1
- package/dist/callbacks/handlers/initialize.js +1 -1
- package/dist/callbacks/handlers/log_stream.cjs +1 -1
- package/dist/callbacks/handlers/log_stream.d.ts +1 -1
- package/dist/callbacks/handlers/log_stream.js +1 -1
- package/dist/callbacks/handlers/run_collector.cjs +1 -1
- package/dist/callbacks/handlers/run_collector.d.ts +1 -1
- package/dist/callbacks/handlers/run_collector.js +1 -1
- package/dist/callbacks/handlers/tracer.cjs +1 -1
- package/dist/callbacks/handlers/tracer.d.ts +1 -1
- package/dist/callbacks/handlers/tracer.js +1 -1
- package/dist/callbacks/handlers/tracer_langchain.cjs +1 -1
- package/dist/callbacks/handlers/tracer_langchain.d.ts +1 -1
- package/dist/callbacks/handlers/tracer_langchain.js +1 -1
- package/dist/callbacks/handlers/tracer_langchain_v1.cjs +1 -1
- package/dist/callbacks/handlers/tracer_langchain_v1.d.ts +1 -1
- package/dist/callbacks/handlers/tracer_langchain_v1.js +1 -1
- package/dist/callbacks/manager.cjs +1 -1
- package/dist/callbacks/manager.d.ts +1 -1
- package/dist/callbacks/manager.js +1 -1
- package/dist/callbacks/promises.cjs +1 -1
- package/dist/callbacks/promises.d.ts +1 -1
- package/dist/callbacks/promises.js +1 -1
- package/dist/chains/base.cjs +16 -0
- package/dist/chains/base.d.ts +2 -0
- package/dist/chains/base.js +16 -0
- package/dist/chains/openai_functions/structured_output.cjs +1 -1
- package/dist/chains/openai_functions/structured_output.d.ts +1 -1
- package/dist/chains/openai_functions/structured_output.js +1 -1
- package/dist/chains/openai_moderation.cjs +2 -2
- package/dist/chains/openai_moderation.d.ts +1 -1
- package/dist/chains/openai_moderation.js +1 -1
- package/dist/chat_models/base.cjs +1 -1
- package/dist/chat_models/base.d.ts +1 -1
- package/dist/chat_models/base.js +1 -1
- package/dist/chat_models/fireworks.d.ts +2 -2
- package/dist/chat_models/iflytek_xinghuo/common.d.ts +1 -1
- package/dist/chat_models/minimax.d.ts +2 -2
- package/dist/chat_models/openai.cjs +4 -698
- package/dist/chat_models/openai.d.ts +4 -137
- package/dist/chat_models/openai.js +2 -695
- package/dist/document.cjs +1 -1
- package/dist/document.d.ts +1 -1
- package/dist/document.js +1 -1
- package/dist/document_loaders/fs/openai_whisper_audio.cjs +2 -2
- package/dist/document_loaders/fs/openai_whisper_audio.d.ts +1 -1
- package/dist/document_loaders/fs/openai_whisper_audio.js +1 -1
- 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 +1 -1
- package/dist/embeddings/base.d.ts +1 -1
- package/dist/embeddings/base.js +1 -1
- package/dist/embeddings/cache_backed.cjs +1 -1
- package/dist/embeddings/cache_backed.js +1 -1
- package/dist/embeddings/openai.cjs +2 -240
- package/dist/embeddings/openai.d.ts +1 -82
- package/dist/embeddings/openai.js +1 -239
- package/dist/experimental/openai_assistant/index.cjs +3 -3
- package/dist/experimental/openai_assistant/index.d.ts +1 -1
- package/dist/experimental/openai_assistant/index.js +1 -1
- package/dist/experimental/openai_assistant/schema.d.ts +1 -1
- package/dist/experimental/openai_files/index.cjs +2 -2
- package/dist/experimental/openai_files/index.d.ts +1 -1
- package/dist/experimental/openai_files/index.js +1 -1
- package/dist/experimental/plan_and_execute/prompt.d.ts +1 -1
- package/dist/llms/base.cjs +1 -1
- package/dist/llms/base.d.ts +1 -1
- package/dist/llms/base.js +1 -1
- package/dist/llms/fireworks.d.ts +2 -2
- package/dist/llms/openai-chat.cjs +3 -445
- package/dist/llms/openai-chat.d.ts +4 -123
- package/dist/llms/openai-chat.js +2 -443
- package/dist/llms/openai.cjs +6 -530
- package/dist/llms/openai.d.ts +4 -123
- package/dist/llms/openai.js +2 -525
- package/dist/load/index.cjs +4 -2
- package/dist/load/index.d.ts +2 -2
- package/dist/load/index.js +4 -2
- package/dist/load/serializable.cjs +1 -1
- package/dist/load/serializable.d.ts +1 -1
- package/dist/load/serializable.js +1 -1
- package/dist/memory/base.cjs +2 -2
- package/dist/memory/base.d.ts +2 -2
- package/dist/memory/base.js +2 -2
- package/dist/output_parsers/list.cjs +1 -1
- package/dist/output_parsers/list.d.ts +1 -1
- package/dist/output_parsers/list.js +1 -1
- package/dist/output_parsers/openai_functions.cjs +1 -1
- package/dist/output_parsers/openai_functions.d.ts +1 -1
- package/dist/output_parsers/openai_functions.js +1 -1
- package/dist/output_parsers/structured.d.ts +1 -1
- package/dist/prompts/base.cjs +3 -3
- package/dist/prompts/base.d.ts +3 -3
- package/dist/prompts/base.js +3 -3
- package/dist/prompts/chat.cjs +2 -2
- package/dist/prompts/chat.d.ts +2 -2
- package/dist/prompts/chat.js +2 -2
- package/dist/prompts/few_shot.cjs +1 -1
- package/dist/prompts/few_shot.d.ts +1 -1
- package/dist/prompts/few_shot.js +1 -1
- package/dist/prompts/index.cjs +1 -1
- package/dist/prompts/index.d.ts +1 -1
- package/dist/prompts/index.js +1 -1
- package/dist/prompts/pipeline.cjs +1 -1
- package/dist/prompts/pipeline.d.ts +1 -1
- package/dist/prompts/pipeline.js +1 -1
- package/dist/prompts/prompt.cjs +1 -1
- package/dist/prompts/prompt.d.ts +1 -1
- package/dist/prompts/prompt.js +1 -1
- package/dist/prompts/selectors/LengthBasedExampleSelector.cjs +1 -1
- package/dist/prompts/selectors/LengthBasedExampleSelector.d.ts +1 -1
- package/dist/prompts/selectors/LengthBasedExampleSelector.js +1 -1
- package/dist/prompts/selectors/SemanticSimilarityExampleSelector.cjs +1 -1
- package/dist/prompts/selectors/SemanticSimilarityExampleSelector.d.ts +1 -1
- package/dist/prompts/selectors/SemanticSimilarityExampleSelector.js +1 -1
- package/dist/prompts/selectors/conditional.cjs +1 -1
- package/dist/prompts/selectors/conditional.d.ts +1 -1
- package/dist/prompts/selectors/conditional.js +1 -1
- package/dist/prompts/serde.d.ts +1 -1
- package/dist/prompts/template.cjs +1 -1
- package/dist/prompts/template.d.ts +1 -1
- package/dist/prompts/template.js +1 -1
- package/dist/runnables/index.cjs +1 -1
- package/dist/runnables/index.d.ts +1 -1
- package/dist/runnables/index.js +1 -1
- package/dist/schema/document.cjs +1 -1
- package/dist/schema/document.d.ts +1 -1
- package/dist/schema/document.js +1 -1
- package/dist/schema/index.cjs +7 -7
- package/dist/schema/index.d.ts +11 -11
- package/dist/schema/index.js +7 -7
- package/dist/schema/output_parser.cjs +1 -1
- package/dist/schema/output_parser.d.ts +1 -1
- package/dist/schema/output_parser.js +1 -1
- package/dist/schema/retriever.cjs +1 -1
- package/dist/schema/retriever.d.ts +1 -1
- package/dist/schema/retriever.js +1 -1
- package/dist/schema/runnable/base.cjs +1 -1
- package/dist/schema/runnable/base.d.ts +1 -1
- package/dist/schema/runnable/base.js +1 -1
- package/dist/schema/runnable/branch.cjs +1 -1
- package/dist/schema/runnable/branch.d.ts +1 -1
- package/dist/schema/runnable/branch.js +1 -1
- package/dist/schema/runnable/config.d.ts +1 -1
- package/dist/schema/runnable/index.cjs +1 -1
- package/dist/schema/runnable/index.d.ts +1 -1
- package/dist/schema/runnable/index.js +1 -1
- package/dist/schema/runnable/passthrough.cjs +1 -1
- package/dist/schema/runnable/passthrough.d.ts +1 -1
- package/dist/schema/runnable/passthrough.js +1 -1
- package/dist/schema/runnable/router.cjs +1 -1
- package/dist/schema/runnable/router.d.ts +1 -1
- package/dist/schema/runnable/router.js +1 -1
- package/dist/schema/storage.cjs +1 -1
- package/dist/schema/storage.d.ts +1 -1
- package/dist/schema/storage.js +1 -1
- package/dist/tools/base.cjs +4 -108
- package/dist/tools/base.d.ts +1 -72
- package/dist/tools/base.js +1 -105
- package/dist/tools/bingserpapi.d.ts +1 -1
- package/dist/tools/convert_to_openai.cjs +4 -38
- package/dist/tools/convert_to_openai.d.ts +1 -11
- package/dist/tools/convert_to_openai.js +1 -35
- 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/types/openai-types.d.ts +1 -133
- package/dist/util/async_caller.cjs +1 -1
- package/dist/util/async_caller.d.ts +1 -1
- package/dist/util/async_caller.js +1 -1
- package/dist/util/openai.cjs +2 -18
- package/dist/util/openai.d.ts +1 -1
- package/dist/util/openai.js +1 -17
- package/dist/util/openapi.d.ts +2 -2
- package/dist/util/prompt-layer.d.ts +1 -1
- package/package.json +6 -5
- package/dist/util/openai-format-fndef.cjs +0 -81
- package/dist/util/openai-format-fndef.d.ts +0 -44
- package/dist/util/openai-format-fndef.js +0 -77
package/dist/agents/executor.js
CHANGED
|
@@ -1,8 +1,211 @@
|
|
|
1
1
|
import { BaseChain } from "../chains/base.js";
|
|
2
2
|
import { RunnableAgent, } from "./agent.js";
|
|
3
|
+
import { CallbackManager, } from "../callbacks/manager.js";
|
|
3
4
|
import { OutputParserException } from "../schema/output_parser.js";
|
|
4
|
-
import {
|
|
5
|
+
import { ToolInputParsingException, Tool, } from "../tools/base.js";
|
|
5
6
|
import { Runnable } from "../schema/runnable/base.js";
|
|
7
|
+
import { Serializable } from "../load/serializable.js";
|
|
8
|
+
export class AgentExecutorIterator extends Serializable {
|
|
9
|
+
get finalOutputs() {
|
|
10
|
+
return this._finalOutputs;
|
|
11
|
+
}
|
|
12
|
+
/** Intended to be used as a setter method, needs to be async. */
|
|
13
|
+
async setFinalOutputs(value) {
|
|
14
|
+
this._finalOutputs = undefined;
|
|
15
|
+
if (value) {
|
|
16
|
+
const preparedOutputs = await this.agentExecutor.prepOutputs(this.inputs, value, true);
|
|
17
|
+
this._finalOutputs = preparedOutputs;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
get nameToToolMap() {
|
|
21
|
+
const toolMap = this.agentExecutor.tools.map((tool) => ({
|
|
22
|
+
[tool.name]: tool,
|
|
23
|
+
}));
|
|
24
|
+
return Object.assign({}, ...toolMap);
|
|
25
|
+
}
|
|
26
|
+
constructor(fields) {
|
|
27
|
+
super(fields);
|
|
28
|
+
Object.defineProperty(this, "lc_namespace", {
|
|
29
|
+
enumerable: true,
|
|
30
|
+
configurable: true,
|
|
31
|
+
writable: true,
|
|
32
|
+
value: ["langchain", "agents", "executor_iterator"]
|
|
33
|
+
});
|
|
34
|
+
Object.defineProperty(this, "agentExecutor", {
|
|
35
|
+
enumerable: true,
|
|
36
|
+
configurable: true,
|
|
37
|
+
writable: true,
|
|
38
|
+
value: void 0
|
|
39
|
+
});
|
|
40
|
+
Object.defineProperty(this, "inputs", {
|
|
41
|
+
enumerable: true,
|
|
42
|
+
configurable: true,
|
|
43
|
+
writable: true,
|
|
44
|
+
value: void 0
|
|
45
|
+
});
|
|
46
|
+
Object.defineProperty(this, "callbacks", {
|
|
47
|
+
enumerable: true,
|
|
48
|
+
configurable: true,
|
|
49
|
+
writable: true,
|
|
50
|
+
value: void 0
|
|
51
|
+
});
|
|
52
|
+
Object.defineProperty(this, "tags", {
|
|
53
|
+
enumerable: true,
|
|
54
|
+
configurable: true,
|
|
55
|
+
writable: true,
|
|
56
|
+
value: void 0
|
|
57
|
+
});
|
|
58
|
+
Object.defineProperty(this, "metadata", {
|
|
59
|
+
enumerable: true,
|
|
60
|
+
configurable: true,
|
|
61
|
+
writable: true,
|
|
62
|
+
value: void 0
|
|
63
|
+
});
|
|
64
|
+
Object.defineProperty(this, "runName", {
|
|
65
|
+
enumerable: true,
|
|
66
|
+
configurable: true,
|
|
67
|
+
writable: true,
|
|
68
|
+
value: void 0
|
|
69
|
+
});
|
|
70
|
+
Object.defineProperty(this, "_finalOutputs", {
|
|
71
|
+
enumerable: true,
|
|
72
|
+
configurable: true,
|
|
73
|
+
writable: true,
|
|
74
|
+
value: void 0
|
|
75
|
+
});
|
|
76
|
+
Object.defineProperty(this, "runManager", {
|
|
77
|
+
enumerable: true,
|
|
78
|
+
configurable: true,
|
|
79
|
+
writable: true,
|
|
80
|
+
value: void 0
|
|
81
|
+
});
|
|
82
|
+
Object.defineProperty(this, "intermediateSteps", {
|
|
83
|
+
enumerable: true,
|
|
84
|
+
configurable: true,
|
|
85
|
+
writable: true,
|
|
86
|
+
value: []
|
|
87
|
+
});
|
|
88
|
+
Object.defineProperty(this, "iterations", {
|
|
89
|
+
enumerable: true,
|
|
90
|
+
configurable: true,
|
|
91
|
+
writable: true,
|
|
92
|
+
value: 0
|
|
93
|
+
});
|
|
94
|
+
this.agentExecutor = fields.agentExecutor;
|
|
95
|
+
this.inputs = fields.inputs;
|
|
96
|
+
this.tags = fields.tags;
|
|
97
|
+
this.metadata = fields.metadata;
|
|
98
|
+
this.runName = fields.runName;
|
|
99
|
+
this.runManager = fields.runManager;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Reset the iterator to its initial state, clearing intermediate steps,
|
|
103
|
+
* iterations, and the final output.
|
|
104
|
+
*/
|
|
105
|
+
reset() {
|
|
106
|
+
this.intermediateSteps = [];
|
|
107
|
+
this.iterations = 0;
|
|
108
|
+
this._finalOutputs = undefined;
|
|
109
|
+
}
|
|
110
|
+
updateIterations() {
|
|
111
|
+
this.iterations += 1;
|
|
112
|
+
}
|
|
113
|
+
async *streamIterator() {
|
|
114
|
+
this.reset();
|
|
115
|
+
// Loop to handle iteration
|
|
116
|
+
while (true) {
|
|
117
|
+
try {
|
|
118
|
+
if (this.iterations === 0) {
|
|
119
|
+
await this.onFirstStep();
|
|
120
|
+
}
|
|
121
|
+
const result = await this._callNext();
|
|
122
|
+
yield result;
|
|
123
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
124
|
+
}
|
|
125
|
+
catch (e) {
|
|
126
|
+
if ("message" in e &&
|
|
127
|
+
e.message.startsWith("Final outputs already reached: ")) {
|
|
128
|
+
if (!this.finalOutputs) {
|
|
129
|
+
throw e;
|
|
130
|
+
}
|
|
131
|
+
return this.finalOutputs;
|
|
132
|
+
}
|
|
133
|
+
if (this.runManager) {
|
|
134
|
+
await this.runManager.handleChainError(e);
|
|
135
|
+
}
|
|
136
|
+
throw e;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Perform any necessary setup for the first step
|
|
142
|
+
* of the asynchronous iterator.
|
|
143
|
+
*/
|
|
144
|
+
async onFirstStep() {
|
|
145
|
+
if (this.iterations === 0) {
|
|
146
|
+
const callbackManager = await CallbackManager.configure(this.callbacks, this.agentExecutor.callbacks, this.tags, this.agentExecutor.tags, this.metadata, this.agentExecutor.metadata, {
|
|
147
|
+
verbose: this.agentExecutor.verbose,
|
|
148
|
+
});
|
|
149
|
+
this.runManager = await callbackManager?.handleChainStart(this.agentExecutor.toJSON(), this.inputs, undefined, undefined, this.tags, this.metadata, this.runName);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Execute the next step in the chain using the
|
|
154
|
+
* AgentExecutor's _takeNextStep method.
|
|
155
|
+
*/
|
|
156
|
+
async _executeNextStep(runManager) {
|
|
157
|
+
return this.agentExecutor._takeNextStep(this.nameToToolMap, this.inputs, this.intermediateSteps, runManager);
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Process the output of the next step,
|
|
161
|
+
* handling AgentFinish and tool return cases.
|
|
162
|
+
*/
|
|
163
|
+
async _processNextStepOutput(nextStepOutput, runManager) {
|
|
164
|
+
if ("returnValues" in nextStepOutput) {
|
|
165
|
+
const output = await this.agentExecutor._return(nextStepOutput, this.intermediateSteps, runManager);
|
|
166
|
+
if (this.runManager) {
|
|
167
|
+
await this.runManager.handleChainEnd(output);
|
|
168
|
+
}
|
|
169
|
+
await this.setFinalOutputs(output);
|
|
170
|
+
return output;
|
|
171
|
+
}
|
|
172
|
+
this.intermediateSteps = this.intermediateSteps.concat(nextStepOutput);
|
|
173
|
+
let output = {};
|
|
174
|
+
if (Array.isArray(nextStepOutput) && nextStepOutput.length === 1) {
|
|
175
|
+
const nextStep = nextStepOutput[0];
|
|
176
|
+
const toolReturn = await this.agentExecutor._getToolReturn(nextStep);
|
|
177
|
+
if (toolReturn) {
|
|
178
|
+
output = await this.agentExecutor._return(toolReturn, this.intermediateSteps, runManager);
|
|
179
|
+
if (this.runManager) {
|
|
180
|
+
await this.runManager.handleChainEnd(output);
|
|
181
|
+
}
|
|
182
|
+
await this.setFinalOutputs(output);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
output = { intermediateSteps: nextStepOutput };
|
|
186
|
+
return output;
|
|
187
|
+
}
|
|
188
|
+
async _stop() {
|
|
189
|
+
const output = await this.agentExecutor.agent.returnStoppedResponse(this.agentExecutor.earlyStoppingMethod, this.intermediateSteps, this.inputs);
|
|
190
|
+
const returnedOutput = await this.agentExecutor._return(output, this.intermediateSteps, this.runManager);
|
|
191
|
+
await this.setFinalOutputs(returnedOutput);
|
|
192
|
+
return returnedOutput;
|
|
193
|
+
}
|
|
194
|
+
async _callNext() {
|
|
195
|
+
// final output already reached: stopiteration (final output)
|
|
196
|
+
if (this.finalOutputs) {
|
|
197
|
+
throw new Error(`Final outputs already reached: ${JSON.stringify(this.finalOutputs, null, 2)}`);
|
|
198
|
+
}
|
|
199
|
+
// timeout/max iterations: stopiteration (stopped response)
|
|
200
|
+
if (!this.agentExecutor.shouldContinueGetter(this.iterations)) {
|
|
201
|
+
return this._stop();
|
|
202
|
+
}
|
|
203
|
+
const nextStepOutput = await this._executeNextStep(this.runManager);
|
|
204
|
+
const output = await this._processNextStepOutput(nextStepOutput, this.runManager);
|
|
205
|
+
this.updateIterations();
|
|
206
|
+
return output;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
6
209
|
/**
|
|
7
210
|
* Tool that just returns the query.
|
|
8
211
|
* Used for exception tracking.
|
|
@@ -134,6 +337,9 @@ export class AgentExecutor extends BaseChain {
|
|
|
134
337
|
static fromAgentAndTools(fields) {
|
|
135
338
|
return new AgentExecutor(fields);
|
|
136
339
|
}
|
|
340
|
+
get shouldContinueGetter() {
|
|
341
|
+
return this.shouldContinue.bind(this);
|
|
342
|
+
}
|
|
137
343
|
/**
|
|
138
344
|
* Method that checks if the agent execution should continue based on the
|
|
139
345
|
* number of iterations.
|
|
@@ -253,6 +459,149 @@ export class AgentExecutor extends BaseChain {
|
|
|
253
459
|
const finish = await this.agent.returnStoppedResponse(this.earlyStoppingMethod, steps, inputs);
|
|
254
460
|
return getOutput(finish);
|
|
255
461
|
}
|
|
462
|
+
async _takeNextStep(nameToolMap, inputs, intermediateSteps, runManager) {
|
|
463
|
+
let output;
|
|
464
|
+
try {
|
|
465
|
+
output = await this.agent.plan(intermediateSteps, inputs, runManager?.getChild());
|
|
466
|
+
}
|
|
467
|
+
catch (e) {
|
|
468
|
+
// eslint-disable-next-line no-instanceof/no-instanceof
|
|
469
|
+
if (e instanceof OutputParserException) {
|
|
470
|
+
let observation;
|
|
471
|
+
let text = e.message;
|
|
472
|
+
if (this.handleParsingErrors === true) {
|
|
473
|
+
if (e.sendToLLM) {
|
|
474
|
+
observation = e.observation;
|
|
475
|
+
text = e.llmOutput ?? "";
|
|
476
|
+
}
|
|
477
|
+
else {
|
|
478
|
+
observation = "Invalid or incomplete response";
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
else if (typeof this.handleParsingErrors === "string") {
|
|
482
|
+
observation = this.handleParsingErrors;
|
|
483
|
+
}
|
|
484
|
+
else if (typeof this.handleParsingErrors === "function") {
|
|
485
|
+
observation = this.handleParsingErrors(e);
|
|
486
|
+
}
|
|
487
|
+
else {
|
|
488
|
+
throw e;
|
|
489
|
+
}
|
|
490
|
+
output = {
|
|
491
|
+
tool: "_Exception",
|
|
492
|
+
toolInput: observation,
|
|
493
|
+
log: text,
|
|
494
|
+
};
|
|
495
|
+
}
|
|
496
|
+
else {
|
|
497
|
+
throw e;
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
if ("returnValues" in output) {
|
|
501
|
+
return output;
|
|
502
|
+
}
|
|
503
|
+
let actions;
|
|
504
|
+
if (Array.isArray(output)) {
|
|
505
|
+
actions = output;
|
|
506
|
+
}
|
|
507
|
+
else {
|
|
508
|
+
actions = [output];
|
|
509
|
+
}
|
|
510
|
+
const result = [];
|
|
511
|
+
for (const agentAction of actions) {
|
|
512
|
+
let observation = "";
|
|
513
|
+
if (runManager) {
|
|
514
|
+
await runManager?.handleAgentAction(agentAction);
|
|
515
|
+
}
|
|
516
|
+
if (agentAction.tool in nameToolMap) {
|
|
517
|
+
const tool = nameToolMap[agentAction.tool];
|
|
518
|
+
try {
|
|
519
|
+
observation = await tool.call(agentAction.toolInput, runManager?.getChild());
|
|
520
|
+
}
|
|
521
|
+
catch (e) {
|
|
522
|
+
// eslint-disable-next-line no-instanceof/no-instanceof
|
|
523
|
+
if (e instanceof ToolInputParsingException) {
|
|
524
|
+
if (this.handleParsingErrors === true) {
|
|
525
|
+
observation =
|
|
526
|
+
"Invalid or incomplete tool input. Please try again.";
|
|
527
|
+
}
|
|
528
|
+
else if (typeof this.handleParsingErrors === "string") {
|
|
529
|
+
observation = this.handleParsingErrors;
|
|
530
|
+
}
|
|
531
|
+
else if (typeof this.handleParsingErrors === "function") {
|
|
532
|
+
observation = this.handleParsingErrors(e);
|
|
533
|
+
}
|
|
534
|
+
else {
|
|
535
|
+
throw e;
|
|
536
|
+
}
|
|
537
|
+
observation = await new ExceptionTool().call(observation, runManager?.getChild());
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
else {
|
|
542
|
+
observation = `${agentAction.tool} is not a valid tool, try another available tool: ${Object.keys(nameToolMap).join(", ")}`;
|
|
543
|
+
}
|
|
544
|
+
result.push({
|
|
545
|
+
action: agentAction,
|
|
546
|
+
observation,
|
|
547
|
+
});
|
|
548
|
+
}
|
|
549
|
+
return result;
|
|
550
|
+
}
|
|
551
|
+
async _return(output, intermediateSteps, runManager) {
|
|
552
|
+
if (runManager) {
|
|
553
|
+
await runManager.handleAgentEnd(output);
|
|
554
|
+
}
|
|
555
|
+
const finalOutput = output.returnValues;
|
|
556
|
+
if (this.returnIntermediateSteps) {
|
|
557
|
+
finalOutput.intermediateSteps = intermediateSteps;
|
|
558
|
+
}
|
|
559
|
+
return finalOutput;
|
|
560
|
+
}
|
|
561
|
+
async _getToolReturn(nextStepOutput) {
|
|
562
|
+
const { action, observation } = nextStepOutput;
|
|
563
|
+
const nameToolMap = Object.fromEntries(this.tools.map((t) => [t.name.toLowerCase(), t]));
|
|
564
|
+
const [returnValueKey = "output"] = this.agent.returnValues;
|
|
565
|
+
// Invalid tools won't be in the map, so we return False.
|
|
566
|
+
if (action.tool in nameToolMap) {
|
|
567
|
+
if (nameToolMap[action.tool].returnDirect) {
|
|
568
|
+
return {
|
|
569
|
+
returnValues: { [returnValueKey]: observation },
|
|
570
|
+
log: "",
|
|
571
|
+
};
|
|
572
|
+
}
|
|
573
|
+
}
|
|
574
|
+
return null;
|
|
575
|
+
}
|
|
576
|
+
_returnStoppedResponse(earlyStoppingMethod) {
|
|
577
|
+
if (earlyStoppingMethod === "force") {
|
|
578
|
+
return {
|
|
579
|
+
returnValues: {
|
|
580
|
+
output: "Agent stopped due to iteration limit or time limit.",
|
|
581
|
+
},
|
|
582
|
+
log: "",
|
|
583
|
+
};
|
|
584
|
+
}
|
|
585
|
+
throw new Error(`Got unsupported early_stopping_method: ${earlyStoppingMethod}`);
|
|
586
|
+
}
|
|
587
|
+
async *_streamIterator(
|
|
588
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
589
|
+
inputs) {
|
|
590
|
+
const agentExecutorIterator = new AgentExecutorIterator({
|
|
591
|
+
inputs,
|
|
592
|
+
agentExecutor: this,
|
|
593
|
+
metadata: this.metadata,
|
|
594
|
+
tags: this.tags,
|
|
595
|
+
callbacks: this.callbacks,
|
|
596
|
+
});
|
|
597
|
+
const iterator = agentExecutorIterator.streamIterator();
|
|
598
|
+
for await (const step of iterator) {
|
|
599
|
+
if (!step) {
|
|
600
|
+
continue;
|
|
601
|
+
}
|
|
602
|
+
yield step;
|
|
603
|
+
}
|
|
604
|
+
}
|
|
256
605
|
_chainType() {
|
|
257
606
|
return "agent_executor";
|
|
258
607
|
}
|
|
@@ -33,7 +33,7 @@ export declare class OpenAIAgentTokenBufferMemory extends BaseChatMemory {
|
|
|
33
33
|
* Retrieves the messages from the chat history.
|
|
34
34
|
* @returns Promise that resolves with the messages from the chat history.
|
|
35
35
|
*/
|
|
36
|
-
getMessages(): Promise<import("langchain
|
|
36
|
+
getMessages(): Promise<import("@langchain/core/messages").BaseMessage[]>;
|
|
37
37
|
/**
|
|
38
38
|
* Loads memory variables from the input values.
|
|
39
39
|
* @param _values Input values.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getEmbeddingContextSize = exports.getModelContextSize = exports.calculateMaxTokens = void 0;
|
|
4
|
-
var base_1 = require("langchain
|
|
4
|
+
var base_1 = require("@langchain/core/language_models/base");
|
|
5
5
|
Object.defineProperty(exports, "calculateMaxTokens", { enumerable: true, get: function () { return base_1.calculateMaxTokens; } });
|
|
6
6
|
Object.defineProperty(exports, "getModelContextSize", { enumerable: true, get: function () { return base_1.getModelContextSize; } });
|
|
7
7
|
Object.defineProperty(exports, "getEmbeddingContextSize", { enumerable: true, get: function () { return base_1.getEmbeddingContextSize; } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { calculateMaxTokens, getModelContextSize, getEmbeddingContextSize, } from "langchain
|
|
1
|
+
export { calculateMaxTokens, getModelContextSize, getEmbeddingContextSize, } from "@langchain/core/language_models/base";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { calculateMaxTokens, getModelContextSize, getEmbeddingContextSize, } from "langchain
|
|
1
|
+
export { calculateMaxTokens, getModelContextSize, getEmbeddingContextSize, } from "@langchain/core/language_models/base";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getModelContextSize = exports.calculateMaxTokens = exports.BaseLanguageModel = exports.BaseLangChain = void 0;
|
|
4
|
-
var base_1 = require("langchain
|
|
4
|
+
var base_1 = require("@langchain/core/language_models/base");
|
|
5
5
|
Object.defineProperty(exports, "BaseLangChain", { enumerable: true, get: function () { return base_1.BaseLangChain; } });
|
|
6
6
|
Object.defineProperty(exports, "BaseLanguageModel", { enumerable: true, get: function () { return base_1.BaseLanguageModel; } });
|
|
7
7
|
/*
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { type SerializedLLM, type BaseLangChainParams, BaseLangChain, type BaseLanguageModelParams, type BaseLanguageModelCallOptions, type BaseFunctionCallOptions, type BaseLanguageModelInput, BaseLanguageModel, } from "langchain
|
|
1
|
+
export { type SerializedLLM, type BaseLangChainParams, BaseLangChain, type BaseLanguageModelParams, type BaseLanguageModelCallOptions, type BaseFunctionCallOptions, type BaseLanguageModelInput, BaseLanguageModel, } from "@langchain/core/language_models/base";
|
|
2
2
|
export { calculateMaxTokens, getModelContextSize } from "./count_tokens.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { BaseLangChain, BaseLanguageModel, } from "langchain
|
|
1
|
+
export { BaseLangChain, BaseLanguageModel, } from "@langchain/core/language_models/base";
|
|
2
2
|
/*
|
|
3
3
|
* Export utility functions for token calculations:
|
|
4
4
|
* - calculateMaxTokens: Calculate max tokens for a given model and prompt (the model context size - tokens in prompt).
|
package/dist/cache/base.cjs
CHANGED
|
@@ -14,4 +14,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("langchain
|
|
17
|
+
__exportStar(require("@langchain/core/caches"), exports);
|
package/dist/cache/base.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "langchain
|
|
1
|
+
export * from "@langchain/core/caches";
|
package/dist/cache/base.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "langchain
|
|
1
|
+
export * from "@langchain/core/caches";
|
package/dist/cache/index.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.InMemoryCache = void 0;
|
|
4
|
-
var caches_1 = require("langchain
|
|
4
|
+
var caches_1 = require("@langchain/core/caches");
|
|
5
5
|
Object.defineProperty(exports, "InMemoryCache", { enumerable: true, get: function () { return caches_1.InMemoryCache; } });
|
package/dist/cache/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { InMemoryCache } from "langchain
|
|
1
|
+
export { InMemoryCache } from "@langchain/core/caches";
|
package/dist/cache/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { InMemoryCache } from "langchain
|
|
1
|
+
export { InMemoryCache } from "@langchain/core/caches";
|
package/dist/callbacks/base.cjs
CHANGED
|
@@ -14,4 +14,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("langchain
|
|
17
|
+
__exportStar(require("@langchain/core/callbacks/base"), exports);
|
package/dist/callbacks/base.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "langchain
|
|
1
|
+
export * from "@langchain/core/callbacks/base";
|
package/dist/callbacks/base.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "langchain
|
|
1
|
+
export * from "@langchain/core/callbacks/base";
|
|
@@ -14,4 +14,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("langchain
|
|
17
|
+
__exportStar(require("@langchain/core/tracers/console"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "langchain
|
|
1
|
+
export * from "@langchain/core/tracers/console";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "langchain
|
|
1
|
+
export * from "@langchain/core/tracers/console";
|
|
@@ -14,4 +14,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("langchain
|
|
17
|
+
__exportStar(require("@langchain/core/tracers/initialize"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "langchain
|
|
1
|
+
export * from "@langchain/core/tracers/initialize";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "langchain
|
|
1
|
+
export * from "@langchain/core/tracers/initialize";
|
|
@@ -14,4 +14,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("langchain
|
|
17
|
+
__exportStar(require("@langchain/core/tracers/log_stream"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "langchain
|
|
1
|
+
export * from "@langchain/core/tracers/log_stream";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "langchain
|
|
1
|
+
export * from "@langchain/core/tracers/log_stream";
|
|
@@ -14,4 +14,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("langchain
|
|
17
|
+
__exportStar(require("@langchain/core/tracers/run_collector"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "langchain
|
|
1
|
+
export * from "@langchain/core/tracers/run_collector";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "langchain
|
|
1
|
+
export * from "@langchain/core/tracers/run_collector";
|
|
@@ -14,4 +14,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("langchain
|
|
17
|
+
__exportStar(require("@langchain/core/tracers/base"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "langchain
|
|
1
|
+
export * from "@langchain/core/tracers/base";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "langchain
|
|
1
|
+
export * from "@langchain/core/tracers/base";
|
|
@@ -14,4 +14,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("langchain
|
|
17
|
+
__exportStar(require("@langchain/core/tracers/tracer_langchain"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "langchain
|
|
1
|
+
export * from "@langchain/core/tracers/tracer_langchain";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "langchain
|
|
1
|
+
export * from "@langchain/core/tracers/tracer_langchain";
|
|
@@ -14,4 +14,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("langchain
|
|
17
|
+
__exportStar(require("@langchain/core/tracers/tracer_langchain_v1"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "langchain
|
|
1
|
+
export * from "@langchain/core/tracers/tracer_langchain_v1";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "langchain
|
|
1
|
+
export * from "@langchain/core/tracers/tracer_langchain_v1";
|
|
@@ -14,4 +14,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("langchain
|
|
17
|
+
__exportStar(require("@langchain/core/callbacks/manager"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "langchain
|
|
1
|
+
export * from "@langchain/core/callbacks/manager";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "langchain
|
|
1
|
+
export * from "@langchain/core/callbacks/manager";
|
|
@@ -14,4 +14,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("langchain
|
|
17
|
+
__exportStar(require("@langchain/core/callbacks/promises"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "langchain
|
|
1
|
+
export * from "@langchain/core/callbacks/promises";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "langchain
|
|
1
|
+
export * from "@langchain/core/callbacks/promises";
|
package/dist/chains/base.cjs
CHANGED
|
@@ -50,6 +50,22 @@ class BaseChain extends index_js_2.BaseLangChain {
|
|
|
50
50
|
async invoke(input, config) {
|
|
51
51
|
return this.call(input, config);
|
|
52
52
|
}
|
|
53
|
+
_validateOutputs(outputs) {
|
|
54
|
+
const missingKeys = this.outputKeys.filter((k) => !(k in outputs));
|
|
55
|
+
if (missingKeys.length) {
|
|
56
|
+
throw new Error(`Missing output keys: ${missingKeys.join(", ")} from chain ${this._chainType()}`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
async prepOutputs(inputs, outputs, returnOnlyOutputs = false) {
|
|
60
|
+
this._validateOutputs(outputs);
|
|
61
|
+
if (this.memory) {
|
|
62
|
+
await this.memory.saveContext(inputs, outputs);
|
|
63
|
+
}
|
|
64
|
+
if (returnOnlyOutputs) {
|
|
65
|
+
return outputs;
|
|
66
|
+
}
|
|
67
|
+
return { ...inputs, ...outputs };
|
|
68
|
+
}
|
|
53
69
|
/**
|
|
54
70
|
* Return a json-like object representing this chain.
|
|
55
71
|
*/
|