@langchain/google-common 0.2.17 → 1.0.0
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/CHANGELOG.md +17 -0
- package/LICENSE +6 -6
- package/dist/_virtual/rolldown_runtime.cjs +25 -0
- package/dist/auth.cjs +82 -116
- package/dist/auth.cjs.map +1 -0
- package/dist/auth.d.cts +46 -0
- package/dist/auth.d.cts.map +1 -0
- package/dist/auth.d.ts +41 -36
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +80 -110
- package/dist/auth.js.map +1 -0
- package/dist/chat_models.cjs +251 -466
- package/dist/chat_models.cjs.map +1 -0
- package/dist/chat_models.d.cts +98 -0
- package/dist/chat_models.d.cts.map +1 -0
- package/dist/chat_models.d.ts +87 -73
- package/dist/chat_models.d.ts.map +1 -0
- package/dist/chat_models.js +245 -457
- package/dist/chat_models.js.map +1 -0
- package/dist/connection.cjs +321 -466
- package/dist/connection.cjs.map +1 -0
- package/dist/connection.d.cts +109 -0
- package/dist/connection.d.cts.map +1 -0
- package/dist/connection.d.ts +98 -91
- package/dist/connection.d.ts.map +1 -0
- package/dist/connection.js +317 -459
- package/dist/connection.js.map +1 -0
- package/dist/embeddings.cjs +135 -186
- package/dist/embeddings.cjs.map +1 -0
- package/dist/embeddings.d.cts +44 -0
- package/dist/embeddings.d.cts.map +1 -0
- package/dist/embeddings.d.ts +38 -32
- package/dist/embeddings.d.ts.map +1 -0
- package/dist/embeddings.js +133 -181
- package/dist/embeddings.js.map +1 -0
- package/dist/experimental/media.cjs +380 -482
- package/dist/experimental/media.cjs.map +1 -0
- package/dist/experimental/media.d.cts +198 -0
- package/dist/experimental/media.d.cts.map +1 -0
- package/dist/experimental/media.d.ts +190 -202
- package/dist/experimental/media.d.ts.map +1 -0
- package/dist/experimental/media.js +369 -468
- package/dist/experimental/media.js.map +1 -0
- package/dist/experimental/utils/media_core.cjs +403 -517
- package/dist/experimental/utils/media_core.cjs.map +1 -0
- package/dist/experimental/utils/media_core.d.cts +215 -0
- package/dist/experimental/utils/media_core.d.cts.map +1 -0
- package/dist/experimental/utils/media_core.d.ts +171 -165
- package/dist/experimental/utils/media_core.d.ts.map +1 -0
- package/dist/experimental/utils/media_core.js +395 -506
- package/dist/experimental/utils/media_core.js.map +1 -0
- package/dist/index.cjs +58 -27
- package/dist/index.d.cts +13 -0
- package/dist/index.d.ts +13 -11
- package/dist/index.js +13 -11
- package/dist/llms.cjs +157 -244
- package/dist/llms.cjs.map +1 -0
- package/dist/llms.d.cts +72 -0
- package/dist/llms.d.cts.map +1 -0
- package/dist/llms.d.ts +64 -54
- package/dist/llms.d.ts.map +1 -0
- package/dist/llms.js +154 -238
- package/dist/llms.js.map +1 -0
- package/dist/output_parsers.cjs +148 -173
- package/dist/output_parsers.cjs.map +1 -0
- package/dist/output_parsers.d.cts +53 -0
- package/dist/output_parsers.d.cts.map +1 -0
- package/dist/output_parsers.d.ts +46 -42
- package/dist/output_parsers.d.ts.map +1 -0
- package/dist/output_parsers.js +146 -168
- package/dist/output_parsers.js.map +1 -0
- package/dist/types-anthropic.d.cts +229 -0
- package/dist/types-anthropic.d.cts.map +1 -0
- package/dist/types-anthropic.d.ts +221 -215
- package/dist/types-anthropic.d.ts.map +1 -0
- package/dist/types.cjs +51 -62
- package/dist/types.cjs.map +1 -0
- package/dist/types.d.cts +748 -0
- package/dist/types.d.cts.map +1 -0
- package/dist/types.d.ts +669 -656
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +46 -45
- package/dist/types.js.map +1 -0
- package/dist/utils/anthropic.cjs +598 -821
- package/dist/utils/anthropic.cjs.map +1 -0
- package/dist/utils/anthropic.js +597 -818
- package/dist/utils/anthropic.js.map +1 -0
- package/dist/utils/common.cjs +130 -211
- package/dist/utils/common.cjs.map +1 -0
- package/dist/utils/common.d.cts +13 -0
- package/dist/utils/common.d.cts.map +1 -0
- package/dist/utils/common.d.ts +12 -7
- package/dist/utils/common.d.ts.map +1 -0
- package/dist/utils/common.js +128 -207
- package/dist/utils/common.js.map +1 -0
- package/dist/utils/failed_handler.cjs +28 -30
- package/dist/utils/failed_handler.cjs.map +1 -0
- package/dist/utils/failed_handler.d.cts +9 -0
- package/dist/utils/failed_handler.d.cts.map +1 -0
- package/dist/utils/failed_handler.d.ts +8 -2
- package/dist/utils/failed_handler.d.ts.map +1 -0
- package/dist/utils/failed_handler.js +28 -28
- package/dist/utils/failed_handler.js.map +1 -0
- package/dist/utils/gemini.cjs +1020 -1488
- package/dist/utils/gemini.cjs.map +1 -0
- package/dist/utils/gemini.d.cts +51 -0
- package/dist/utils/gemini.d.cts.map +1 -0
- package/dist/utils/gemini.d.ts +51 -48
- package/dist/utils/gemini.d.ts.map +1 -0
- package/dist/utils/gemini.js +1015 -1479
- package/dist/utils/gemini.js.map +1 -0
- package/dist/utils/index.cjs +38 -23
- package/dist/utils/index.d.cts +8 -0
- package/dist/utils/index.d.ts +8 -7
- package/dist/utils/index.js +8 -7
- package/dist/utils/palm.d.cts +11 -0
- package/dist/utils/palm.d.cts.map +1 -0
- package/dist/utils/palm.d.ts +9 -4
- package/dist/utils/palm.d.ts.map +1 -0
- package/dist/utils/safety.cjs +13 -22
- package/dist/utils/safety.cjs.map +1 -0
- package/dist/utils/safety.d.cts +12 -0
- package/dist/utils/safety.d.cts.map +1 -0
- package/dist/utils/safety.d.ts +10 -4
- package/dist/utils/safety.d.ts.map +1 -0
- package/dist/utils/safety.js +13 -19
- package/dist/utils/safety.js.map +1 -0
- package/dist/utils/stream.cjs +296 -475
- package/dist/utils/stream.cjs.map +1 -0
- package/dist/utils/stream.d.cts +165 -0
- package/dist/utils/stream.d.cts.map +1 -0
- package/dist/utils/stream.d.ts +156 -131
- package/dist/utils/stream.d.ts.map +1 -0
- package/dist/utils/stream.js +293 -469
- package/dist/utils/stream.js.map +1 -0
- package/dist/utils/zod_to_gemini_parameters.cjs +43 -81
- package/dist/utils/zod_to_gemini_parameters.cjs.map +1 -0
- package/dist/utils/zod_to_gemini_parameters.d.cts +22 -0
- package/dist/utils/zod_to_gemini_parameters.d.cts.map +1 -0
- package/dist/utils/zod_to_gemini_parameters.d.ts +21 -6
- package/dist/utils/zod_to_gemini_parameters.d.ts.map +1 -0
- package/dist/utils/zod_to_gemini_parameters.js +40 -76
- package/dist/utils/zod_to_gemini_parameters.js.map +1 -0
- package/package.json +69 -85
- package/dist/types-anthropic.cjs +0 -2
- package/dist/types-anthropic.js +0 -1
- package/dist/utils/anthropic.d.ts +0 -4
- package/dist/utils/palm.cjs +0 -2
- package/dist/utils/palm.js +0 -1
- package/experimental/media.cjs +0 -1
- package/experimental/media.d.cts +0 -1
- package/experimental/media.d.ts +0 -1
- package/experimental/media.js +0 -1
- package/experimental/utils/media_core.cjs +0 -1
- package/experimental/utils/media_core.d.cts +0 -1
- package/experimental/utils/media_core.d.ts +0 -1
- package/experimental/utils/media_core.js +0 -1
- package/index.cjs +0 -1
- package/index.d.cts +0 -1
- package/index.d.ts +0 -1
- package/index.js +0 -1
- package/types.cjs +0 -1
- package/types.d.cts +0 -1
- package/types.d.ts +0 -1
- package/types.js +0 -1
- package/utils.cjs +0 -1
- package/utils.d.cts +0 -1
- package/utils.d.ts +0 -1
- package/utils.js +0 -1
|
@@ -1,78 +1,81 @@
|
|
|
1
1
|
import { BaseStore } from "@langchain/core/stores";
|
|
2
2
|
import { Serializable } from "@langchain/core/load/serializable";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
|
|
4
|
+
//#region src/experimental/utils/media_core.d.ts
|
|
5
|
+
type MediaBlobData = {
|
|
6
|
+
value: string; // In Base64 encoding
|
|
7
|
+
type: string; // The mime type and possibly encoding
|
|
6
8
|
};
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
interface MediaBlobParameters {
|
|
10
|
+
data?: MediaBlobData;
|
|
11
|
+
metadata?: Record<string, unknown>;
|
|
12
|
+
path?: string;
|
|
11
13
|
}
|
|
12
14
|
/**
|
|
13
15
|
* Represents a chunk of data that can be identified by the path where the
|
|
14
16
|
* data is (or will be) located, along with optional metadata about the data.
|
|
15
17
|
*/
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
18
|
+
declare class MediaBlob extends Serializable implements MediaBlobParameters {
|
|
19
|
+
lc_serializable: boolean;
|
|
20
|
+
lc_namespace: string[];
|
|
21
|
+
data: MediaBlobData;
|
|
22
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
23
|
+
metadata?: Record<string, any>;
|
|
24
|
+
path?: string;
|
|
25
|
+
constructor(params: MediaBlobParameters);
|
|
26
|
+
get size(): number;
|
|
27
|
+
get dataType(): string;
|
|
28
|
+
get encoding(): string;
|
|
29
|
+
get mimetype(): string;
|
|
30
|
+
get asBytes(): Uint8Array;
|
|
31
|
+
asString(): Promise<string>;
|
|
32
|
+
asBase64(): Promise<string>;
|
|
33
|
+
asDataUrl(): Promise<string>;
|
|
34
|
+
asUri(): Promise<string>;
|
|
35
|
+
encode(): Promise<{
|
|
36
|
+
encoded: string;
|
|
37
|
+
encoding: string;
|
|
38
|
+
}>;
|
|
39
|
+
static fromDataUrl(url: string): MediaBlob;
|
|
40
|
+
static fromBlob(blob: Blob, other?: Omit<MediaBlobParameters, "data">): Promise<MediaBlob>;
|
|
38
41
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
42
|
+
type ActionIfInvalidAction = "ignore" | "prefixPath" | "prefixUuid1" | "prefixUuid4" | "prefixUuid6" | "prefixUuid7" | "removePath";
|
|
43
|
+
interface BlobStoreStoreOptions {
|
|
44
|
+
/**
|
|
45
|
+
* If the path is missing or invalid in the blob, how should we create
|
|
46
|
+
* a new path?
|
|
47
|
+
* Subclasses may define their own methods, but the following are supported
|
|
48
|
+
* by default:
|
|
49
|
+
* - Undefined or an emtpy string: Reject the blob
|
|
50
|
+
* - "ignore": Attempt to store it anyway (but this may fail)
|
|
51
|
+
* - "prefixPath": Use the default prefix for the BlobStore and get the
|
|
52
|
+
* unique portion from the URL. The original path is stored in the metadata
|
|
53
|
+
* - "prefixUuid": Use the default prefix for the BlobStore and get the
|
|
54
|
+
* unique portion from a generated UUID. The original path is stored
|
|
55
|
+
* in the metadata
|
|
56
|
+
*/
|
|
57
|
+
actionIfInvalid?: ActionIfInvalidAction;
|
|
58
|
+
/**
|
|
59
|
+
* The expected prefix for URIs that are stored.
|
|
60
|
+
* This may be used to test if a MediaBlob is valid and used to create a new
|
|
61
|
+
* path if "prefixPath" or "prefixUuid" is set for actionIfInvalid.
|
|
62
|
+
*/
|
|
63
|
+
pathPrefix?: string;
|
|
61
64
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
65
|
+
type ActionIfBlobMissingAction = "emptyBlob";
|
|
66
|
+
interface BlobStoreFetchOptions {
|
|
67
|
+
/**
|
|
68
|
+
* If the blob is not found when fetching, what should we do?
|
|
69
|
+
* Subclasses may define their own methods, but the following are supported
|
|
70
|
+
* by default:
|
|
71
|
+
* - Undefined or an empty string: return undefined
|
|
72
|
+
* - "emptyBlob": return a new MediaBlob that has the path set, but nothing else.
|
|
73
|
+
*/
|
|
74
|
+
actionIfBlobMissing?: ActionIfBlobMissingAction;
|
|
72
75
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
+
interface BlobStoreOptions {
|
|
77
|
+
defaultStoreOptions?: BlobStoreStoreOptions;
|
|
78
|
+
defaultFetchOptions?: BlobStoreFetchOptions;
|
|
76
79
|
}
|
|
77
80
|
/**
|
|
78
81
|
* A specialized Store that is designed to handle MediaBlobs and use the
|
|
@@ -86,104 +89,104 @@ export interface BlobStoreOptions {
|
|
|
86
89
|
* BaseStore may be implemented (or even possible). Those that are not
|
|
87
90
|
* implemented should be documented and throw an Error if called.
|
|
88
91
|
*/
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
92
|
+
declare abstract class BlobStore extends BaseStore<string, MediaBlob> {
|
|
93
|
+
lc_namespace: string[]; // FIXME - What should this be? And why?
|
|
94
|
+
defaultStoreOptions: BlobStoreStoreOptions;
|
|
95
|
+
defaultFetchOptions: BlobStoreFetchOptions;
|
|
96
|
+
constructor(opts?: BlobStoreOptions);
|
|
97
|
+
protected _realKey(key: string | MediaBlob): Promise<string>;
|
|
98
|
+
/**
|
|
99
|
+
* Is the path supported by this BlobStore?
|
|
100
|
+
*
|
|
101
|
+
* Although this is async, this is expected to be a relatively fast operation
|
|
102
|
+
* (ie - you shouldn't make network calls).
|
|
103
|
+
*
|
|
104
|
+
* @param path The path to check
|
|
105
|
+
* @param opts Any options (if needed) that may be used to determine if it is valid
|
|
106
|
+
* @return If the path is supported
|
|
107
|
+
*/
|
|
108
|
+
hasValidPath(path: string | undefined, opts?: BlobStoreStoreOptions): Promise<boolean>;
|
|
109
|
+
protected _blobPathSuffix(blob: MediaBlob): string;
|
|
110
|
+
protected _newBlob(oldBlob: MediaBlob, newPath?: string): Promise<MediaBlob>;
|
|
111
|
+
protected _validBlobPrefixPath(blob: MediaBlob, opts?: BlobStoreStoreOptions): Promise<MediaBlob>;
|
|
112
|
+
protected _validBlobPrefixUuidFunction(name: ActionIfInvalidAction | string): string;
|
|
113
|
+
protected _validBlobPrefixUuid(blob: MediaBlob, opts?: BlobStoreStoreOptions): Promise<MediaBlob>;
|
|
114
|
+
protected _validBlobRemovePath(blob: MediaBlob, _opts?: BlobStoreStoreOptions): Promise<MediaBlob>;
|
|
115
|
+
/**
|
|
116
|
+
* Based on the blob and options, return a blob that has a valid path
|
|
117
|
+
* that can be saved.
|
|
118
|
+
* @param blob
|
|
119
|
+
* @param opts
|
|
120
|
+
*/
|
|
121
|
+
protected _validStoreBlob(blob: MediaBlob, opts?: BlobStoreStoreOptions): Promise<MediaBlob | undefined>;
|
|
122
|
+
store(blob: MediaBlob, opts?: BlobStoreStoreOptions): Promise<MediaBlob | undefined>;
|
|
123
|
+
protected _missingFetchBlobEmpty(path: string, _opts?: BlobStoreFetchOptions): Promise<MediaBlob>;
|
|
124
|
+
protected _missingFetchBlob(path: string, opts?: BlobStoreFetchOptions): Promise<MediaBlob | undefined>;
|
|
125
|
+
fetch(key: string | MediaBlob, opts?: BlobStoreFetchOptions): Promise<MediaBlob | undefined>;
|
|
123
126
|
}
|
|
124
|
-
|
|
125
|
-
|
|
127
|
+
interface BackedBlobStoreOptions extends BlobStoreOptions {
|
|
128
|
+
backingStore: BaseStore<string, MediaBlob>;
|
|
126
129
|
}
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
130
|
+
declare class BackedBlobStore extends BlobStore {
|
|
131
|
+
backingStore: BaseStore<string, MediaBlob>;
|
|
132
|
+
constructor(opts: BackedBlobStoreOptions);
|
|
133
|
+
mdelete(keys: string[]): Promise<void>;
|
|
134
|
+
mget(keys: string[]): Promise<(MediaBlob | undefined)[]>;
|
|
135
|
+
mset(keyValuePairs: [string, MediaBlob][]): Promise<void>;
|
|
136
|
+
yieldKeys(prefix: string | undefined): AsyncGenerator<string>;
|
|
134
137
|
}
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
+
interface ReadThroughBlobStoreOptions extends BlobStoreOptions {
|
|
139
|
+
baseStore: BlobStore;
|
|
140
|
+
backingStore: BlobStore;
|
|
138
141
|
}
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
142
|
+
declare class ReadThroughBlobStore extends BlobStore {
|
|
143
|
+
baseStore: BlobStore;
|
|
144
|
+
backingStore: BlobStore;
|
|
145
|
+
constructor(opts: ReadThroughBlobStoreOptions);
|
|
146
|
+
store(blob: MediaBlob, opts?: BlobStoreStoreOptions): Promise<MediaBlob | undefined>;
|
|
147
|
+
mdelete(keys: string[]): Promise<void>;
|
|
148
|
+
mget(keys: string[]): Promise<(MediaBlob | undefined)[]>;
|
|
149
|
+
mset(_keyValuePairs: [string, MediaBlob][]): Promise<void>;
|
|
150
|
+
yieldKeys(prefix: string | undefined): AsyncGenerator<string>;
|
|
148
151
|
}
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
152
|
+
declare class SimpleWebBlobStore extends BlobStore {
|
|
153
|
+
_notImplementedException(): void;
|
|
154
|
+
hasValidPath(path: string | undefined, _opts?: BlobStoreStoreOptions): Promise<boolean>;
|
|
155
|
+
_fetch(url: string): Promise<MediaBlob | undefined>;
|
|
156
|
+
mget(keys: string[]): Promise<(MediaBlob | undefined)[]>;
|
|
157
|
+
mdelete(_keys: string[]): Promise<void>;
|
|
158
|
+
mset(_keyValuePairs: [string, MediaBlob][]): Promise<void>;
|
|
159
|
+
yieldKeys(_prefix: string | undefined): AsyncGenerator<string>;
|
|
157
160
|
}
|
|
158
161
|
/**
|
|
159
162
|
* A blob "store" that works with data: URLs that will turn the URL into
|
|
160
163
|
* a blob.
|
|
161
164
|
*/
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
165
|
+
declare class DataBlobStore extends BlobStore {
|
|
166
|
+
_notImplementedException(): void;
|
|
167
|
+
hasValidPath(path: string, _opts?: BlobStoreStoreOptions): Promise<boolean>;
|
|
168
|
+
_fetch(url: string): MediaBlob;
|
|
169
|
+
mget(keys: string[]): Promise<(MediaBlob | undefined)[]>;
|
|
170
|
+
mdelete(_keys: string[]): Promise<void>;
|
|
171
|
+
mset(_keyValuePairs: [string, MediaBlob][]): Promise<void>;
|
|
172
|
+
yieldKeys(_prefix: string | undefined): AsyncGenerator<string>;
|
|
170
173
|
}
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
174
|
+
interface MediaManagerConfiguration {
|
|
175
|
+
/**
|
|
176
|
+
* A store that, given a common URI, returns the corresponding MediaBlob.
|
|
177
|
+
* The returned MediaBlob may have a different URI.
|
|
178
|
+
* In many cases, this will be a ReadThroughStore or something similar
|
|
179
|
+
* that has a cached version of the MediaBlob, but also a way to get
|
|
180
|
+
* a new (or refreshed) version.
|
|
181
|
+
*/
|
|
182
|
+
store: BlobStore;
|
|
183
|
+
/**
|
|
184
|
+
* BlobStores that can resolve a URL into the MediaBlob to save
|
|
185
|
+
* in the canonical store. This list is evaluated in order.
|
|
186
|
+
* If not provided, a default list (which involves a DataBlobStore
|
|
187
|
+
* and a SimpleWebBlobStore) will be used.
|
|
188
|
+
*/
|
|
189
|
+
resolvers?: BlobStore[];
|
|
187
190
|
}
|
|
188
191
|
/**
|
|
189
192
|
* Responsible for converting a URI (typically a web URL) into a MediaBlob.
|
|
@@ -192,18 +195,21 @@ export interface MediaManagerConfiguration {
|
|
|
192
195
|
* through the Base64 of the media or through a canonical URI that the LLM
|
|
193
196
|
* supports.
|
|
194
197
|
*/
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
198
|
+
declare class MediaManager {
|
|
199
|
+
store: BlobStore;
|
|
200
|
+
resolvers: BlobStore[] | undefined;
|
|
201
|
+
constructor(config: MediaManagerConfiguration);
|
|
202
|
+
defaultResolvers(): BlobStore[];
|
|
203
|
+
_isInvalid(blob: MediaBlob | undefined): Promise<boolean>;
|
|
204
|
+
/**
|
|
205
|
+
* Given the public URI, load what is at this URI and save it
|
|
206
|
+
* in the store.
|
|
207
|
+
* @param uri The URI to resolve using the resolver
|
|
208
|
+
* @return A canonical MediaBlob for this URI
|
|
209
|
+
*/
|
|
210
|
+
_resolveAndSave(uri: string): Promise<MediaBlob | undefined>;
|
|
211
|
+
getMediaBlob(uri: string): Promise<MediaBlob | undefined>;
|
|
209
212
|
}
|
|
213
|
+
//#endregion
|
|
214
|
+
export { ActionIfBlobMissingAction, ActionIfInvalidAction, BackedBlobStore, BackedBlobStoreOptions, BlobStore, BlobStoreFetchOptions, BlobStoreOptions, BlobStoreStoreOptions, DataBlobStore, MediaBlob, MediaBlobData, MediaBlobParameters, MediaManager, MediaManagerConfiguration, ReadThroughBlobStore, ReadThroughBlobStoreOptions, SimpleWebBlobStore };
|
|
215
|
+
//# sourceMappingURL=media_core.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media_core.d.ts","names":["BaseStore","Serializable","MediaBlobData","MediaBlobParameters","Record","MediaBlob","Uint8Array","Promise","Blob","Omit","ActionIfInvalidAction","BlobStoreStoreOptions","ActionIfBlobMissingAction","BlobStoreFetchOptions","BlobStoreOptions","BlobStore","BackedBlobStoreOptions","BackedBlobStore","AsyncGenerator","ReadThroughBlobStoreOptions","ReadThroughBlobStore","SimpleWebBlobStore","DataBlobStore","MediaManagerConfiguration","MediaManager"],"sources":["../../../src/experimental/utils/media_core.d.ts"],"sourcesContent":["import { BaseStore } from \"@langchain/core/stores\";\nimport { Serializable } from \"@langchain/core/load/serializable\";\nexport type MediaBlobData = {\n value: string; // In Base64 encoding\n type: string; // The mime type and possibly encoding\n};\nexport interface MediaBlobParameters {\n data?: MediaBlobData;\n metadata?: Record<string, unknown>;\n path?: string;\n}\n/**\n * Represents a chunk of data that can be identified by the path where the\n * data is (or will be) located, along with optional metadata about the data.\n */\nexport declare class MediaBlob extends Serializable implements MediaBlobParameters {\n lc_serializable: boolean;\n lc_namespace: string[];\n data: MediaBlobData;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n metadata?: Record<string, any>;\n path?: string;\n constructor(params: MediaBlobParameters);\n get size(): number;\n get dataType(): string;\n get encoding(): string;\n get mimetype(): string;\n get asBytes(): Uint8Array;\n asString(): Promise<string>;\n asBase64(): Promise<string>;\n asDataUrl(): Promise<string>;\n asUri(): Promise<string>;\n encode(): Promise<{\n encoded: string;\n encoding: string;\n }>;\n static fromDataUrl(url: string): MediaBlob;\n static fromBlob(blob: Blob, other?: Omit<MediaBlobParameters, \"data\">): Promise<MediaBlob>;\n}\nexport type ActionIfInvalidAction = \"ignore\" | \"prefixPath\" | \"prefixUuid1\" | \"prefixUuid4\" | \"prefixUuid6\" | \"prefixUuid7\" | \"removePath\";\nexport interface BlobStoreStoreOptions {\n /**\n * If the path is missing or invalid in the blob, how should we create\n * a new path?\n * Subclasses may define their own methods, but the following are supported\n * by default:\n * - Undefined or an emtpy string: Reject the blob\n * - \"ignore\": Attempt to store it anyway (but this may fail)\n * - \"prefixPath\": Use the default prefix for the BlobStore and get the\n * unique portion from the URL. The original path is stored in the metadata\n * - \"prefixUuid\": Use the default prefix for the BlobStore and get the\n * unique portion from a generated UUID. The original path is stored\n * in the metadata\n */\n actionIfInvalid?: ActionIfInvalidAction;\n /**\n * The expected prefix for URIs that are stored.\n * This may be used to test if a MediaBlob is valid and used to create a new\n * path if \"prefixPath\" or \"prefixUuid\" is set for actionIfInvalid.\n */\n pathPrefix?: string;\n}\nexport type ActionIfBlobMissingAction = \"emptyBlob\";\nexport interface BlobStoreFetchOptions {\n /**\n * If the blob is not found when fetching, what should we do?\n * Subclasses may define their own methods, but the following are supported\n * by default:\n * - Undefined or an empty string: return undefined\n * - \"emptyBlob\": return a new MediaBlob that has the path set, but nothing else.\n */\n actionIfBlobMissing?: ActionIfBlobMissingAction;\n}\nexport interface BlobStoreOptions {\n defaultStoreOptions?: BlobStoreStoreOptions;\n defaultFetchOptions?: BlobStoreFetchOptions;\n}\n/**\n * A specialized Store that is designed to handle MediaBlobs and use the\n * key that is included in the blob to determine exactly how it is stored.\n *\n * The full details of a MediaBlob may be changed when it is stored.\n * For example, it may get additional or different Metadata. This should be\n * what is returned when the store() method is called.\n *\n * Although BlobStore extends BaseStore, not all of the methods from\n * BaseStore may be implemented (or even possible). Those that are not\n * implemented should be documented and throw an Error if called.\n */\nexport declare abstract class BlobStore extends BaseStore<string, MediaBlob> {\n lc_namespace: string[]; // FIXME - What should this be? And why?\n defaultStoreOptions: BlobStoreStoreOptions;\n defaultFetchOptions: BlobStoreFetchOptions;\n constructor(opts?: BlobStoreOptions);\n protected _realKey(key: string | MediaBlob): Promise<string>;\n /**\n * Is the path supported by this BlobStore?\n *\n * Although this is async, this is expected to be a relatively fast operation\n * (ie - you shouldn't make network calls).\n *\n * @param path The path to check\n * @param opts Any options (if needed) that may be used to determine if it is valid\n * @return If the path is supported\n */\n hasValidPath(path: string | undefined, opts?: BlobStoreStoreOptions): Promise<boolean>;\n protected _blobPathSuffix(blob: MediaBlob): string;\n protected _newBlob(oldBlob: MediaBlob, newPath?: string): Promise<MediaBlob>;\n protected _validBlobPrefixPath(blob: MediaBlob, opts?: BlobStoreStoreOptions): Promise<MediaBlob>;\n protected _validBlobPrefixUuidFunction(name: ActionIfInvalidAction | string): string;\n protected _validBlobPrefixUuid(blob: MediaBlob, opts?: BlobStoreStoreOptions): Promise<MediaBlob>;\n protected _validBlobRemovePath(blob: MediaBlob, _opts?: BlobStoreStoreOptions): Promise<MediaBlob>;\n /**\n * Based on the blob and options, return a blob that has a valid path\n * that can be saved.\n * @param blob\n * @param opts\n */\n protected _validStoreBlob(blob: MediaBlob, opts?: BlobStoreStoreOptions): Promise<MediaBlob | undefined>;\n store(blob: MediaBlob, opts?: BlobStoreStoreOptions): Promise<MediaBlob | undefined>;\n protected _missingFetchBlobEmpty(path: string, _opts?: BlobStoreFetchOptions): Promise<MediaBlob>;\n protected _missingFetchBlob(path: string, opts?: BlobStoreFetchOptions): Promise<MediaBlob | undefined>;\n fetch(key: string | MediaBlob, opts?: BlobStoreFetchOptions): Promise<MediaBlob | undefined>;\n}\nexport interface BackedBlobStoreOptions extends BlobStoreOptions {\n backingStore: BaseStore<string, MediaBlob>;\n}\nexport declare class BackedBlobStore extends BlobStore {\n backingStore: BaseStore<string, MediaBlob>;\n constructor(opts: BackedBlobStoreOptions);\n mdelete(keys: string[]): Promise<void>;\n mget(keys: string[]): Promise<(MediaBlob | undefined)[]>;\n mset(keyValuePairs: [string, MediaBlob][]): Promise<void>;\n yieldKeys(prefix: string | undefined): AsyncGenerator<string>;\n}\nexport interface ReadThroughBlobStoreOptions extends BlobStoreOptions {\n baseStore: BlobStore;\n backingStore: BlobStore;\n}\nexport declare class ReadThroughBlobStore extends BlobStore {\n baseStore: BlobStore;\n backingStore: BlobStore;\n constructor(opts: ReadThroughBlobStoreOptions);\n store(blob: MediaBlob, opts?: BlobStoreStoreOptions): Promise<MediaBlob | undefined>;\n mdelete(keys: string[]): Promise<void>;\n mget(keys: string[]): Promise<(MediaBlob | undefined)[]>;\n mset(_keyValuePairs: [string, MediaBlob][]): Promise<void>;\n yieldKeys(prefix: string | undefined): AsyncGenerator<string>;\n}\nexport declare class SimpleWebBlobStore extends BlobStore {\n _notImplementedException(): void;\n hasValidPath(path: string | undefined, _opts?: BlobStoreStoreOptions): Promise<boolean>;\n _fetch(url: string): Promise<MediaBlob | undefined>;\n mget(keys: string[]): Promise<(MediaBlob | undefined)[]>;\n mdelete(_keys: string[]): Promise<void>;\n mset(_keyValuePairs: [string, MediaBlob][]): Promise<void>;\n yieldKeys(_prefix: string | undefined): AsyncGenerator<string>;\n}\n/**\n * A blob \"store\" that works with data: URLs that will turn the URL into\n * a blob.\n */\nexport declare class DataBlobStore extends BlobStore {\n _notImplementedException(): void;\n hasValidPath(path: string, _opts?: BlobStoreStoreOptions): Promise<boolean>;\n _fetch(url: string): MediaBlob;\n mget(keys: string[]): Promise<(MediaBlob | undefined)[]>;\n mdelete(_keys: string[]): Promise<void>;\n mset(_keyValuePairs: [string, MediaBlob][]): Promise<void>;\n yieldKeys(_prefix: string | undefined): AsyncGenerator<string>;\n}\nexport interface MediaManagerConfiguration {\n /**\n * A store that, given a common URI, returns the corresponding MediaBlob.\n * The returned MediaBlob may have a different URI.\n * In many cases, this will be a ReadThroughStore or something similar\n * that has a cached version of the MediaBlob, but also a way to get\n * a new (or refreshed) version.\n */\n store: BlobStore;\n /**\n * BlobStores that can resolve a URL into the MediaBlob to save\n * in the canonical store. This list is evaluated in order.\n * If not provided, a default list (which involves a DataBlobStore\n * and a SimpleWebBlobStore) will be used.\n */\n resolvers?: BlobStore[];\n}\n/**\n * Responsible for converting a URI (typically a web URL) into a MediaBlob.\n * Allows for aliasing / caching of the requested URI and what it resolves to.\n * This MediaBlob is expected to be usable to provide to an LLM, either\n * through the Base64 of the media or through a canonical URI that the LLM\n * supports.\n */\nexport declare class MediaManager {\n store: BlobStore;\n resolvers: BlobStore[] | undefined;\n constructor(config: MediaManagerConfiguration);\n defaultResolvers(): BlobStore[];\n _isInvalid(blob: MediaBlob | undefined): Promise<boolean>;\n /**\n * Given the public URI, load what is at this URI and save it\n * in the store.\n * @param uri The URI to resolve using the resolver\n * @return A canonical MediaBlob for this URI\n */\n _resolveAndSave(uri: string): Promise<MediaBlob | undefined>;\n getMediaBlob(uri: string): Promise<MediaBlob | undefined>;\n}\n"],"mappings":"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"}
|