langchain 0.0.194 → 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 (241) 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/embeddings/hf.cjs +1 -2
  65. package/dist/embeddings/hf.js +1 -2
  66. package/dist/evaluation/agents/trajectory.d.ts +1 -1
  67. package/dist/evaluation/criteria/prompt.d.ts +2 -2
  68. package/dist/evaluation/qa/prompt.d.ts +2 -2
  69. package/dist/experimental/hubs/makersuite/googlemakersuitehub.d.ts +1 -1
  70. package/dist/experimental/openai_assistant/index.cjs +2 -1
  71. package/dist/experimental/openai_assistant/index.d.ts +2 -1
  72. package/dist/experimental/openai_assistant/index.js +2 -1
  73. package/dist/experimental/openai_files/index.cjs +88 -0
  74. package/dist/experimental/openai_files/index.d.ts +79 -0
  75. package/dist/experimental/openai_files/index.js +84 -0
  76. package/dist/experimental/plan_and_execute/prompt.d.ts +1 -1
  77. package/dist/llms/base.cjs +15 -278
  78. package/dist/llms/base.d.ts +1 -115
  79. package/dist/llms/base.js +1 -275
  80. package/dist/llms/bedrock/web.d.ts +1 -1
  81. package/dist/llms/fireworks.d.ts +1 -1
  82. package/dist/load/import_constants.cjs +1 -0
  83. package/dist/load/import_constants.js +1 -0
  84. package/dist/load/import_map.cjs +4 -2
  85. package/dist/load/import_map.d.ts +2 -0
  86. package/dist/load/import_map.js +2 -0
  87. package/dist/load/index.cjs +7 -148
  88. package/dist/load/index.js +7 -148
  89. package/dist/load/map_keys.cjs +0 -24
  90. package/dist/load/map_keys.d.ts +0 -6
  91. package/dist/load/map_keys.js +1 -17
  92. package/dist/load/serializable.cjs +15 -178
  93. package/dist/load/serializable.d.ts +1 -66
  94. package/dist/load/serializable.js +1 -175
  95. package/dist/memory/base.cjs +17 -92
  96. package/dist/memory/base.d.ts +2 -68
  97. package/dist/memory/base.js +2 -87
  98. package/dist/output_parsers/openai_functions.cjs +2 -2
  99. package/dist/output_parsers/openai_functions.d.ts +1 -1
  100. package/dist/output_parsers/openai_functions.js +1 -1
  101. package/dist/output_parsers/regex.d.ts +1 -1
  102. package/dist/output_parsers/structured.d.ts +1 -1
  103. package/dist/prompts/base.cjs +8 -183
  104. package/dist/prompts/base.d.ts +3 -132
  105. package/dist/prompts/base.js +3 -178
  106. package/dist/prompts/chat.cjs +15 -477
  107. package/dist/prompts/chat.d.ts +1 -219
  108. package/dist/prompts/chat.js +1 -466
  109. package/dist/prompts/few_shot.cjs +15 -353
  110. package/dist/prompts/few_shot.d.ts +1 -192
  111. package/dist/prompts/few_shot.js +1 -350
  112. package/dist/prompts/index.cjs +3 -2
  113. package/dist/prompts/index.d.ts +2 -1
  114. package/dist/prompts/index.js +2 -1
  115. package/dist/prompts/pipeline.cjs +15 -142
  116. package/dist/prompts/pipeline.d.ts +1 -98
  117. package/dist/prompts/pipeline.js +1 -140
  118. package/dist/prompts/prompt.cjs +15 -146
  119. package/dist/prompts/prompt.d.ts +1 -92
  120. package/dist/prompts/prompt.js +1 -144
  121. package/dist/prompts/selectors/LengthBasedExampleSelector.cjs +15 -148
  122. package/dist/prompts/selectors/LengthBasedExampleSelector.d.ts +1 -89
  123. package/dist/prompts/selectors/LengthBasedExampleSelector.js +1 -146
  124. package/dist/prompts/selectors/SemanticSimilarityExampleSelector.cjs +15 -137
  125. package/dist/prompts/selectors/SemanticSimilarityExampleSelector.d.ts +1 -91
  126. package/dist/prompts/selectors/SemanticSimilarityExampleSelector.js +1 -135
  127. package/dist/prompts/selectors/conditional.cjs +15 -74
  128. package/dist/prompts/selectors/conditional.d.ts +1 -63
  129. package/dist/prompts/selectors/conditional.js +1 -69
  130. package/dist/prompts/serde.cjs +15 -0
  131. package/dist/prompts/serde.d.ts +1 -43
  132. package/dist/prompts/serde.js +1 -1
  133. package/dist/prompts/template.cjs +14 -88
  134. package/dist/prompts/template.d.ts +1 -36
  135. package/dist/prompts/template.js +1 -83
  136. package/dist/retrievers/chaindesk.cjs +9 -1
  137. package/dist/retrievers/chaindesk.d.ts +3 -1
  138. package/dist/retrievers/chaindesk.js +9 -1
  139. package/dist/retrievers/self_query/vectara.cjs +138 -0
  140. package/dist/retrievers/self_query/vectara.d.ts +41 -0
  141. package/dist/retrievers/self_query/vectara.js +134 -0
  142. package/dist/{util/@cfworker/json-schema → runnables}/index.cjs +1 -1
  143. package/dist/runnables/index.d.ts +1 -0
  144. package/dist/runnables/index.js +1 -0
  145. package/dist/schema/document.cjs +3 -34
  146. package/dist/schema/document.d.ts +2 -29
  147. package/dist/schema/document.js +2 -32
  148. package/dist/schema/index.cjs +37 -612
  149. package/dist/schema/index.d.ts +11 -311
  150. package/dist/schema/index.js +8 -583
  151. package/dist/schema/output_parser.cjs +15 -309
  152. package/dist/schema/output_parser.d.ts +1 -173
  153. package/dist/schema/output_parser.js +1 -301
  154. package/dist/schema/retriever.cjs +15 -77
  155. package/dist/schema/retriever.d.ts +1 -43
  156. package/dist/schema/retriever.js +1 -75
  157. package/dist/schema/runnable/base.cjs +10 -1072
  158. package/dist/schema/runnable/base.d.ts +1 -356
  159. package/dist/schema/runnable/base.js +1 -1060
  160. package/dist/schema/runnable/branch.cjs +2 -131
  161. package/dist/schema/runnable/branch.d.ts +1 -94
  162. package/dist/schema/runnable/branch.js +1 -130
  163. package/dist/schema/runnable/config.cjs +0 -6
  164. package/dist/schema/runnable/config.d.ts +1 -3
  165. package/dist/schema/runnable/config.js +1 -4
  166. package/dist/schema/runnable/index.cjs +15 -16
  167. package/dist/schema/runnable/index.d.ts +1 -5
  168. package/dist/schema/runnable/index.js +1 -4
  169. package/dist/schema/runnable/passthrough.cjs +3 -113
  170. package/dist/schema/runnable/passthrough.d.ts +1 -72
  171. package/dist/schema/runnable/passthrough.js +1 -111
  172. package/dist/schema/runnable/router.cjs +2 -71
  173. package/dist/schema/runnable/router.d.ts +1 -29
  174. package/dist/schema/runnable/router.js +1 -70
  175. package/dist/schema/storage.cjs +15 -8
  176. package/dist/schema/storage.d.ts +1 -57
  177. package/dist/schema/storage.js +1 -6
  178. package/dist/tools/bingserpapi.d.ts +1 -1
  179. package/dist/tools/searchapi.d.ts +1 -1
  180. package/dist/tools/serpapi.d.ts +1 -1
  181. package/dist/tools/serper.d.ts +1 -1
  182. package/dist/util/async_caller.cjs +14 -128
  183. package/dist/util/async_caller.d.ts +1 -45
  184. package/dist/util/async_caller.js +1 -124
  185. package/dist/vectorstores/vectara.cjs +77 -7
  186. package/dist/vectorstores/vectara.d.ts +9 -3
  187. package/dist/vectorstores/vectara.js +54 -7
  188. package/experimental/openai_files.cjs +1 -0
  189. package/experimental/openai_files.d.ts +1 -0
  190. package/experimental/openai_files.js +1 -0
  191. package/package.json +27 -5
  192. package/retrievers/self_query/vectara.cjs +1 -0
  193. package/retrievers/self_query/vectara.d.ts +1 -0
  194. package/retrievers/self_query/vectara.js +1 -0
  195. package/runnables.cjs +1 -0
  196. package/runnables.d.ts +1 -0
  197. package/runnables.js +1 -0
  198. package/dist/util/@cfworker/json-schema/index.d.ts +0 -1
  199. package/dist/util/@cfworker/json-schema/index.js +0 -1
  200. package/dist/util/@cfworker/json-schema/src/deep-compare-strict.cjs +0 -43
  201. package/dist/util/@cfworker/json-schema/src/deep-compare-strict.d.ts +0 -1
  202. package/dist/util/@cfworker/json-schema/src/deep-compare-strict.js +0 -39
  203. package/dist/util/@cfworker/json-schema/src/dereference.cjs +0 -169
  204. package/dist/util/@cfworker/json-schema/src/dereference.d.ts +0 -12
  205. package/dist/util/@cfworker/json-schema/src/dereference.js +0 -165
  206. package/dist/util/@cfworker/json-schema/src/format.cjs +0 -139
  207. package/dist/util/@cfworker/json-schema/src/format.d.ts +0 -2
  208. package/dist/util/@cfworker/json-schema/src/format.js +0 -136
  209. package/dist/util/@cfworker/json-schema/src/index.cjs +0 -24
  210. package/dist/util/@cfworker/json-schema/src/index.d.ts +0 -8
  211. package/dist/util/@cfworker/json-schema/src/index.js +0 -8
  212. package/dist/util/@cfworker/json-schema/src/pointer.cjs +0 -11
  213. package/dist/util/@cfworker/json-schema/src/pointer.d.ts +0 -2
  214. package/dist/util/@cfworker/json-schema/src/pointer.js +0 -6
  215. package/dist/util/@cfworker/json-schema/src/types.cjs +0 -2
  216. package/dist/util/@cfworker/json-schema/src/types.d.ts +0 -72
  217. package/dist/util/@cfworker/json-schema/src/types.js +0 -1
  218. package/dist/util/@cfworker/json-schema/src/ucs2-length.cjs +0 -28
  219. package/dist/util/@cfworker/json-schema/src/ucs2-length.d.ts +0 -6
  220. package/dist/util/@cfworker/json-schema/src/ucs2-length.js +0 -24
  221. package/dist/util/@cfworker/json-schema/src/validate.cjs +0 -808
  222. package/dist/util/@cfworker/json-schema/src/validate.d.ts +0 -3
  223. package/dist/util/@cfworker/json-schema/src/validate.js +0 -804
  224. package/dist/util/@cfworker/json-schema/src/validator.cjs +0 -44
  225. package/dist/util/@cfworker/json-schema/src/validator.d.ts +0 -10
  226. package/dist/util/@cfworker/json-schema/src/validator.js +0 -40
  227. package/dist/util/fast-json-patch/index.cjs +0 -49
  228. package/dist/util/fast-json-patch/index.d.ts +0 -22
  229. package/dist/util/fast-json-patch/index.js +0 -16
  230. package/dist/util/fast-json-patch/src/core.cjs +0 -469
  231. package/dist/util/fast-json-patch/src/core.d.ts +0 -111
  232. package/dist/util/fast-json-patch/src/core.js +0 -459
  233. package/dist/util/fast-json-patch/src/duplex.cjs +0 -237
  234. package/dist/util/fast-json-patch/src/duplex.d.ts +0 -23
  235. package/dist/util/fast-json-patch/src/duplex.js +0 -230
  236. package/dist/util/fast-json-patch/src/helpers.cjs +0 -194
  237. package/dist/util/fast-json-patch/src/helpers.d.ts +0 -36
  238. package/dist/util/fast-json-patch/src/helpers.js +0 -181
  239. package/dist/util/js-sha1/hash.cjs +0 -358
  240. package/dist/util/js-sha1/hash.d.ts +0 -1
  241. package/dist/util/js-sha1/hash.js +0 -355
@@ -1,219 +1 @@
1
- import { BaseCallbackConfig } from "../callbacks/manager.js";
2
- import { BaseMessage, BaseMessageLike, BasePromptValue, InputValues, PartialValues } from "../schema/index.js";
3
- import { Runnable } from "../schema/runnable/index.js";
4
- import { BasePromptTemplate, BasePromptTemplateInput, BaseStringPromptTemplate, TypedPromptInputValues } from "./base.js";
5
- import { type ParamsFromFString } from "./prompt.js";
6
- /**
7
- * Abstract class that serves as a base for creating message prompt
8
- * templates. It defines how to format messages for different roles in a
9
- * conversation.
10
- */
11
- export declare abstract class BaseMessagePromptTemplate<RunInput extends InputValues = any, RunOutput extends BaseMessage[] = BaseMessage[]> extends Runnable<RunInput, RunOutput> {
12
- lc_namespace: string[];
13
- lc_serializable: boolean;
14
- abstract inputVariables: Array<Extract<keyof RunInput, string>>;
15
- /**
16
- * Method that takes an object of TypedPromptInputValues and returns a
17
- * promise that resolves to an array of BaseMessage instances.
18
- * @param values Object of TypedPromptInputValues
19
- * @returns Formatted array of BaseMessages
20
- */
21
- abstract formatMessages(values: TypedPromptInputValues<RunInput>): Promise<RunOutput>;
22
- /**
23
- * Calls the formatMessages method with the provided input and options.
24
- * @param input Input for the formatMessages method
25
- * @param options Optional BaseCallbackConfig
26
- * @returns Formatted output messages
27
- */
28
- invoke(input: RunInput, options?: BaseCallbackConfig): Promise<RunOutput>;
29
- }
30
- /**
31
- * Interface for the fields of a ChatPromptValue.
32
- */
33
- export interface ChatPromptValueFields {
34
- messages: BaseMessage[];
35
- }
36
- /**
37
- * Class that represents a chat prompt value. It extends the
38
- * BasePromptValue and includes an array of BaseMessage instances.
39
- */
40
- export declare class ChatPromptValue extends BasePromptValue {
41
- lc_namespace: string[];
42
- lc_serializable: boolean;
43
- static lc_name(): string;
44
- messages: BaseMessage[];
45
- constructor(messages: BaseMessage[]);
46
- constructor(fields: ChatPromptValueFields);
47
- toString(): string;
48
- toChatMessages(): BaseMessage[];
49
- }
50
- /**
51
- * Interface for the fields of a MessagePlaceholder.
52
- */
53
- export interface MessagePlaceholderFields<T extends string> {
54
- variableName: T;
55
- }
56
- /**
57
- * Class that represents a placeholder for messages in a chat prompt. It
58
- * extends the BaseMessagePromptTemplate.
59
- */
60
- export declare class MessagesPlaceholder<RunInput extends InputValues = any> extends BaseMessagePromptTemplate<RunInput> {
61
- static lc_name(): string;
62
- variableName: Extract<keyof RunInput, string>;
63
- constructor(variableName: Extract<keyof RunInput, string>);
64
- constructor(fields: MessagePlaceholderFields<Extract<keyof RunInput, string>>);
65
- get inputVariables(): Extract<keyof RunInput, string>[];
66
- validateInputOrThrow(input: Array<unknown>, variableName: Extract<keyof RunInput, string>): input is BaseMessage[];
67
- formatMessages(values: TypedPromptInputValues<RunInput>): Promise<BaseMessage[]>;
68
- }
69
- /**
70
- * Interface for the fields of a MessageStringPromptTemplate.
71
- */
72
- export interface MessageStringPromptTemplateFields<T extends InputValues = any> {
73
- prompt: BaseStringPromptTemplate<T, string>;
74
- }
75
- /**
76
- * Abstract class that serves as a base for creating message string prompt
77
- * templates. It extends the BaseMessagePromptTemplate.
78
- */
79
- export declare abstract class BaseMessageStringPromptTemplate<RunInput extends InputValues = any> extends BaseMessagePromptTemplate<RunInput> {
80
- prompt: BaseStringPromptTemplate<InputValues<Extract<keyof RunInput, string>>, string>;
81
- constructor(prompt: BaseStringPromptTemplate<InputValues<Extract<keyof RunInput, string>>>);
82
- constructor(fields: MessageStringPromptTemplateFields<InputValues<Extract<keyof RunInput, string>>>);
83
- get inputVariables(): Extract<Extract<keyof RunInput, string>, string>[];
84
- abstract format(values: TypedPromptInputValues<RunInput>): Promise<BaseMessage>;
85
- formatMessages(values: TypedPromptInputValues<RunInput>): Promise<BaseMessage[]>;
86
- }
87
- /**
88
- * Abstract class that serves as a base for creating chat prompt
89
- * templates. It extends the BasePromptTemplate.
90
- */
91
- export declare abstract class BaseChatPromptTemplate<RunInput extends InputValues = any, PartialVariableName extends string = any> extends BasePromptTemplate<RunInput, ChatPromptValue, PartialVariableName> {
92
- constructor(input: BasePromptTemplateInput<RunInput, PartialVariableName>);
93
- abstract formatMessages(values: TypedPromptInputValues<RunInput>): Promise<BaseMessage[]>;
94
- format(values: TypedPromptInputValues<RunInput>): Promise<string>;
95
- formatPromptValue(values: TypedPromptInputValues<RunInput>): Promise<ChatPromptValue>;
96
- }
97
- /**
98
- * Interface for the fields of a ChatMessagePromptTemplate.
99
- */
100
- export interface ChatMessagePromptTemplateFields<T extends InputValues = any> extends MessageStringPromptTemplateFields<T> {
101
- role: string;
102
- }
103
- /**
104
- * Class that represents a chat message prompt template. It extends the
105
- * BaseMessageStringPromptTemplate.
106
- */
107
- export declare class ChatMessagePromptTemplate<RunInput extends InputValues = any> extends BaseMessageStringPromptTemplate<RunInput> {
108
- static lc_name(): string;
109
- role: string;
110
- constructor(prompt: BaseStringPromptTemplate<InputValues<Extract<keyof RunInput, string>>>, role: string);
111
- constructor(fields: ChatMessagePromptTemplateFields<InputValues<Extract<keyof RunInput, string>>>);
112
- format(values: RunInput): Promise<BaseMessage>;
113
- static fromTemplate(template: string, role: string): ChatMessagePromptTemplate<any>;
114
- }
115
- /**
116
- * Class that represents a human message prompt template. It extends the
117
- * BaseMessageStringPromptTemplate.
118
- * @example
119
- * ```typescript
120
- * const message = HumanMessagePromptTemplate.fromTemplate("{text}");
121
- * const formatted = await message.format({ text: "Hello world!" });
122
- *
123
- * const chatPrompt = ChatPromptTemplate.fromMessages([message]);
124
- * const formattedChatPrompt = await chatPrompt.invoke({
125
- * text: "Hello world!",
126
- * });
127
- * ```
128
- */
129
- export declare class HumanMessagePromptTemplate<RunInput extends InputValues = any> extends BaseMessageStringPromptTemplate<RunInput> {
130
- static lc_name(): string;
131
- format(values: RunInput): Promise<BaseMessage>;
132
- static fromTemplate(template: string): HumanMessagePromptTemplate<any>;
133
- }
134
- /**
135
- * Class that represents an AI message prompt template. It extends the
136
- * BaseMessageStringPromptTemplate.
137
- */
138
- export declare class AIMessagePromptTemplate<RunInput extends InputValues = any> extends BaseMessageStringPromptTemplate<RunInput> {
139
- static lc_name(): string;
140
- format(values: RunInput): Promise<BaseMessage>;
141
- static fromTemplate(template: string): AIMessagePromptTemplate<any>;
142
- }
143
- /**
144
- * Class that represents a system message prompt template. It extends the
145
- * BaseMessageStringPromptTemplate.
146
- * @example
147
- * ```typescript
148
- * const message = SystemMessagePromptTemplate.fromTemplate("{text}");
149
- * const formatted = await message.format({ text: "Hello world!" });
150
- *
151
- * const chatPrompt = ChatPromptTemplate.fromMessages([message]);
152
- * const formattedChatPrompt = await chatPrompt.invoke({
153
- * text: "Hello world!",
154
- * });
155
- * ```
156
- */
157
- export declare class SystemMessagePromptTemplate<RunInput extends InputValues = any> extends BaseMessageStringPromptTemplate<RunInput> {
158
- static lc_name(): string;
159
- format(values: RunInput): Promise<BaseMessage>;
160
- static fromTemplate(template: string): SystemMessagePromptTemplate<any>;
161
- }
162
- /**
163
- * Interface for the input of a ChatPromptTemplate.
164
- */
165
- export interface ChatPromptTemplateInput<RunInput extends InputValues = any, PartialVariableName extends string = any> extends BasePromptTemplateInput<RunInput, PartialVariableName> {
166
- /**
167
- * The prompt messages
168
- */
169
- promptMessages: Array<BaseMessagePromptTemplate | BaseMessage>;
170
- /**
171
- * Whether to try validating the template on initialization
172
- *
173
- * @defaultValue `true`
174
- */
175
- validateTemplate?: boolean;
176
- }
177
- export type BaseMessagePromptTemplateLike = BaseMessagePromptTemplate | BaseMessageLike;
178
- /**
179
- * Class that represents a chat prompt. It extends the
180
- * BaseChatPromptTemplate and uses an array of BaseMessagePromptTemplate
181
- * instances to format a series of messages for a conversation.
182
- * @example
183
- * ```typescript
184
- * const message = SystemMessagePromptTemplate.fromTemplate("{text}");
185
- * const chatPrompt = ChatPromptTemplate.fromMessages([
186
- * ["ai", "You are a helpful assistant."],
187
- * message,
188
- * ]);
189
- * const formattedChatPrompt = await chatPrompt.invoke({
190
- * text: "Hello world!",
191
- * });
192
- * ```
193
- */
194
- export declare class ChatPromptTemplate<RunInput extends InputValues = any, PartialVariableName extends string = any> extends BaseChatPromptTemplate<RunInput, PartialVariableName> implements ChatPromptTemplateInput<RunInput, PartialVariableName> {
195
- static lc_name(): string;
196
- get lc_aliases(): {
197
- promptMessages: string;
198
- };
199
- promptMessages: Array<BaseMessagePromptTemplate | BaseMessage>;
200
- validateTemplate: boolean;
201
- constructor(input: ChatPromptTemplateInput<RunInput, PartialVariableName>);
202
- _getPromptType(): "chat";
203
- private _parseImagePrompts;
204
- formatMessages(values: TypedPromptInputValues<RunInput>): Promise<BaseMessage[]>;
205
- partial<NewPartialVariableName extends string>(values: PartialValues<NewPartialVariableName>): Promise<ChatPromptTemplate<InputValues<Exclude<Extract<keyof RunInput, string>, NewPartialVariableName>>, any>>;
206
- /**
207
- * Load prompt template from a template f-string
208
- */
209
- static fromTemplate<RunInput extends InputValues = Symbol, T extends string = string>(template: T): ChatPromptTemplate<RunInput extends Symbol ? ParamsFromFString<T> : RunInput, any>;
210
- /**
211
- * Create a chat model-specific prompt from individual chat messages
212
- * or message-like tuples.
213
- * @param promptMessages Messages to be passed to the chat model
214
- * @returns A new ChatPromptTemplate
215
- */
216
- static fromMessages<RunInput extends InputValues = any>(promptMessages: (ChatPromptTemplate<InputValues, string> | BaseMessagePromptTemplateLike)[]): ChatPromptTemplate<RunInput>;
217
- /** @deprecated Renamed to .fromMessages */
218
- static fromPromptMessages<RunInput extends InputValues = any>(promptMessages: (ChatPromptTemplate<InputValues, string> | BaseMessagePromptTemplateLike)[]): ChatPromptTemplate<RunInput>;
219
- }
1
+ export * from "langchain-core/prompts/chat";
@@ -1,466 +1 @@
1
- // Default generic "any" values are for backwards compatibility.
2
- // Replace with "string" when we are comfortable with a breaking change.
3
- import { getBufferString } from "../memory/base.js";
4
- import { AIMessage, BaseMessage, BasePromptValue, ChatMessage, HumanMessage, SystemMessage, coerceMessageLikeToMessage, isBaseMessage, } from "../schema/index.js";
5
- import { Runnable } from "../schema/runnable/index.js";
6
- import { BasePromptTemplate, } from "./base.js";
7
- import { PromptTemplate } from "./prompt.js";
8
- /**
9
- * Abstract class that serves as a base for creating message prompt
10
- * templates. It defines how to format messages for different roles in a
11
- * conversation.
12
- */
13
- export class BaseMessagePromptTemplate extends Runnable {
14
- constructor() {
15
- super(...arguments);
16
- Object.defineProperty(this, "lc_namespace", {
17
- enumerable: true,
18
- configurable: true,
19
- writable: true,
20
- value: ["langchain", "prompts", "chat"]
21
- });
22
- Object.defineProperty(this, "lc_serializable", {
23
- enumerable: true,
24
- configurable: true,
25
- writable: true,
26
- value: true
27
- });
28
- }
29
- /**
30
- * Calls the formatMessages method with the provided input and options.
31
- * @param input Input for the formatMessages method
32
- * @param options Optional BaseCallbackConfig
33
- * @returns Formatted output messages
34
- */
35
- async invoke(input, options) {
36
- return this._callWithConfig((input) => this.formatMessages(input), input, { ...options, runType: "prompt" });
37
- }
38
- }
39
- /**
40
- * Class that represents a chat prompt value. It extends the
41
- * BasePromptValue and includes an array of BaseMessage instances.
42
- */
43
- export class ChatPromptValue extends BasePromptValue {
44
- static lc_name() {
45
- return "ChatPromptValue";
46
- }
47
- constructor(fields) {
48
- if (Array.isArray(fields)) {
49
- // eslint-disable-next-line no-param-reassign
50
- fields = { messages: fields };
51
- }
52
- super(fields);
53
- Object.defineProperty(this, "lc_namespace", {
54
- enumerable: true,
55
- configurable: true,
56
- writable: true,
57
- value: ["langchain", "prompts", "chat"]
58
- });
59
- Object.defineProperty(this, "lc_serializable", {
60
- enumerable: true,
61
- configurable: true,
62
- writable: true,
63
- value: true
64
- });
65
- Object.defineProperty(this, "messages", {
66
- enumerable: true,
67
- configurable: true,
68
- writable: true,
69
- value: void 0
70
- });
71
- this.messages = fields.messages;
72
- }
73
- toString() {
74
- return getBufferString(this.messages);
75
- }
76
- toChatMessages() {
77
- return this.messages;
78
- }
79
- }
80
- /**
81
- * Class that represents a placeholder for messages in a chat prompt. It
82
- * extends the BaseMessagePromptTemplate.
83
- */
84
- export class MessagesPlaceholder extends BaseMessagePromptTemplate {
85
- static lc_name() {
86
- return "MessagesPlaceholder";
87
- }
88
- constructor(fields) {
89
- if (typeof fields === "string") {
90
- // eslint-disable-next-line no-param-reassign
91
- fields = { variableName: fields };
92
- }
93
- super(fields);
94
- Object.defineProperty(this, "variableName", {
95
- enumerable: true,
96
- configurable: true,
97
- writable: true,
98
- value: void 0
99
- });
100
- this.variableName = fields.variableName;
101
- }
102
- get inputVariables() {
103
- return [this.variableName];
104
- }
105
- validateInputOrThrow(input, variableName) {
106
- let isInputBaseMessage = false;
107
- if (Array.isArray(input)) {
108
- isInputBaseMessage = input.every((message) => isBaseMessage(message));
109
- }
110
- else {
111
- isInputBaseMessage = isBaseMessage(input);
112
- }
113
- if (!isInputBaseMessage) {
114
- const readableInput = typeof input === "string" ? input : JSON.stringify(input, null, 2);
115
- const error = new Error(`Error: Field "${variableName}" in prompt uses a MessagesPlaceholder, which expects an array of BaseMessages as an input value. Received: ${readableInput}`);
116
- error.name = "InputFormatError";
117
- throw error;
118
- }
119
- return true;
120
- }
121
- async formatMessages(values) {
122
- this.validateInputOrThrow(values[this.variableName], this.variableName);
123
- return values[this.variableName];
124
- }
125
- }
126
- /**
127
- * Abstract class that serves as a base for creating message string prompt
128
- * templates. It extends the BaseMessagePromptTemplate.
129
- */
130
- export class BaseMessageStringPromptTemplate extends BaseMessagePromptTemplate {
131
- constructor(fields) {
132
- if (!("prompt" in fields)) {
133
- // eslint-disable-next-line no-param-reassign
134
- fields = { prompt: fields };
135
- }
136
- super(fields);
137
- Object.defineProperty(this, "prompt", {
138
- enumerable: true,
139
- configurable: true,
140
- writable: true,
141
- value: void 0
142
- });
143
- this.prompt = fields.prompt;
144
- }
145
- get inputVariables() {
146
- return this.prompt.inputVariables;
147
- }
148
- async formatMessages(values) {
149
- return [await this.format(values)];
150
- }
151
- }
152
- /**
153
- * Abstract class that serves as a base for creating chat prompt
154
- * templates. It extends the BasePromptTemplate.
155
- */
156
- export class BaseChatPromptTemplate extends BasePromptTemplate {
157
- constructor(input) {
158
- super(input);
159
- }
160
- async format(values) {
161
- return (await this.formatPromptValue(values)).toString();
162
- }
163
- async formatPromptValue(values) {
164
- const resultMessages = await this.formatMessages(values);
165
- return new ChatPromptValue(resultMessages);
166
- }
167
- }
168
- /**
169
- * Class that represents a chat message prompt template. It extends the
170
- * BaseMessageStringPromptTemplate.
171
- */
172
- export class ChatMessagePromptTemplate extends BaseMessageStringPromptTemplate {
173
- static lc_name() {
174
- return "ChatMessagePromptTemplate";
175
- }
176
- constructor(fields, role) {
177
- if (!("prompt" in fields)) {
178
- // eslint-disable-next-line no-param-reassign, @typescript-eslint/no-non-null-assertion
179
- fields = { prompt: fields, role: role };
180
- }
181
- super(fields);
182
- Object.defineProperty(this, "role", {
183
- enumerable: true,
184
- configurable: true,
185
- writable: true,
186
- value: void 0
187
- });
188
- this.role = fields.role;
189
- }
190
- async format(values) {
191
- return new ChatMessage(await this.prompt.format(values), this.role);
192
- }
193
- static fromTemplate(template, role) {
194
- return new this(PromptTemplate.fromTemplate(template), role);
195
- }
196
- }
197
- /**
198
- * Class that represents a human message prompt template. It extends the
199
- * BaseMessageStringPromptTemplate.
200
- * @example
201
- * ```typescript
202
- * const message = HumanMessagePromptTemplate.fromTemplate("{text}");
203
- * const formatted = await message.format({ text: "Hello world!" });
204
- *
205
- * const chatPrompt = ChatPromptTemplate.fromMessages([message]);
206
- * const formattedChatPrompt = await chatPrompt.invoke({
207
- * text: "Hello world!",
208
- * });
209
- * ```
210
- */
211
- export class HumanMessagePromptTemplate extends BaseMessageStringPromptTemplate {
212
- static lc_name() {
213
- return "HumanMessagePromptTemplate";
214
- }
215
- async format(values) {
216
- return new HumanMessage(await this.prompt.format(values));
217
- }
218
- static fromTemplate(template) {
219
- return new this(PromptTemplate.fromTemplate(template));
220
- }
221
- }
222
- /**
223
- * Class that represents an AI message prompt template. It extends the
224
- * BaseMessageStringPromptTemplate.
225
- */
226
- export class AIMessagePromptTemplate extends BaseMessageStringPromptTemplate {
227
- static lc_name() {
228
- return "AIMessagePromptTemplate";
229
- }
230
- async format(values) {
231
- return new AIMessage(await this.prompt.format(values));
232
- }
233
- static fromTemplate(template) {
234
- return new this(PromptTemplate.fromTemplate(template));
235
- }
236
- }
237
- /**
238
- * Class that represents a system message prompt template. It extends the
239
- * BaseMessageStringPromptTemplate.
240
- * @example
241
- * ```typescript
242
- * const message = SystemMessagePromptTemplate.fromTemplate("{text}");
243
- * const formatted = await message.format({ text: "Hello world!" });
244
- *
245
- * const chatPrompt = ChatPromptTemplate.fromMessages([message]);
246
- * const formattedChatPrompt = await chatPrompt.invoke({
247
- * text: "Hello world!",
248
- * });
249
- * ```
250
- */
251
- export class SystemMessagePromptTemplate extends BaseMessageStringPromptTemplate {
252
- static lc_name() {
253
- return "SystemMessagePromptTemplate";
254
- }
255
- async format(values) {
256
- return new SystemMessage(await this.prompt.format(values));
257
- }
258
- static fromTemplate(template) {
259
- return new this(PromptTemplate.fromTemplate(template));
260
- }
261
- }
262
- function _isBaseMessagePromptTemplate(baseMessagePromptTemplateLike) {
263
- return (typeof baseMessagePromptTemplateLike
264
- .formatMessages === "function");
265
- }
266
- function _coerceMessagePromptTemplateLike(messagePromptTemplateLike) {
267
- if (_isBaseMessagePromptTemplate(messagePromptTemplateLike) ||
268
- isBaseMessage(messagePromptTemplateLike)) {
269
- return messagePromptTemplateLike;
270
- }
271
- const message = coerceMessageLikeToMessage(messagePromptTemplateLike);
272
- if (message._getType() === "human") {
273
- return HumanMessagePromptTemplate.fromTemplate(message.content);
274
- }
275
- else if (message._getType() === "ai") {
276
- return AIMessagePromptTemplate.fromTemplate(message.content);
277
- }
278
- else if (message._getType() === "system") {
279
- return SystemMessagePromptTemplate.fromTemplate(message.content);
280
- }
281
- else if (ChatMessage.isInstance(message)) {
282
- return ChatMessagePromptTemplate.fromTemplate(message.content, message.role);
283
- }
284
- else {
285
- throw new Error(`Could not coerce message prompt template from input. Received message type: "${message._getType()}".`);
286
- }
287
- }
288
- /**
289
- * Class that represents a chat prompt. It extends the
290
- * BaseChatPromptTemplate and uses an array of BaseMessagePromptTemplate
291
- * instances to format a series of messages for a conversation.
292
- * @example
293
- * ```typescript
294
- * const message = SystemMessagePromptTemplate.fromTemplate("{text}");
295
- * const chatPrompt = ChatPromptTemplate.fromMessages([
296
- * ["ai", "You are a helpful assistant."],
297
- * message,
298
- * ]);
299
- * const formattedChatPrompt = await chatPrompt.invoke({
300
- * text: "Hello world!",
301
- * });
302
- * ```
303
- */
304
- export class ChatPromptTemplate extends BaseChatPromptTemplate {
305
- static lc_name() {
306
- return "ChatPromptTemplate";
307
- }
308
- get lc_aliases() {
309
- return {
310
- promptMessages: "messages",
311
- };
312
- }
313
- constructor(input) {
314
- super(input);
315
- Object.defineProperty(this, "promptMessages", {
316
- enumerable: true,
317
- configurable: true,
318
- writable: true,
319
- value: void 0
320
- });
321
- Object.defineProperty(this, "validateTemplate", {
322
- enumerable: true,
323
- configurable: true,
324
- writable: true,
325
- value: true
326
- });
327
- Object.assign(this, input);
328
- if (this.validateTemplate) {
329
- const inputVariablesMessages = new Set();
330
- for (const promptMessage of this.promptMessages) {
331
- // eslint-disable-next-line no-instanceof/no-instanceof
332
- if (promptMessage instanceof BaseMessage)
333
- continue;
334
- for (const inputVariable of promptMessage.inputVariables) {
335
- inputVariablesMessages.add(inputVariable);
336
- }
337
- }
338
- const totalInputVariables = this.inputVariables;
339
- const inputVariablesInstance = new Set(this.partialVariables
340
- ? totalInputVariables.concat(Object.keys(this.partialVariables))
341
- : totalInputVariables);
342
- const difference = new Set([...inputVariablesInstance].filter((x) => !inputVariablesMessages.has(x)));
343
- if (difference.size > 0) {
344
- throw new Error(`Input variables \`${[
345
- ...difference,
346
- ]}\` are not used in any of the prompt messages.`);
347
- }
348
- const otherDifference = new Set([...inputVariablesMessages].filter((x) => !inputVariablesInstance.has(x)));
349
- if (otherDifference.size > 0) {
350
- throw new Error(`Input variables \`${[
351
- ...otherDifference,
352
- ]}\` are used in prompt messages but not in the prompt template.`);
353
- }
354
- }
355
- }
356
- _getPromptType() {
357
- return "chat";
358
- }
359
- async _parseImagePrompts(message, inputValues) {
360
- if (typeof message.content === "string") {
361
- return message;
362
- }
363
- const formattedMessageContent = await Promise.all(message.content.map(async (item) => {
364
- if (item.type !== "image_url" ||
365
- typeof item.image_url === "string" ||
366
- !item.image_url?.url) {
367
- return item;
368
- }
369
- const imageUrl = item.image_url.url;
370
- const promptTemplatePlaceholder = PromptTemplate.fromTemplate(imageUrl);
371
- const formattedUrl = await promptTemplatePlaceholder.format(inputValues);
372
- // eslint-disable-next-line no-param-reassign
373
- item.image_url.url = formattedUrl;
374
- return item;
375
- }));
376
- // eslint-disable-next-line no-param-reassign
377
- message.content = formattedMessageContent;
378
- return message;
379
- }
380
- async formatMessages(values) {
381
- const allValues = await this.mergePartialAndUserVariables(values);
382
- let resultMessages = [];
383
- for (const promptMessage of this.promptMessages) {
384
- // eslint-disable-next-line no-instanceof/no-instanceof
385
- if (promptMessage instanceof BaseMessage) {
386
- resultMessages.push(await this._parseImagePrompts(promptMessage, allValues));
387
- }
388
- else {
389
- const inputValues = promptMessage.inputVariables.reduce((acc, inputVariable) => {
390
- if (!(inputVariable in allValues)) {
391
- throw new Error(`Missing value for input variable \`${inputVariable.toString()}\``);
392
- }
393
- acc[inputVariable] = allValues[inputVariable];
394
- return acc;
395
- }, {});
396
- const message = await promptMessage.formatMessages(inputValues);
397
- resultMessages = resultMessages.concat(message);
398
- }
399
- }
400
- return resultMessages;
401
- }
402
- async partial(values) {
403
- // This is implemented in a way it doesn't require making
404
- // BaseMessagePromptTemplate aware of .partial()
405
- const newInputVariables = this.inputVariables.filter((iv) => !(iv in values));
406
- const newPartialVariables = {
407
- ...(this.partialVariables ?? {}),
408
- ...values,
409
- };
410
- const promptDict = {
411
- ...this,
412
- inputVariables: newInputVariables,
413
- partialVariables: newPartialVariables,
414
- };
415
- return new ChatPromptTemplate(promptDict);
416
- }
417
- /**
418
- * Load prompt template from a template f-string
419
- */
420
- static fromTemplate(template) {
421
- const prompt = PromptTemplate.fromTemplate(template);
422
- const humanTemplate = new HumanMessagePromptTemplate({ prompt });
423
- return this.fromMessages([humanTemplate]);
424
- }
425
- /**
426
- * Create a chat model-specific prompt from individual chat messages
427
- * or message-like tuples.
428
- * @param promptMessages Messages to be passed to the chat model
429
- * @returns A new ChatPromptTemplate
430
- */
431
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
432
- static fromMessages(promptMessages) {
433
- const flattenedMessages = promptMessages.reduce((acc, promptMessage) => acc.concat(
434
- // eslint-disable-next-line no-instanceof/no-instanceof
435
- promptMessage instanceof ChatPromptTemplate
436
- ? promptMessage.promptMessages
437
- : [_coerceMessagePromptTemplateLike(promptMessage)]), []);
438
- const flattenedPartialVariables = promptMessages.reduce((acc, promptMessage) =>
439
- // eslint-disable-next-line no-instanceof/no-instanceof
440
- promptMessage instanceof ChatPromptTemplate
441
- ? Object.assign(acc, promptMessage.partialVariables)
442
- : acc, Object.create(null));
443
- const inputVariables = new Set();
444
- for (const promptMessage of flattenedMessages) {
445
- // eslint-disable-next-line no-instanceof/no-instanceof
446
- if (promptMessage instanceof BaseMessage)
447
- continue;
448
- for (const inputVariable of promptMessage.inputVariables) {
449
- if (inputVariable in flattenedPartialVariables) {
450
- continue;
451
- }
452
- inputVariables.add(inputVariable);
453
- }
454
- }
455
- return new ChatPromptTemplate({
456
- inputVariables: [...inputVariables],
457
- promptMessages: flattenedMessages,
458
- partialVariables: flattenedPartialVariables,
459
- });
460
- }
461
- /** @deprecated Renamed to .fromMessages */
462
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
463
- static fromPromptMessages(promptMessages) {
464
- return this.fromMessages(promptMessages);
465
- }
466
- }
1
+ export * from "langchain-core/prompts/chat";