langchain 0.0.195 → 0.0.196

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (216) hide show
  1. package/dist/agents/toolkits/conversational_retrieval/token_buffer_memory.d.ts +1 -1
  2. package/dist/base_language/count_tokens.cjs +5 -70
  3. package/dist/base_language/count_tokens.d.ts +1 -10
  4. package/dist/base_language/count_tokens.js +1 -65
  5. package/dist/base_language/index.cjs +6 -196
  6. package/dist/base_language/index.d.ts +1 -111
  7. package/dist/base_language/index.js +1 -191
  8. package/dist/cache/base.cjs +15 -37
  9. package/dist/cache/base.d.ts +1 -20
  10. package/dist/cache/base.js +1 -33
  11. package/dist/cache/index.cjs +2 -46
  12. package/dist/cache/index.d.ts +1 -29
  13. package/dist/cache/index.js +1 -45
  14. package/dist/callbacks/base.cjs +3 -139
  15. package/dist/callbacks/base.d.ts +1 -266
  16. package/dist/callbacks/base.js +1 -126
  17. package/dist/callbacks/handlers/console.cjs +14 -221
  18. package/dist/callbacks/handlers/console.d.ts +1 -117
  19. package/dist/callbacks/handlers/console.js +1 -217
  20. package/dist/callbacks/handlers/initialize.cjs +15 -30
  21. package/dist/callbacks/handlers/initialize.d.ts +1 -16
  22. package/dist/callbacks/handlers/initialize.js +1 -27
  23. package/dist/callbacks/handlers/log_stream.cjs +15 -293
  24. package/dist/callbacks/handlers/log_stream.d.ts +1 -100
  25. package/dist/callbacks/handlers/log_stream.js +1 -289
  26. package/dist/callbacks/handlers/run_collector.cjs +15 -48
  27. package/dist/callbacks/handlers/run_collector.d.ts +1 -26
  28. package/dist/callbacks/handlers/run_collector.js +1 -46
  29. package/dist/callbacks/handlers/tracer.cjs +15 -375
  30. package/dist/callbacks/handlers/tracer.d.ts +1 -70
  31. package/dist/callbacks/handlers/tracer.js +1 -373
  32. package/dist/callbacks/handlers/tracer_langchain.cjs +15 -104
  33. package/dist/callbacks/handlers/tracer_langchain.d.ts +1 -41
  34. package/dist/callbacks/handlers/tracer_langchain.js +1 -102
  35. package/dist/callbacks/handlers/tracer_langchain_v1.cjs +15 -197
  36. package/dist/callbacks/handlers/tracer_langchain_v1.d.ts +1 -57
  37. package/dist/callbacks/handlers/tracer_langchain_v1.js +1 -195
  38. package/dist/callbacks/manager.cjs +15 -676
  39. package/dist/callbacks/manager.d.ts +1 -180
  40. package/dist/callbacks/manager.js +1 -666
  41. package/dist/callbacks/promises.cjs +14 -42
  42. package/dist/callbacks/promises.d.ts +1 -11
  43. package/dist/callbacks/promises.js +1 -37
  44. package/dist/chains/graph_qa/prompts.d.ts +1 -1
  45. package/dist/chains/openai_functions/structured_output.cjs +2 -2
  46. package/dist/chains/openai_functions/structured_output.d.ts +1 -1
  47. package/dist/chains/openai_functions/structured_output.js +1 -1
  48. package/dist/chat_models/baiduwenxin.d.ts +1 -1
  49. package/dist/chat_models/base.cjs +15 -296
  50. package/dist/chat_models/base.d.ts +1 -122
  51. package/dist/chat_models/base.js +1 -292
  52. package/dist/chat_models/bedrock/web.d.ts +1 -1
  53. package/dist/chat_models/fireworks.d.ts +1 -1
  54. package/dist/document.cjs +2 -24
  55. package/dist/document.d.ts +1 -12
  56. package/dist/document.js +1 -23
  57. package/dist/document_loaders/web/azure_blob_storage_file.d.ts +1 -1
  58. package/dist/document_loaders/web/s3.d.ts +1 -1
  59. package/dist/embeddings/base.cjs +15 -22
  60. package/dist/embeddings/base.d.ts +1 -33
  61. package/dist/embeddings/base.js +1 -20
  62. package/dist/embeddings/cache_backed.cjs +2 -2
  63. package/dist/embeddings/cache_backed.js +1 -1
  64. package/dist/evaluation/agents/trajectory.d.ts +1 -1
  65. package/dist/evaluation/criteria/prompt.d.ts +2 -2
  66. package/dist/evaluation/qa/prompt.d.ts +2 -2
  67. package/dist/experimental/hubs/makersuite/googlemakersuitehub.d.ts +1 -1
  68. package/dist/experimental/plan_and_execute/prompt.d.ts +1 -1
  69. package/dist/llms/base.cjs +15 -278
  70. package/dist/llms/base.d.ts +1 -115
  71. package/dist/llms/base.js +1 -275
  72. package/dist/llms/bedrock/web.d.ts +1 -1
  73. package/dist/llms/fireworks.d.ts +1 -1
  74. package/dist/load/import_map.cjs +2 -1
  75. package/dist/load/import_map.d.ts +1 -0
  76. package/dist/load/import_map.js +1 -0
  77. package/dist/load/index.cjs +7 -148
  78. package/dist/load/index.js +7 -148
  79. package/dist/load/map_keys.cjs +0 -24
  80. package/dist/load/map_keys.d.ts +0 -6
  81. package/dist/load/map_keys.js +1 -17
  82. package/dist/load/serializable.cjs +15 -178
  83. package/dist/load/serializable.d.ts +1 -66
  84. package/dist/load/serializable.js +1 -175
  85. package/dist/memory/base.cjs +17 -92
  86. package/dist/memory/base.d.ts +2 -68
  87. package/dist/memory/base.js +2 -87
  88. package/dist/output_parsers/openai_functions.cjs +2 -2
  89. package/dist/output_parsers/openai_functions.d.ts +1 -1
  90. package/dist/output_parsers/openai_functions.js +1 -1
  91. package/dist/output_parsers/regex.d.ts +1 -1
  92. package/dist/output_parsers/structured.d.ts +1 -1
  93. package/dist/prompts/base.cjs +8 -183
  94. package/dist/prompts/base.d.ts +3 -132
  95. package/dist/prompts/base.js +3 -178
  96. package/dist/prompts/chat.cjs +15 -477
  97. package/dist/prompts/chat.d.ts +1 -219
  98. package/dist/prompts/chat.js +1 -466
  99. package/dist/prompts/few_shot.cjs +15 -353
  100. package/dist/prompts/few_shot.d.ts +1 -192
  101. package/dist/prompts/few_shot.js +1 -350
  102. package/dist/prompts/index.cjs +3 -2
  103. package/dist/prompts/index.d.ts +2 -1
  104. package/dist/prompts/index.js +2 -1
  105. package/dist/prompts/pipeline.cjs +15 -142
  106. package/dist/prompts/pipeline.d.ts +1 -98
  107. package/dist/prompts/pipeline.js +1 -140
  108. package/dist/prompts/prompt.cjs +15 -146
  109. package/dist/prompts/prompt.d.ts +1 -92
  110. package/dist/prompts/prompt.js +1 -144
  111. package/dist/prompts/selectors/LengthBasedExampleSelector.cjs +15 -148
  112. package/dist/prompts/selectors/LengthBasedExampleSelector.d.ts +1 -89
  113. package/dist/prompts/selectors/LengthBasedExampleSelector.js +1 -146
  114. package/dist/prompts/selectors/SemanticSimilarityExampleSelector.cjs +15 -137
  115. package/dist/prompts/selectors/SemanticSimilarityExampleSelector.d.ts +1 -91
  116. package/dist/prompts/selectors/SemanticSimilarityExampleSelector.js +1 -135
  117. package/dist/prompts/selectors/conditional.cjs +15 -74
  118. package/dist/prompts/selectors/conditional.d.ts +1 -63
  119. package/dist/prompts/selectors/conditional.js +1 -69
  120. package/dist/prompts/serde.cjs +15 -0
  121. package/dist/prompts/serde.d.ts +1 -43
  122. package/dist/prompts/serde.js +1 -1
  123. package/dist/prompts/template.cjs +14 -88
  124. package/dist/prompts/template.d.ts +1 -36
  125. package/dist/prompts/template.js +1 -83
  126. package/dist/{util/@cfworker/json-schema → runnables}/index.cjs +1 -1
  127. package/dist/runnables/index.d.ts +1 -0
  128. package/dist/runnables/index.js +1 -0
  129. package/dist/schema/document.cjs +3 -34
  130. package/dist/schema/document.d.ts +2 -29
  131. package/dist/schema/document.js +2 -32
  132. package/dist/schema/index.cjs +37 -612
  133. package/dist/schema/index.d.ts +11 -311
  134. package/dist/schema/index.js +8 -583
  135. package/dist/schema/output_parser.cjs +15 -309
  136. package/dist/schema/output_parser.d.ts +1 -173
  137. package/dist/schema/output_parser.js +1 -301
  138. package/dist/schema/retriever.cjs +15 -77
  139. package/dist/schema/retriever.d.ts +1 -43
  140. package/dist/schema/retriever.js +1 -75
  141. package/dist/schema/runnable/base.cjs +10 -1072
  142. package/dist/schema/runnable/base.d.ts +1 -356
  143. package/dist/schema/runnable/base.js +1 -1060
  144. package/dist/schema/runnable/branch.cjs +2 -131
  145. package/dist/schema/runnable/branch.d.ts +1 -94
  146. package/dist/schema/runnable/branch.js +1 -130
  147. package/dist/schema/runnable/config.cjs +0 -6
  148. package/dist/schema/runnable/config.d.ts +1 -3
  149. package/dist/schema/runnable/config.js +1 -4
  150. package/dist/schema/runnable/index.cjs +15 -16
  151. package/dist/schema/runnable/index.d.ts +1 -5
  152. package/dist/schema/runnable/index.js +1 -4
  153. package/dist/schema/runnable/passthrough.cjs +3 -113
  154. package/dist/schema/runnable/passthrough.d.ts +1 -72
  155. package/dist/schema/runnable/passthrough.js +1 -111
  156. package/dist/schema/runnable/router.cjs +2 -71
  157. package/dist/schema/runnable/router.d.ts +1 -29
  158. package/dist/schema/runnable/router.js +1 -70
  159. package/dist/schema/storage.cjs +15 -8
  160. package/dist/schema/storage.d.ts +1 -57
  161. package/dist/schema/storage.js +1 -6
  162. package/dist/tools/bingserpapi.d.ts +1 -1
  163. package/dist/tools/searchapi.d.ts +1 -1
  164. package/dist/tools/serpapi.d.ts +1 -1
  165. package/dist/tools/serper.d.ts +1 -1
  166. package/dist/util/async_caller.cjs +14 -128
  167. package/dist/util/async_caller.d.ts +1 -45
  168. package/dist/util/async_caller.js +1 -124
  169. package/package.json +11 -5
  170. package/runnables.cjs +1 -0
  171. package/runnables.d.ts +1 -0
  172. package/runnables.js +1 -0
  173. package/dist/util/@cfworker/json-schema/index.d.ts +0 -1
  174. package/dist/util/@cfworker/json-schema/index.js +0 -1
  175. package/dist/util/@cfworker/json-schema/src/deep-compare-strict.cjs +0 -43
  176. package/dist/util/@cfworker/json-schema/src/deep-compare-strict.d.ts +0 -1
  177. package/dist/util/@cfworker/json-schema/src/deep-compare-strict.js +0 -39
  178. package/dist/util/@cfworker/json-schema/src/dereference.cjs +0 -169
  179. package/dist/util/@cfworker/json-schema/src/dereference.d.ts +0 -12
  180. package/dist/util/@cfworker/json-schema/src/dereference.js +0 -165
  181. package/dist/util/@cfworker/json-schema/src/format.cjs +0 -139
  182. package/dist/util/@cfworker/json-schema/src/format.d.ts +0 -2
  183. package/dist/util/@cfworker/json-schema/src/format.js +0 -136
  184. package/dist/util/@cfworker/json-schema/src/index.cjs +0 -24
  185. package/dist/util/@cfworker/json-schema/src/index.d.ts +0 -8
  186. package/dist/util/@cfworker/json-schema/src/index.js +0 -8
  187. package/dist/util/@cfworker/json-schema/src/pointer.cjs +0 -11
  188. package/dist/util/@cfworker/json-schema/src/pointer.d.ts +0 -2
  189. package/dist/util/@cfworker/json-schema/src/pointer.js +0 -6
  190. package/dist/util/@cfworker/json-schema/src/types.cjs +0 -2
  191. package/dist/util/@cfworker/json-schema/src/types.d.ts +0 -72
  192. package/dist/util/@cfworker/json-schema/src/types.js +0 -1
  193. package/dist/util/@cfworker/json-schema/src/ucs2-length.cjs +0 -28
  194. package/dist/util/@cfworker/json-schema/src/ucs2-length.d.ts +0 -6
  195. package/dist/util/@cfworker/json-schema/src/ucs2-length.js +0 -24
  196. package/dist/util/@cfworker/json-schema/src/validate.cjs +0 -808
  197. package/dist/util/@cfworker/json-schema/src/validate.d.ts +0 -3
  198. package/dist/util/@cfworker/json-schema/src/validate.js +0 -804
  199. package/dist/util/@cfworker/json-schema/src/validator.cjs +0 -44
  200. package/dist/util/@cfworker/json-schema/src/validator.d.ts +0 -10
  201. package/dist/util/@cfworker/json-schema/src/validator.js +0 -40
  202. package/dist/util/fast-json-patch/index.cjs +0 -49
  203. package/dist/util/fast-json-patch/index.d.ts +0 -22
  204. package/dist/util/fast-json-patch/index.js +0 -16
  205. package/dist/util/fast-json-patch/src/core.cjs +0 -469
  206. package/dist/util/fast-json-patch/src/core.d.ts +0 -111
  207. package/dist/util/fast-json-patch/src/core.js +0 -459
  208. package/dist/util/fast-json-patch/src/duplex.cjs +0 -237
  209. package/dist/util/fast-json-patch/src/duplex.d.ts +0 -23
  210. package/dist/util/fast-json-patch/src/duplex.js +0 -230
  211. package/dist/util/fast-json-patch/src/helpers.cjs +0 -194
  212. package/dist/util/fast-json-patch/src/helpers.d.ts +0 -36
  213. package/dist/util/fast-json-patch/src/helpers.js +0 -181
  214. package/dist/util/js-sha1/hash.cjs +0 -358
  215. package/dist/util/js-sha1/hash.d.ts +0 -1
  216. package/dist/util/js-sha1/hash.js +0 -355
@@ -1,185 +1,10 @@
1
1
  "use strict";
2
- // Default generic "any" values are for backwards compatibility.
3
- // Replace with "string" when we are comfortable with a breaking change.
4
2
  Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.BaseExampleSelector = exports.BaseStringPromptTemplate = exports.BasePromptTemplate = exports.StringPromptValue = void 0;
6
- const index_js_1 = require("../schema/index.cjs");
7
- const serializable_js_1 = require("../load/serializable.cjs");
8
- const index_js_2 = require("../schema/runnable/index.cjs");
9
- /**
10
- * Represents a prompt value as a string. It extends the BasePromptValue
11
- * class and overrides the toString and toChatMessages methods.
12
- */
13
- class StringPromptValue extends index_js_1.BasePromptValue {
14
- constructor(value) {
15
- super({ value });
16
- Object.defineProperty(this, "lc_namespace", {
17
- enumerable: true,
18
- configurable: true,
19
- writable: true,
20
- value: ["langchain", "prompts", "base"]
21
- });
22
- Object.defineProperty(this, "value", {
23
- enumerable: true,
24
- configurable: true,
25
- writable: true,
26
- value: void 0
27
- });
28
- this.value = value;
29
- }
30
- toString() {
31
- return this.value;
32
- }
33
- toChatMessages() {
34
- return [new index_js_1.HumanMessage(this.value)];
35
- }
36
- }
37
- exports.StringPromptValue = StringPromptValue;
38
- /**
39
- * Base class for prompt templates. Exposes a format method that returns a
40
- * string prompt given a set of input values.
41
- */
42
- class BasePromptTemplate extends index_js_2.Runnable {
43
- get lc_attributes() {
44
- return {
45
- partialVariables: undefined, // python doesn't support this yet
46
- };
47
- }
48
- constructor(input) {
49
- super(input);
50
- Object.defineProperty(this, "lc_serializable", {
51
- enumerable: true,
52
- configurable: true,
53
- writable: true,
54
- value: true
55
- });
56
- Object.defineProperty(this, "lc_namespace", {
57
- enumerable: true,
58
- configurable: true,
59
- writable: true,
60
- value: ["langchain", "prompts", this._getPromptType()]
61
- });
62
- Object.defineProperty(this, "inputVariables", {
63
- enumerable: true,
64
- configurable: true,
65
- writable: true,
66
- value: void 0
67
- });
68
- Object.defineProperty(this, "outputParser", {
69
- enumerable: true,
70
- configurable: true,
71
- writable: true,
72
- value: void 0
73
- });
74
- Object.defineProperty(this, "partialVariables", {
75
- enumerable: true,
76
- configurable: true,
77
- writable: true,
78
- value: void 0
79
- });
80
- const { inputVariables } = input;
81
- if (inputVariables.includes("stop")) {
82
- throw new Error("Cannot have an input variable named 'stop', as it is used internally, please rename.");
83
- }
84
- Object.assign(this, input);
85
- }
86
- /**
87
- * Merges partial variables and user variables.
88
- * @param userVariables The user variables to merge with the partial variables.
89
- * @returns A Promise that resolves to an object containing the merged variables.
90
- */
91
- async mergePartialAndUserVariables(userVariables) {
92
- const partialVariables = this.partialVariables ?? {};
93
- const partialValues = {};
94
- for (const [key, value] of Object.entries(partialVariables)) {
95
- if (typeof value === "string") {
96
- partialValues[key] = value;
97
- }
98
- else {
99
- partialValues[key] = await value();
100
- }
101
- }
102
- const allKwargs = {
103
- ...partialValues,
104
- ...userVariables,
105
- };
106
- return allKwargs;
107
- }
108
- /**
109
- * Invokes the prompt template with the given input and options.
110
- * @param input The input to invoke the prompt template with.
111
- * @param options Optional configuration for the callback.
112
- * @returns A Promise that resolves to the output of the prompt template.
113
- */
114
- async invoke(input, options) {
115
- return this._callWithConfig((input) => this.formatPromptValue(input), input, { ...options, runType: "prompt" });
116
- }
117
- /**
118
- * Return a json-like object representing this prompt template.
119
- * @deprecated
120
- */
121
- serialize() {
122
- throw new Error("Use .toJSON() instead");
123
- }
124
- /**
125
- * @deprecated
126
- * Load a prompt template from a json-like object describing it.
127
- *
128
- * @remarks
129
- * Deserializing needs to be async because templates (e.g. {@link FewShotPromptTemplate}) can
130
- * reference remote resources that we read asynchronously with a web
131
- * request.
132
- */
133
- static async deserialize(data) {
134
- switch (data._type) {
135
- case "prompt": {
136
- const { PromptTemplate } = await import("./prompt.js");
137
- return PromptTemplate.deserialize(data);
138
- }
139
- case undefined: {
140
- const { PromptTemplate } = await import("./prompt.js");
141
- return PromptTemplate.deserialize({ ...data, _type: "prompt" });
142
- }
143
- case "few_shot": {
144
- const { FewShotPromptTemplate } = await import("./few_shot.js");
145
- return FewShotPromptTemplate.deserialize(data);
146
- }
147
- default:
148
- throw new Error(`Invalid prompt type in config: ${data._type}`);
149
- }
150
- }
151
- }
152
- exports.BasePromptTemplate = BasePromptTemplate;
153
- /**
154
- * Base class for string prompt templates. It extends the
155
- * BasePromptTemplate class and overrides the formatPromptValue method to
156
- * return a StringPromptValue.
157
- */
158
- class BaseStringPromptTemplate extends BasePromptTemplate {
159
- /**
160
- * Formats the prompt given the input values and returns a formatted
161
- * prompt value.
162
- * @param values The input values to format the prompt.
163
- * @returns A Promise that resolves to a formatted prompt value.
164
- */
165
- async formatPromptValue(values) {
166
- const formattedPrompt = await this.format(values);
167
- return new StringPromptValue(formattedPrompt);
168
- }
169
- }
170
- exports.BaseStringPromptTemplate = BaseStringPromptTemplate;
171
- /**
172
- * Base class for example selectors.
173
- */
174
- class BaseExampleSelector extends serializable_js_1.Serializable {
175
- constructor() {
176
- super(...arguments);
177
- Object.defineProperty(this, "lc_namespace", {
178
- enumerable: true,
179
- configurable: true,
180
- writable: true,
181
- value: ["langchain", "prompts", "selectors"]
182
- });
183
- }
184
- }
185
- exports.BaseExampleSelector = BaseExampleSelector;
3
+ exports.BaseExampleSelector = exports.BasePromptTemplate = exports.BaseStringPromptTemplate = exports.StringPromptValue = void 0;
4
+ var base_1 = require("langchain-core/prompts/base");
5
+ Object.defineProperty(exports, "StringPromptValue", { enumerable: true, get: function () { return base_1.StringPromptValue; } });
6
+ Object.defineProperty(exports, "BaseStringPromptTemplate", { enumerable: true, get: function () { return base_1.BaseStringPromptTemplate; } });
7
+ var prompt_template_1 = require("langchain-core/schema/prompt_template");
8
+ Object.defineProperty(exports, "BasePromptTemplate", { enumerable: true, get: function () { return prompt_template_1.BasePromptTemplate; } });
9
+ var base_2 = require("langchain-core/prompts/example_selector/base");
10
+ Object.defineProperty(exports, "BaseExampleSelector", { enumerable: true, get: function () { return base_2.BaseExampleSelector; } });
@@ -1,132 +1,3 @@
1
- import { BasePromptValue, Example, HumanMessage, InputValues, PartialValues } from "../schema/index.js";
2
- import { BaseOutputParser } from "../schema/output_parser.js";
3
- import { Serializable } from "../load/serializable.js";
4
- import { SerializedBasePromptTemplate } from "./serde.js";
5
- import { SerializedFields } from "../load/map_keys.js";
6
- import { Runnable } from "../schema/runnable/index.js";
7
- import { BaseCallbackConfig } from "../callbacks/manager.js";
8
- import type { StringWithAutocomplete } from "../util/types.js";
9
- export type TypedPromptInputValues<RunInput> = InputValues<StringWithAutocomplete<Extract<keyof RunInput, string>>>;
10
- /**
11
- * Represents a prompt value as a string. It extends the BasePromptValue
12
- * class and overrides the toString and toChatMessages methods.
13
- */
14
- export declare class StringPromptValue extends BasePromptValue {
15
- lc_namespace: string[];
16
- value: string;
17
- constructor(value: string);
18
- toString(): string;
19
- toChatMessages(): HumanMessage[];
20
- }
21
- /**
22
- * Input common to all prompt templates.
23
- */
24
- export interface BasePromptTemplateInput<InputVariables extends InputValues = any, PartialVariableName extends string = any> {
25
- /**
26
- * A list of variable names the prompt template expects
27
- */
28
- inputVariables: Array<Extract<keyof InputVariables, string>>;
29
- /**
30
- * How to parse the output of calling an LLM on this formatted prompt
31
- */
32
- outputParser?: BaseOutputParser;
33
- /** Partial variables */
34
- partialVariables?: PartialValues<PartialVariableName>;
35
- }
36
- /**
37
- * Base class for prompt templates. Exposes a format method that returns a
38
- * string prompt given a set of input values.
39
- */
40
- export declare abstract class BasePromptTemplate<RunInput extends InputValues = any, RunOutput extends BasePromptValue = BasePromptValue, PartialVariableName extends string = any> extends Runnable<RunInput, RunOutput> implements BasePromptTemplateInput {
41
- PromptValueReturnType: RunOutput;
42
- lc_serializable: boolean;
43
- lc_namespace: string[];
44
- get lc_attributes(): SerializedFields | undefined;
45
- inputVariables: Array<Extract<keyof RunInput, string>>;
46
- outputParser?: BaseOutputParser;
47
- partialVariables: PartialValues<PartialVariableName>;
48
- constructor(input: BasePromptTemplateInput);
49
- abstract partial(values: PartialValues): Promise<BasePromptTemplate<RunInput, RunOutput, PartialVariableName>>;
50
- /**
51
- * Merges partial variables and user variables.
52
- * @param userVariables The user variables to merge with the partial variables.
53
- * @returns A Promise that resolves to an object containing the merged variables.
54
- */
55
- mergePartialAndUserVariables(userVariables: TypedPromptInputValues<RunInput>): Promise<InputValues<Extract<keyof RunInput, string> | PartialVariableName>>;
56
- /**
57
- * Invokes the prompt template with the given input and options.
58
- * @param input The input to invoke the prompt template with.
59
- * @param options Optional configuration for the callback.
60
- * @returns A Promise that resolves to the output of the prompt template.
61
- */
62
- invoke(input: RunInput, options?: BaseCallbackConfig): Promise<RunOutput>;
63
- /**
64
- * Format the prompt given the input values.
65
- *
66
- * @param values - A dictionary of arguments to be passed to the prompt template.
67
- * @returns A formatted prompt string.
68
- *
69
- * @example
70
- * ```ts
71
- * prompt.format({ foo: "bar" });
72
- * ```
73
- */
74
- abstract format(values: TypedPromptInputValues<RunInput>): Promise<string>;
75
- /**
76
- * Format the prompt given the input values and return a formatted prompt value.
77
- * @param values
78
- * @returns A formatted PromptValue.
79
- */
80
- abstract formatPromptValue(values: TypedPromptInputValues<RunInput>): Promise<RunOutput>;
81
- /**
82
- * Return the string type key uniquely identifying this class of prompt template.
83
- */
84
- abstract _getPromptType(): string;
85
- /**
86
- * Return a json-like object representing this prompt template.
87
- * @deprecated
88
- */
89
- serialize(): SerializedBasePromptTemplate;
90
- /**
91
- * @deprecated
92
- * Load a prompt template from a json-like object describing it.
93
- *
94
- * @remarks
95
- * Deserializing needs to be async because templates (e.g. {@link FewShotPromptTemplate}) can
96
- * reference remote resources that we read asynchronously with a web
97
- * request.
98
- */
99
- static deserialize(data: SerializedBasePromptTemplate): Promise<BasePromptTemplate<InputValues, BasePromptValue, string>>;
100
- }
101
- /**
102
- * Base class for string prompt templates. It extends the
103
- * BasePromptTemplate class and overrides the formatPromptValue method to
104
- * return a StringPromptValue.
105
- */
106
- export declare abstract class BaseStringPromptTemplate<RunInput extends InputValues = any, PartialVariableName extends string = any> extends BasePromptTemplate<RunInput, StringPromptValue, PartialVariableName> {
107
- /**
108
- * Formats the prompt given the input values and returns a formatted
109
- * prompt value.
110
- * @param values The input values to format the prompt.
111
- * @returns A Promise that resolves to a formatted prompt value.
112
- */
113
- formatPromptValue(values: TypedPromptInputValues<RunInput>): Promise<StringPromptValue>;
114
- }
115
- /**
116
- * Base class for example selectors.
117
- */
118
- export declare abstract class BaseExampleSelector extends Serializable {
119
- lc_namespace: string[];
120
- /**
121
- * Adds an example to the example selector.
122
- * @param example The example to add to the example selector.
123
- * @returns A Promise that resolves to void or a string.
124
- */
125
- abstract addExample(example: Example): Promise<void | string>;
126
- /**
127
- * Selects examples from the example selector given the input variables.
128
- * @param input_variables The input variables to select examples with.
129
- * @returns A Promise that resolves to an array of selected examples.
130
- */
131
- abstract selectExamples(input_variables: Example): Promise<Example[]>;
132
- }
1
+ export { type TypedPromptInputValues, StringPromptValue, BaseStringPromptTemplate, } from "langchain-core/prompts/base";
2
+ export { type BasePromptTemplateInput, BasePromptTemplate, } from "langchain-core/schema/prompt_template";
3
+ export { BaseExampleSelector } from "langchain-core/prompts/example_selector/base";
@@ -1,178 +1,3 @@
1
- // Default generic "any" values are for backwards compatibility.
2
- // Replace with "string" when we are comfortable with a breaking change.
3
- import { BasePromptValue, HumanMessage, } from "../schema/index.js";
4
- import { Serializable } from "../load/serializable.js";
5
- import { Runnable } from "../schema/runnable/index.js";
6
- /**
7
- * Represents a prompt value as a string. It extends the BasePromptValue
8
- * class and overrides the toString and toChatMessages methods.
9
- */
10
- export class StringPromptValue extends BasePromptValue {
11
- constructor(value) {
12
- super({ value });
13
- Object.defineProperty(this, "lc_namespace", {
14
- enumerable: true,
15
- configurable: true,
16
- writable: true,
17
- value: ["langchain", "prompts", "base"]
18
- });
19
- Object.defineProperty(this, "value", {
20
- enumerable: true,
21
- configurable: true,
22
- writable: true,
23
- value: void 0
24
- });
25
- this.value = value;
26
- }
27
- toString() {
28
- return this.value;
29
- }
30
- toChatMessages() {
31
- return [new HumanMessage(this.value)];
32
- }
33
- }
34
- /**
35
- * Base class for prompt templates. Exposes a format method that returns a
36
- * string prompt given a set of input values.
37
- */
38
- export class BasePromptTemplate extends Runnable {
39
- get lc_attributes() {
40
- return {
41
- partialVariables: undefined, // python doesn't support this yet
42
- };
43
- }
44
- constructor(input) {
45
- super(input);
46
- Object.defineProperty(this, "lc_serializable", {
47
- enumerable: true,
48
- configurable: true,
49
- writable: true,
50
- value: true
51
- });
52
- Object.defineProperty(this, "lc_namespace", {
53
- enumerable: true,
54
- configurable: true,
55
- writable: true,
56
- value: ["langchain", "prompts", this._getPromptType()]
57
- });
58
- Object.defineProperty(this, "inputVariables", {
59
- enumerable: true,
60
- configurable: true,
61
- writable: true,
62
- value: void 0
63
- });
64
- Object.defineProperty(this, "outputParser", {
65
- enumerable: true,
66
- configurable: true,
67
- writable: true,
68
- value: void 0
69
- });
70
- Object.defineProperty(this, "partialVariables", {
71
- enumerable: true,
72
- configurable: true,
73
- writable: true,
74
- value: void 0
75
- });
76
- const { inputVariables } = input;
77
- if (inputVariables.includes("stop")) {
78
- throw new Error("Cannot have an input variable named 'stop', as it is used internally, please rename.");
79
- }
80
- Object.assign(this, input);
81
- }
82
- /**
83
- * Merges partial variables and user variables.
84
- * @param userVariables The user variables to merge with the partial variables.
85
- * @returns A Promise that resolves to an object containing the merged variables.
86
- */
87
- async mergePartialAndUserVariables(userVariables) {
88
- const partialVariables = this.partialVariables ?? {};
89
- const partialValues = {};
90
- for (const [key, value] of Object.entries(partialVariables)) {
91
- if (typeof value === "string") {
92
- partialValues[key] = value;
93
- }
94
- else {
95
- partialValues[key] = await value();
96
- }
97
- }
98
- const allKwargs = {
99
- ...partialValues,
100
- ...userVariables,
101
- };
102
- return allKwargs;
103
- }
104
- /**
105
- * Invokes the prompt template with the given input and options.
106
- * @param input The input to invoke the prompt template with.
107
- * @param options Optional configuration for the callback.
108
- * @returns A Promise that resolves to the output of the prompt template.
109
- */
110
- async invoke(input, options) {
111
- return this._callWithConfig((input) => this.formatPromptValue(input), input, { ...options, runType: "prompt" });
112
- }
113
- /**
114
- * Return a json-like object representing this prompt template.
115
- * @deprecated
116
- */
117
- serialize() {
118
- throw new Error("Use .toJSON() instead");
119
- }
120
- /**
121
- * @deprecated
122
- * Load a prompt template from a json-like object describing it.
123
- *
124
- * @remarks
125
- * Deserializing needs to be async because templates (e.g. {@link FewShotPromptTemplate}) can
126
- * reference remote resources that we read asynchronously with a web
127
- * request.
128
- */
129
- static async deserialize(data) {
130
- switch (data._type) {
131
- case "prompt": {
132
- const { PromptTemplate } = await import("./prompt.js");
133
- return PromptTemplate.deserialize(data);
134
- }
135
- case undefined: {
136
- const { PromptTemplate } = await import("./prompt.js");
137
- return PromptTemplate.deserialize({ ...data, _type: "prompt" });
138
- }
139
- case "few_shot": {
140
- const { FewShotPromptTemplate } = await import("./few_shot.js");
141
- return FewShotPromptTemplate.deserialize(data);
142
- }
143
- default:
144
- throw new Error(`Invalid prompt type in config: ${data._type}`);
145
- }
146
- }
147
- }
148
- /**
149
- * Base class for string prompt templates. It extends the
150
- * BasePromptTemplate class and overrides the formatPromptValue method to
151
- * return a StringPromptValue.
152
- */
153
- export class BaseStringPromptTemplate extends BasePromptTemplate {
154
- /**
155
- * Formats the prompt given the input values and returns a formatted
156
- * prompt value.
157
- * @param values The input values to format the prompt.
158
- * @returns A Promise that resolves to a formatted prompt value.
159
- */
160
- async formatPromptValue(values) {
161
- const formattedPrompt = await this.format(values);
162
- return new StringPromptValue(formattedPrompt);
163
- }
164
- }
165
- /**
166
- * Base class for example selectors.
167
- */
168
- export class BaseExampleSelector extends Serializable {
169
- constructor() {
170
- super(...arguments);
171
- Object.defineProperty(this, "lc_namespace", {
172
- enumerable: true,
173
- configurable: true,
174
- writable: true,
175
- value: ["langchain", "prompts", "selectors"]
176
- });
177
- }
178
- }
1
+ export { StringPromptValue, BaseStringPromptTemplate, } from "langchain-core/prompts/base";
2
+ export { BasePromptTemplate, } from "langchain-core/schema/prompt_template";
3
+ export { BaseExampleSelector } from "langchain-core/prompts/example_selector/base";