langchain 0.0.164 → 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/chat_models/portkey.cjs +1 -0
- package/chat_models/portkey.d.ts +1 -0
- package/chat_models/portkey.js +1 -0
- package/dist/cache/momento.cjs +7 -7
- package/dist/cache/momento.d.ts +1 -1
- package/dist/cache/momento.js +1 -1
- package/dist/chat_models/portkey.cjs +159 -0
- package/dist/chat_models/portkey.d.ts +17 -0
- package/dist/chat_models/portkey.js +155 -0
- 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/embeddings/minimax.cjs +1 -1
- package/dist/embeddings/minimax.js +1 -1
- 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/llms/portkey.cjs +147 -0
- package/dist/llms/portkey.d.ts +33 -0
- package/dist/llms/portkey.js +138 -0
- package/dist/llms/sagemaker_endpoint.cjs +76 -14
- package/dist/llms/sagemaker_endpoint.d.ts +39 -20
- package/dist/llms/sagemaker_endpoint.js +77 -15
- package/dist/load/import_constants.cjs +4 -0
- package/dist/load/import_constants.js +4 -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/output_parsers/list.cjs +1 -1
- package/dist/output_parsers/list.js +1 -1
- 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/cassandra.cjs +212 -0
- package/dist/vectorstores/cassandra.d.ts +98 -0
- package/dist/vectorstores/cassandra.js +208 -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/mongodb_atlas.cjs +29 -39
- package/dist/vectorstores/mongodb_atlas.js +29 -39
- package/dist/vectorstores/supabase.cjs +37 -8
- package/dist/vectorstores/supabase.d.ts +28 -1
- package/dist/vectorstores/supabase.js +37 -8
- package/llms/portkey.cjs +1 -0
- package/llms/portkey.d.ts +1 -0
- package/llms/portkey.js +1 -0
- package/package.json +77 -4
- 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/cassandra.cjs +1 -0
- package/vectorstores/cassandra.d.ts +1 -0
- package/vectorstores/cassandra.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
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { SageMakerRuntimeClient, SageMakerRuntimeClientConfig } from "@aws-sdk/client-sagemaker-runtime";
|
|
2
|
-
import {
|
|
2
|
+
import { CallbackManagerForLLMRun } from "../callbacks/manager.js";
|
|
3
|
+
import { GenerationChunk } from "../schema/index.js";
|
|
4
|
+
import { BaseLLMCallOptions, BaseLLMParams, LLM } from "./base.js";
|
|
3
5
|
/**
|
|
4
6
|
* A handler class to transform input from LLM to a format that SageMaker
|
|
5
7
|
* endpoint expects. Similarily, the class also handles transforming output from
|
|
@@ -28,22 +30,22 @@ import { LLM, BaseLLMParams } from "./base.js";
|
|
|
28
30
|
* ```
|
|
29
31
|
*/
|
|
30
32
|
export declare abstract class BaseSageMakerContentHandler<InputType, OutputType> {
|
|
31
|
-
/** The MIME type of the input data passed to endpoint */
|
|
32
33
|
contentType: string;
|
|
33
|
-
/** The MIME type of the response data returned from endpoint */
|
|
34
34
|
accepts: string;
|
|
35
35
|
/**
|
|
36
|
-
* Transforms the
|
|
37
|
-
*
|
|
38
|
-
*
|
|
36
|
+
* Transforms the prompt and model arguments into a specific format for sending to SageMaker.
|
|
37
|
+
* @param {InputType} prompt The prompt to be transformed.
|
|
38
|
+
* @param {Record<string, unknown>} modelKwargs Additional arguments.
|
|
39
|
+
* @returns {Promise<Uint8Array>} A promise that resolves to the formatted data for sending.
|
|
39
40
|
*/
|
|
40
41
|
abstract transformInput(prompt: InputType, modelKwargs: Record<string, unknown>): Promise<Uint8Array>;
|
|
41
42
|
/**
|
|
42
|
-
* Transforms
|
|
43
|
+
* Transforms SageMaker output into a desired format.
|
|
44
|
+
* @param {Uint8Array} output The raw output from SageMaker.
|
|
45
|
+
* @returns {Promise<OutputType>} A promise that resolves to the transformed data.
|
|
43
46
|
*/
|
|
44
47
|
abstract transformOutput(output: Uint8Array): Promise<OutputType>;
|
|
45
48
|
}
|
|
46
|
-
/** Content handler for LLM class. */
|
|
47
49
|
export type SageMakerLLMContentHandler = BaseSageMakerContentHandler<string, string>;
|
|
48
50
|
/**
|
|
49
51
|
* The SageMakerEndpointInput interface defines the input parameters for
|
|
@@ -61,11 +63,6 @@ export interface SageMakerEndpointInput extends BaseLLMParams {
|
|
|
61
63
|
* Options passed to the SageMaker client.
|
|
62
64
|
*/
|
|
63
65
|
clientOptions: SageMakerRuntimeClientConfig;
|
|
64
|
-
/**
|
|
65
|
-
* The content handler class that provides an input and output transform
|
|
66
|
-
* functions to handle formats between LLM and the endpoint.
|
|
67
|
-
*/
|
|
68
|
-
contentHandler: SageMakerLLMContentHandler;
|
|
69
66
|
/**
|
|
70
67
|
* Key word arguments to pass to the model.
|
|
71
68
|
*/
|
|
@@ -74,29 +71,51 @@ export interface SageMakerEndpointInput extends BaseLLMParams {
|
|
|
74
71
|
* Optional attributes passed to the InvokeEndpointCommand
|
|
75
72
|
*/
|
|
76
73
|
endpointKwargs?: Record<string, unknown>;
|
|
74
|
+
/**
|
|
75
|
+
* The content handler class that provides an input and output transform
|
|
76
|
+
* functions to handle formats between LLM and the endpoint.
|
|
77
|
+
*/
|
|
78
|
+
contentHandler: SageMakerLLMContentHandler;
|
|
79
|
+
streaming?: boolean;
|
|
77
80
|
}
|
|
78
81
|
/**
|
|
79
82
|
* The SageMakerEndpoint class is used to interact with SageMaker
|
|
80
|
-
* Inference Endpoint models. It
|
|
81
|
-
*
|
|
82
|
-
* SageMaker endpoint using the provided content handler. The class uses
|
|
83
|
-
* AWS client for authentication, which automatically loads credentials.
|
|
83
|
+
* Inference Endpoint models. It uses the AWS client for authentication,
|
|
84
|
+
* which automatically loads credentials.
|
|
84
85
|
* If a specific credential profile is to be used, the name of the profile
|
|
85
86
|
* from the ~/.aws/credentials file must be passed. The credentials or
|
|
86
87
|
* roles used should have the required policies to access the SageMaker
|
|
87
88
|
* endpoint.
|
|
88
89
|
*/
|
|
89
|
-
export declare class SageMakerEndpoint extends LLM {
|
|
90
|
+
export declare class SageMakerEndpoint extends LLM<BaseLLMCallOptions> {
|
|
91
|
+
static lc_name(): string;
|
|
90
92
|
get lc_secrets(): {
|
|
91
93
|
[key: string]: string;
|
|
92
94
|
} | undefined;
|
|
93
95
|
endpointName: string;
|
|
94
|
-
contentHandler: SageMakerLLMContentHandler;
|
|
95
96
|
modelKwargs?: Record<string, unknown>;
|
|
96
97
|
endpointKwargs?: Record<string, unknown>;
|
|
97
98
|
client: SageMakerRuntimeClient;
|
|
99
|
+
contentHandler: SageMakerLLMContentHandler;
|
|
100
|
+
streaming: boolean;
|
|
98
101
|
constructor(fields: SageMakerEndpointInput);
|
|
99
102
|
_llmType(): string;
|
|
103
|
+
/**
|
|
104
|
+
* Calls the SageMaker endpoint and retrieves the result.
|
|
105
|
+
* @param {string} prompt The input prompt.
|
|
106
|
+
* @param {this["ParsedCallOptions"]} options Parsed call options.
|
|
107
|
+
* @param {CallbackManagerForLLMRun} _runManager Optional run manager.
|
|
108
|
+
* @returns {Promise<string>} A promise that resolves to the generated string.
|
|
109
|
+
*/
|
|
100
110
|
/** @ignore */
|
|
101
|
-
_call(prompt: string, options: this["ParsedCallOptions"]): Promise<string>;
|
|
111
|
+
_call(prompt: string, options: this["ParsedCallOptions"], _runManager?: CallbackManagerForLLMRun): Promise<string>;
|
|
112
|
+
private streamingCall;
|
|
113
|
+
private noStreamingCall;
|
|
114
|
+
/**
|
|
115
|
+
* Streams response chunks from the SageMaker endpoint.
|
|
116
|
+
* @param {string} prompt The input prompt.
|
|
117
|
+
* @param {this["ParsedCallOptions"]} options Parsed call options.
|
|
118
|
+
* @returns {AsyncGenerator<GenerationChunk>} An asynchronous generator yielding generation chunks.
|
|
119
|
+
*/
|
|
120
|
+
_streamResponseChunks(prompt: string, options: this["ParsedCallOptions"]): AsyncGenerator<GenerationChunk>;
|
|
102
121
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { InvokeEndpointCommand, InvokeEndpointWithResponseStreamCommand, SageMakerRuntimeClient, } from "@aws-sdk/client-sagemaker-runtime";
|
|
2
|
+
import { GenerationChunk } from "../schema/index.js";
|
|
2
3
|
import { LLM } from "./base.js";
|
|
3
4
|
/**
|
|
4
5
|
* A handler class to transform input from LLM to a format that SageMaker
|
|
@@ -29,14 +30,12 @@ import { LLM } from "./base.js";
|
|
|
29
30
|
*/
|
|
30
31
|
export class BaseSageMakerContentHandler {
|
|
31
32
|
constructor() {
|
|
32
|
-
/** The MIME type of the input data passed to endpoint */
|
|
33
33
|
Object.defineProperty(this, "contentType", {
|
|
34
34
|
enumerable: true,
|
|
35
35
|
configurable: true,
|
|
36
36
|
writable: true,
|
|
37
37
|
value: "text/plain"
|
|
38
38
|
});
|
|
39
|
-
/** The MIME type of the response data returned from endpoint */
|
|
40
39
|
Object.defineProperty(this, "accepts", {
|
|
41
40
|
enumerable: true,
|
|
42
41
|
configurable: true,
|
|
@@ -47,16 +46,17 @@ export class BaseSageMakerContentHandler {
|
|
|
47
46
|
}
|
|
48
47
|
/**
|
|
49
48
|
* The SageMakerEndpoint class is used to interact with SageMaker
|
|
50
|
-
* Inference Endpoint models. It
|
|
51
|
-
*
|
|
52
|
-
* SageMaker endpoint using the provided content handler. The class uses
|
|
53
|
-
* AWS client for authentication, which automatically loads credentials.
|
|
49
|
+
* Inference Endpoint models. It uses the AWS client for authentication,
|
|
50
|
+
* which automatically loads credentials.
|
|
54
51
|
* If a specific credential profile is to be used, the name of the profile
|
|
55
52
|
* from the ~/.aws/credentials file must be passed. The credentials or
|
|
56
53
|
* roles used should have the required policies to access the SageMaker
|
|
57
54
|
* endpoint.
|
|
58
55
|
*/
|
|
59
56
|
export class SageMakerEndpoint extends LLM {
|
|
57
|
+
static lc_name() {
|
|
58
|
+
return "SageMakerEndpoint";
|
|
59
|
+
}
|
|
60
60
|
get lc_secrets() {
|
|
61
61
|
return {
|
|
62
62
|
"clientOptions.credentials.accessKeyId": "AWS_ACCESS_KEY_ID",
|
|
@@ -65,39 +65,44 @@ export class SageMakerEndpoint extends LLM {
|
|
|
65
65
|
};
|
|
66
66
|
}
|
|
67
67
|
constructor(fields) {
|
|
68
|
-
super(fields
|
|
68
|
+
super(fields);
|
|
69
69
|
Object.defineProperty(this, "endpointName", {
|
|
70
70
|
enumerable: true,
|
|
71
71
|
configurable: true,
|
|
72
72
|
writable: true,
|
|
73
73
|
value: void 0
|
|
74
74
|
});
|
|
75
|
-
Object.defineProperty(this, "
|
|
75
|
+
Object.defineProperty(this, "modelKwargs", {
|
|
76
76
|
enumerable: true,
|
|
77
77
|
configurable: true,
|
|
78
78
|
writable: true,
|
|
79
79
|
value: void 0
|
|
80
80
|
});
|
|
81
|
-
Object.defineProperty(this, "
|
|
81
|
+
Object.defineProperty(this, "endpointKwargs", {
|
|
82
82
|
enumerable: true,
|
|
83
83
|
configurable: true,
|
|
84
84
|
writable: true,
|
|
85
85
|
value: void 0
|
|
86
86
|
});
|
|
87
|
-
Object.defineProperty(this, "
|
|
87
|
+
Object.defineProperty(this, "client", {
|
|
88
88
|
enumerable: true,
|
|
89
89
|
configurable: true,
|
|
90
90
|
writable: true,
|
|
91
91
|
value: void 0
|
|
92
92
|
});
|
|
93
|
-
Object.defineProperty(this, "
|
|
93
|
+
Object.defineProperty(this, "contentHandler", {
|
|
94
94
|
enumerable: true,
|
|
95
95
|
configurable: true,
|
|
96
96
|
writable: true,
|
|
97
97
|
value: void 0
|
|
98
98
|
});
|
|
99
|
-
|
|
100
|
-
|
|
99
|
+
Object.defineProperty(this, "streaming", {
|
|
100
|
+
enumerable: true,
|
|
101
|
+
configurable: true,
|
|
102
|
+
writable: true,
|
|
103
|
+
value: void 0
|
|
104
|
+
});
|
|
105
|
+
if (!fields.clientOptions.region) {
|
|
101
106
|
throw new Error(`Please pass a "clientOptions" object with a "region" field to the constructor`);
|
|
102
107
|
}
|
|
103
108
|
const endpointName = fields?.endpointName;
|
|
@@ -112,13 +117,33 @@ export class SageMakerEndpoint extends LLM {
|
|
|
112
117
|
this.contentHandler = fields.contentHandler;
|
|
113
118
|
this.endpointKwargs = fields.endpointKwargs;
|
|
114
119
|
this.modelKwargs = fields.modelKwargs;
|
|
120
|
+
this.streaming = fields.streaming ?? false;
|
|
115
121
|
this.client = new SageMakerRuntimeClient(fields.clientOptions);
|
|
116
122
|
}
|
|
117
123
|
_llmType() {
|
|
118
124
|
return "sagemaker_endpoint";
|
|
119
125
|
}
|
|
126
|
+
/**
|
|
127
|
+
* Calls the SageMaker endpoint and retrieves the result.
|
|
128
|
+
* @param {string} prompt The input prompt.
|
|
129
|
+
* @param {this["ParsedCallOptions"]} options Parsed call options.
|
|
130
|
+
* @param {CallbackManagerForLLMRun} _runManager Optional run manager.
|
|
131
|
+
* @returns {Promise<string>} A promise that resolves to the generated string.
|
|
132
|
+
*/
|
|
120
133
|
/** @ignore */
|
|
121
|
-
async _call(prompt, options) {
|
|
134
|
+
async _call(prompt, options, _runManager) {
|
|
135
|
+
return this.streaming
|
|
136
|
+
? await this.streamingCall(prompt, options)
|
|
137
|
+
: await this.noStreamingCall(prompt, options);
|
|
138
|
+
}
|
|
139
|
+
async streamingCall(prompt, options) {
|
|
140
|
+
const chunks = [];
|
|
141
|
+
for await (const chunk of this._streamResponseChunks(prompt, options)) {
|
|
142
|
+
chunks.push(chunk.text);
|
|
143
|
+
}
|
|
144
|
+
return chunks.join("");
|
|
145
|
+
}
|
|
146
|
+
async noStreamingCall(prompt, options) {
|
|
122
147
|
const body = await this.contentHandler.transformInput(prompt, this.modelKwargs ?? {});
|
|
123
148
|
const { contentType, accepts } = this.contentHandler;
|
|
124
149
|
const response = await this.caller.call(() => this.client.send(new InvokeEndpointCommand({
|
|
@@ -133,4 +158,41 @@ export class SageMakerEndpoint extends LLM {
|
|
|
133
158
|
}
|
|
134
159
|
return this.contentHandler.transformOutput(response.Body);
|
|
135
160
|
}
|
|
161
|
+
/**
|
|
162
|
+
* Streams response chunks from the SageMaker endpoint.
|
|
163
|
+
* @param {string} prompt The input prompt.
|
|
164
|
+
* @param {this["ParsedCallOptions"]} options Parsed call options.
|
|
165
|
+
* @returns {AsyncGenerator<GenerationChunk>} An asynchronous generator yielding generation chunks.
|
|
166
|
+
*/
|
|
167
|
+
async *_streamResponseChunks(prompt, options) {
|
|
168
|
+
const body = await this.contentHandler.transformInput(prompt, this.modelKwargs ?? {});
|
|
169
|
+
const { contentType, accepts } = this.contentHandler;
|
|
170
|
+
const stream = await this.caller.call(() => this.client.send(new InvokeEndpointWithResponseStreamCommand({
|
|
171
|
+
EndpointName: this.endpointName,
|
|
172
|
+
Body: body,
|
|
173
|
+
ContentType: contentType,
|
|
174
|
+
Accept: accepts,
|
|
175
|
+
...this.endpointKwargs,
|
|
176
|
+
}), { abortSignal: options.signal }));
|
|
177
|
+
if (!stream.Body) {
|
|
178
|
+
throw new Error("Inference result missing Body");
|
|
179
|
+
}
|
|
180
|
+
for await (const chunk of stream.Body) {
|
|
181
|
+
if (chunk.PayloadPart && chunk.PayloadPart.Bytes) {
|
|
182
|
+
yield new GenerationChunk({
|
|
183
|
+
text: await this.contentHandler.transformOutput(chunk.PayloadPart.Bytes),
|
|
184
|
+
generationInfo: {
|
|
185
|
+
...chunk,
|
|
186
|
+
response: undefined,
|
|
187
|
+
},
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
else if (chunk.InternalStreamFailure) {
|
|
191
|
+
throw new Error(chunk.InternalStreamFailure.message);
|
|
192
|
+
}
|
|
193
|
+
else if (chunk.ModelStreamError) {
|
|
194
|
+
throw new Error(chunk.ModelStreamError.message);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
136
198
|
}
|
|
@@ -37,8 +37,10 @@ exports.optionalImportEntrypoints = [
|
|
|
37
37
|
"langchain/llms/bedrock",
|
|
38
38
|
"langchain/llms/llama_cpp",
|
|
39
39
|
"langchain/llms/writer",
|
|
40
|
+
"langchain/llms/portkey",
|
|
40
41
|
"langchain/prompts/load",
|
|
41
42
|
"langchain/vectorstores/analyticdb",
|
|
43
|
+
"langchain/vectorstores/cassandra",
|
|
42
44
|
"langchain/vectorstores/elasticsearch",
|
|
43
45
|
"langchain/vectorstores/cloudflare_vectorize",
|
|
44
46
|
"langchain/vectorstores/chroma",
|
|
@@ -47,6 +49,7 @@ exports.optionalImportEntrypoints = [
|
|
|
47
49
|
"langchain/vectorstores/faiss",
|
|
48
50
|
"langchain/vectorstores/weaviate",
|
|
49
51
|
"langchain/vectorstores/lancedb",
|
|
52
|
+
"langchain/vectorstores/momento_vector_index",
|
|
50
53
|
"langchain/vectorstores/mongo",
|
|
51
54
|
"langchain/vectorstores/mongodb_atlas",
|
|
52
55
|
"langchain/vectorstores/pinecone",
|
|
@@ -101,6 +104,7 @@ exports.optionalImportEntrypoints = [
|
|
|
101
104
|
"langchain/document_loaders/fs/openai_whisper_audio",
|
|
102
105
|
"langchain/document_transformers/html_to_text",
|
|
103
106
|
"langchain/document_transformers/mozilla_readability",
|
|
107
|
+
"langchain/chat_models/portkey",
|
|
104
108
|
"langchain/chat_models/bedrock",
|
|
105
109
|
"langchain/chat_models/googlevertexai",
|
|
106
110
|
"langchain/chat_models/googlevertexai/web",
|
|
@@ -34,8 +34,10 @@ export const optionalImportEntrypoints = [
|
|
|
34
34
|
"langchain/llms/bedrock",
|
|
35
35
|
"langchain/llms/llama_cpp",
|
|
36
36
|
"langchain/llms/writer",
|
|
37
|
+
"langchain/llms/portkey",
|
|
37
38
|
"langchain/prompts/load",
|
|
38
39
|
"langchain/vectorstores/analyticdb",
|
|
40
|
+
"langchain/vectorstores/cassandra",
|
|
39
41
|
"langchain/vectorstores/elasticsearch",
|
|
40
42
|
"langchain/vectorstores/cloudflare_vectorize",
|
|
41
43
|
"langchain/vectorstores/chroma",
|
|
@@ -44,6 +46,7 @@ export const optionalImportEntrypoints = [
|
|
|
44
46
|
"langchain/vectorstores/faiss",
|
|
45
47
|
"langchain/vectorstores/weaviate",
|
|
46
48
|
"langchain/vectorstores/lancedb",
|
|
49
|
+
"langchain/vectorstores/momento_vector_index",
|
|
47
50
|
"langchain/vectorstores/mongo",
|
|
48
51
|
"langchain/vectorstores/mongodb_atlas",
|
|
49
52
|
"langchain/vectorstores/pinecone",
|
|
@@ -98,6 +101,7 @@ export const optionalImportEntrypoints = [
|
|
|
98
101
|
"langchain/document_loaders/fs/openai_whisper_audio",
|
|
99
102
|
"langchain/document_transformers/html_to_text",
|
|
100
103
|
"langchain/document_transformers/mozilla_readability",
|
|
104
|
+
"langchain/chat_models/portkey",
|
|
101
105
|
"langchain/chat_models/bedrock",
|
|
102
106
|
"langchain/chat_models/googlevertexai",
|
|
103
107
|
"langchain/chat_models/googlevertexai/web",
|
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";
|
|
@@ -119,7 +119,7 @@ class CustomListOutputParser extends ListOutputParser {
|
|
|
119
119
|
* @returns A string containing instructions on the expected format of the response.
|
|
120
120
|
*/
|
|
121
121
|
getFormatInstructions() {
|
|
122
|
-
return `Your response should be a list of ${this.length} items separated by "${this.separator}" (eg: \`foo${this.separator} bar${this.separator} baz\`)`;
|
|
122
|
+
return `Your response should be a list of ${this.length === undefined ? "" : `${this.length} `}items separated by "${this.separator}" (eg: \`foo${this.separator} bar${this.separator} baz\`)`;
|
|
123
123
|
}
|
|
124
124
|
}
|
|
125
125
|
exports.CustomListOutputParser = CustomListOutputParser;
|
|
@@ -114,6 +114,6 @@ export class CustomListOutputParser extends ListOutputParser {
|
|
|
114
114
|
* @returns A string containing instructions on the expected format of the response.
|
|
115
115
|
*/
|
|
116
116
|
getFormatInstructions() {
|
|
117
|
-
return `Your response should be a list of ${this.length} items separated by "${this.separator}" (eg: \`foo${this.separator} bar${this.separator} baz\`)`;
|
|
117
|
+
return `Your response should be a list of ${this.length === undefined ? "" : `${this.length} `}items separated by "${this.separator}" (eg: \`foo${this.separator} bar${this.separator} baz\`)`;
|
|
118
118
|
}
|
|
119
119
|
}
|
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) {
|