@langchain/classic 1.0.15 → 1.0.16
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/CHANGELOG.md +13 -0
- package/dist/agents/openai_tools/index.d.cts +2 -2
- package/dist/agents/openai_tools/index.d.cts.map +1 -1
- package/dist/agents/openai_tools/index.d.ts +2 -2
- package/dist/agents/openai_tools/index.d.ts.map +1 -1
- package/dist/agents/react/index.d.cts +2 -2
- package/dist/agents/react/index.d.cts.map +1 -1
- package/dist/agents/react/index.d.ts +2 -2
- package/dist/agents/react/index.d.ts.map +1 -1
- package/dist/agents/structured_chat/index.d.cts +2 -2
- package/dist/agents/structured_chat/index.d.cts.map +1 -1
- package/dist/agents/toolkits/conversational_retrieval/token_buffer_memory.d.cts +2 -2
- package/dist/agents/toolkits/conversational_retrieval/token_buffer_memory.d.cts.map +1 -1
- package/dist/agents/toolkits/conversational_retrieval/token_buffer_memory.d.ts +2 -2
- package/dist/agents/toolkits/conversational_retrieval/token_buffer_memory.d.ts.map +1 -1
- package/dist/agents/toolkits/conversational_retrieval/tool.d.cts +1 -5
- package/dist/agents/toolkits/conversational_retrieval/tool.d.cts.map +1 -1
- package/dist/agents/toolkits/conversational_retrieval/tool.d.ts +1 -5
- package/dist/agents/toolkits/conversational_retrieval/tool.d.ts.map +1 -1
- package/dist/chains/base.cjs.map +1 -1
- package/dist/chains/base.js.map +1 -1
- package/dist/chains/llm_chain.cjs.map +1 -1
- package/dist/chains/llm_chain.js.map +1 -1
- package/dist/chains/openai_moderation.cjs.map +1 -1
- package/dist/chains/openai_moderation.js.map +1 -1
- package/dist/chat_models/universal.cjs.map +1 -1
- package/dist/chat_models/universal.js.map +1 -1
- package/dist/evaluation/comparison/pairwise.d.cts +3 -3
- package/dist/evaluation/comparison/pairwise.d.cts.map +1 -1
- package/dist/evaluation/criteria/criteria.d.cts +3 -3
- package/dist/evaluation/criteria/criteria.d.cts.map +1 -1
- package/dist/experimental/autogpt/prompt.cjs +1 -1
- package/dist/experimental/autogpt/prompt.cjs.map +1 -1
- package/dist/experimental/autogpt/prompt.d.cts +2 -2
- package/dist/experimental/autogpt/prompt.d.cts.map +1 -1
- package/dist/experimental/autogpt/prompt.d.ts +2 -2
- package/dist/experimental/autogpt/prompt.d.ts.map +1 -1
- package/dist/experimental/autogpt/prompt.js +1 -1
- package/dist/experimental/autogpt/prompt.js.map +1 -1
- package/dist/experimental/babyagi/agent.cjs.map +1 -1
- package/dist/experimental/babyagi/agent.js.map +1 -1
- package/dist/experimental/prompts/custom_format.d.cts.map +1 -1
- package/dist/experimental/prompts/custom_format.d.ts.map +1 -1
- package/dist/experimental/prompts/handlebars.d.cts.map +1 -1
- package/dist/experimental/prompts/handlebars.d.ts.map +1 -1
- package/dist/memory/buffer_token_memory.cjs.map +1 -1
- package/dist/memory/buffer_token_memory.js.map +1 -1
- package/dist/memory/summary.cjs.map +1 -1
- package/dist/memory/summary.js.map +1 -1
- package/dist/memory/summary_buffer.cjs.map +1 -1
- package/dist/memory/summary_buffer.js.map +1 -1
- package/dist/output_parsers/structured.cjs.map +1 -1
- package/dist/output_parsers/structured.js.map +1 -1
- package/dist/retrievers/matryoshka_retriever.d.cts.map +1 -1
- package/dist/retrievers/self_query/index.cjs.map +1 -1
- package/dist/retrievers/self_query/index.js.map +1 -1
- package/dist/retrievers/time_weighted.cjs.map +1 -1
- package/dist/retrievers/time_weighted.js.map +1 -1
- package/dist/smith/runner_utils.cjs.map +1 -1
- package/dist/smith/runner_utils.js.map +1 -1
- package/package.json +20 -20
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @langchain/classic
|
|
2
2
|
|
|
3
|
+
## 1.0.16
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#9786](https://github.com/langchain-ai/langchainjs/pull/9786) [`8ee833c`](https://github.com/langchain-ai/langchainjs/commit/8ee833c1fb99891565832ead4990e246b30022a6) Thanks [@SkrOYC](https://github.com/SkrOYC)! - fix: resolve flaky tests and configuration issues
|
|
8
|
+
- @langchain/turbopuffer: Allow tests to pass when no test files are found (vitest --passWithNoTests)
|
|
9
|
+
- @langchain/model-profiles: Fix broken import path in generator test
|
|
10
|
+
- @langchain/classic: Fix AutoGPTPrompt test to be locale-independent by forcing en-US locale
|
|
11
|
+
|
|
12
|
+
- Updated dependencies [[`16d691c`](https://github.com/langchain-ai/langchainjs/commit/16d691c7f8196e1d6322f051c25b2219ff2953b6), [`1058574`](https://github.com/langchain-ai/langchainjs/commit/1058574b723f0d060eb9b3ca25be5aeeabbe51aa)]:
|
|
13
|
+
- @langchain/openai@1.2.6
|
|
14
|
+
- @langchain/textsplitters@1.0.1
|
|
15
|
+
|
|
3
16
|
## 1.0.15
|
|
4
17
|
|
|
5
18
|
### Patch Changes
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ToolsAgentStep } from "../tool_calling/output_parser.cjs";
|
|
2
2
|
import { AgentRunnableSequence } from "../agent.cjs";
|
|
3
3
|
import { OpenAIToolsAgentOutputParser } from "./output_parser.cjs";
|
|
4
|
-
import * as
|
|
4
|
+
import * as _langchain_core_agents1 from "@langchain/core/agents";
|
|
5
5
|
import { ChatPromptTemplate } from "@langchain/core/prompts";
|
|
6
6
|
import { ToolDefinition } from "@langchain/core/language_models/base";
|
|
7
7
|
import { StructuredToolInterface } from "@langchain/core/tools";
|
|
@@ -94,7 +94,7 @@ declare function createOpenAIToolsAgent({
|
|
|
94
94
|
streamRunnable
|
|
95
95
|
}: CreateOpenAIToolsAgentParams): Promise<AgentRunnableSequence<{
|
|
96
96
|
steps: ToolsAgentStep[];
|
|
97
|
-
},
|
|
97
|
+
}, _langchain_core_agents1.AgentFinish | _langchain_core_agents1.AgentAction[]>>;
|
|
98
98
|
//#endregion
|
|
99
99
|
export { CreateOpenAIToolsAgentParams, createOpenAIToolsAgent };
|
|
100
100
|
//# sourceMappingURL=index.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":["StructuredToolInterface","BaseChatModel","BaseChatModelCallOptions","ChatPromptTemplate","OpenAIClient","ToolDefinition","OpenAIToolsAgentOutputParser","ToolsAgentStep","AgentRunnableSequence","CreateOpenAIToolsAgentParams","ChatCompletionTool","createOpenAIToolsAgent","llm","tools","prompt","streamRunnable","
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":["StructuredToolInterface","BaseChatModel","BaseChatModelCallOptions","ChatPromptTemplate","OpenAIClient","ToolDefinition","OpenAIToolsAgentOutputParser","ToolsAgentStep","AgentRunnableSequence","CreateOpenAIToolsAgentParams","ChatCompletionTool","createOpenAIToolsAgent","llm","tools","prompt","streamRunnable","_langchain_core_agents1","AgentFinish","AgentAction","Promise"],"sources":["../../../src/agents/openai_tools/index.d.ts"],"sourcesContent":["import type { StructuredToolInterface } from \"@langchain/core/tools\";\nimport type { BaseChatModel, BaseChatModelCallOptions } from \"@langchain/core/language_models/chat_models\";\nimport { ChatPromptTemplate } from \"@langchain/core/prompts\";\nimport { OpenAIClient } from \"@langchain/openai\";\nimport { ToolDefinition } from \"@langchain/core/language_models/base\";\nimport { OpenAIToolsAgentOutputParser, type ToolsAgentStep } from \"./output_parser.js\";\nimport { AgentRunnableSequence } from \"../agent.js\";\nexport { OpenAIToolsAgentOutputParser, type ToolsAgentStep };\n/**\n * Params used by the createOpenAIToolsAgent function.\n */\nexport type CreateOpenAIToolsAgentParams = {\n /**\n * LLM to use as the agent. Should work with OpenAI tool calling,\n * so must either be an OpenAI model that supports that or a wrapper of\n * a different model that adds in equivalent support.\n */\n llm: BaseChatModel<BaseChatModelCallOptions & {\n tools?: StructuredToolInterface[] | OpenAIClient.ChatCompletionTool[] | any[];\n }>;\n /** Tools this agent has access to. */\n tools: StructuredToolInterface[] | ToolDefinition[];\n /** The prompt to use, must have an input key of `agent_scratchpad`. */\n prompt: ChatPromptTemplate;\n /**\n * Whether to invoke the underlying model in streaming mode,\n * allowing streaming of intermediate steps. Defaults to true.\n */\n streamRunnable?: boolean;\n};\n/**\n * Create an agent that uses OpenAI-style tool calling.\n * @param params Params required to create the agent. Includes an LLM, tools, and prompt.\n * @returns A runnable sequence representing an agent. It takes as input all the same input\n * variables as the prompt passed in does. It returns as output either an\n * AgentAction or AgentFinish.\n *\n * @example\n * ```typescript\n * import { AgentExecutor, createOpenAIToolsAgent } from \"langchain/agents\";\n * import { pull } from \"langchain/hub\";\n * import type { ChatPromptTemplate } from \"@langchain/core/prompts\";\n * import { AIMessage, HumanMessage } from \"@langchain/core/messages\";\n *\n * import { ChatOpenAI } from \"@langchain/openai\";\n *\n * // Define the tools the agent will have access to.\n * const tools = [...];\n *\n * // Get the prompt to use - you can modify this!\n * // If you want to see the prompt in full, you can at:\n * // https://smith.langchain.com/hub/hwchase17/openai-tools-agent\n * const prompt = await pull<ChatPromptTemplate>(\n * \"hwchase17/openai-tools-agent\"\n * );\n *\n * const llm = new ChatOpenAI({\n * temperature: 0,\n * model: \"gpt-3.5-turbo-1106\",\n * });\n *\n * const agent = await createOpenAIToolsAgent({\n * llm,\n * tools,\n * prompt,\n * });\n *\n * const agentExecutor = new AgentExecutor({\n * agent,\n * tools,\n * });\n *\n * const result = await agentExecutor.invoke({\n * input: \"what is LangChain?\",\n * });\n *\n * // With chat history\n * const result2 = await agentExecutor.invoke({\n * input: \"what's my name?\",\n * chat_history: [\n * new HumanMessage(\"hi! my name is cob\"),\n * new AIMessage(\"Hello Cob! How can I assist you today?\"),\n * ],\n * });\n * ```\n */\nexport declare function createOpenAIToolsAgent({ llm, tools, prompt, streamRunnable }: CreateOpenAIToolsAgentParams): Promise<AgentRunnableSequence<{\n steps: ToolsAgentStep[];\n}, import(\"@langchain/core/agents\").AgentFinish | import(\"@langchain/core/agents\").AgentAction[]>>;\n//# sourceMappingURL=index.d.ts.map"],"mappings":";;;;;;;;;;;;;;AAWYS,KAAAA,4BAAAA,GAA4B;EAMjBP;;;;;EAIgBG,GAAAA,EAJ9BJ,aAI8BI,CAJhBH,wBAIgBG,GAAAA;IAE3BF,KAAAA,CAAAA,EALIH,uBAKJG,EAAAA,GALgCC,YAAAA,CAAaM,kBAK7CP,EAAAA,GAAAA,GAAAA,EAAAA;EAAkB,CAAA,CAAA;EA+DNQ;EAAyBC,KAAAA,EAjEtCZ,uBAiEsCY,EAAAA,GAjEVP,cAiEUO,EAAAA;EAAKC;EAAOC,MAAAA,EA/DjDX,kBA+DiDW;EAAQC;;;;EAEtBC,cAAAA,CAAAA,EAAAA,OAAoCE;CAF2CV;;AAAD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAArGG,sBAAAA;;;;;GAA+DF,+BAA+BU,QAAQX;SACnHD;GAAcS,uBAAAA,CACWC,WAAAA,GAAWD,uBAAAA,CAAoCE,WAAAA"}
|
|
@@ -6,7 +6,7 @@ import { StructuredToolInterface } from "@langchain/core/tools";
|
|
|
6
6
|
import { ToolDefinition } from "@langchain/core/language_models/base";
|
|
7
7
|
import { OpenAIClient } from "@langchain/openai";
|
|
8
8
|
import { BaseChatModel, BaseChatModelCallOptions } from "@langchain/core/language_models/chat_models";
|
|
9
|
-
import * as
|
|
9
|
+
import * as _langchain_core_agents5 from "@langchain/core/agents";
|
|
10
10
|
|
|
11
11
|
//#region src/agents/openai_tools/index.d.ts
|
|
12
12
|
/**
|
|
@@ -94,7 +94,7 @@ declare function createOpenAIToolsAgent({
|
|
|
94
94
|
streamRunnable
|
|
95
95
|
}: CreateOpenAIToolsAgentParams): Promise<AgentRunnableSequence<{
|
|
96
96
|
steps: ToolsAgentStep[];
|
|
97
|
-
},
|
|
97
|
+
}, _langchain_core_agents5.AgentFinish | _langchain_core_agents5.AgentAction[]>>;
|
|
98
98
|
//#endregion
|
|
99
99
|
export { CreateOpenAIToolsAgentParams, createOpenAIToolsAgent };
|
|
100
100
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":["StructuredToolInterface","BaseChatModel","BaseChatModelCallOptions","ChatPromptTemplate","OpenAIClient","ToolDefinition","OpenAIToolsAgentOutputParser","ToolsAgentStep","AgentRunnableSequence","CreateOpenAIToolsAgentParams","ChatCompletionTool","createOpenAIToolsAgent","llm","tools","prompt","streamRunnable","
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":["StructuredToolInterface","BaseChatModel","BaseChatModelCallOptions","ChatPromptTemplate","OpenAIClient","ToolDefinition","OpenAIToolsAgentOutputParser","ToolsAgentStep","AgentRunnableSequence","CreateOpenAIToolsAgentParams","ChatCompletionTool","createOpenAIToolsAgent","llm","tools","prompt","streamRunnable","_langchain_core_agents5","AgentFinish","AgentAction","Promise"],"sources":["../../../src/agents/openai_tools/index.d.ts"],"sourcesContent":["import type { StructuredToolInterface } from \"@langchain/core/tools\";\nimport type { BaseChatModel, BaseChatModelCallOptions } from \"@langchain/core/language_models/chat_models\";\nimport { ChatPromptTemplate } from \"@langchain/core/prompts\";\nimport { OpenAIClient } from \"@langchain/openai\";\nimport { ToolDefinition } from \"@langchain/core/language_models/base\";\nimport { OpenAIToolsAgentOutputParser, type ToolsAgentStep } from \"./output_parser.js\";\nimport { AgentRunnableSequence } from \"../agent.js\";\nexport { OpenAIToolsAgentOutputParser, type ToolsAgentStep };\n/**\n * Params used by the createOpenAIToolsAgent function.\n */\nexport type CreateOpenAIToolsAgentParams = {\n /**\n * LLM to use as the agent. Should work with OpenAI tool calling,\n * so must either be an OpenAI model that supports that or a wrapper of\n * a different model that adds in equivalent support.\n */\n llm: BaseChatModel<BaseChatModelCallOptions & {\n tools?: StructuredToolInterface[] | OpenAIClient.ChatCompletionTool[] | any[];\n }>;\n /** Tools this agent has access to. */\n tools: StructuredToolInterface[] | ToolDefinition[];\n /** The prompt to use, must have an input key of `agent_scratchpad`. */\n prompt: ChatPromptTemplate;\n /**\n * Whether to invoke the underlying model in streaming mode,\n * allowing streaming of intermediate steps. Defaults to true.\n */\n streamRunnable?: boolean;\n};\n/**\n * Create an agent that uses OpenAI-style tool calling.\n * @param params Params required to create the agent. Includes an LLM, tools, and prompt.\n * @returns A runnable sequence representing an agent. It takes as input all the same input\n * variables as the prompt passed in does. It returns as output either an\n * AgentAction or AgentFinish.\n *\n * @example\n * ```typescript\n * import { AgentExecutor, createOpenAIToolsAgent } from \"langchain/agents\";\n * import { pull } from \"langchain/hub\";\n * import type { ChatPromptTemplate } from \"@langchain/core/prompts\";\n * import { AIMessage, HumanMessage } from \"@langchain/core/messages\";\n *\n * import { ChatOpenAI } from \"@langchain/openai\";\n *\n * // Define the tools the agent will have access to.\n * const tools = [...];\n *\n * // Get the prompt to use - you can modify this!\n * // If you want to see the prompt in full, you can at:\n * // https://smith.langchain.com/hub/hwchase17/openai-tools-agent\n * const prompt = await pull<ChatPromptTemplate>(\n * \"hwchase17/openai-tools-agent\"\n * );\n *\n * const llm = new ChatOpenAI({\n * temperature: 0,\n * model: \"gpt-3.5-turbo-1106\",\n * });\n *\n * const agent = await createOpenAIToolsAgent({\n * llm,\n * tools,\n * prompt,\n * });\n *\n * const agentExecutor = new AgentExecutor({\n * agent,\n * tools,\n * });\n *\n * const result = await agentExecutor.invoke({\n * input: \"what is LangChain?\",\n * });\n *\n * // With chat history\n * const result2 = await agentExecutor.invoke({\n * input: \"what's my name?\",\n * chat_history: [\n * new HumanMessage(\"hi! my name is cob\"),\n * new AIMessage(\"Hello Cob! How can I assist you today?\"),\n * ],\n * });\n * ```\n */\nexport declare function createOpenAIToolsAgent({ llm, tools, prompt, streamRunnable }: CreateOpenAIToolsAgentParams): Promise<AgentRunnableSequence<{\n steps: ToolsAgentStep[];\n}, import(\"@langchain/core/agents\").AgentFinish | import(\"@langchain/core/agents\").AgentAction[]>>;\n//# sourceMappingURL=index.d.ts.map"],"mappings":";;;;;;;;;;;;;;AAWYS,KAAAA,4BAAAA,GAA4B;EAMjBP;;;;;EAIgBG,GAAAA,EAJ9BJ,aAI8BI,CAJhBH,wBAIgBG,GAAAA;IAE3BF,KAAAA,CAAAA,EALIH,uBAKJG,EAAAA,GALgCC,YAAAA,CAAaM,kBAK7CP,EAAAA,GAAAA,GAAAA,EAAAA;EAAkB,CAAA,CAAA;EA+DNQ;EAAyBC,KAAAA,EAjEtCZ,uBAiEsCY,EAAAA,GAjEVP,cAiEUO,EAAAA;EAAKC;EAAOC,MAAAA,EA/DjDX,kBA+DiDW;EAAQC;;;;EAEtBC,cAAAA,CAAAA,EAAAA,OAAoCE;CAF2CV;;AAAD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAArGG,sBAAAA;;;;;GAA+DF,+BAA+BU,QAAQX;SACnHD;GAAcS,uBAAAA,CACWC,WAAAA,GAAWD,uBAAAA,CAAoCE,WAAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AgentRunnableSequence } from "../agent.cjs";
|
|
2
|
-
import * as
|
|
2
|
+
import * as _langchain_core_agents3 from "@langchain/core/agents";
|
|
3
3
|
import { AgentStep } from "@langchain/core/agents";
|
|
4
4
|
import { BasePromptTemplate } from "@langchain/core/prompts";
|
|
5
5
|
import { BaseLanguageModelInterface } from "@langchain/core/language_models/base";
|
|
@@ -75,7 +75,7 @@ declare function createReactAgent({
|
|
|
75
75
|
streamRunnable
|
|
76
76
|
}: CreateReactAgentParams): Promise<AgentRunnableSequence<{
|
|
77
77
|
steps: AgentStep[];
|
|
78
|
-
},
|
|
78
|
+
}, _langchain_core_agents3.AgentAction | _langchain_core_agents3.AgentFinish>>;
|
|
79
79
|
//#endregion
|
|
80
80
|
export { CreateReactAgentParams, createReactAgent };
|
|
81
81
|
//# sourceMappingURL=index.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":["ToolInterface","BasePromptTemplate","BaseLanguageModelInterface","AgentStep","AgentRunnableSequence","CreateReactAgentParams","createReactAgent","llm","tools","prompt","streamRunnable","
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":["ToolInterface","BasePromptTemplate","BaseLanguageModelInterface","AgentStep","AgentRunnableSequence","CreateReactAgentParams","createReactAgent","llm","tools","prompt","streamRunnable","_langchain_core_agents3","AgentAction","AgentFinish","Promise"],"sources":["../../../src/agents/react/index.d.ts"],"sourcesContent":["import type { ToolInterface } from \"@langchain/core/tools\";\nimport { BasePromptTemplate } from \"@langchain/core/prompts\";\nimport type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport { AgentStep } from \"@langchain/core/agents\";\nimport { AgentRunnableSequence } from \"../agent.js\";\n/**\n * Params used by the createXmlAgent function.\n */\nexport type CreateReactAgentParams = {\n /** LLM to use for the agent. */\n llm: BaseLanguageModelInterface;\n /** Tools this agent has access to. */\n tools: ToolInterface[];\n /**\n * The prompt to use. Must have input keys for\n * `tools`, `tool_names`, and `agent_scratchpad`.\n */\n prompt: BasePromptTemplate;\n /**\n * Whether to invoke the underlying model in streaming mode,\n * allowing streaming of intermediate steps. Defaults to true.\n */\n streamRunnable?: boolean;\n};\n/**\n * Create an agent that uses ReAct prompting.\n * @param params Params required to create the agent. Includes an LLM, tools, and prompt.\n * @returns A runnable sequence representing an agent. It takes as input all the same input\n * variables as the prompt passed in does. It returns as output either an\n * AgentAction or AgentFinish.\n *\n * @example\n * ```typescript\n * import { AgentExecutor, createReactAgent } from \"langchain/agents\";\n * import { pull } from \"langchain/hub\";\n * import type { PromptTemplate } from \"@langchain/core/prompts\";\n *\n * import { OpenAI } from \"@langchain/openai\";\n *\n * // Define the tools the agent will have access to.\n * const tools = [...];\n *\n * // Get the prompt to use - you can modify this!\n * // If you want to see the prompt in full, you can at:\n * // https://smith.langchain.com/hub/hwchase17/react\n * const prompt = await pull<PromptTemplate>(\"hwchase17/react\");\n *\n * const llm = new OpenAI({\n * temperature: 0,\n * });\n *\n * const agent = await createReactAgent({\n * llm,\n * tools,\n * prompt,\n * });\n *\n * const agentExecutor = new AgentExecutor({\n * agent,\n * tools,\n * });\n *\n * const result = await agentExecutor.invoke({\n * input: \"what is LangChain?\",\n * });\n * ```\n */\nexport declare function createReactAgent({ llm, tools, prompt, streamRunnable }: CreateReactAgentParams): Promise<AgentRunnableSequence<{\n steps: AgentStep[];\n}, import(\"@langchain/core/agents\").AgentAction | import(\"@langchain/core/agents\").AgentFinish>>;\n//# sourceMappingURL=index.d.ts.map"],"mappings":";;;;;;;;;;;AAQYK,KAAAA,sBAAAA,GAAsB;EAEzBH;EAEEF,GAAAA,EAFFE,0BAEEF;EAKCC;EAAkB,KAAA,EALnBD,aAKmB,EAAA;EAkDNM;;;;EAAuCI,MAAAA,EAlDnDT,kBAkDmDS;EAAkBL;;;;EAAiCD,cAAAA,CAAAA,EAAAA,OAAAA;CAARU;AAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAzFR,gBAAAA;;;;;GAAyDD,yBAAyBS,QAAQV;SACvGD;GAASQ,uBAAAA,CACgBC,WAAAA,GAAWD,uBAAAA,CAAoCE"}
|
|
@@ -2,7 +2,7 @@ import { AgentRunnableSequence } from "../agent.js";
|
|
|
2
2
|
import { BasePromptTemplate } from "@langchain/core/prompts";
|
|
3
3
|
import { ToolInterface } from "@langchain/core/tools";
|
|
4
4
|
import { BaseLanguageModelInterface } from "@langchain/core/language_models/base";
|
|
5
|
-
import * as
|
|
5
|
+
import * as _langchain_core_agents3 from "@langchain/core/agents";
|
|
6
6
|
import { AgentStep } from "@langchain/core/agents";
|
|
7
7
|
|
|
8
8
|
//#region src/agents/react/index.d.ts
|
|
@@ -75,7 +75,7 @@ declare function createReactAgent({
|
|
|
75
75
|
streamRunnable
|
|
76
76
|
}: CreateReactAgentParams): Promise<AgentRunnableSequence<{
|
|
77
77
|
steps: AgentStep[];
|
|
78
|
-
},
|
|
78
|
+
}, _langchain_core_agents3.AgentAction | _langchain_core_agents3.AgentFinish>>;
|
|
79
79
|
//#endregion
|
|
80
80
|
export { CreateReactAgentParams, createReactAgent };
|
|
81
81
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":["ToolInterface","BasePromptTemplate","BaseLanguageModelInterface","AgentStep","AgentRunnableSequence","CreateReactAgentParams","createReactAgent","llm","tools","prompt","streamRunnable","
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":["ToolInterface","BasePromptTemplate","BaseLanguageModelInterface","AgentStep","AgentRunnableSequence","CreateReactAgentParams","createReactAgent","llm","tools","prompt","streamRunnable","_langchain_core_agents3","AgentAction","AgentFinish","Promise"],"sources":["../../../src/agents/react/index.d.ts"],"sourcesContent":["import type { ToolInterface } from \"@langchain/core/tools\";\nimport { BasePromptTemplate } from \"@langchain/core/prompts\";\nimport type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport { AgentStep } from \"@langchain/core/agents\";\nimport { AgentRunnableSequence } from \"../agent.js\";\n/**\n * Params used by the createXmlAgent function.\n */\nexport type CreateReactAgentParams = {\n /** LLM to use for the agent. */\n llm: BaseLanguageModelInterface;\n /** Tools this agent has access to. */\n tools: ToolInterface[];\n /**\n * The prompt to use. Must have input keys for\n * `tools`, `tool_names`, and `agent_scratchpad`.\n */\n prompt: BasePromptTemplate;\n /**\n * Whether to invoke the underlying model in streaming mode,\n * allowing streaming of intermediate steps. Defaults to true.\n */\n streamRunnable?: boolean;\n};\n/**\n * Create an agent that uses ReAct prompting.\n * @param params Params required to create the agent. Includes an LLM, tools, and prompt.\n * @returns A runnable sequence representing an agent. It takes as input all the same input\n * variables as the prompt passed in does. It returns as output either an\n * AgentAction or AgentFinish.\n *\n * @example\n * ```typescript\n * import { AgentExecutor, createReactAgent } from \"langchain/agents\";\n * import { pull } from \"langchain/hub\";\n * import type { PromptTemplate } from \"@langchain/core/prompts\";\n *\n * import { OpenAI } from \"@langchain/openai\";\n *\n * // Define the tools the agent will have access to.\n * const tools = [...];\n *\n * // Get the prompt to use - you can modify this!\n * // If you want to see the prompt in full, you can at:\n * // https://smith.langchain.com/hub/hwchase17/react\n * const prompt = await pull<PromptTemplate>(\"hwchase17/react\");\n *\n * const llm = new OpenAI({\n * temperature: 0,\n * });\n *\n * const agent = await createReactAgent({\n * llm,\n * tools,\n * prompt,\n * });\n *\n * const agentExecutor = new AgentExecutor({\n * agent,\n * tools,\n * });\n *\n * const result = await agentExecutor.invoke({\n * input: \"what is LangChain?\",\n * });\n * ```\n */\nexport declare function createReactAgent({ llm, tools, prompt, streamRunnable }: CreateReactAgentParams): Promise<AgentRunnableSequence<{\n steps: AgentStep[];\n}, import(\"@langchain/core/agents\").AgentAction | import(\"@langchain/core/agents\").AgentFinish>>;\n//# sourceMappingURL=index.d.ts.map"],"mappings":";;;;;;;;;;;AAQYK,KAAAA,sBAAAA,GAAsB;EAEzBH;EAEEF,GAAAA,EAFFE,0BAEEF;EAKCC;EAAkB,KAAA,EALnBD,aAKmB,EAAA;EAkDNM;;;;EAAuCI,MAAAA,EAlDnDT,kBAkDmDS;EAAkBL;;;;EAAiCD,cAAAA,CAAAA,EAAAA,OAAAA;CAARU;AAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAzFR,gBAAAA;;;;;GAAyDD,yBAAyBS,QAAQV;SACvGD;GAASQ,uBAAAA,CACgBC,WAAAA,GAAWD,uBAAAA,CAAoCE"}
|
|
@@ -2,7 +2,7 @@ import { AgentInput } from "../types.cjs";
|
|
|
2
2
|
import { Agent, AgentArgs, AgentRunnableSequence, OutputParserArgs } from "../agent.cjs";
|
|
3
3
|
import { Optional } from "../../types/type-utils.cjs";
|
|
4
4
|
import { StructuredChatOutputParserWithRetries } from "./outputParser.cjs";
|
|
5
|
-
import * as
|
|
5
|
+
import * as _langchain_core_agents0 from "@langchain/core/agents";
|
|
6
6
|
import { AgentStep } from "@langchain/core/agents";
|
|
7
7
|
import { BaseMessagePromptTemplate, BasePromptTemplate, ChatPromptTemplate } from "@langchain/core/prompts";
|
|
8
8
|
import { BaseLanguageModelInterface, ToolDefinition } from "@langchain/core/language_models/base";
|
|
@@ -176,7 +176,7 @@ declare function createStructuredChatAgent({
|
|
|
176
176
|
streamRunnable
|
|
177
177
|
}: CreateStructuredChatAgentParams): Promise<AgentRunnableSequence<{
|
|
178
178
|
steps: AgentStep[];
|
|
179
|
-
},
|
|
179
|
+
}, _langchain_core_agents0.AgentAction | _langchain_core_agents0.AgentFinish>>;
|
|
180
180
|
//#endregion
|
|
181
181
|
export { CreateStructuredChatAgentParams, StructuredChatAgent, StructuredChatAgentInput, StructuredChatCreatePromptArgs, createStructuredChatAgent };
|
|
182
182
|
//# sourceMappingURL=index.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":["StructuredToolInterface","BaseLanguageModelInterface","ToolDefinition","BasePromptTemplate","BaseMessagePromptTemplate","ChatPromptTemplate","AgentStep","Optional","Agent","AgentArgs","AgentRunnableSequence","OutputParserArgs","AgentInput","StructuredChatOutputParserWithRetries","StructuredChatCreatePromptArgs","StructuredChatAgentInput","StructuredChatAgent","Promise","CreateStructuredChatAgentParams","createStructuredChatAgent","llm","tools","prompt","streamRunnable","
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":["StructuredToolInterface","BaseLanguageModelInterface","ToolDefinition","BasePromptTemplate","BaseMessagePromptTemplate","ChatPromptTemplate","AgentStep","Optional","Agent","AgentArgs","AgentRunnableSequence","OutputParserArgs","AgentInput","StructuredChatOutputParserWithRetries","StructuredChatCreatePromptArgs","StructuredChatAgentInput","StructuredChatAgent","Promise","CreateStructuredChatAgentParams","createStructuredChatAgent","llm","tools","prompt","streamRunnable","_langchain_core_agents0","AgentAction","AgentFinish"],"sources":["../../../src/agents/structured_chat/index.d.ts"],"sourcesContent":["import type { StructuredToolInterface } from \"@langchain/core/tools\";\nimport { type BaseLanguageModelInterface, type ToolDefinition } from \"@langchain/core/language_models/base\";\nimport type { BasePromptTemplate } from \"@langchain/core/prompts\";\nimport { BaseMessagePromptTemplate, ChatPromptTemplate } from \"@langchain/core/prompts\";\nimport { AgentStep } from \"@langchain/core/agents\";\nimport { Optional } from \"../../types/type-utils.js\";\nimport { Agent, AgentArgs, AgentRunnableSequence, OutputParserArgs } from \"../agent.js\";\nimport { AgentInput } from \"../types.js\";\nimport { StructuredChatOutputParserWithRetries } from \"./outputParser.js\";\n/**\n * Interface for arguments used to create a prompt for a\n * StructuredChatAgent.\n */\nexport interface StructuredChatCreatePromptArgs {\n /** String to put after the list of tools. */\n suffix?: string;\n /** String to put before the list of tools. */\n prefix?: string;\n /** String to use directly as the human message template. */\n humanMessageTemplate?: string;\n /** List of input variables the final prompt will expect. */\n inputVariables?: string[];\n /** List of historical prompts from memory. */\n memoryPrompts?: BaseMessagePromptTemplate[];\n}\n/**\n * Type for input data for creating a StructuredChatAgent, with the\n * 'outputParser' property made optional.\n */\nexport type StructuredChatAgentInput = Optional<AgentInput, \"outputParser\">;\n/**\n * Agent that interoperates with Structured Tools using React logic.\n * @augments Agent\n */\nexport declare class StructuredChatAgent extends Agent {\n static lc_name(): string;\n lc_namespace: string[];\n constructor(input: StructuredChatAgentInput);\n _agentType(): \"structured-chat-zero-shot-react-description\";\n observationPrefix(): string;\n llmPrefix(): string;\n _stop(): string[];\n /**\n * Validates that all provided tools have a description. Throws an error\n * if any tool lacks a description.\n * @param tools Array of StructuredTool instances to validate.\n */\n static validateTools(tools: StructuredToolInterface[]): void;\n /**\n * Returns a default output parser for the StructuredChatAgent. If an LLM\n * is provided, it creates an output parser with retry logic from the LLM.\n * @param fields Optional fields to customize the output parser. Can include an LLM and a list of tool names.\n * @returns An instance of StructuredChatOutputParserWithRetries.\n */\n static getDefaultOutputParser(fields?: OutputParserArgs & {\n toolNames: string[];\n }): StructuredChatOutputParserWithRetries;\n /**\n * Constructs the agent's scratchpad from a list of steps. If the agent's\n * scratchpad is not empty, it prepends a message indicating that the\n * agent has not seen any previous work.\n * @param steps Array of AgentStep instances to construct the scratchpad from.\n * @returns A Promise that resolves to a string representing the agent's scratchpad.\n */\n constructScratchPad(steps: AgentStep[]): Promise<string>;\n /**\n * Creates a string representation of the schemas of the provided tools.\n * @param tools Array of StructuredTool instances to create the schemas string from.\n * @returns A string representing the schemas of the provided tools.\n */\n static createToolSchemasString(tools: StructuredToolInterface[]): string;\n /**\n * Create prompt in the style of the agent.\n *\n * @param tools - List of tools the agent will have access to, used to format the prompt.\n * @param args - Arguments to create the prompt with.\n * @param args.suffix - String to put after the list of tools.\n * @param args.prefix - String to put before the list of tools.\n * @param args.inputVariables List of input variables the final prompt will expect.\n * @param args.memoryPrompts List of historical prompts from memory.\n */\n static createPrompt(tools: StructuredToolInterface[], args?: StructuredChatCreatePromptArgs): ChatPromptTemplate<any, any>;\n /**\n * Creates a StructuredChatAgent from an LLM and a list of tools.\n * Validates the tools, creates a prompt, and sets up an LLM chain for the\n * agent.\n * @param llm BaseLanguageModel instance to create the agent from.\n * @param tools Array of StructuredTool instances to create the agent from.\n * @param args Optional arguments to customize the creation of the agent. Can include arguments for creating the prompt and AgentArgs.\n * @returns A new instance of StructuredChatAgent.\n */\n static fromLLMAndTools(llm: BaseLanguageModelInterface, tools: StructuredToolInterface[], args?: StructuredChatCreatePromptArgs & AgentArgs): StructuredChatAgent;\n}\n/**\n * Params used by the createStructuredChatAgent function.\n */\nexport type CreateStructuredChatAgentParams = {\n /** LLM to use as the agent. */\n llm: BaseLanguageModelInterface;\n /** Tools this agent has access to. */\n tools: (StructuredToolInterface | ToolDefinition)[];\n /**\n * The prompt to use. Must have input keys for\n * `tools`, `tool_names`, and `agent_scratchpad`.\n */\n prompt: BasePromptTemplate;\n /**\n * Whether to invoke the underlying model in streaming mode,\n * allowing streaming of intermediate steps. Defaults to true.\n */\n streamRunnable?: boolean;\n};\n/**\n * Create an agent aimed at supporting tools with multiple inputs.\n * @param params Params required to create the agent. Includes an LLM, tools, and prompt.\n * @returns A runnable sequence representing an agent. It takes as input all the same input\n * variables as the prompt passed in does. It returns as output either an\n * AgentAction or AgentFinish.\n *\n * @example\n * ```typescript\n * import { AgentExecutor, createStructuredChatAgent } from \"langchain/agents\";\n * import { pull } from \"langchain/hub\";\n * import type { ChatPromptTemplate } from \"@langchain/core/prompts\";\n * import { AIMessage, HumanMessage } from \"@langchain/core/messages\";\n *\n * import { ChatOpenAI } from \"@langchain/openai\";\n *\n * // Define the tools the agent will have access to.\n * const tools = [...];\n *\n * // Get the prompt to use - you can modify this!\n * // If you want to see the prompt in full, you can at:\n * // https://smith.langchain.com/hub/hwchase17/structured-chat-agent\n * const prompt = await pull<ChatPromptTemplate>(\n * \"hwchase17/structured-chat-agent\"\n * );\n *\n * const llm = new ChatOpenAI({\n * temperature: 0,\n * model: \"gpt-3.5-turbo-1106\",\n * });\n *\n * const agent = await createStructuredChatAgent({\n * llm,\n * tools,\n * prompt,\n * });\n *\n * const agentExecutor = new AgentExecutor({\n * agent,\n * tools,\n * });\n *\n * const result = await agentExecutor.invoke({\n * input: \"what is LangChain?\",\n * });\n *\n * // With chat history\n * const result2 = await agentExecutor.invoke({\n * input: \"what's my name?\",\n * chat_history: [\n * new HumanMessage(\"hi! my name is cob\"),\n * new AIMessage(\"Hello Cob! How can I assist you today?\"),\n * ],\n * });\n * ```\n */\nexport declare function createStructuredChatAgent({ llm, tools, prompt, streamRunnable }: CreateStructuredChatAgentParams): Promise<AgentRunnableSequence<{\n steps: AgentStep[];\n}, import(\"@langchain/core/agents\").AgentAction | import(\"@langchain/core/agents\").AgentFinish>>;\n//# sourceMappingURL=index.d.ts.map"],"mappings":";;;;;;;;;;;;;;AAaA;AAgBA;AAKqBgB,UArBJF,8BAAAA,CAqBuB;EAGjBC;EAUSf,MAAAA,CAAAA,EAAAA,MAAAA;EAOWW;EAEnCE,MAAAA,CAAAA,EAAAA,MAAAA;EAQuBP;EAAcW,oBAAAA,CAAAA,EAAAA,MAAAA;EAMHjB;EAWXA,cAAAA,CAAAA,EAAAA,MAAAA,EAAAA;EAAkCc;EAAiCT,aAAAA,CAAAA,EA1D9ED,yBA0D8EC,EAAAA;;;;;;AA/CjDG,KALrCO,wBAAAA,GAA2BR,QAKUC,CALDI,UAKCJ,EAAAA,cAAAA,CAAAA;AAAK;AA8DtD;;;AAIsCN,cAlEjBc,mBAAAA,SAA4BR,KAAAA,CAkEXN;EAK1BC,OAAAA,OAAAA,CAAAA,CAAAA,EAAAA,MAAAA;EAAkB,YAAA,EAAA,MAAA,EAAA;EA+DNgB,WAAAA,CAAAA,KAAAA,EAnIDJ,wBAmI0B;EAAGK,UAAAA,CAAAA,CAAAA,EAAAA,6CAAAA;EAAKC,iBAAAA,CAAAA,CAAAA,EAAAA,MAAAA;EAAOC,SAAAA,CAAAA,CAAAA,EAAAA,MAAAA;EAAQC,KAAAA,CAAAA,CAAAA,EAAAA,MAAAA,EAAAA;EAAkBL;;;;;EAAkCD,OAAAA,aAAAA,CAAAA,KAAAA,EAzH5FjB,uBAyH4FiB,EAAAA,CAAAA,EAAAA,IAAAA;EAAO;;;;;;yCAlHxFN;;MAEnCE;;;;;;;;6BAQuBP,cAAcW;;;;;;wCAMHjB;;;;;;;;;;;6BAWXA,kCAAkCc,iCAAiCT;;;;;;;;;;8BAUlEJ,mCAAmCD,kCAAkCc,iCAAiCL,YAAYO;;;;;KAKtIE,+BAAAA;;OAEHjB;;UAEGD,0BAA0BE;;;;;UAK1BC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA+DYgB,yBAAAA;;;;;GAAkED,kCAAkCD,QAAQP;SACzHJ;GAASkB,uBAAAA,CACgBC,WAAAA,GAAWD,uBAAAA,CAAoCE"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BaseChatMemory, BaseChatMemoryInput } from "../../../memory/chat_memory.cjs";
|
|
2
|
-
import * as
|
|
2
|
+
import * as _langchain_core_messages2 from "@langchain/core/messages";
|
|
3
3
|
import { InputValues, MemoryVariables, OutputValues } from "@langchain/core/memory";
|
|
4
4
|
import { ChatOpenAI } from "@langchain/openai";
|
|
5
5
|
|
|
@@ -37,7 +37,7 @@ declare class OpenAIAgentTokenBufferMemory extends BaseChatMemory {
|
|
|
37
37
|
* Retrieves the messages from the chat history.
|
|
38
38
|
* @returns Promise that resolves with the messages from the chat history.
|
|
39
39
|
*/
|
|
40
|
-
getMessages(): Promise<
|
|
40
|
+
getMessages(): Promise<_langchain_core_messages2.BaseMessage<_langchain_core_messages2.MessageStructure<_langchain_core_messages2.MessageToolSet>, _langchain_core_messages2.MessageType>[]>;
|
|
41
41
|
/**
|
|
42
42
|
* Loads memory variables from the input values.
|
|
43
43
|
* @param _values Input values.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token_buffer_memory.d.cts","names":["ChatOpenAI","InputValues","MemoryVariables","OutputValues","BaseChatMemory","BaseChatMemoryInput","OpenAIAgentTokenBufferMemoryFields","OpenAIAgentTokenBufferMemory","
|
|
1
|
+
{"version":3,"file":"token_buffer_memory.d.cts","names":["ChatOpenAI","InputValues","MemoryVariables","OutputValues","BaseChatMemory","BaseChatMemoryInput","OpenAIAgentTokenBufferMemoryFields","OpenAIAgentTokenBufferMemory","_langchain_core_messages2","MessageToolSet","MessageStructure","MessageType","BaseMessage","Promise"],"sources":["../../../../src/agents/toolkits/conversational_retrieval/token_buffer_memory.d.ts"],"sourcesContent":["import { ChatOpenAI } from \"@langchain/openai\";\nimport { InputValues, MemoryVariables, OutputValues } from \"@langchain/core/memory\";\nimport { BaseChatMemory, BaseChatMemoryInput } from \"../../../memory/chat_memory.js\";\n/**\n * Type definition for the fields required to initialize an instance of\n * OpenAIAgentTokenBufferMemory.\n */\nexport type OpenAIAgentTokenBufferMemoryFields = BaseChatMemoryInput & {\n llm: ChatOpenAI;\n humanPrefix?: string;\n aiPrefix?: string;\n memoryKey?: string;\n maxTokenLimit?: number;\n returnMessages?: boolean;\n outputKey?: string;\n intermediateStepsKey?: string;\n};\n/**\n * Memory used to save agent output and intermediate steps.\n */\nexport declare class OpenAIAgentTokenBufferMemory extends BaseChatMemory {\n humanPrefix: string;\n aiPrefix: string;\n llm: ChatOpenAI;\n memoryKey: string;\n maxTokenLimit: number;\n returnMessages: boolean;\n outputKey: string;\n intermediateStepsKey: string;\n constructor(fields: OpenAIAgentTokenBufferMemoryFields);\n get memoryKeys(): string[];\n /**\n * Retrieves the messages from the chat history.\n * @returns Promise that resolves with the messages from the chat history.\n */\n getMessages(): Promise<import(\"@langchain/core/messages\").BaseMessage<import(\"@langchain/core/messages\").MessageStructure<import(\"@langchain/core/messages\").MessageToolSet>, import(\"@langchain/core/messages\").MessageType>[]>;\n /**\n * Loads memory variables from the input values.\n * @param _values Input values.\n * @returns Promise that resolves with the loaded memory variables.\n */\n loadMemoryVariables(_values: InputValues): Promise<MemoryVariables>;\n /**\n * Saves the context of the chat, including user input, AI output, and\n * intermediate steps. Prunes the chat history if the total token count\n * exceeds the maximum limit.\n * @param inputValues Input values.\n * @param outputValues Output values.\n * @returns Promise that resolves when the context has been saved.\n */\n saveContext(inputValues: InputValues, outputValues: OutputValues): Promise<void>;\n}\n//# sourceMappingURL=token_buffer_memory.d.ts.map"],"mappings":";;;;;;;;;;AAOA;AAaqBO,KAbTD,kCAAAA,GAAqCD,mBAaA,GAAA;EAGxCL,GAAAA,EAfAA,UAeAA;EAMeM,WAAAA,CAAAA,EAAAA,MAAAA;EAAkCE,QAAAA,CAAAA,EAAAA,MAAAA;EAMqHA,SAAAA,CAAAA,EAAAA,MAAAA;EAAlDA,aAAAA,CAAAA,EAAAA,MAAAA;EAAmGA,cAAAA,CAAAA,EAAAA,OAAlKI;EAA3CC,SAAAA,CAAAA,EAAAA,MAAAA;EAMcZ,oBAAAA,CAAAA,EAAAA,MAAAA;CAAsBC;;;;AASgBW,cA9BlDN,4BAAAA,SAAqCH,cAAAA,CA8BaS;EA9BbT,WAAAA,EAAAA,MAAAA;EAAc,QAAA,EAAA,MAAA;OAG/DJ;;;;;;sBAMeM;;;;;;iBAMLO,QAA6ML,yBAAAA,CAAlKI,YAAiHJ,yBAAAA,CAAlEE,iBANnDF,yBAAAA,CAMuGC,cAAAA,GAApCD,yBAAAA,CAAwFG,WAAAA;;;;;;+BAMpLV,cAAcY,QAAQX;;;;;;;;;2BAS1BD,2BAA2BE,eAAeU"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BaseChatMemory, BaseChatMemoryInput } from "../../../memory/chat_memory.js";
|
|
2
|
-
import * as
|
|
2
|
+
import * as _langchain_core_messages2 from "@langchain/core/messages";
|
|
3
3
|
import { InputValues, MemoryVariables, OutputValues } from "@langchain/core/memory";
|
|
4
4
|
import { ChatOpenAI } from "@langchain/openai";
|
|
5
5
|
|
|
@@ -37,7 +37,7 @@ declare class OpenAIAgentTokenBufferMemory extends BaseChatMemory {
|
|
|
37
37
|
* Retrieves the messages from the chat history.
|
|
38
38
|
* @returns Promise that resolves with the messages from the chat history.
|
|
39
39
|
*/
|
|
40
|
-
getMessages(): Promise<
|
|
40
|
+
getMessages(): Promise<_langchain_core_messages2.BaseMessage<_langchain_core_messages2.MessageStructure<_langchain_core_messages2.MessageToolSet>, _langchain_core_messages2.MessageType>[]>;
|
|
41
41
|
/**
|
|
42
42
|
* Loads memory variables from the input values.
|
|
43
43
|
* @param _values Input values.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token_buffer_memory.d.ts","names":["ChatOpenAI","InputValues","MemoryVariables","OutputValues","BaseChatMemory","BaseChatMemoryInput","OpenAIAgentTokenBufferMemoryFields","OpenAIAgentTokenBufferMemory","
|
|
1
|
+
{"version":3,"file":"token_buffer_memory.d.ts","names":["ChatOpenAI","InputValues","MemoryVariables","OutputValues","BaseChatMemory","BaseChatMemoryInput","OpenAIAgentTokenBufferMemoryFields","OpenAIAgentTokenBufferMemory","_langchain_core_messages2","MessageToolSet","MessageStructure","MessageType","BaseMessage","Promise"],"sources":["../../../../src/agents/toolkits/conversational_retrieval/token_buffer_memory.d.ts"],"sourcesContent":["import { ChatOpenAI } from \"@langchain/openai\";\nimport { InputValues, MemoryVariables, OutputValues } from \"@langchain/core/memory\";\nimport { BaseChatMemory, BaseChatMemoryInput } from \"../../../memory/chat_memory.js\";\n/**\n * Type definition for the fields required to initialize an instance of\n * OpenAIAgentTokenBufferMemory.\n */\nexport type OpenAIAgentTokenBufferMemoryFields = BaseChatMemoryInput & {\n llm: ChatOpenAI;\n humanPrefix?: string;\n aiPrefix?: string;\n memoryKey?: string;\n maxTokenLimit?: number;\n returnMessages?: boolean;\n outputKey?: string;\n intermediateStepsKey?: string;\n};\n/**\n * Memory used to save agent output and intermediate steps.\n */\nexport declare class OpenAIAgentTokenBufferMemory extends BaseChatMemory {\n humanPrefix: string;\n aiPrefix: string;\n llm: ChatOpenAI;\n memoryKey: string;\n maxTokenLimit: number;\n returnMessages: boolean;\n outputKey: string;\n intermediateStepsKey: string;\n constructor(fields: OpenAIAgentTokenBufferMemoryFields);\n get memoryKeys(): string[];\n /**\n * Retrieves the messages from the chat history.\n * @returns Promise that resolves with the messages from the chat history.\n */\n getMessages(): Promise<import(\"@langchain/core/messages\").BaseMessage<import(\"@langchain/core/messages\").MessageStructure<import(\"@langchain/core/messages\").MessageToolSet>, import(\"@langchain/core/messages\").MessageType>[]>;\n /**\n * Loads memory variables from the input values.\n * @param _values Input values.\n * @returns Promise that resolves with the loaded memory variables.\n */\n loadMemoryVariables(_values: InputValues): Promise<MemoryVariables>;\n /**\n * Saves the context of the chat, including user input, AI output, and\n * intermediate steps. Prunes the chat history if the total token count\n * exceeds the maximum limit.\n * @param inputValues Input values.\n * @param outputValues Output values.\n * @returns Promise that resolves when the context has been saved.\n */\n saveContext(inputValues: InputValues, outputValues: OutputValues): Promise<void>;\n}\n//# sourceMappingURL=token_buffer_memory.d.ts.map"],"mappings":";;;;;;;;;;AAOA;AAaqBO,KAbTD,kCAAAA,GAAqCD,mBAaA,GAAA;EAGxCL,GAAAA,EAfAA,UAeAA;EAMeM,WAAAA,CAAAA,EAAAA,MAAAA;EAAkCE,QAAAA,CAAAA,EAAAA,MAAAA;EAMqHA,SAAAA,CAAAA,EAAAA,MAAAA;EAAlDA,aAAAA,CAAAA,EAAAA,MAAAA;EAAmGA,cAAAA,CAAAA,EAAAA,OAAlKI;EAA3CC,SAAAA,CAAAA,EAAAA,MAAAA;EAMcZ,oBAAAA,CAAAA,EAAAA,MAAAA;CAAsBC;;;;AASgBW,cA9BlDN,4BAAAA,SAAqCH,cAAAA,CA8BaS;EA9BbT,WAAAA,EAAAA,MAAAA;EAAc,QAAA,EAAA,MAAA;OAG/DJ;;;;;;sBAMeM;;;;;;iBAMLO,QAA6ML,yBAAAA,CAAlKI,YAAiHJ,yBAAAA,CAAlEE,iBANnDF,yBAAAA,CAMuGC,cAAAA,GAApCD,yBAAAA,CAAwFG,WAAAA;;;;;;+BAMpLV,cAAcY,QAAQX;;;;;;;;;2BAS1BD,2BAA2BE,eAAeU"}
|
|
@@ -5,11 +5,7 @@ import { z } from "zod";
|
|
|
5
5
|
//#region src/agents/toolkits/conversational_retrieval/tool.d.ts
|
|
6
6
|
declare function createRetrieverTool(retriever: BaseRetrieverInterface, input: Omit<DynamicStructuredToolInput, "func" | "schema">): DynamicStructuredTool<z.ZodObject<{
|
|
7
7
|
input: z.ZodString;
|
|
8
|
-
},
|
|
9
|
-
input: string;
|
|
10
|
-
}, {
|
|
11
|
-
input: string;
|
|
12
|
-
}>, {
|
|
8
|
+
}, z.core.$strip>, {
|
|
13
9
|
input: string;
|
|
14
10
|
}, {
|
|
15
11
|
input: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool.d.cts","names":["BaseRetrieverInterface","z","DynamicStructuredTool","DynamicStructuredToolInput","createRetrieverTool","Omit","ZodString","
|
|
1
|
+
{"version":3,"file":"tool.d.cts","names":["BaseRetrieverInterface","z","DynamicStructuredTool","DynamicStructuredToolInput","createRetrieverTool","Omit","ZodString","core","$strip","ZodObject"],"sources":["../../../../src/agents/toolkits/conversational_retrieval/tool.d.ts"],"sourcesContent":["import type { BaseRetrieverInterface } from \"@langchain/core/retrievers\";\nimport { z } from \"zod\";\nimport { DynamicStructuredTool, DynamicStructuredToolInput } from \"@langchain/core/tools\";\nexport declare function createRetrieverTool(retriever: BaseRetrieverInterface, input: Omit<DynamicStructuredToolInput, \"func\" | \"schema\">): DynamicStructuredTool<z.ZodObject<{\n input: z.ZodString;\n}, z.core.$strip>, {\n input: string;\n}, {\n input: string;\n}, string, string>;\n//# sourceMappingURL=tool.d.ts.map"],"mappings":";;;;;iBAGwBI,mBAAAA,YAA+BJ,+BAA+BK,KAAKF,iDAAiDD,sBAAsBD,CAAAA,CAAEQ;SACzJR,CAAAA,CAAEK;AADb,CAAA,EAEGL,CAAAA,CAAEM,IAAAA,CAAKC,MAFcJ,CAAAA,EAAAA;EAA+BJ,KAAAA,EAAAA,MAAAA;CAAoCG,EAAAA;EAALE,KAAAA,EAAAA,MAAAA;CAC3EJ,EAAEK,MAAAA,EAAAA,MAAAA,CAAAA"}
|
|
@@ -5,11 +5,7 @@ import { BaseRetrieverInterface } from "@langchain/core/retrievers";
|
|
|
5
5
|
//#region src/agents/toolkits/conversational_retrieval/tool.d.ts
|
|
6
6
|
declare function createRetrieverTool(retriever: BaseRetrieverInterface, input: Omit<DynamicStructuredToolInput, "func" | "schema">): DynamicStructuredTool<z.ZodObject<{
|
|
7
7
|
input: z.ZodString;
|
|
8
|
-
},
|
|
9
|
-
input: string;
|
|
10
|
-
}, {
|
|
11
|
-
input: string;
|
|
12
|
-
}>, {
|
|
8
|
+
}, z.core.$strip>, {
|
|
13
9
|
input: string;
|
|
14
10
|
}, {
|
|
15
11
|
input: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool.d.ts","names":["BaseRetrieverInterface","z","DynamicStructuredTool","DynamicStructuredToolInput","createRetrieverTool","Omit","ZodString","
|
|
1
|
+
{"version":3,"file":"tool.d.ts","names":["BaseRetrieverInterface","z","DynamicStructuredTool","DynamicStructuredToolInput","createRetrieverTool","Omit","ZodString","core","$strip","ZodObject"],"sources":["../../../../src/agents/toolkits/conversational_retrieval/tool.d.ts"],"sourcesContent":["import type { BaseRetrieverInterface } from \"@langchain/core/retrievers\";\nimport { z } from \"zod\";\nimport { DynamicStructuredTool, DynamicStructuredToolInput } from \"@langchain/core/tools\";\nexport declare function createRetrieverTool(retriever: BaseRetrieverInterface, input: Omit<DynamicStructuredToolInput, \"func\" | \"schema\">): DynamicStructuredTool<z.ZodObject<{\n input: z.ZodString;\n}, z.core.$strip>, {\n input: string;\n}, {\n input: string;\n}, string, string>;\n//# sourceMappingURL=tool.d.ts.map"],"mappings":";;;;;iBAGwBI,mBAAAA,YAA+BJ,+BAA+BK,KAAKF,iDAAiDD,sBAAsBD,CAAAA,CAAEQ;SACzJR,CAAAA,CAAEK;AADb,CAAA,EAEGL,CAAAA,CAAEM,IAAAA,CAAKC,MAFcJ,CAAAA,EAAAA;EAA+BJ,KAAAA,EAAAA,MAAAA;CAAoCG,EAAAA;EAALE,KAAAA,EAAAA,MAAAA;CAC3EJ,EAAEK,MAAAA,EAAAA,MAAAA,CAAAA"}
|
package/dist/chains/base.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.cjs","names":["BaseLangChain","fields?: BaseMemory | ChainInputs","verbose?: boolean","callbacks?: Callbacks","values: ChainValues","input: RunInput","options?: RunnableConfig","CallbackManager","outputValues: RunOutput","listener: (() => void) | undefined","RUN_KEY","outputs: Record<string, unknown>","inputs: Record<string, unknown>","input: any","config?: Callbacks | RunnableConfig","values: ChainValues & { signal?: AbortSignal; timeout?: number }","tags?: string[]","inputs: RunInput[]","config?: (Callbacks | RunnableConfig)[]","data: SerializedBaseChain","values: LoadValues"],"sources":["../../src/chains/base.ts"],"sourcesContent":["import { BaseMemory } from \"@langchain/core/memory\";\nimport { ChainValues } from \"@langchain/core/utils/types\";\nimport { RUN_KEY } from \"@langchain/core/outputs\";\nimport {\n CallbackManagerForChainRun,\n CallbackManager,\n Callbacks,\n parseCallbackConfigArg,\n} from \"@langchain/core/callbacks/manager\";\nimport { ensureConfig, type RunnableConfig } from \"@langchain/core/runnables\";\nimport {\n BaseLangChain,\n BaseLangChainParams,\n} from \"@langchain/core/language_models/base\";\nimport { SerializedBaseChain } from \"./serde.js\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type LoadValues = Record<string, any>;\n\nexport interface ChainInputs extends BaseLangChainParams {\n memory?: BaseMemory;\n\n /**\n * @deprecated Use `callbacks` instead\n */\n callbackManager?: CallbackManager;\n}\n\n/**\n * Base interface that all chains must implement.\n */\nexport abstract class BaseChain<\n RunInput extends ChainValues = ChainValues,\n RunOutput extends ChainValues = ChainValues,\n >\n extends BaseLangChain<RunInput, RunOutput>\n implements ChainInputs\n{\n declare memory?: BaseMemory;\n\n get lc_namespace(): string[] {\n return [\"langchain\", \"chains\", this._chainType()];\n }\n\n constructor(\n fields?: BaseMemory | ChainInputs,\n /** @deprecated */\n verbose?: boolean,\n /** @deprecated */\n callbacks?: Callbacks\n ) {\n if (\n arguments.length === 1 &&\n typeof fields === \"object\" &&\n !(\"saveContext\" in fields)\n ) {\n // fields is not a BaseMemory\n const { memory, callbackManager, ...rest } = fields;\n super({ ...rest, callbacks: callbackManager ?? rest.callbacks });\n this.memory = memory;\n } else {\n // fields is a BaseMemory\n super({ verbose, callbacks });\n this.memory = fields as BaseMemory;\n }\n }\n\n /** @ignore */\n _selectMemoryInputs(values: ChainValues): ChainValues {\n const valuesForMemory = { ...values };\n if (\"signal\" in valuesForMemory) {\n delete valuesForMemory.signal;\n }\n if (\"timeout\" in valuesForMemory) {\n delete valuesForMemory.timeout;\n }\n return valuesForMemory;\n }\n\n /**\n * Invoke the chain with the provided input and returns the output.\n * @param input Input values for the chain run.\n * @param config Optional configuration for the Runnable.\n * @returns Promise that resolves with the output of the chain run.\n */\n async invoke(input: RunInput, options?: RunnableConfig): Promise<RunOutput> {\n const config = ensureConfig(options);\n const fullValues = await this._formatValues(input);\n const callbackManager_ = await CallbackManager.configure(\n config?.callbacks,\n this.callbacks,\n config?.tags,\n this.tags,\n config?.metadata,\n this.metadata,\n { verbose: this.verbose }\n );\n const runManager = await callbackManager_?.handleChainStart(\n this.toJSON(),\n fullValues,\n undefined,\n undefined,\n undefined,\n undefined,\n config?.runName\n );\n let outputValues: RunOutput;\n try {\n if (fullValues.signal) {\n let listener: (() => void) | undefined;\n outputValues = (await Promise.race([\n this._call(fullValues as RunInput, runManager, config),\n new Promise<never>((_, reject) => {\n listener = () => {\n reject(new Error(\"AbortError\"));\n };\n fullValues.signal?.addEventListener(\"abort\", listener, {\n once: true,\n });\n }),\n ]).finally(() => {\n if (fullValues.signal && listener) {\n fullValues.signal.removeEventListener(\"abort\", listener);\n }\n })) as RunOutput;\n } else {\n outputValues = await this._call(\n fullValues as RunInput,\n runManager,\n config\n );\n }\n } catch (e) {\n await runManager?.handleChainError(e);\n throw e;\n }\n if (!(this.memory == null)) {\n await this.memory.saveContext(\n this._selectMemoryInputs(input),\n outputValues\n );\n }\n await runManager?.handleChainEnd(outputValues);\n // add the runManager's currentRunId to the outputValues\n Object.defineProperty(outputValues, RUN_KEY, {\n value: runManager ? { runId: runManager?.runId } : undefined,\n configurable: true,\n });\n return outputValues;\n }\n\n private _validateOutputs(outputs: Record<string, unknown>): void {\n const missingKeys = this.outputKeys.filter((k) => !(k in outputs));\n if (missingKeys.length) {\n throw new Error(\n `Missing output keys: ${missingKeys.join(\n \", \"\n )} from chain ${this._chainType()}`\n );\n }\n }\n\n async prepOutputs(\n inputs: Record<string, unknown>,\n outputs: Record<string, unknown>,\n returnOnlyOutputs = false\n ) {\n this._validateOutputs(outputs);\n if (this.memory) {\n await this.memory.saveContext(inputs, outputs);\n }\n if (returnOnlyOutputs) {\n return outputs;\n }\n return { ...inputs, ...outputs };\n }\n\n /**\n * Run the core logic of this chain and return the output\n */\n abstract _call(\n values: RunInput,\n runManager?: CallbackManagerForChainRun,\n config?: RunnableConfig\n ): Promise<RunOutput>;\n\n /**\n * Return the string type key uniquely identifying this class of chain.\n */\n abstract _chainType(): string;\n\n /**\n * Return a json-like object representing this chain.\n */\n serialize(): SerializedBaseChain {\n throw new Error(\"Method not implemented.\");\n }\n\n abstract get inputKeys(): string[];\n\n abstract get outputKeys(): string[];\n\n /** @deprecated Use .invoke() instead. Will be removed in 0.2.0. */\n async run(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n input: any,\n config?: Callbacks | RunnableConfig\n ): Promise<string> {\n const inputKeys = this.inputKeys.filter(\n (k) => !this.memory?.memoryKeys.includes(k)\n );\n const isKeylessInput = inputKeys.length <= 1;\n if (!isKeylessInput) {\n throw new Error(\n `Chain ${this._chainType()} expects multiple inputs, cannot use 'run' `\n );\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const values = inputKeys.length ? { [inputKeys[0]]: input } : ({} as any);\n const returnValues = await this.call(values, config);\n const keys = Object.keys(returnValues);\n\n if (keys.length === 1) {\n return returnValues[keys[0]];\n }\n throw new Error(\n \"return values have multiple keys, `run` only supported when one key currently\"\n );\n }\n\n protected async _formatValues(\n values: ChainValues & { signal?: AbortSignal; timeout?: number }\n ) {\n const fullValues = { ...values } as typeof values;\n if (fullValues.timeout && !fullValues.signal) {\n fullValues.signal = AbortSignal.timeout(fullValues.timeout);\n delete fullValues.timeout;\n }\n if (!(this.memory == null)) {\n const newValues = await this.memory.loadMemoryVariables(\n this._selectMemoryInputs(values)\n );\n for (const [key, value] of Object.entries(newValues)) {\n fullValues[key] = value;\n }\n }\n return fullValues;\n }\n\n /**\n * @deprecated Use .invoke() instead. Will be removed in 0.2.0.\n *\n * Run the core logic of this chain and add to output if desired.\n *\n * Wraps _call and handles memory.\n */\n async call(\n values: ChainValues & { signal?: AbortSignal; timeout?: number },\n config?: Callbacks | RunnableConfig,\n /** @deprecated */\n tags?: string[]\n ): Promise<RunOutput> {\n const parsedConfig = { tags, ...parseCallbackConfigArg(config) };\n return this.invoke(values as RunInput, parsedConfig);\n }\n\n /**\n * @deprecated Use .batch() instead. Will be removed in 0.2.0.\n *\n * Call the chain on all inputs in the list\n */\n async apply(\n inputs: RunInput[],\n config?: (Callbacks | RunnableConfig)[]\n ): Promise<RunOutput[]> {\n return Promise.all(\n inputs.map(async (i, idx) => this.call(i, config?.[idx]))\n );\n }\n\n /**\n * Load a chain from a json-like object describing it.\n */\n static async deserialize(\n data: SerializedBaseChain,\n values: LoadValues = {}\n ): Promise<BaseChain> {\n switch (data._type) {\n case \"llm_chain\": {\n const { LLMChain } = await import(\"./llm_chain.js\");\n return LLMChain.deserialize(data);\n }\n case \"sequential_chain\": {\n const { SequentialChain } = await import(\"./sequential_chain.js\");\n return SequentialChain.deserialize(data);\n }\n case \"simple_sequential_chain\": {\n const { SimpleSequentialChain } = await import(\"./sequential_chain.js\");\n return SimpleSequentialChain.deserialize(data);\n }\n case \"stuff_documents_chain\": {\n const { StuffDocumentsChain } = await import(\"./combine_docs_chain.js\");\n return StuffDocumentsChain.deserialize(data);\n }\n case \"map_reduce_documents_chain\": {\n const { MapReduceDocumentsChain } = await import(\n \"./combine_docs_chain.js\"\n );\n return MapReduceDocumentsChain.deserialize(data);\n }\n case \"refine_documents_chain\": {\n const { RefineDocumentsChain } = await import(\n \"./combine_docs_chain.js\"\n );\n return RefineDocumentsChain.deserialize(data);\n }\n case \"vector_db_qa\": {\n const { VectorDBQAChain } = await import(\"./vector_db_qa.js\");\n return VectorDBQAChain.deserialize(data, values);\n }\n case \"api_chain\": {\n const { APIChain } = await import(\"./api/api_chain.js\");\n return APIChain.deserialize(data);\n }\n default:\n throw new Error(\n `Invalid prompt type in config: ${\n (data as SerializedBaseChain)._type\n }`\n );\n }\n }\n}\n"],"mappings":";;;;;;;;;;AA+BA,IAAsB,YAAtB,cAIUA,oDAEV;CAGE,IAAI,eAAyB;AAC3B,SAAO;GAAC;GAAa;GAAU,KAAK,YAAY;EAAC;CAClD;CAED,YACEC,QAEAC,SAEAC,WACA;AACA,MACE,UAAU,WAAW,KACrB,OAAO,WAAW,YAClB,EAAE,iBAAiB,SACnB;GAEA,MAAM,EAAE,QAAQ,gBAAiB,GAAG,MAAM,GAAG;GAC7C,MAAM;IAAE,GAAG;IAAM,WAAW,mBAAmB,KAAK;GAAW,EAAC;GAChE,KAAK,SAAS;EACf,OAAM;GAEL,MAAM;IAAE;IAAS;GAAW,EAAC;GAC7B,KAAK,SAAS;EACf;CACF;;CAGD,oBAAoBC,QAAkC;EACpD,MAAM,kBAAkB,EAAE,GAAG,OAAQ;AACrC,MAAI,YAAY,iBACd,OAAO,gBAAgB;AAEzB,MAAI,aAAa,iBACf,OAAO,gBAAgB;AAEzB,SAAO;CACR;;;;;;;CAQD,MAAM,OAAOC,OAAiBC,SAA8C;EAC1E,MAAM,sDAAsB,QAAQ;EACpC,MAAM,aAAa,MAAM,KAAK,cAAc,MAAM;EAClD,MAAM,mBAAmB,MAAMC,mDAAgB,UAC7C,QAAQ,WACR,KAAK,WACL,QAAQ,MACR,KAAK,MACL,QAAQ,UACR,KAAK,UACL,EAAE,SAAS,KAAK,QAAS,EAC1B;EACD,MAAM,aAAa,MAAM,kBAAkB,iBACzC,KAAK,QAAQ,EACb,YACA,QACA,QACA,QACA,QACA,QAAQ,QACT;EACD,IAAIC;AACJ,MAAI;AACF,OAAI,WAAW,QAAQ;IACrB,IAAIC;IACJ,eAAgB,MAAM,QAAQ,KAAK,CACjC,KAAK,MAAM,YAAwB,YAAY,OAAO,EACtD,IAAI,QAAe,CAAC,GAAG,WAAW;KAChC,WAAW,MAAM;MACf,uBAAO,IAAI,MAAM,cAAc;KAChC;KACD,WAAW,QAAQ,iBAAiB,SAAS,UAAU,EACrD,MAAM,KACP,EAAC;IACH,EACF,EAAC,CAAC,QAAQ,MAAM;AACf,SAAI,WAAW,UAAU,UACvB,WAAW,OAAO,oBAAoB,SAAS,SAAS;IAE3D,EAAC;GACH,OACC,eAAe,MAAM,KAAK,MACxB,YACA,YACA,OACD;EAEJ,SAAQ,GAAG;GACV,MAAM,YAAY,iBAAiB,EAAE;AACrC,SAAM;EACP;AACD,MAAI,EAAE,KAAK,UAAU,OACnB,MAAM,KAAK,OAAO,YAChB,KAAK,oBAAoB,MAAM,EAC/B,aACD;EAEH,MAAM,YAAY,eAAe,aAAa;EAE9C,OAAO,eAAe,cAAcC,kCAAS;GAC3C,OAAO,aAAa,EAAE,OAAO,YAAY,MAAO,IAAG;GACnD,cAAc;EACf,EAAC;AACF,SAAO;CACR;CAED,AAAQ,iBAAiBC,SAAwC;EAC/D,MAAM,cAAc,KAAK,WAAW,OAAO,CAAC,MAAM,EAAE,KAAK,SAAS;AAClE,MAAI,YAAY,OACd,OAAM,IAAI,MACR,CAAC,qBAAqB,EAAE,YAAY,KAClC,KACD,CAAC,YAAY,EAAE,KAAK,YAAY,EAAE;CAGxC;CAED,MAAM,YACJC,QACAD,SACA,oBAAoB,OACpB;EACA,KAAK,iBAAiB,QAAQ;AAC9B,MAAI,KAAK,QACP,MAAM,KAAK,OAAO,YAAY,QAAQ,QAAQ;AAEhD,MAAI,kBACF,QAAO;AAET,SAAO;GAAE,GAAG;GAAQ,GAAG;EAAS;CACjC;;;;CAmBD,YAAiC;AAC/B,QAAM,IAAI,MAAM;CACjB;;CAOD,MAAM,IAEJE,OACAC,QACiB;EACjB,MAAM,YAAY,KAAK,UAAU,OAC/B,CAAC,MAAM,CAAC,KAAK,QAAQ,WAAW,SAAS,EAAE,CAC5C;EACD,MAAM,iBAAiB,UAAU,UAAU;AAC3C,MAAI,CAAC,eACH,OAAM,IAAI,MACR,CAAC,MAAM,EAAE,KAAK,YAAY,CAAC,2CAA2C,CAAC;EAI3E,MAAM,SAAS,UAAU,SAAS,GAAG,UAAU,KAAK,MAAO,IAAI,CAAE;EACjE,MAAM,eAAe,MAAM,KAAK,KAAK,QAAQ,OAAO;EACpD,MAAM,OAAO,OAAO,KAAK,aAAa;AAEtC,MAAI,KAAK,WAAW,EAClB,QAAO,aAAa,KAAK;AAE3B,QAAM,IAAI,MACR;CAEH;CAED,MAAgB,cACdC,QACA;EACA,MAAM,aAAa,EAAE,GAAG,OAAQ;AAChC,MAAI,WAAW,WAAW,CAAC,WAAW,QAAQ;GAC5C,WAAW,SAAS,YAAY,QAAQ,WAAW,QAAQ;GAC3D,OAAO,WAAW;EACnB;AACD,MAAI,EAAE,KAAK,UAAU,OAAO;GAC1B,MAAM,YAAY,MAAM,KAAK,OAAO,oBAClC,KAAK,oBAAoB,OAAO,CACjC;AACD,QAAK,MAAM,CAAC,KAAK,MAAM,IAAI,OAAO,QAAQ,UAAU,EAClD,WAAW,OAAO;EAErB;AACD,SAAO;CACR;;;;;;;;CASD,MAAM,KACJA,QACAD,QAEAE,MACoB;EACpB,MAAM,eAAe;GAAE;GAAM,kEAA0B,OAAO;EAAE;AAChE,SAAO,KAAK,OAAO,QAAoB,aAAa;CACrD;;;;;;CAOD,MAAM,MACJC,QACAC,QACsB;AACtB,SAAO,QAAQ,IACb,OAAO,IAAI,OAAO,GAAG,QAAQ,KAAK,KAAK,GAAG,SAAS,KAAK,CAAC,CAC1D;CACF;;;;CAKD,aAAa,YACXC,MACAC,SAAqB,CAAE,GACH;AACpB,UAAQ,KAAK,OAAb;GACE,KAAK,aAAa;IAChB,MAAM,EAAE,UAAU,GAAG,2CAAM;AAC3B,WAAO,SAAS,YAAY,KAAK;GAClC;GACD,KAAK,oBAAoB;IACvB,MAAM,EAAE,iBAAiB,GAAG,2CAAM;AAClC,WAAO,gBAAgB,YAAY,KAAK;GACzC;GACD,KAAK,2BAA2B;IAC9B,MAAM,EAAE,uBAAuB,GAAG,2CAAM;AACxC,WAAO,sBAAsB,YAAY,KAAK;GAC/C;GACD,KAAK,yBAAyB;IAC5B,MAAM,EAAE,qBAAqB,GAAG,2CAAM;AACtC,WAAO,oBAAoB,YAAY,KAAK;GAC7C;GACD,KAAK,8BAA8B;IACjC,MAAM,EAAE,yBAAyB,GAAG,2CAAM;AAG1C,WAAO,wBAAwB,YAAY,KAAK;GACjD;GACD,KAAK,0BAA0B;IAC7B,MAAM,EAAE,sBAAsB,GAAG,2CAAM;AAGvC,WAAO,qBAAqB,YAAY,KAAK;GAC9C;GACD,KAAK,gBAAgB;IACnB,MAAM,EAAE,iBAAiB,GAAG,2CAAM;AAClC,WAAO,gBAAgB,YAAY,MAAM,OAAO;GACjD;GACD,KAAK,aAAa;IAChB,MAAM,EAAE,UAAU,GAAG,2CAAM;AAC3B,WAAO,SAAS,YAAY,KAAK;GAClC;GACD,QACE,OAAM,IAAI,MACR,CAAC,+BAA+B,EAC7B,KAA6B,OAC9B;EAEP;CACF;AACF"}
|
|
1
|
+
{"version":3,"file":"base.cjs","names":["BaseLangChain","fields?: BaseMemory | ChainInputs","verbose?: boolean","callbacks?: Callbacks","values: ChainValues","input: RunInput","options?: RunnableConfig","CallbackManager","outputValues: RunOutput","listener: (() => void) | undefined","RUN_KEY","outputs: Record<string, unknown>","inputs: Record<string, unknown>","input: any","config?: Callbacks | RunnableConfig","values: ChainValues & { signal?: AbortSignal; timeout?: number }","tags?: string[]","inputs: RunInput[]","config?: (Callbacks | RunnableConfig)[]","data: SerializedBaseChain","values: LoadValues"],"sources":["../../src/chains/base.ts"],"sourcesContent":["import { BaseMemory } from \"@langchain/core/memory\";\nimport { ChainValues } from \"@langchain/core/utils/types\";\nimport { RUN_KEY } from \"@langchain/core/outputs\";\nimport {\n CallbackManagerForChainRun,\n CallbackManager,\n Callbacks,\n parseCallbackConfigArg,\n} from \"@langchain/core/callbacks/manager\";\nimport { ensureConfig, type RunnableConfig } from \"@langchain/core/runnables\";\nimport {\n BaseLangChain,\n BaseLangChainParams,\n} from \"@langchain/core/language_models/base\";\nimport { SerializedBaseChain } from \"./serde.js\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type LoadValues = Record<string, any>;\n\nexport interface ChainInputs extends BaseLangChainParams {\n memory?: BaseMemory;\n\n /**\n * @deprecated Use `callbacks` instead\n */\n callbackManager?: CallbackManager;\n}\n\n/**\n * Base interface that all chains must implement.\n */\nexport abstract class BaseChain<\n RunInput extends ChainValues = ChainValues,\n RunOutput extends ChainValues = ChainValues,\n>\n extends BaseLangChain<RunInput, RunOutput>\n implements ChainInputs\n{\n declare memory?: BaseMemory;\n\n get lc_namespace(): string[] {\n return [\"langchain\", \"chains\", this._chainType()];\n }\n\n constructor(\n fields?: BaseMemory | ChainInputs,\n /** @deprecated */\n verbose?: boolean,\n /** @deprecated */\n callbacks?: Callbacks\n ) {\n if (\n arguments.length === 1 &&\n typeof fields === \"object\" &&\n !(\"saveContext\" in fields)\n ) {\n // fields is not a BaseMemory\n const { memory, callbackManager, ...rest } = fields;\n super({ ...rest, callbacks: callbackManager ?? rest.callbacks });\n this.memory = memory;\n } else {\n // fields is a BaseMemory\n super({ verbose, callbacks });\n this.memory = fields as BaseMemory;\n }\n }\n\n /** @ignore */\n _selectMemoryInputs(values: ChainValues): ChainValues {\n const valuesForMemory = { ...values };\n if (\"signal\" in valuesForMemory) {\n delete valuesForMemory.signal;\n }\n if (\"timeout\" in valuesForMemory) {\n delete valuesForMemory.timeout;\n }\n return valuesForMemory;\n }\n\n /**\n * Invoke the chain with the provided input and returns the output.\n * @param input Input values for the chain run.\n * @param config Optional configuration for the Runnable.\n * @returns Promise that resolves with the output of the chain run.\n */\n async invoke(input: RunInput, options?: RunnableConfig): Promise<RunOutput> {\n const config = ensureConfig(options);\n const fullValues = await this._formatValues(input);\n const callbackManager_ = await CallbackManager.configure(\n config?.callbacks,\n this.callbacks,\n config?.tags,\n this.tags,\n config?.metadata,\n this.metadata,\n { verbose: this.verbose }\n );\n const runManager = await callbackManager_?.handleChainStart(\n this.toJSON(),\n fullValues,\n undefined,\n undefined,\n undefined,\n undefined,\n config?.runName\n );\n let outputValues: RunOutput;\n try {\n if (fullValues.signal) {\n let listener: (() => void) | undefined;\n outputValues = (await Promise.race([\n this._call(fullValues as RunInput, runManager, config),\n new Promise<never>((_, reject) => {\n listener = () => {\n reject(new Error(\"AbortError\"));\n };\n fullValues.signal?.addEventListener(\"abort\", listener, {\n once: true,\n });\n }),\n ]).finally(() => {\n if (fullValues.signal && listener) {\n fullValues.signal.removeEventListener(\"abort\", listener);\n }\n })) as RunOutput;\n } else {\n outputValues = await this._call(\n fullValues as RunInput,\n runManager,\n config\n );\n }\n } catch (e) {\n await runManager?.handleChainError(e);\n throw e;\n }\n if (!(this.memory == null)) {\n await this.memory.saveContext(\n this._selectMemoryInputs(input),\n outputValues\n );\n }\n await runManager?.handleChainEnd(outputValues);\n // add the runManager's currentRunId to the outputValues\n Object.defineProperty(outputValues, RUN_KEY, {\n value: runManager ? { runId: runManager?.runId } : undefined,\n configurable: true,\n });\n return outputValues;\n }\n\n private _validateOutputs(outputs: Record<string, unknown>): void {\n const missingKeys = this.outputKeys.filter((k) => !(k in outputs));\n if (missingKeys.length) {\n throw new Error(\n `Missing output keys: ${missingKeys.join(\n \", \"\n )} from chain ${this._chainType()}`\n );\n }\n }\n\n async prepOutputs(\n inputs: Record<string, unknown>,\n outputs: Record<string, unknown>,\n returnOnlyOutputs = false\n ) {\n this._validateOutputs(outputs);\n if (this.memory) {\n await this.memory.saveContext(inputs, outputs);\n }\n if (returnOnlyOutputs) {\n return outputs;\n }\n return { ...inputs, ...outputs };\n }\n\n /**\n * Run the core logic of this chain and return the output\n */\n abstract _call(\n values: RunInput,\n runManager?: CallbackManagerForChainRun,\n config?: RunnableConfig\n ): Promise<RunOutput>;\n\n /**\n * Return the string type key uniquely identifying this class of chain.\n */\n abstract _chainType(): string;\n\n /**\n * Return a json-like object representing this chain.\n */\n serialize(): SerializedBaseChain {\n throw new Error(\"Method not implemented.\");\n }\n\n abstract get inputKeys(): string[];\n\n abstract get outputKeys(): string[];\n\n /** @deprecated Use .invoke() instead. Will be removed in 0.2.0. */\n async run(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n input: any,\n config?: Callbacks | RunnableConfig\n ): Promise<string> {\n const inputKeys = this.inputKeys.filter(\n (k) => !this.memory?.memoryKeys.includes(k)\n );\n const isKeylessInput = inputKeys.length <= 1;\n if (!isKeylessInput) {\n throw new Error(\n `Chain ${this._chainType()} expects multiple inputs, cannot use 'run' `\n );\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const values = inputKeys.length ? { [inputKeys[0]]: input } : ({} as any);\n const returnValues = await this.call(values, config);\n const keys = Object.keys(returnValues);\n\n if (keys.length === 1) {\n return returnValues[keys[0]];\n }\n throw new Error(\n \"return values have multiple keys, `run` only supported when one key currently\"\n );\n }\n\n protected async _formatValues(\n values: ChainValues & { signal?: AbortSignal; timeout?: number }\n ) {\n const fullValues = { ...values } as typeof values;\n if (fullValues.timeout && !fullValues.signal) {\n fullValues.signal = AbortSignal.timeout(fullValues.timeout);\n delete fullValues.timeout;\n }\n if (!(this.memory == null)) {\n const newValues = await this.memory.loadMemoryVariables(\n this._selectMemoryInputs(values)\n );\n for (const [key, value] of Object.entries(newValues)) {\n fullValues[key] = value;\n }\n }\n return fullValues;\n }\n\n /**\n * @deprecated Use .invoke() instead. Will be removed in 0.2.0.\n *\n * Run the core logic of this chain and add to output if desired.\n *\n * Wraps _call and handles memory.\n */\n async call(\n values: ChainValues & { signal?: AbortSignal; timeout?: number },\n config?: Callbacks | RunnableConfig,\n /** @deprecated */\n tags?: string[]\n ): Promise<RunOutput> {\n const parsedConfig = { tags, ...parseCallbackConfigArg(config) };\n return this.invoke(values as RunInput, parsedConfig);\n }\n\n /**\n * @deprecated Use .batch() instead. Will be removed in 0.2.0.\n *\n * Call the chain on all inputs in the list\n */\n async apply(\n inputs: RunInput[],\n config?: (Callbacks | RunnableConfig)[]\n ): Promise<RunOutput[]> {\n return Promise.all(\n inputs.map(async (i, idx) => this.call(i, config?.[idx]))\n );\n }\n\n /**\n * Load a chain from a json-like object describing it.\n */\n static async deserialize(\n data: SerializedBaseChain,\n values: LoadValues = {}\n ): Promise<BaseChain> {\n switch (data._type) {\n case \"llm_chain\": {\n const { LLMChain } = await import(\"./llm_chain.js\");\n return LLMChain.deserialize(data);\n }\n case \"sequential_chain\": {\n const { SequentialChain } = await import(\"./sequential_chain.js\");\n return SequentialChain.deserialize(data);\n }\n case \"simple_sequential_chain\": {\n const { SimpleSequentialChain } = await import(\"./sequential_chain.js\");\n return SimpleSequentialChain.deserialize(data);\n }\n case \"stuff_documents_chain\": {\n const { StuffDocumentsChain } = await import(\"./combine_docs_chain.js\");\n return StuffDocumentsChain.deserialize(data);\n }\n case \"map_reduce_documents_chain\": {\n const { MapReduceDocumentsChain } =\n await import(\"./combine_docs_chain.js\");\n return MapReduceDocumentsChain.deserialize(data);\n }\n case \"refine_documents_chain\": {\n const { RefineDocumentsChain } =\n await import(\"./combine_docs_chain.js\");\n return RefineDocumentsChain.deserialize(data);\n }\n case \"vector_db_qa\": {\n const { VectorDBQAChain } = await import(\"./vector_db_qa.js\");\n return VectorDBQAChain.deserialize(data, values);\n }\n case \"api_chain\": {\n const { APIChain } = await import(\"./api/api_chain.js\");\n return APIChain.deserialize(data);\n }\n default:\n throw new Error(\n `Invalid prompt type in config: ${\n (data as SerializedBaseChain)._type\n }`\n );\n }\n }\n}\n"],"mappings":"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"}
|
package/dist/chains/base.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","names":["fields?: BaseMemory | ChainInputs","verbose?: boolean","callbacks?: Callbacks","values: ChainValues","input: RunInput","options?: RunnableConfig","outputValues: RunOutput","listener: (() => void) | undefined","outputs: Record<string, unknown>","inputs: Record<string, unknown>","input: any","config?: Callbacks | RunnableConfig","values: ChainValues & { signal?: AbortSignal; timeout?: number }","tags?: string[]","inputs: RunInput[]","config?: (Callbacks | RunnableConfig)[]","data: SerializedBaseChain","values: LoadValues"],"sources":["../../src/chains/base.ts"],"sourcesContent":["import { BaseMemory } from \"@langchain/core/memory\";\nimport { ChainValues } from \"@langchain/core/utils/types\";\nimport { RUN_KEY } from \"@langchain/core/outputs\";\nimport {\n CallbackManagerForChainRun,\n CallbackManager,\n Callbacks,\n parseCallbackConfigArg,\n} from \"@langchain/core/callbacks/manager\";\nimport { ensureConfig, type RunnableConfig } from \"@langchain/core/runnables\";\nimport {\n BaseLangChain,\n BaseLangChainParams,\n} from \"@langchain/core/language_models/base\";\nimport { SerializedBaseChain } from \"./serde.js\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type LoadValues = Record<string, any>;\n\nexport interface ChainInputs extends BaseLangChainParams {\n memory?: BaseMemory;\n\n /**\n * @deprecated Use `callbacks` instead\n */\n callbackManager?: CallbackManager;\n}\n\n/**\n * Base interface that all chains must implement.\n */\nexport abstract class BaseChain<\n RunInput extends ChainValues = ChainValues,\n RunOutput extends ChainValues = ChainValues,\n >\n extends BaseLangChain<RunInput, RunOutput>\n implements ChainInputs\n{\n declare memory?: BaseMemory;\n\n get lc_namespace(): string[] {\n return [\"langchain\", \"chains\", this._chainType()];\n }\n\n constructor(\n fields?: BaseMemory | ChainInputs,\n /** @deprecated */\n verbose?: boolean,\n /** @deprecated */\n callbacks?: Callbacks\n ) {\n if (\n arguments.length === 1 &&\n typeof fields === \"object\" &&\n !(\"saveContext\" in fields)\n ) {\n // fields is not a BaseMemory\n const { memory, callbackManager, ...rest } = fields;\n super({ ...rest, callbacks: callbackManager ?? rest.callbacks });\n this.memory = memory;\n } else {\n // fields is a BaseMemory\n super({ verbose, callbacks });\n this.memory = fields as BaseMemory;\n }\n }\n\n /** @ignore */\n _selectMemoryInputs(values: ChainValues): ChainValues {\n const valuesForMemory = { ...values };\n if (\"signal\" in valuesForMemory) {\n delete valuesForMemory.signal;\n }\n if (\"timeout\" in valuesForMemory) {\n delete valuesForMemory.timeout;\n }\n return valuesForMemory;\n }\n\n /**\n * Invoke the chain with the provided input and returns the output.\n * @param input Input values for the chain run.\n * @param config Optional configuration for the Runnable.\n * @returns Promise that resolves with the output of the chain run.\n */\n async invoke(input: RunInput, options?: RunnableConfig): Promise<RunOutput> {\n const config = ensureConfig(options);\n const fullValues = await this._formatValues(input);\n const callbackManager_ = await CallbackManager.configure(\n config?.callbacks,\n this.callbacks,\n config?.tags,\n this.tags,\n config?.metadata,\n this.metadata,\n { verbose: this.verbose }\n );\n const runManager = await callbackManager_?.handleChainStart(\n this.toJSON(),\n fullValues,\n undefined,\n undefined,\n undefined,\n undefined,\n config?.runName\n );\n let outputValues: RunOutput;\n try {\n if (fullValues.signal) {\n let listener: (() => void) | undefined;\n outputValues = (await Promise.race([\n this._call(fullValues as RunInput, runManager, config),\n new Promise<never>((_, reject) => {\n listener = () => {\n reject(new Error(\"AbortError\"));\n };\n fullValues.signal?.addEventListener(\"abort\", listener, {\n once: true,\n });\n }),\n ]).finally(() => {\n if (fullValues.signal && listener) {\n fullValues.signal.removeEventListener(\"abort\", listener);\n }\n })) as RunOutput;\n } else {\n outputValues = await this._call(\n fullValues as RunInput,\n runManager,\n config\n );\n }\n } catch (e) {\n await runManager?.handleChainError(e);\n throw e;\n }\n if (!(this.memory == null)) {\n await this.memory.saveContext(\n this._selectMemoryInputs(input),\n outputValues\n );\n }\n await runManager?.handleChainEnd(outputValues);\n // add the runManager's currentRunId to the outputValues\n Object.defineProperty(outputValues, RUN_KEY, {\n value: runManager ? { runId: runManager?.runId } : undefined,\n configurable: true,\n });\n return outputValues;\n }\n\n private _validateOutputs(outputs: Record<string, unknown>): void {\n const missingKeys = this.outputKeys.filter((k) => !(k in outputs));\n if (missingKeys.length) {\n throw new Error(\n `Missing output keys: ${missingKeys.join(\n \", \"\n )} from chain ${this._chainType()}`\n );\n }\n }\n\n async prepOutputs(\n inputs: Record<string, unknown>,\n outputs: Record<string, unknown>,\n returnOnlyOutputs = false\n ) {\n this._validateOutputs(outputs);\n if (this.memory) {\n await this.memory.saveContext(inputs, outputs);\n }\n if (returnOnlyOutputs) {\n return outputs;\n }\n return { ...inputs, ...outputs };\n }\n\n /**\n * Run the core logic of this chain and return the output\n */\n abstract _call(\n values: RunInput,\n runManager?: CallbackManagerForChainRun,\n config?: RunnableConfig\n ): Promise<RunOutput>;\n\n /**\n * Return the string type key uniquely identifying this class of chain.\n */\n abstract _chainType(): string;\n\n /**\n * Return a json-like object representing this chain.\n */\n serialize(): SerializedBaseChain {\n throw new Error(\"Method not implemented.\");\n }\n\n abstract get inputKeys(): string[];\n\n abstract get outputKeys(): string[];\n\n /** @deprecated Use .invoke() instead. Will be removed in 0.2.0. */\n async run(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n input: any,\n config?: Callbacks | RunnableConfig\n ): Promise<string> {\n const inputKeys = this.inputKeys.filter(\n (k) => !this.memory?.memoryKeys.includes(k)\n );\n const isKeylessInput = inputKeys.length <= 1;\n if (!isKeylessInput) {\n throw new Error(\n `Chain ${this._chainType()} expects multiple inputs, cannot use 'run' `\n );\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const values = inputKeys.length ? { [inputKeys[0]]: input } : ({} as any);\n const returnValues = await this.call(values, config);\n const keys = Object.keys(returnValues);\n\n if (keys.length === 1) {\n return returnValues[keys[0]];\n }\n throw new Error(\n \"return values have multiple keys, `run` only supported when one key currently\"\n );\n }\n\n protected async _formatValues(\n values: ChainValues & { signal?: AbortSignal; timeout?: number }\n ) {\n const fullValues = { ...values } as typeof values;\n if (fullValues.timeout && !fullValues.signal) {\n fullValues.signal = AbortSignal.timeout(fullValues.timeout);\n delete fullValues.timeout;\n }\n if (!(this.memory == null)) {\n const newValues = await this.memory.loadMemoryVariables(\n this._selectMemoryInputs(values)\n );\n for (const [key, value] of Object.entries(newValues)) {\n fullValues[key] = value;\n }\n }\n return fullValues;\n }\n\n /**\n * @deprecated Use .invoke() instead. Will be removed in 0.2.0.\n *\n * Run the core logic of this chain and add to output if desired.\n *\n * Wraps _call and handles memory.\n */\n async call(\n values: ChainValues & { signal?: AbortSignal; timeout?: number },\n config?: Callbacks | RunnableConfig,\n /** @deprecated */\n tags?: string[]\n ): Promise<RunOutput> {\n const parsedConfig = { tags, ...parseCallbackConfigArg(config) };\n return this.invoke(values as RunInput, parsedConfig);\n }\n\n /**\n * @deprecated Use .batch() instead. Will be removed in 0.2.0.\n *\n * Call the chain on all inputs in the list\n */\n async apply(\n inputs: RunInput[],\n config?: (Callbacks | RunnableConfig)[]\n ): Promise<RunOutput[]> {\n return Promise.all(\n inputs.map(async (i, idx) => this.call(i, config?.[idx]))\n );\n }\n\n /**\n * Load a chain from a json-like object describing it.\n */\n static async deserialize(\n data: SerializedBaseChain,\n values: LoadValues = {}\n ): Promise<BaseChain> {\n switch (data._type) {\n case \"llm_chain\": {\n const { LLMChain } = await import(\"./llm_chain.js\");\n return LLMChain.deserialize(data);\n }\n case \"sequential_chain\": {\n const { SequentialChain } = await import(\"./sequential_chain.js\");\n return SequentialChain.deserialize(data);\n }\n case \"simple_sequential_chain\": {\n const { SimpleSequentialChain } = await import(\"./sequential_chain.js\");\n return SimpleSequentialChain.deserialize(data);\n }\n case \"stuff_documents_chain\": {\n const { StuffDocumentsChain } = await import(\"./combine_docs_chain.js\");\n return StuffDocumentsChain.deserialize(data);\n }\n case \"map_reduce_documents_chain\": {\n const { MapReduceDocumentsChain } = await import(\n \"./combine_docs_chain.js\"\n );\n return MapReduceDocumentsChain.deserialize(data);\n }\n case \"refine_documents_chain\": {\n const { RefineDocumentsChain } = await import(\n \"./combine_docs_chain.js\"\n );\n return RefineDocumentsChain.deserialize(data);\n }\n case \"vector_db_qa\": {\n const { VectorDBQAChain } = await import(\"./vector_db_qa.js\");\n return VectorDBQAChain.deserialize(data, values);\n }\n case \"api_chain\": {\n const { APIChain } = await import(\"./api/api_chain.js\");\n return APIChain.deserialize(data);\n }\n default:\n throw new Error(\n `Invalid prompt type in config: ${\n (data as SerializedBaseChain)._type\n }`\n );\n }\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"base.js","names":["fields?: BaseMemory | ChainInputs","verbose?: boolean","callbacks?: Callbacks","values: ChainValues","input: RunInput","options?: RunnableConfig","outputValues: RunOutput","listener: (() => void) | undefined","outputs: Record<string, unknown>","inputs: Record<string, unknown>","input: any","config?: Callbacks | RunnableConfig","values: ChainValues & { signal?: AbortSignal; timeout?: number }","tags?: string[]","inputs: RunInput[]","config?: (Callbacks | RunnableConfig)[]","data: SerializedBaseChain","values: LoadValues"],"sources":["../../src/chains/base.ts"],"sourcesContent":["import { BaseMemory } from \"@langchain/core/memory\";\nimport { ChainValues } from \"@langchain/core/utils/types\";\nimport { RUN_KEY } from \"@langchain/core/outputs\";\nimport {\n CallbackManagerForChainRun,\n CallbackManager,\n Callbacks,\n parseCallbackConfigArg,\n} from \"@langchain/core/callbacks/manager\";\nimport { ensureConfig, type RunnableConfig } from \"@langchain/core/runnables\";\nimport {\n BaseLangChain,\n BaseLangChainParams,\n} from \"@langchain/core/language_models/base\";\nimport { SerializedBaseChain } from \"./serde.js\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type LoadValues = Record<string, any>;\n\nexport interface ChainInputs extends BaseLangChainParams {\n memory?: BaseMemory;\n\n /**\n * @deprecated Use `callbacks` instead\n */\n callbackManager?: CallbackManager;\n}\n\n/**\n * Base interface that all chains must implement.\n */\nexport abstract class BaseChain<\n RunInput extends ChainValues = ChainValues,\n RunOutput extends ChainValues = ChainValues,\n>\n extends BaseLangChain<RunInput, RunOutput>\n implements ChainInputs\n{\n declare memory?: BaseMemory;\n\n get lc_namespace(): string[] {\n return [\"langchain\", \"chains\", this._chainType()];\n }\n\n constructor(\n fields?: BaseMemory | ChainInputs,\n /** @deprecated */\n verbose?: boolean,\n /** @deprecated */\n callbacks?: Callbacks\n ) {\n if (\n arguments.length === 1 &&\n typeof fields === \"object\" &&\n !(\"saveContext\" in fields)\n ) {\n // fields is not a BaseMemory\n const { memory, callbackManager, ...rest } = fields;\n super({ ...rest, callbacks: callbackManager ?? rest.callbacks });\n this.memory = memory;\n } else {\n // fields is a BaseMemory\n super({ verbose, callbacks });\n this.memory = fields as BaseMemory;\n }\n }\n\n /** @ignore */\n _selectMemoryInputs(values: ChainValues): ChainValues {\n const valuesForMemory = { ...values };\n if (\"signal\" in valuesForMemory) {\n delete valuesForMemory.signal;\n }\n if (\"timeout\" in valuesForMemory) {\n delete valuesForMemory.timeout;\n }\n return valuesForMemory;\n }\n\n /**\n * Invoke the chain with the provided input and returns the output.\n * @param input Input values for the chain run.\n * @param config Optional configuration for the Runnable.\n * @returns Promise that resolves with the output of the chain run.\n */\n async invoke(input: RunInput, options?: RunnableConfig): Promise<RunOutput> {\n const config = ensureConfig(options);\n const fullValues = await this._formatValues(input);\n const callbackManager_ = await CallbackManager.configure(\n config?.callbacks,\n this.callbacks,\n config?.tags,\n this.tags,\n config?.metadata,\n this.metadata,\n { verbose: this.verbose }\n );\n const runManager = await callbackManager_?.handleChainStart(\n this.toJSON(),\n fullValues,\n undefined,\n undefined,\n undefined,\n undefined,\n config?.runName\n );\n let outputValues: RunOutput;\n try {\n if (fullValues.signal) {\n let listener: (() => void) | undefined;\n outputValues = (await Promise.race([\n this._call(fullValues as RunInput, runManager, config),\n new Promise<never>((_, reject) => {\n listener = () => {\n reject(new Error(\"AbortError\"));\n };\n fullValues.signal?.addEventListener(\"abort\", listener, {\n once: true,\n });\n }),\n ]).finally(() => {\n if (fullValues.signal && listener) {\n fullValues.signal.removeEventListener(\"abort\", listener);\n }\n })) as RunOutput;\n } else {\n outputValues = await this._call(\n fullValues as RunInput,\n runManager,\n config\n );\n }\n } catch (e) {\n await runManager?.handleChainError(e);\n throw e;\n }\n if (!(this.memory == null)) {\n await this.memory.saveContext(\n this._selectMemoryInputs(input),\n outputValues\n );\n }\n await runManager?.handleChainEnd(outputValues);\n // add the runManager's currentRunId to the outputValues\n Object.defineProperty(outputValues, RUN_KEY, {\n value: runManager ? { runId: runManager?.runId } : undefined,\n configurable: true,\n });\n return outputValues;\n }\n\n private _validateOutputs(outputs: Record<string, unknown>): void {\n const missingKeys = this.outputKeys.filter((k) => !(k in outputs));\n if (missingKeys.length) {\n throw new Error(\n `Missing output keys: ${missingKeys.join(\n \", \"\n )} from chain ${this._chainType()}`\n );\n }\n }\n\n async prepOutputs(\n inputs: Record<string, unknown>,\n outputs: Record<string, unknown>,\n returnOnlyOutputs = false\n ) {\n this._validateOutputs(outputs);\n if (this.memory) {\n await this.memory.saveContext(inputs, outputs);\n }\n if (returnOnlyOutputs) {\n return outputs;\n }\n return { ...inputs, ...outputs };\n }\n\n /**\n * Run the core logic of this chain and return the output\n */\n abstract _call(\n values: RunInput,\n runManager?: CallbackManagerForChainRun,\n config?: RunnableConfig\n ): Promise<RunOutput>;\n\n /**\n * Return the string type key uniquely identifying this class of chain.\n */\n abstract _chainType(): string;\n\n /**\n * Return a json-like object representing this chain.\n */\n serialize(): SerializedBaseChain {\n throw new Error(\"Method not implemented.\");\n }\n\n abstract get inputKeys(): string[];\n\n abstract get outputKeys(): string[];\n\n /** @deprecated Use .invoke() instead. Will be removed in 0.2.0. */\n async run(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n input: any,\n config?: Callbacks | RunnableConfig\n ): Promise<string> {\n const inputKeys = this.inputKeys.filter(\n (k) => !this.memory?.memoryKeys.includes(k)\n );\n const isKeylessInput = inputKeys.length <= 1;\n if (!isKeylessInput) {\n throw new Error(\n `Chain ${this._chainType()} expects multiple inputs, cannot use 'run' `\n );\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const values = inputKeys.length ? { [inputKeys[0]]: input } : ({} as any);\n const returnValues = await this.call(values, config);\n const keys = Object.keys(returnValues);\n\n if (keys.length === 1) {\n return returnValues[keys[0]];\n }\n throw new Error(\n \"return values have multiple keys, `run` only supported when one key currently\"\n );\n }\n\n protected async _formatValues(\n values: ChainValues & { signal?: AbortSignal; timeout?: number }\n ) {\n const fullValues = { ...values } as typeof values;\n if (fullValues.timeout && !fullValues.signal) {\n fullValues.signal = AbortSignal.timeout(fullValues.timeout);\n delete fullValues.timeout;\n }\n if (!(this.memory == null)) {\n const newValues = await this.memory.loadMemoryVariables(\n this._selectMemoryInputs(values)\n );\n for (const [key, value] of Object.entries(newValues)) {\n fullValues[key] = value;\n }\n }\n return fullValues;\n }\n\n /**\n * @deprecated Use .invoke() instead. Will be removed in 0.2.0.\n *\n * Run the core logic of this chain and add to output if desired.\n *\n * Wraps _call and handles memory.\n */\n async call(\n values: ChainValues & { signal?: AbortSignal; timeout?: number },\n config?: Callbacks | RunnableConfig,\n /** @deprecated */\n tags?: string[]\n ): Promise<RunOutput> {\n const parsedConfig = { tags, ...parseCallbackConfigArg(config) };\n return this.invoke(values as RunInput, parsedConfig);\n }\n\n /**\n * @deprecated Use .batch() instead. Will be removed in 0.2.0.\n *\n * Call the chain on all inputs in the list\n */\n async apply(\n inputs: RunInput[],\n config?: (Callbacks | RunnableConfig)[]\n ): Promise<RunOutput[]> {\n return Promise.all(\n inputs.map(async (i, idx) => this.call(i, config?.[idx]))\n );\n }\n\n /**\n * Load a chain from a json-like object describing it.\n */\n static async deserialize(\n data: SerializedBaseChain,\n values: LoadValues = {}\n ): Promise<BaseChain> {\n switch (data._type) {\n case \"llm_chain\": {\n const { LLMChain } = await import(\"./llm_chain.js\");\n return LLMChain.deserialize(data);\n }\n case \"sequential_chain\": {\n const { SequentialChain } = await import(\"./sequential_chain.js\");\n return SequentialChain.deserialize(data);\n }\n case \"simple_sequential_chain\": {\n const { SimpleSequentialChain } = await import(\"./sequential_chain.js\");\n return SimpleSequentialChain.deserialize(data);\n }\n case \"stuff_documents_chain\": {\n const { StuffDocumentsChain } = await import(\"./combine_docs_chain.js\");\n return StuffDocumentsChain.deserialize(data);\n }\n case \"map_reduce_documents_chain\": {\n const { MapReduceDocumentsChain } =\n await import(\"./combine_docs_chain.js\");\n return MapReduceDocumentsChain.deserialize(data);\n }\n case \"refine_documents_chain\": {\n const { RefineDocumentsChain } =\n await import(\"./combine_docs_chain.js\");\n return RefineDocumentsChain.deserialize(data);\n }\n case \"vector_db_qa\": {\n const { VectorDBQAChain } = await import(\"./vector_db_qa.js\");\n return VectorDBQAChain.deserialize(data, values);\n }\n case \"api_chain\": {\n const { APIChain } = await import(\"./api/api_chain.js\");\n return APIChain.deserialize(data);\n }\n default:\n throw new Error(\n `Invalid prompt type in config: ${\n (data as SerializedBaseChain)._type\n }`\n );\n }\n }\n}\n"],"mappings":";;;;;;;;;AA+BA,IAAsB,YAAtB,cAIU,cAEV;CAGE,IAAI,eAAyB;AAC3B,SAAO;GAAC;GAAa;GAAU,KAAK,YAAY;EAAC;CAClD;CAED,YACEA,QAEAC,SAEAC,WACA;AACA,MACE,UAAU,WAAW,KACrB,OAAO,WAAW,YAClB,EAAE,iBAAiB,SACnB;GAEA,MAAM,EAAE,QAAQ,gBAAiB,GAAG,MAAM,GAAG;GAC7C,MAAM;IAAE,GAAG;IAAM,WAAW,mBAAmB,KAAK;GAAW,EAAC;GAChE,KAAK,SAAS;EACf,OAAM;GAEL,MAAM;IAAE;IAAS;GAAW,EAAC;GAC7B,KAAK,SAAS;EACf;CACF;;CAGD,oBAAoBC,QAAkC;EACpD,MAAM,kBAAkB,EAAE,GAAG,OAAQ;AACrC,MAAI,YAAY,iBACd,OAAO,gBAAgB;AAEzB,MAAI,aAAa,iBACf,OAAO,gBAAgB;AAEzB,SAAO;CACR;;;;;;;CAQD,MAAM,OAAOC,OAAiBC,SAA8C;EAC1E,MAAM,SAAS,aAAa,QAAQ;EACpC,MAAM,aAAa,MAAM,KAAK,cAAc,MAAM;EAClD,MAAM,mBAAmB,MAAM,gBAAgB,UAC7C,QAAQ,WACR,KAAK,WACL,QAAQ,MACR,KAAK,MACL,QAAQ,UACR,KAAK,UACL,EAAE,SAAS,KAAK,QAAS,EAC1B;EACD,MAAM,aAAa,MAAM,kBAAkB,iBACzC,KAAK,QAAQ,EACb,YACA,QACA,QACA,QACA,QACA,QAAQ,QACT;EACD,IAAIC;AACJ,MAAI;AACF,OAAI,WAAW,QAAQ;IACrB,IAAIC;IACJ,eAAgB,MAAM,QAAQ,KAAK,CACjC,KAAK,MAAM,YAAwB,YAAY,OAAO,EACtD,IAAI,QAAe,CAAC,GAAG,WAAW;KAChC,WAAW,MAAM;MACf,uBAAO,IAAI,MAAM,cAAc;KAChC;KACD,WAAW,QAAQ,iBAAiB,SAAS,UAAU,EACrD,MAAM,KACP,EAAC;IACH,EACF,EAAC,CAAC,QAAQ,MAAM;AACf,SAAI,WAAW,UAAU,UACvB,WAAW,OAAO,oBAAoB,SAAS,SAAS;IAE3D,EAAC;GACH,OACC,eAAe,MAAM,KAAK,MACxB,YACA,YACA,OACD;EAEJ,SAAQ,GAAG;GACV,MAAM,YAAY,iBAAiB,EAAE;AACrC,SAAM;EACP;AACD,MAAI,EAAE,KAAK,UAAU,OACnB,MAAM,KAAK,OAAO,YAChB,KAAK,oBAAoB,MAAM,EAC/B,aACD;EAEH,MAAM,YAAY,eAAe,aAAa;EAE9C,OAAO,eAAe,cAAc,SAAS;GAC3C,OAAO,aAAa,EAAE,OAAO,YAAY,MAAO,IAAG;GACnD,cAAc;EACf,EAAC;AACF,SAAO;CACR;CAED,AAAQ,iBAAiBC,SAAwC;EAC/D,MAAM,cAAc,KAAK,WAAW,OAAO,CAAC,MAAM,EAAE,KAAK,SAAS;AAClE,MAAI,YAAY,OACd,OAAM,IAAI,MACR,CAAC,qBAAqB,EAAE,YAAY,KAClC,KACD,CAAC,YAAY,EAAE,KAAK,YAAY,EAAE;CAGxC;CAED,MAAM,YACJC,QACAD,SACA,oBAAoB,OACpB;EACA,KAAK,iBAAiB,QAAQ;AAC9B,MAAI,KAAK,QACP,MAAM,KAAK,OAAO,YAAY,QAAQ,QAAQ;AAEhD,MAAI,kBACF,QAAO;AAET,SAAO;GAAE,GAAG;GAAQ,GAAG;EAAS;CACjC;;;;CAmBD,YAAiC;AAC/B,QAAM,IAAI,MAAM;CACjB;;CAOD,MAAM,IAEJE,OACAC,QACiB;EACjB,MAAM,YAAY,KAAK,UAAU,OAC/B,CAAC,MAAM,CAAC,KAAK,QAAQ,WAAW,SAAS,EAAE,CAC5C;EACD,MAAM,iBAAiB,UAAU,UAAU;AAC3C,MAAI,CAAC,eACH,OAAM,IAAI,MACR,CAAC,MAAM,EAAE,KAAK,YAAY,CAAC,2CAA2C,CAAC;EAI3E,MAAM,SAAS,UAAU,SAAS,GAAG,UAAU,KAAK,MAAO,IAAI,CAAE;EACjE,MAAM,eAAe,MAAM,KAAK,KAAK,QAAQ,OAAO;EACpD,MAAM,OAAO,OAAO,KAAK,aAAa;AAEtC,MAAI,KAAK,WAAW,EAClB,QAAO,aAAa,KAAK;AAE3B,QAAM,IAAI,MACR;CAEH;CAED,MAAgB,cACdC,QACA;EACA,MAAM,aAAa,EAAE,GAAG,OAAQ;AAChC,MAAI,WAAW,WAAW,CAAC,WAAW,QAAQ;GAC5C,WAAW,SAAS,YAAY,QAAQ,WAAW,QAAQ;GAC3D,OAAO,WAAW;EACnB;AACD,MAAI,EAAE,KAAK,UAAU,OAAO;GAC1B,MAAM,YAAY,MAAM,KAAK,OAAO,oBAClC,KAAK,oBAAoB,OAAO,CACjC;AACD,QAAK,MAAM,CAAC,KAAK,MAAM,IAAI,OAAO,QAAQ,UAAU,EAClD,WAAW,OAAO;EAErB;AACD,SAAO;CACR;;;;;;;;CASD,MAAM,KACJA,QACAD,QAEAE,MACoB;EACpB,MAAM,eAAe;GAAE;GAAM,GAAG,uBAAuB,OAAO;EAAE;AAChE,SAAO,KAAK,OAAO,QAAoB,aAAa;CACrD;;;;;;CAOD,MAAM,MACJC,QACAC,QACsB;AACtB,SAAO,QAAQ,IACb,OAAO,IAAI,OAAO,GAAG,QAAQ,KAAK,KAAK,GAAG,SAAS,KAAK,CAAC,CAC1D;CACF;;;;CAKD,aAAa,YACXC,MACAC,SAAqB,CAAE,GACH;AACpB,UAAQ,KAAK,OAAb;GACE,KAAK,aAAa;IAChB,MAAM,EAAE,UAAU,GAAG,MAAM,OAAO;AAClC,WAAO,SAAS,YAAY,KAAK;GAClC;GACD,KAAK,oBAAoB;IACvB,MAAM,EAAE,iBAAiB,GAAG,MAAM,OAAO;AACzC,WAAO,gBAAgB,YAAY,KAAK;GACzC;GACD,KAAK,2BAA2B;IAC9B,MAAM,EAAE,uBAAuB,GAAG,MAAM,OAAO;AAC/C,WAAO,sBAAsB,YAAY,KAAK;GAC/C;GACD,KAAK,yBAAyB;IAC5B,MAAM,EAAE,qBAAqB,GAAG,MAAM,OAAO;AAC7C,WAAO,oBAAoB,YAAY,KAAK;GAC7C;GACD,KAAK,8BAA8B;IACjC,MAAM,EAAE,yBAAyB,GAC/B,MAAM,OAAO;AACf,WAAO,wBAAwB,YAAY,KAAK;GACjD;GACD,KAAK,0BAA0B;IAC7B,MAAM,EAAE,sBAAsB,GAC5B,MAAM,OAAO;AACf,WAAO,qBAAqB,YAAY,KAAK;GAC9C;GACD,KAAK,gBAAgB;IACnB,MAAM,EAAE,iBAAiB,GAAG,MAAM,OAAO;AACzC,WAAO,gBAAgB,YAAY,MAAM,OAAO;GACjD;GACD,KAAK,aAAa;IAChB,MAAM,EAAE,UAAU,GAAG,MAAM,OAAO;AAClC,WAAO,SAAS,YAAY,KAAK;GAClC;GACD,QACE,OAAM,IAAI,MACR,CAAC,+BAA+B,EAC7B,KAA6B,OAC9B;EAEP;CACF;AACF"}
|