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.
- package/dist/cache/momento.cjs +7 -7
- package/dist/cache/momento.d.ts +1 -1
- package/dist/cache/momento.js +1 -1
- package/dist/document_loaders/fs/unstructured.cjs +40 -0
- package/dist/document_loaders/fs/unstructured.d.ts +27 -0
- package/dist/document_loaders/fs/unstructured.js +40 -0
- package/dist/experimental/chat_models/anthropic_functions.cjs +34 -2
- package/dist/experimental/chat_models/anthropic_functions.d.ts +15 -5
- package/dist/experimental/chat_models/anthropic_functions.js +34 -2
- package/dist/load/import_constants.cjs +1 -0
- package/dist/load/import_constants.js +1 -0
- package/dist/load/import_map.cjs +3 -1
- package/dist/load/import_map.d.ts +2 -0
- package/dist/load/import_map.js +2 -0
- package/dist/prompts/chat.cjs +19 -2
- package/dist/prompts/chat.d.ts +1 -0
- package/dist/prompts/chat.js +19 -2
- package/dist/retrievers/self_query/base.cjs +4 -1
- package/dist/retrievers/self_query/base.d.ts +3 -2
- package/dist/retrievers/self_query/base.js +4 -1
- package/dist/retrievers/self_query/index.cjs +2 -2
- package/dist/retrievers/self_query/index.d.ts +2 -0
- package/dist/retrievers/self_query/index.js +2 -2
- package/dist/runnables/remote.cjs +225 -0
- package/dist/runnables/remote.d.ts +28 -0
- package/dist/runnables/remote.js +221 -0
- package/dist/schema/index.cjs +1 -1
- package/dist/schema/index.d.ts +1 -1
- package/dist/schema/index.js +1 -1
- package/dist/schema/runnable/base.cjs +4 -4
- package/dist/schema/runnable/base.d.ts +9 -7
- package/dist/schema/runnable/base.js +4 -4
- package/dist/schema/runnable/remote.cjs +225 -0
- package/dist/schema/runnable/remote.d.ts +28 -0
- package/dist/schema/runnable/remote.js +221 -0
- package/dist/stores/message/momento.cjs +11 -11
- package/dist/stores/message/momento.d.ts +1 -1
- package/dist/stores/message/momento.js +1 -1
- package/dist/util/time.cjs +14 -0
- package/dist/util/time.d.ts +6 -0
- package/dist/util/time.js +10 -0
- package/dist/vectorstores/momento_vector_index.cjs +292 -0
- package/dist/vectorstores/momento_vector_index.d.ts +135 -0
- package/dist/vectorstores/momento_vector_index.js +265 -0
- package/dist/vectorstores/supabase.cjs +37 -8
- package/dist/vectorstores/supabase.d.ts +28 -1
- package/dist/vectorstores/supabase.js +37 -8
- package/package.json +36 -3
- package/runnables/remote.cjs +1 -0
- package/runnables/remote.d.ts +1 -0
- package/runnables/remote.js +1 -0
- package/util/time.cjs +1 -0
- package/util/time.d.ts +1 -0
- package/util/time.js +1 -0
- package/vectorstores/momento_vector_index.cjs +1 -0
- package/vectorstores/momento_vector_index.d.ts +1 -0
- package/vectorstores/momento_vector_index.js +1 -0
package/dist/cache/momento.cjs
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
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
|
|
85
|
+
else if (getResponse instanceof sdk_core_1.CacheGet.Miss) {
|
|
86
86
|
return null;
|
|
87
87
|
}
|
|
88
|
-
else if (getResponse instanceof
|
|
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
|
|
107
|
+
if (setResponse instanceof sdk_core_1.CacheSet.Success) {
|
|
108
108
|
// pass
|
|
109
109
|
}
|
|
110
|
-
else if (setResponse instanceof
|
|
110
|
+
else if (setResponse instanceof sdk_core_1.CacheSet.Error) {
|
|
111
111
|
throw setResponse.innerException();
|
|
112
112
|
}
|
|
113
113
|
else {
|
package/dist/cache/momento.d.ts
CHANGED
package/dist/cache/momento.js
CHANGED
|
@@ -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
|
|
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
|
|
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 {
|
|
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
|
|
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?:
|
|
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
|
|
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
|
|
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",
|
package/dist/load/import_map.cjs
CHANGED
|
@@ -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";
|
package/dist/load/import_map.js
CHANGED
|
@@ -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";
|
package/dist/prompts/chat.cjs
CHANGED
|
@@ -107,8 +107,25 @@ class MessagesPlaceholder extends BaseMessagePromptTemplate {
|
|
|
107
107
|
get inputVariables() {
|
|
108
108
|
return [this.variableName];
|
|
109
109
|
}
|
|
110
|
-
|
|
111
|
-
|
|
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;
|
package/dist/prompts/chat.d.ts
CHANGED
|
@@ -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
|
/**
|
package/dist/prompts/chat.js
CHANGED
|
@@ -102,8 +102,25 @@ export class MessagesPlaceholder extends BaseMessagePromptTemplate {
|
|
|
102
102
|
get inputVariables() {
|
|
103
103
|
return [this.variableName];
|
|
104
104
|
}
|
|
105
|
-
|
|
106
|
-
|
|
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) {
|