langchain 0.0.165 → 0.0.166

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 (57) hide show
  1. package/dist/cache/momento.cjs +7 -7
  2. package/dist/cache/momento.d.ts +1 -1
  3. package/dist/cache/momento.js +1 -1
  4. package/dist/document_loaders/fs/unstructured.cjs +40 -0
  5. package/dist/document_loaders/fs/unstructured.d.ts +27 -0
  6. package/dist/document_loaders/fs/unstructured.js +40 -0
  7. package/dist/experimental/chat_models/anthropic_functions.cjs +34 -2
  8. package/dist/experimental/chat_models/anthropic_functions.d.ts +15 -5
  9. package/dist/experimental/chat_models/anthropic_functions.js +34 -2
  10. package/dist/load/import_constants.cjs +1 -0
  11. package/dist/load/import_constants.js +1 -0
  12. package/dist/load/import_map.cjs +3 -1
  13. package/dist/load/import_map.d.ts +2 -0
  14. package/dist/load/import_map.js +2 -0
  15. package/dist/prompts/chat.cjs +19 -2
  16. package/dist/prompts/chat.d.ts +1 -0
  17. package/dist/prompts/chat.js +19 -2
  18. package/dist/retrievers/self_query/base.cjs +4 -1
  19. package/dist/retrievers/self_query/base.d.ts +3 -2
  20. package/dist/retrievers/self_query/base.js +4 -1
  21. package/dist/retrievers/self_query/index.cjs +2 -2
  22. package/dist/retrievers/self_query/index.d.ts +2 -0
  23. package/dist/retrievers/self_query/index.js +2 -2
  24. package/dist/runnables/remote.cjs +225 -0
  25. package/dist/runnables/remote.d.ts +28 -0
  26. package/dist/runnables/remote.js +221 -0
  27. package/dist/schema/index.cjs +1 -1
  28. package/dist/schema/index.d.ts +1 -1
  29. package/dist/schema/index.js +1 -1
  30. package/dist/schema/runnable/base.cjs +4 -4
  31. package/dist/schema/runnable/base.d.ts +9 -7
  32. package/dist/schema/runnable/base.js +4 -4
  33. package/dist/schema/runnable/remote.cjs +225 -0
  34. package/dist/schema/runnable/remote.d.ts +28 -0
  35. package/dist/schema/runnable/remote.js +221 -0
  36. package/dist/stores/message/momento.cjs +11 -11
  37. package/dist/stores/message/momento.d.ts +1 -1
  38. package/dist/stores/message/momento.js +1 -1
  39. package/dist/util/time.cjs +14 -0
  40. package/dist/util/time.d.ts +6 -0
  41. package/dist/util/time.js +10 -0
  42. package/dist/vectorstores/momento_vector_index.cjs +292 -0
  43. package/dist/vectorstores/momento_vector_index.d.ts +135 -0
  44. package/dist/vectorstores/momento_vector_index.js +265 -0
  45. package/dist/vectorstores/supabase.cjs +37 -8
  46. package/dist/vectorstores/supabase.d.ts +28 -1
  47. package/dist/vectorstores/supabase.js +37 -8
  48. package/package.json +36 -3
  49. package/runnables/remote.cjs +1 -0
  50. package/runnables/remote.d.ts +1 -0
  51. package/runnables/remote.js +1 -0
  52. package/util/time.cjs +1 -0
  53. package/util/time.d.ts +1 -0
  54. package/util/time.js +1 -0
  55. package/vectorstores/momento_vector_index.cjs +1 -0
  56. package/vectorstores/momento_vector_index.d.ts +1 -0
  57. package/vectorstores/momento_vector_index.js +1 -0
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MomentoCache = void 0;
4
4
  /* eslint-disable no-instanceof/no-instanceof */
5
- const sdk_1 = require("@gomomento/sdk");
5
+ const sdk_core_1 = require("@gomomento/sdk-core");
6
6
  const index_js_1 = require("../schema/index.cjs");
7
7
  const base_js_1 = require("./base.cjs");
8
8
  const momento_js_1 = require("../util/momento.cjs");
@@ -62,7 +62,7 @@ class MomentoCache extends index_js_1.BaseCache {
62
62
  */
63
63
  validateTtlSeconds(ttlSeconds) {
64
64
  if (ttlSeconds !== undefined && ttlSeconds <= 0) {
65
- throw new sdk_1.InvalidArgumentError("ttlSeconds must be positive.");
65
+ throw new sdk_core_1.InvalidArgumentError("ttlSeconds must be positive.");
66
66
  }
67
67
  }
68
68
  /**
@@ -74,7 +74,7 @@ class MomentoCache extends index_js_1.BaseCache {
74
74
  async lookup(prompt, llmKey) {
75
75
  const key = (0, base_js_1.getCacheKey)(prompt, llmKey);
76
76
  const getResponse = await this.client.get(this.cacheName, key);
77
- if (getResponse instanceof sdk_1.CacheGet.Hit) {
77
+ if (getResponse instanceof sdk_core_1.CacheGet.Hit) {
78
78
  const value = getResponse.valueString();
79
79
  const parsedValue = JSON.parse(value);
80
80
  if (!Array.isArray(parsedValue)) {
@@ -82,10 +82,10 @@ class MomentoCache extends index_js_1.BaseCache {
82
82
  }
83
83
  return JSON.parse(value).map(base_js_1.deserializeStoredGeneration);
84
84
  }
85
- else if (getResponse instanceof sdk_1.CacheGet.Miss) {
85
+ else if (getResponse instanceof sdk_core_1.CacheGet.Miss) {
86
86
  return null;
87
87
  }
88
- else if (getResponse instanceof sdk_1.CacheGet.Error) {
88
+ else if (getResponse instanceof sdk_core_1.CacheGet.Error) {
89
89
  throw getResponse.innerException();
90
90
  }
91
91
  else {
@@ -104,10 +104,10 @@ class MomentoCache extends index_js_1.BaseCache {
104
104
  async update(prompt, llmKey, value) {
105
105
  const key = (0, base_js_1.getCacheKey)(prompt, llmKey);
106
106
  const setResponse = await this.client.set(this.cacheName, key, JSON.stringify(value.map(base_js_1.serializeGeneration)), { ttl: this.ttlSeconds });
107
- if (setResponse instanceof sdk_1.CacheSet.Success) {
107
+ if (setResponse instanceof sdk_core_1.CacheSet.Success) {
108
108
  // pass
109
109
  }
110
- else if (setResponse instanceof sdk_1.CacheSet.Error) {
110
+ else if (setResponse instanceof sdk_core_1.CacheSet.Error) {
111
111
  throw setResponse.innerException();
112
112
  }
113
113
  else {
@@ -1,4 +1,4 @@
1
- import { ICacheClient } from "@gomomento/sdk";
1
+ import { ICacheClient } from "@gomomento/sdk-core";
2
2
  import { BaseCache, Generation } from "../schema/index.js";
3
3
  /**
4
4
  * The settings to instantiate the Momento standard cache.
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable no-instanceof/no-instanceof */
2
- import { CacheGet, CacheSet, InvalidArgumentError, } from "@gomomento/sdk";
2
+ import { CacheGet, CacheSet, InvalidArgumentError, } from "@gomomento/sdk-core";
3
3
  import { BaseCache } from "../schema/index.js";
4
4
  import { deserializeStoredGeneration, getCacheKey, serializeGeneration, } from "./base.js";
5
5
  import { ensureCacheExists } from "../util/momento.js";
@@ -92,6 +92,30 @@ class UnstructuredLoader extends base_js_1.BaseDocumentLoader {
92
92
  writable: true,
93
93
  value: void 0
94
94
  });
95
+ Object.defineProperty(this, "skipInferTableTypes", {
96
+ enumerable: true,
97
+ configurable: true,
98
+ writable: true,
99
+ value: void 0
100
+ });
101
+ Object.defineProperty(this, "hiResModelName", {
102
+ enumerable: true,
103
+ configurable: true,
104
+ writable: true,
105
+ value: void 0
106
+ });
107
+ Object.defineProperty(this, "includePageBreaks", {
108
+ enumerable: true,
109
+ configurable: true,
110
+ writable: true,
111
+ value: void 0
112
+ });
113
+ Object.defineProperty(this, "chunkingStrategy", {
114
+ enumerable: true,
115
+ configurable: true,
116
+ writable: true,
117
+ value: void 0
118
+ });
95
119
  // Temporary shim to avoid breaking existing users
96
120
  // Remove when API keys are enforced by Unstructured and existing code will break anyway
97
121
  const isLegacySyntax = typeof optionsOrLegacyFilePath === "string";
@@ -110,6 +134,10 @@ class UnstructuredLoader extends base_js_1.BaseDocumentLoader {
110
134
  this.coordinates = options.coordinates;
111
135
  this.pdfInferTableStructure = options.pdfInferTableStructure;
112
136
  this.xmlKeepTags = options.xmlKeepTags;
137
+ this.skipInferTableTypes = options.skipInferTableTypes;
138
+ this.hiResModelName = options.hiResModelName;
139
+ this.includePageBreaks = options.includePageBreaks;
140
+ this.chunkingStrategy = options.chunkingStrategy;
113
141
  }
114
142
  }
115
143
  async _partition() {
@@ -137,6 +165,18 @@ class UnstructuredLoader extends base_js_1.BaseDocumentLoader {
137
165
  if (this.xmlKeepTags === true) {
138
166
  formData.append("xml_keep_tags", "true");
139
167
  }
168
+ if (this.skipInferTableTypes) {
169
+ formData.append("skip_infer_table_types", JSON.stringify(this.skipInferTableTypes));
170
+ }
171
+ if (this.hiResModelName) {
172
+ formData.append("hi_res_model_name", this.hiResModelName);
173
+ }
174
+ if (this.includePageBreaks) {
175
+ formData.append("include_page_breaks", "true");
176
+ }
177
+ if (this.chunkingStrategy) {
178
+ formData.append("chunking_strategy", this.chunkingStrategy);
179
+ }
140
180
  const headers = {
141
181
  "UNSTRUCTURED-API-KEY": this.apiKey ?? "",
142
182
  };
@@ -21,6 +21,25 @@ type Element = {
21
21
  * be one of "hi_res", "fast", "ocr_only", or "auto".
22
22
  */
23
23
  export type UnstructuredLoaderStrategy = "hi_res" | "fast" | "ocr_only" | "auto";
24
+ /**
25
+ * Represents the available hi-res models for the UnstructuredLoader. It can
26
+ * be one of "chipper".
27
+ */
28
+ export type HiResModelName = "chipper";
29
+ /**
30
+ * To enable or disable table extraction for file types other than PDF, set
31
+ * the skipInferTableTypes property in the UnstructuredLoaderOptions object.
32
+ * The skipInferTableTypes property is an array of file types for which table
33
+ * extraction is disabled. For example, to disable table extraction for .docx
34
+ * and .doc files, set the skipInferTableTypes property to ["docx", "doc"].
35
+ * You can also disable table extraction for all file types other than PDF by
36
+ * setting the skipInferTableTypes property to [].
37
+ */
38
+ export type SkipInferTableTypes = "txt" | "text" | "pdf" | "docx" | "doc" | "jpg" | "jpeg" | "eml" | "html" | "htm" | "md" | "pptx" | "ppt" | "msg" | "rtf" | "xlsx" | "xls" | "odt" | "epub";
39
+ /**
40
+ * Set the chunking_strategy to chunk text into larger or smaller elements. Defaults to None with optional arg of by_title
41
+ */
42
+ type ChunkingStrategy = "None" | "by_title";
24
43
  /**
25
44
  * Represents a string value with autocomplete suggestions. It is used for
26
45
  * the `strategy` property in the UnstructuredLoaderOptions.
@@ -35,6 +54,10 @@ export type UnstructuredLoaderOptions = {
35
54
  coordinates?: boolean;
36
55
  pdfInferTableStructure?: boolean;
37
56
  xmlKeepTags?: boolean;
57
+ skipInferTableTypes?: Array<StringWithAutocomplete<SkipInferTableTypes>>;
58
+ hiResModelName?: StringWithAutocomplete<HiResModelName>;
59
+ includePageBreaks?: boolean;
60
+ chunkingStrategy?: StringWithAutocomplete<ChunkingStrategy>;
38
61
  };
39
62
  type UnstructuredDirectoryLoaderOptions = UnstructuredLoaderOptions & {
40
63
  recursive?: boolean;
@@ -58,6 +81,10 @@ export declare class UnstructuredLoader extends BaseDocumentLoader {
58
81
  private coordinates?;
59
82
  private pdfInferTableStructure?;
60
83
  private xmlKeepTags?;
84
+ private skipInferTableTypes?;
85
+ private hiResModelName?;
86
+ private includePageBreaks?;
87
+ private chunkingStrategy?;
61
88
  constructor(filePathOrLegacyApiUrl: string, optionsOrLegacyFilePath?: UnstructuredLoaderOptions | string);
62
89
  _partition(): Promise<Element[]>;
63
90
  load(): Promise<Document[]>;
@@ -88,6 +88,30 @@ export class UnstructuredLoader extends BaseDocumentLoader {
88
88
  writable: true,
89
89
  value: void 0
90
90
  });
91
+ Object.defineProperty(this, "skipInferTableTypes", {
92
+ enumerable: true,
93
+ configurable: true,
94
+ writable: true,
95
+ value: void 0
96
+ });
97
+ Object.defineProperty(this, "hiResModelName", {
98
+ enumerable: true,
99
+ configurable: true,
100
+ writable: true,
101
+ value: void 0
102
+ });
103
+ Object.defineProperty(this, "includePageBreaks", {
104
+ enumerable: true,
105
+ configurable: true,
106
+ writable: true,
107
+ value: void 0
108
+ });
109
+ Object.defineProperty(this, "chunkingStrategy", {
110
+ enumerable: true,
111
+ configurable: true,
112
+ writable: true,
113
+ value: void 0
114
+ });
91
115
  // Temporary shim to avoid breaking existing users
92
116
  // Remove when API keys are enforced by Unstructured and existing code will break anyway
93
117
  const isLegacySyntax = typeof optionsOrLegacyFilePath === "string";
@@ -106,6 +130,10 @@ export class UnstructuredLoader extends BaseDocumentLoader {
106
130
  this.coordinates = options.coordinates;
107
131
  this.pdfInferTableStructure = options.pdfInferTableStructure;
108
132
  this.xmlKeepTags = options.xmlKeepTags;
133
+ this.skipInferTableTypes = options.skipInferTableTypes;
134
+ this.hiResModelName = options.hiResModelName;
135
+ this.includePageBreaks = options.includePageBreaks;
136
+ this.chunkingStrategy = options.chunkingStrategy;
109
137
  }
110
138
  }
111
139
  async _partition() {
@@ -133,6 +161,18 @@ export class UnstructuredLoader extends BaseDocumentLoader {
133
161
  if (this.xmlKeepTags === true) {
134
162
  formData.append("xml_keep_tags", "true");
135
163
  }
164
+ if (this.skipInferTableTypes) {
165
+ formData.append("skip_infer_table_types", JSON.stringify(this.skipInferTableTypes));
166
+ }
167
+ if (this.hiResModelName) {
168
+ formData.append("hi_res_model_name", this.hiResModelName);
169
+ }
170
+ if (this.includePageBreaks) {
171
+ formData.append("include_page_breaks", "true");
172
+ }
173
+ if (this.chunkingStrategy) {
174
+ formData.append("chunking_strategy", this.chunkingStrategy);
175
+ }
136
176
  const headers = {
137
177
  "UNSTRUCTURED-API-KEY": this.apiKey ?? "",
138
178
  };
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AnthropicFunctions = void 0;
4
4
  const fast_xml_parser_1 = require("fast-xml-parser");
5
+ const base_js_1 = require("../../chat_models/base.cjs");
5
6
  const index_js_1 = require("../../schema/index.cjs");
6
7
  const anthropic_js_1 = require("../../chat_models/anthropic.cjs");
7
8
  const prompt_js_1 = require("../../prompts/prompt.cjs");
@@ -26,12 +27,43 @@ for the weather in SF you would respond:
26
27
 
27
28
  <tool>search</tool><tool_input><query>weather in SF</query></tool_input>
28
29
  <observation>64 degrees</observation>`);
29
- class AnthropicFunctions extends anthropic_js_1.ChatAnthropic {
30
+ class AnthropicFunctions extends base_js_1.BaseChatModel {
30
31
  static lc_name() {
31
32
  return "AnthropicFunctions";
32
33
  }
33
34
  constructor(fields) {
34
35
  super(fields ?? {});
36
+ Object.defineProperty(this, "llm", {
37
+ enumerable: true,
38
+ configurable: true,
39
+ writable: true,
40
+ value: void 0
41
+ });
42
+ Object.defineProperty(this, "stopSequences", {
43
+ enumerable: true,
44
+ configurable: true,
45
+ writable: true,
46
+ value: void 0
47
+ });
48
+ Object.defineProperty(this, "lc_namespace", {
49
+ enumerable: true,
50
+ configurable: true,
51
+ writable: true,
52
+ value: ["langchain", "experimental", "chat_models"]
53
+ });
54
+ this.llm = fields?.llm ?? new anthropic_js_1.ChatAnthropic(fields);
55
+ this.stopSequences =
56
+ fields?.stopSequences ?? this.llm.stopSequences;
57
+ }
58
+ invocationParams() {
59
+ return this.llm.invocationParams();
60
+ }
61
+ /** @ignore */
62
+ _identifyingParams() {
63
+ return this.llm._identifyingParams();
64
+ }
65
+ async *_streamResponseChunks(messages, options, runManager) {
66
+ yield* this.llm._streamResponseChunks(messages, options, runManager);
35
67
  }
36
68
  async _generate(messages, options, runManager) {
37
69
  let promptMessages = messages;
@@ -78,7 +110,7 @@ class AnthropicFunctions extends anthropic_js_1.ChatAnthropic {
78
110
  else if (options.function_call !== undefined) {
79
111
  throw new Error(`If "function_call" is provided, "functions" must also be.`);
80
112
  }
81
- const chatResult = await super._generate(promptMessages, options, runManager);
113
+ const chatResult = await this.llm._generate(promptMessages, options, runManager);
82
114
  const chatGenerationContent = chatResult.generations[0].message.content;
83
115
  if (forced) {
84
116
  const parser = new fast_xml_parser_1.XMLParser();
@@ -1,15 +1,25 @@
1
- import { BaseChatModelParams } from "../../chat_models/base.js";
1
+ import { BaseChatModel, BaseChatModelParams } from "../../chat_models/base.js";
2
2
  import { CallbackManagerForLLMRun } from "../../callbacks/manager.js";
3
- import { BaseMessage, ChatResult } from "../../schema/index.js";
4
- import { ChatAnthropic, type AnthropicInput } from "../../chat_models/anthropic.js";
3
+ import { BaseMessage, ChatGenerationChunk, ChatResult } from "../../schema/index.js";
4
+ import { type AnthropicInput } from "../../chat_models/anthropic.js";
5
5
  import { BaseFunctionCallOptions } from "../../base_language/index.js";
6
6
  import { StructuredTool } from "../../tools/base.js";
7
7
  export interface ChatAnthropicFunctionsCallOptions extends BaseFunctionCallOptions {
8
8
  tools?: StructuredTool[];
9
9
  }
10
- export declare class AnthropicFunctions extends ChatAnthropic<ChatAnthropicFunctionsCallOptions> {
10
+ export type AnthropicFunctionsInput = Partial<AnthropicInput> & BaseChatModelParams & {
11
+ llm?: BaseChatModel;
12
+ };
13
+ export declare class AnthropicFunctions extends BaseChatModel<ChatAnthropicFunctionsCallOptions> {
14
+ llm: BaseChatModel;
15
+ stopSequences?: string[];
16
+ lc_namespace: string[];
11
17
  static lc_name(): string;
12
- constructor(fields?: Partial<AnthropicInput> & BaseChatModelParams);
18
+ constructor(fields?: AnthropicFunctionsInput);
19
+ invocationParams(): any;
20
+ /** @ignore */
21
+ _identifyingParams(): Record<string, any>;
22
+ _streamResponseChunks(messages: BaseMessage[], options: this["ParsedCallOptions"], runManager?: CallbackManagerForLLMRun): AsyncGenerator<ChatGenerationChunk>;
13
23
  _generate(messages: BaseMessage[], options: this["ParsedCallOptions"], runManager?: CallbackManagerForLLMRun | undefined): Promise<ChatResult>;
14
24
  _llmType(): string;
15
25
  /** @ignore */
@@ -1,4 +1,5 @@
1
1
  import { XMLParser } from "fast-xml-parser";
2
+ import { BaseChatModel } from "../../chat_models/base.js";
2
3
  import { AIMessage, SystemMessage, } from "../../schema/index.js";
3
4
  import { ChatAnthropic, DEFAULT_STOP_SEQUENCES, } from "../../chat_models/anthropic.js";
4
5
  import { PromptTemplate } from "../../prompts/prompt.js";
@@ -23,12 +24,43 @@ for the weather in SF you would respond:
23
24
 
24
25
  <tool>search</tool><tool_input><query>weather in SF</query></tool_input>
25
26
  <observation>64 degrees</observation>`);
26
- export class AnthropicFunctions extends ChatAnthropic {
27
+ export class AnthropicFunctions extends BaseChatModel {
27
28
  static lc_name() {
28
29
  return "AnthropicFunctions";
29
30
  }
30
31
  constructor(fields) {
31
32
  super(fields ?? {});
33
+ Object.defineProperty(this, "llm", {
34
+ enumerable: true,
35
+ configurable: true,
36
+ writable: true,
37
+ value: void 0
38
+ });
39
+ Object.defineProperty(this, "stopSequences", {
40
+ enumerable: true,
41
+ configurable: true,
42
+ writable: true,
43
+ value: void 0
44
+ });
45
+ Object.defineProperty(this, "lc_namespace", {
46
+ enumerable: true,
47
+ configurable: true,
48
+ writable: true,
49
+ value: ["langchain", "experimental", "chat_models"]
50
+ });
51
+ this.llm = fields?.llm ?? new ChatAnthropic(fields);
52
+ this.stopSequences =
53
+ fields?.stopSequences ?? this.llm.stopSequences;
54
+ }
55
+ invocationParams() {
56
+ return this.llm.invocationParams();
57
+ }
58
+ /** @ignore */
59
+ _identifyingParams() {
60
+ return this.llm._identifyingParams();
61
+ }
62
+ async *_streamResponseChunks(messages, options, runManager) {
63
+ yield* this.llm._streamResponseChunks(messages, options, runManager);
32
64
  }
33
65
  async _generate(messages, options, runManager) {
34
66
  let promptMessages = messages;
@@ -75,7 +107,7 @@ export class AnthropicFunctions extends ChatAnthropic {
75
107
  else if (options.function_call !== undefined) {
76
108
  throw new Error(`If "function_call" is provided, "functions" must also be.`);
77
109
  }
78
- const chatResult = await super._generate(promptMessages, options, runManager);
110
+ const chatResult = await this.llm._generate(promptMessages, options, runManager);
79
111
  const chatGenerationContent = chatResult.generations[0].message.content;
80
112
  if (forced) {
81
113
  const parser = new XMLParser();
@@ -49,6 +49,7 @@ exports.optionalImportEntrypoints = [
49
49
  "langchain/vectorstores/faiss",
50
50
  "langchain/vectorstores/weaviate",
51
51
  "langchain/vectorstores/lancedb",
52
+ "langchain/vectorstores/momento_vector_index",
52
53
  "langchain/vectorstores/mongo",
53
54
  "langchain/vectorstores/mongodb_atlas",
54
55
  "langchain/vectorstores/pinecone",
@@ -46,6 +46,7 @@ export const optionalImportEntrypoints = [
46
46
  "langchain/vectorstores/faiss",
47
47
  "langchain/vectorstores/weaviate",
48
48
  "langchain/vectorstores/lancedb",
49
+ "langchain/vectorstores/momento_vector_index",
49
50
  "langchain/vectorstores/mongo",
50
51
  "langchain/vectorstores/mongodb_atlas",
51
52
  "langchain/vectorstores/pinecone",
@@ -25,7 +25,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
25
25
  };
26
26
  Object.defineProperty(exports, "__esModule", { value: true });
27
27
  exports.retrievers__remote = exports.output_parsers = exports.callbacks = exports.schema__storage = exports.schema__runnable = exports.schema__retriever = exports.schema__query_constructor = exports.schema__output_parser = exports.schema__document = exports.schema = exports.chat_models__minimax = exports.chat_models__ollama = exports.chat_models__baiduwenxin = exports.chat_models__fireworks = exports.chat_models__anthropic = exports.chat_models__openai = exports.chat_models__base = exports.document_transformers__openai_functions = exports.document_loaders__web__sort_xyz_blockchain = exports.document_loaders__web__serpapi = exports.document_loaders__web__searchapi = exports.document_loaders__base = exports.document = exports.memory = exports.text_splitter = exports.vectorstores__xata = exports.vectorstores__vectara = exports.vectorstores__prisma = exports.vectorstores__memory = exports.vectorstores__base = exports.prompts = exports.llms__fireworks = exports.llms__ollama = exports.llms__aleph_alpha = exports.llms__ai21 = exports.llms__openai = exports.llms__base = exports.embeddings__minimax = exports.embeddings__openai = exports.embeddings__ollama = exports.embeddings__fake = exports.embeddings__cache_backed = exports.embeddings__base = exports.chains__openai_functions = exports.chains = exports.tools = exports.base_language = exports.agents__toolkits = exports.agents = exports.load__serializable = void 0;
28
- exports.evaluation = exports.experimental__chat_models__bittensor = exports.experimental__plan_and_execute = exports.experimental__generative_agents = exports.experimental__babyagi = exports.experimental__autogpt = exports.util__math = exports.storage__in_memory = exports.stores__message__in_memory = exports.stores__file__in_memory = exports.stores__doc__in_memory = exports.cache = exports.retrievers__vespa = exports.retrievers__score_threshold = exports.retrievers__hyde = exports.retrievers__document_compressors__embeddings_filter = exports.retrievers__document_compressors__chain_extract = exports.retrievers__time_weighted = exports.retrievers__tavily_search_api = exports.retrievers__parent_document = exports.retrievers__multi_vector = exports.retrievers__multi_query = exports.retrievers__document_compressors = exports.retrievers__contextual_compression = exports.retrievers__databerry = exports.retrievers__chaindesk = void 0;
28
+ exports.runnables__remote = exports.evaluation = exports.experimental__chat_models__bittensor = exports.experimental__plan_and_execute = exports.experimental__generative_agents = exports.experimental__babyagi = exports.experimental__autogpt = exports.util__time = exports.util__math = exports.storage__in_memory = exports.stores__message__in_memory = exports.stores__file__in_memory = exports.stores__doc__in_memory = exports.cache = exports.retrievers__vespa = exports.retrievers__score_threshold = exports.retrievers__hyde = exports.retrievers__document_compressors__embeddings_filter = exports.retrievers__document_compressors__chain_extract = exports.retrievers__time_weighted = exports.retrievers__tavily_search_api = exports.retrievers__parent_document = exports.retrievers__multi_vector = exports.retrievers__multi_query = exports.retrievers__document_compressors = exports.retrievers__contextual_compression = exports.retrievers__databerry = exports.retrievers__chaindesk = void 0;
29
29
  exports.load__serializable = __importStar(require("../load/serializable.cjs"));
30
30
  exports.agents = __importStar(require("../agents/index.cjs"));
31
31
  exports.agents__toolkits = __importStar(require("../agents/toolkits/index.cjs"));
@@ -96,9 +96,11 @@ exports.stores__file__in_memory = __importStar(require("../stores/file/in_memory
96
96
  exports.stores__message__in_memory = __importStar(require("../stores/message/in_memory.cjs"));
97
97
  exports.storage__in_memory = __importStar(require("../storage/in_memory.cjs"));
98
98
  exports.util__math = __importStar(require("../util/math.cjs"));
99
+ exports.util__time = __importStar(require("../util/time.cjs"));
99
100
  exports.experimental__autogpt = __importStar(require("../experimental/autogpt/index.cjs"));
100
101
  exports.experimental__babyagi = __importStar(require("../experimental/babyagi/index.cjs"));
101
102
  exports.experimental__generative_agents = __importStar(require("../experimental/generative_agents/index.cjs"));
102
103
  exports.experimental__plan_and_execute = __importStar(require("../experimental/plan_and_execute/index.cjs"));
103
104
  exports.experimental__chat_models__bittensor = __importStar(require("../experimental/chat_models/bittensor.cjs"));
104
105
  exports.evaluation = __importStar(require("../evaluation/index.cjs"));
106
+ exports.runnables__remote = __importStar(require("../runnables/remote.cjs"));
@@ -68,9 +68,11 @@ export * as stores__file__in_memory from "../stores/file/in_memory.js";
68
68
  export * as stores__message__in_memory from "../stores/message/in_memory.js";
69
69
  export * as storage__in_memory from "../storage/in_memory.js";
70
70
  export * as util__math from "../util/math.js";
71
+ export * as util__time from "../util/time.js";
71
72
  export * as experimental__autogpt from "../experimental/autogpt/index.js";
72
73
  export * as experimental__babyagi from "../experimental/babyagi/index.js";
73
74
  export * as experimental__generative_agents from "../experimental/generative_agents/index.js";
74
75
  export * as experimental__plan_and_execute from "../experimental/plan_and_execute/index.js";
75
76
  export * as experimental__chat_models__bittensor from "../experimental/chat_models/bittensor.js";
76
77
  export * as evaluation from "../evaluation/index.js";
78
+ export * as runnables__remote from "../runnables/remote.js";
@@ -69,9 +69,11 @@ export * as stores__file__in_memory from "../stores/file/in_memory.js";
69
69
  export * as stores__message__in_memory from "../stores/message/in_memory.js";
70
70
  export * as storage__in_memory from "../storage/in_memory.js";
71
71
  export * as util__math from "../util/math.js";
72
+ export * as util__time from "../util/time.js";
72
73
  export * as experimental__autogpt from "../experimental/autogpt/index.js";
73
74
  export * as experimental__babyagi from "../experimental/babyagi/index.js";
74
75
  export * as experimental__generative_agents from "../experimental/generative_agents/index.js";
75
76
  export * as experimental__plan_and_execute from "../experimental/plan_and_execute/index.js";
76
77
  export * as experimental__chat_models__bittensor from "../experimental/chat_models/bittensor.js";
77
78
  export * as evaluation from "../evaluation/index.js";
79
+ export * as runnables__remote from "../runnables/remote.js";
@@ -107,8 +107,25 @@ class MessagesPlaceholder extends BaseMessagePromptTemplate {
107
107
  get inputVariables() {
108
108
  return [this.variableName];
109
109
  }
110
- formatMessages(values) {
111
- return Promise.resolve(values[this.variableName]);
110
+ validateInputOrThrow(input, variableName) {
111
+ let isInputBaseMessage = false;
112
+ if (Array.isArray(input)) {
113
+ isInputBaseMessage = input.every((message) => (0, index_js_1.isBaseMessage)(message));
114
+ }
115
+ else {
116
+ isInputBaseMessage = (0, index_js_1.isBaseMessage)(input);
117
+ }
118
+ if (!isInputBaseMessage) {
119
+ const readableInput = typeof input === "string" ? input : JSON.stringify(input, null, 2);
120
+ const error = new Error(`Error: Field "${variableName}" in prompt uses a MessagesPlaceholder, which expects an array of BaseMessages as an input value. Received: ${readableInput}`);
121
+ error.name = "InputFormatError";
122
+ throw error;
123
+ }
124
+ return true;
125
+ }
126
+ async formatMessages(values) {
127
+ this.validateInputOrThrow(values[this.variableName], this.variableName);
128
+ return values[this.variableName];
112
129
  }
113
130
  }
114
131
  exports.MessagesPlaceholder = MessagesPlaceholder;
@@ -62,6 +62,7 @@ export declare class MessagesPlaceholder<RunInput extends InputValues = any> ext
62
62
  constructor(variableName: Extract<keyof RunInput, string>);
63
63
  constructor(fields: MessagePlaceholderFields<Extract<keyof RunInput, string>>);
64
64
  get inputVariables(): Extract<keyof RunInput, string>[];
65
+ validateInputOrThrow(input: Array<unknown>, variableName: Extract<keyof RunInput, string>): input is BaseMessage[];
65
66
  formatMessages(values: TypedPromptInputValues<RunInput>): Promise<BaseMessage[]>;
66
67
  }
67
68
  /**
@@ -102,8 +102,25 @@ export class MessagesPlaceholder extends BaseMessagePromptTemplate {
102
102
  get inputVariables() {
103
103
  return [this.variableName];
104
104
  }
105
- formatMessages(values) {
106
- return Promise.resolve(values[this.variableName]);
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];
107
124
  }
108
125
  }
109
126
  /**
@@ -102,7 +102,7 @@ class BasicTranslator extends BaseTranslator {
102
102
  }
103
103
  return nextArg;
104
104
  }
105
- mergeFilters(defaultFilter, generatedFilter, mergeType = "and") {
105
+ mergeFilters(defaultFilter, generatedFilter, mergeType = "and", forceDefaultFilter = false) {
106
106
  if ((0, utils_js_1.isFilterEmpty)(defaultFilter) && (0, utils_js_1.isFilterEmpty)(generatedFilter)) {
107
107
  return undefined;
108
108
  }
@@ -113,6 +113,9 @@ class BasicTranslator extends BaseTranslator {
113
113
  return generatedFilter;
114
114
  }
115
115
  if ((0, utils_js_1.isFilterEmpty)(generatedFilter)) {
116
+ if (forceDefaultFilter) {
117
+ return defaultFilter;
118
+ }
116
119
  if (mergeType === "and") {
117
120
  return undefined;
118
121
  }
@@ -26,9 +26,10 @@ export declare abstract class BaseTranslator<T extends VectorStore = VectorStore
26
26
  * @param defaultFilter The default filter.
27
27
  * @param generatedFilter The generated filter.
28
28
  * @param mergeType The type of merge to perform. Can be 'and', 'or', or 'replace'.
29
+ * @param forceDefaultFilter If true, the default filter will be used even if the generated filter is not empty.
29
30
  * @returns The merged filter, or undefined if both filters are empty.
30
31
  */
31
- abstract mergeFilters(defaultFilter: this["VisitStructuredQueryOutput"]["filter"] | undefined, generatedFilter: this["VisitStructuredQueryOutput"]["filter"] | undefined, mergeType?: "and" | "or" | "replace"): this["VisitStructuredQueryOutput"]["filter"] | undefined;
32
+ abstract mergeFilters(defaultFilter: this["VisitStructuredQueryOutput"]["filter"] | undefined, generatedFilter: this["VisitStructuredQueryOutput"]["filter"] | undefined, mergeType?: "and" | "or" | "replace", forceDefaultFilter?: boolean): this["VisitStructuredQueryOutput"]["filter"] | undefined;
32
33
  }
33
34
  /**
34
35
  * Class that extends the BaseTranslator class and provides concrete
@@ -64,5 +65,5 @@ export declare class BasicTranslator<T extends VectorStore = VectorStore> extend
64
65
  * @returns The result of visiting the structured query.
65
66
  */
66
67
  visitStructuredQuery(query: StructuredQuery): this["VisitStructuredQueryOutput"];
67
- mergeFilters(defaultFilter: VisitorStructuredQueryResult["filter"] | undefined, generatedFilter: VisitorStructuredQueryResult["filter"] | undefined, mergeType?: string): VisitorStructuredQueryResult["filter"] | undefined;
68
+ mergeFilters(defaultFilter: VisitorStructuredQueryResult["filter"] | undefined, generatedFilter: VisitorStructuredQueryResult["filter"] | undefined, mergeType?: string, forceDefaultFilter?: boolean): VisitorStructuredQueryResult["filter"] | undefined;
68
69
  }
@@ -98,7 +98,7 @@ export class BasicTranslator extends BaseTranslator {
98
98
  }
99
99
  return nextArg;
100
100
  }
101
- mergeFilters(defaultFilter, generatedFilter, mergeType = "and") {
101
+ mergeFilters(defaultFilter, generatedFilter, mergeType = "and", forceDefaultFilter = false) {
102
102
  if (isFilterEmpty(defaultFilter) && isFilterEmpty(generatedFilter)) {
103
103
  return undefined;
104
104
  }
@@ -109,6 +109,9 @@ export class BasicTranslator extends BaseTranslator {
109
109
  return generatedFilter;
110
110
  }
111
111
  if (isFilterEmpty(generatedFilter)) {
112
+ if (forceDefaultFilter) {
113
+ return defaultFilter;
114
+ }
112
115
  if (mergeType === "and") {
113
116
  return undefined;
114
117
  }
@@ -56,7 +56,7 @@ class SelfQueryRetriever extends retriever_js_1.BaseRetriever {
56
56
  enumerable: true,
57
57
  configurable: true,
58
58
  writable: true,
59
- value: { k: 4 }
59
+ value: { k: 4, forceDefaultFilter: false }
60
60
  });
61
61
  this.vectorStore = options.vectorStore;
62
62
  this.llmChain = options.llmChain;
@@ -71,7 +71,7 @@ class SelfQueryRetriever extends retriever_js_1.BaseRetriever {
71
71
  }, runManager?.getChild("llm_chain"));
72
72
  const generatedStructuredQuery = output;
73
73
  const nextArg = this.structuredQueryTranslator.visitStructuredQuery(generatedStructuredQuery);
74
- const filter = this.structuredQueryTranslator.mergeFilters(this.searchParams?.filter, nextArg.filter, this.searchParams?.mergeFiltersOperator);
74
+ const filter = this.structuredQueryTranslator.mergeFilters(this.searchParams?.filter, nextArg.filter, this.searchParams?.mergeFiltersOperator, this.searchParams?.forceDefaultFilter);
75
75
  const generatedQuery = generatedStructuredQuery.query;
76
76
  let myQuery = query;
77
77
  if (!this.useOriginalQuery && generatedQuery && generatedQuery.length > 0) {
@@ -21,6 +21,7 @@ export interface SelfQueryRetrieverArgs<T extends VectorStore> extends BaseRetri
21
21
  k?: number;
22
22
  filter?: T["FilterType"];
23
23
  mergeFiltersOperator?: "or" | "and" | "replace";
24
+ forceDefaultFilter?: boolean;
24
25
  };
25
26
  }
26
27
  /**
@@ -40,6 +41,7 @@ export declare class SelfQueryRetriever<T extends VectorStore> extends BaseRetri
40
41
  k?: number;
41
42
  filter?: T["FilterType"];
42
43
  mergeFiltersOperator?: "or" | "and" | "replace";
44
+ forceDefaultFilter?: boolean;
43
45
  };
44
46
  constructor(options: SelfQueryRetrieverArgs<T>);
45
47
  _getRelevantDocuments(query: string, runManager?: CallbackManagerForRetrieverRun): Promise<Document<Record<string, unknown>>[]>;
@@ -51,7 +51,7 @@ export class SelfQueryRetriever extends BaseRetriever {
51
51
  enumerable: true,
52
52
  configurable: true,
53
53
  writable: true,
54
- value: { k: 4 }
54
+ value: { k: 4, forceDefaultFilter: false }
55
55
  });
56
56
  this.vectorStore = options.vectorStore;
57
57
  this.llmChain = options.llmChain;
@@ -66,7 +66,7 @@ export class SelfQueryRetriever extends BaseRetriever {
66
66
  }, runManager?.getChild("llm_chain"));
67
67
  const generatedStructuredQuery = output;
68
68
  const nextArg = this.structuredQueryTranslator.visitStructuredQuery(generatedStructuredQuery);
69
- const filter = this.structuredQueryTranslator.mergeFilters(this.searchParams?.filter, nextArg.filter, this.searchParams?.mergeFiltersOperator);
69
+ const filter = this.structuredQueryTranslator.mergeFilters(this.searchParams?.filter, nextArg.filter, this.searchParams?.mergeFiltersOperator, this.searchParams?.forceDefaultFilter);
70
70
  const generatedQuery = generatedStructuredQuery.query;
71
71
  let myQuery = query;
72
72
  if (!this.useOriginalQuery && generatedQuery && generatedQuery.length > 0) {