chromadb 1.5.5 → 1.5.7
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/README.md +10 -5
- package/dist/main/ChromaClient.d.ts +6 -4
- package/dist/main/ChromaClient.d.ts.map +1 -1
- package/dist/main/ChromaClient.js +10 -3
- package/dist/main/ChromaClient.js.map +1 -1
- package/dist/main/auth.d.ts +83 -0
- package/dist/main/auth.d.ts.map +1 -0
- package/dist/main/auth.js +153 -0
- package/dist/main/auth.js.map +1 -0
- package/dist/main/embeddings/OpenAIEmbeddingFunction.d.ts +2 -1
- package/dist/main/embeddings/OpenAIEmbeddingFunction.d.ts.map +1 -1
- package/dist/main/embeddings/OpenAIEmbeddingFunction.js +71 -14
- package/dist/main/embeddings/OpenAIEmbeddingFunction.js.map +1 -1
- package/dist/main/embeddings/TransformersEmbeddingFunction.d.ts.map +1 -1
- package/dist/main/embeddings/TransformersEmbeddingFunction.js +4 -5
- package/dist/main/embeddings/TransformersEmbeddingFunction.js.map +1 -1
- package/dist/main/embeddings/WebAIEmbeddingFunction.d.ts +14 -3
- package/dist/main/embeddings/WebAIEmbeddingFunction.d.ts.map +1 -1
- package/dist/main/embeddings/WebAIEmbeddingFunction.js +156 -54
- package/dist/main/embeddings/WebAIEmbeddingFunction.js.map +1 -1
- package/dist/main/generated/api.d.ts +16 -50
- package/dist/main/generated/api.d.ts.map +1 -1
- package/dist/main/generated/api.js +0 -137
- package/dist/main/generated/api.js.map +1 -1
- package/dist/main/generated/models.d.ts +0 -17
- package/dist/main/generated/models.d.ts.map +1 -1
- package/dist/main/generated/models.js.map +1 -1
- package/dist/main/utils.d.ts +12 -0
- package/dist/main/utils.d.ts.map +1 -1
- package/dist/main/utils.js +16 -1
- package/dist/main/utils.js.map +1 -1
- package/dist/module/ChromaClient.d.ts +6 -4
- package/dist/module/ChromaClient.d.ts.map +1 -1
- package/dist/module/ChromaClient.js +10 -3
- package/dist/module/ChromaClient.js.map +1 -1
- package/dist/module/auth.d.ts +83 -0
- package/dist/module/auth.d.ts.map +1 -0
- package/dist/module/auth.js +148 -0
- package/dist/module/auth.js.map +1 -0
- package/dist/module/embeddings/OpenAIEmbeddingFunction.d.ts +2 -1
- package/dist/module/embeddings/OpenAIEmbeddingFunction.d.ts.map +1 -1
- package/dist/module/embeddings/OpenAIEmbeddingFunction.js +71 -14
- package/dist/module/embeddings/OpenAIEmbeddingFunction.js.map +1 -1
- package/dist/module/embeddings/TransformersEmbeddingFunction.d.ts.map +1 -1
- package/dist/module/embeddings/TransformersEmbeddingFunction.js +4 -5
- package/dist/module/embeddings/TransformersEmbeddingFunction.js.map +1 -1
- package/dist/module/embeddings/WebAIEmbeddingFunction.d.ts +14 -3
- package/dist/module/embeddings/WebAIEmbeddingFunction.d.ts.map +1 -1
- package/dist/module/embeddings/WebAIEmbeddingFunction.js +156 -54
- package/dist/module/embeddings/WebAIEmbeddingFunction.js.map +1 -1
- package/dist/module/generated/api.d.ts +16 -50
- package/dist/module/generated/api.d.ts.map +1 -1
- package/dist/module/generated/api.js +0 -137
- package/dist/module/generated/api.js.map +1 -1
- package/dist/module/generated/models.d.ts +0 -17
- package/dist/module/generated/models.d.ts.map +1 -1
- package/dist/module/generated/models.js.map +1 -1
- package/dist/module/utils.d.ts +12 -0
- package/dist/module/utils.d.ts.map +1 -1
- package/dist/module/utils.js +14 -0
- package/dist/module/utils.js.map +1 -1
- package/package.json +42 -7
- package/src/ChromaClient.ts +20 -6
- package/src/auth.ts +228 -0
- package/src/embeddings/OpenAIEmbeddingFunction.ts +99 -22
- package/src/embeddings/TransformersEmbeddingFunction.ts +4 -5
- package/src/embeddings/WebAIEmbeddingFunction.ts +193 -62
- package/src/generated/api.ts +4 -151
- package/src/generated/models.ts +0 -24
- package/src/utils.ts +63 -45
package/README.md
CHANGED
|
@@ -19,14 +19,19 @@ Chroma needs to be running in order for this client to talk to it. Please see th
|
|
|
19
19
|
|
|
20
20
|
```js
|
|
21
21
|
import { ChromaClient } from "chromadb";
|
|
22
|
-
const chroma = new ChromaClient("http://localhost:8000");
|
|
23
|
-
const collection = await chroma.createCollection("test-from-js");
|
|
22
|
+
const chroma = new ChromaClient({ path: "http://localhost:8000" });
|
|
23
|
+
const collection = await chroma.createCollection({ name: "test-from-js" });
|
|
24
24
|
for (let i = 0; i < 20; i++) {
|
|
25
|
-
await collection.add(
|
|
26
|
-
|
|
25
|
+
await collection.add({
|
|
26
|
+
ids: ["test-id-" + i.toString()],
|
|
27
|
+
embeddings, [1, 2, 3, 4, 5],
|
|
28
|
+
documents: ["test"],
|
|
27
29
|
});
|
|
28
30
|
}
|
|
29
|
-
const queryData = await collection.query(
|
|
31
|
+
const queryData = await collection.query({
|
|
32
|
+
queryEmbeddings: [1, 2, 3, 4, 5],
|
|
33
|
+
queryTexts: ["test"],
|
|
34
|
+
});
|
|
30
35
|
```
|
|
31
36
|
|
|
32
37
|
## Local development
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { IEmbeddingFunction } from './embeddings/IEmbeddingFunction';
|
|
2
|
-
import { Api } from "./generated";
|
|
3
2
|
import { Collection } from './Collection';
|
|
4
3
|
import { CollectionMetadata, CollectionType } from './types';
|
|
4
|
+
import { AuthOptions } from "./auth";
|
|
5
5
|
export declare class ChromaClient {
|
|
6
6
|
/**
|
|
7
7
|
* @ignore
|
|
8
8
|
*/
|
|
9
9
|
private api;
|
|
10
|
+
private apiAdapter;
|
|
10
11
|
/**
|
|
11
12
|
* Creates a new ChromaClient instance.
|
|
12
13
|
* @param {Object} params - The parameters for creating a new client
|
|
@@ -20,14 +21,15 @@ export declare class ChromaClient {
|
|
|
20
21
|
* });
|
|
21
22
|
* ```
|
|
22
23
|
*/
|
|
23
|
-
constructor({ path, fetchOptions }?: {
|
|
24
|
+
constructor({ path, fetchOptions, auth, }?: {
|
|
24
25
|
path?: string;
|
|
25
26
|
fetchOptions?: RequestInit;
|
|
27
|
+
auth?: AuthOptions;
|
|
26
28
|
});
|
|
27
29
|
/**
|
|
28
30
|
* Resets the state of the object by making an API call to the reset endpoint.
|
|
29
31
|
*
|
|
30
|
-
* @returns {Promise<
|
|
32
|
+
* @returns {Promise<boolean>} A promise that resolves when the reset operation is complete.
|
|
31
33
|
* @throws {Error} If there is an issue resetting the state.
|
|
32
34
|
*
|
|
33
35
|
* @example
|
|
@@ -35,7 +37,7 @@ export declare class ChromaClient {
|
|
|
35
37
|
* await client.reset();
|
|
36
38
|
* ```
|
|
37
39
|
*/
|
|
38
|
-
reset(): Promise<
|
|
40
|
+
reset(): Promise<boolean>;
|
|
39
41
|
/**
|
|
40
42
|
* Returns the version of the Chroma API.
|
|
41
43
|
* @returns {Promise<string>} A promise that resolves to the version of the Chroma API.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChromaClient.d.ts","sourceRoot":"","sources":["../../src/ChromaClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"ChromaClient.d.ts","sourceRoot":"","sources":["../../src/ChromaClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAGrE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAiB,MAAM,SAAS,CAAC;AAC5E,OAAO,EACH,WAAW,EAGd,MAAM,QAAQ,CAAC;AAGhB,qBAAa,YAAY;IACrB;;OAEG;IACH,OAAO,CAAC,GAAG,CAA6B;IACxC,OAAO,CAAC,UAAU,CAA2C;IAE7D;;;;;;;;;;;;OAYG;gBACS,EACR,IAAI,EACJ,YAAY,EACZ,IAAI,GACP,GAAE;QACC,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,WAAW,CAAC;QAC3B,IAAI,CAAC,EAAE,WAAW,CAAC;KACjB;IAeN;;;;;;;;;;OAUG;IACU,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;IAItC;;;;;;;;OAQG;IACU,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IAKvC;;;;;;;;OAQG;IACU,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAMzC;;;;;;;;;;;;;;;;;;;;OAoBG;IACU,gBAAgB,CAAC,EAC1B,IAAI,EACJ,QAAQ,EACR,iBAAiB,EACpB,EAAE;QACC,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,kBAAkB,CAAC;QAC9B,iBAAiB,CAAC,EAAE,kBAAkB,CAAA;KACzC,GAAG,OAAO,CAAC,UAAU,CAAC;IAgBvB;;;;;;;;;;;;;;;;;;;;OAoBG;IACU,qBAAqB,CAAC,EAC/B,IAAI,EACJ,QAAQ,EACR,iBAAiB,EACpB,EAAE;QACC,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,kBAAkB,CAAC;QAC9B,iBAAiB,CAAC,EAAE,kBAAkB,CAAA;KACzC,GAAG,OAAO,CAAC,UAAU,CAAC;IAuBvB;;;;;;;;;;OAUG;IACU,eAAe,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAKzD;;;;;;;;;;;;;;OAcG;IACU,aAAa,CAAC,EACvB,IAAI,EACJ,iBAAiB,EACpB,EAAE;QACC,IAAI,EAAE,MAAM,CAAC;QACb,iBAAiB,CAAC,EAAE,kBAAkB,CAAA;KACzC,GAAG,OAAO,CAAC,UAAU,CAAC;IAoBvB;;;;;;;;;;;;;OAaG;IACU,gBAAgB,CAAC,EAC1B,IAAI,EACP,EAAE;QACC,IAAI,EAAE,MAAM,CAAA;KACf,GAAG,OAAO,CAAC,IAAI,CAAC;CAOpB"}
|
|
@@ -4,6 +4,7 @@ exports.ChromaClient = void 0;
|
|
|
4
4
|
const generated_1 = require("./generated");
|
|
5
5
|
const utils_1 = require("./utils");
|
|
6
6
|
const Collection_1 = require("./Collection");
|
|
7
|
+
const auth_1 = require("./auth");
|
|
7
8
|
class ChromaClient {
|
|
8
9
|
/**
|
|
9
10
|
* Creates a new ChromaClient instance.
|
|
@@ -18,19 +19,25 @@ class ChromaClient {
|
|
|
18
19
|
* });
|
|
19
20
|
* ```
|
|
20
21
|
*/
|
|
21
|
-
constructor({ path, fetchOptions } = {}) {
|
|
22
|
+
constructor({ path, fetchOptions, auth, } = {}) {
|
|
22
23
|
if (path === undefined)
|
|
23
24
|
path = "http://localhost:8000";
|
|
24
25
|
const apiConfig = new generated_1.Configuration({
|
|
25
26
|
basePath: path,
|
|
26
27
|
});
|
|
27
|
-
|
|
28
|
+
if (auth !== undefined) {
|
|
29
|
+
this.apiAdapter = new auth_1.IsomorphicFetchClientAuthProtocolAdapter(new generated_1.ApiApi(apiConfig), auth);
|
|
30
|
+
this.api = this.apiAdapter.getApi();
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
this.api = new generated_1.ApiApi(apiConfig);
|
|
34
|
+
}
|
|
28
35
|
this.api.options = fetchOptions !== null && fetchOptions !== void 0 ? fetchOptions : {};
|
|
29
36
|
}
|
|
30
37
|
/**
|
|
31
38
|
* Resets the state of the object by making an API call to the reset endpoint.
|
|
32
39
|
*
|
|
33
|
-
* @returns {Promise<
|
|
40
|
+
* @returns {Promise<boolean>} A promise that resolves when the reset operation is complete.
|
|
34
41
|
* @throws {Error} If there is an issue resetting the state.
|
|
35
42
|
*
|
|
36
43
|
* @example
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChromaClient.js","sourceRoot":"","sources":["../../src/ChromaClient.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"ChromaClient.js","sourceRoot":"","sources":["../../src/ChromaClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { ApiApi as DefaultApi } from "./generated";
|
|
2
|
+
export interface ClientAuthProvider {
|
|
3
|
+
/**
|
|
4
|
+
* Abstract method for authenticating a client.
|
|
5
|
+
*/
|
|
6
|
+
authenticate(): ClientAuthResponse;
|
|
7
|
+
}
|
|
8
|
+
export interface ClientAuthConfigurationProvider<T> {
|
|
9
|
+
/**
|
|
10
|
+
* Abstract method for getting the configuration for the client.
|
|
11
|
+
*/
|
|
12
|
+
getConfig(): T;
|
|
13
|
+
}
|
|
14
|
+
export interface ClientAuthCredentialsProvider<T> {
|
|
15
|
+
/**
|
|
16
|
+
* Abstract method for getting the credentials for the client.
|
|
17
|
+
* @param user
|
|
18
|
+
*/
|
|
19
|
+
getCredentials(user?: string): T;
|
|
20
|
+
}
|
|
21
|
+
declare enum AuthInfoType {
|
|
22
|
+
COOKIE = "cookie",
|
|
23
|
+
HEADER = "header",
|
|
24
|
+
URL = "url",
|
|
25
|
+
METADATA = "metadata"
|
|
26
|
+
}
|
|
27
|
+
export interface ClientAuthResponse {
|
|
28
|
+
getAuthInfoType(): AuthInfoType;
|
|
29
|
+
getAuthInfo(): {
|
|
30
|
+
key: string;
|
|
31
|
+
value: string;
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
export interface AbstractCredentials<T> {
|
|
35
|
+
getCredentials(): T;
|
|
36
|
+
}
|
|
37
|
+
export interface ClientAuthProtocolAdapter<T> {
|
|
38
|
+
injectCredentials(injectionContext: T): T;
|
|
39
|
+
getApi(): any;
|
|
40
|
+
}
|
|
41
|
+
declare class SecretStr {
|
|
42
|
+
private readonly secret;
|
|
43
|
+
constructor(secret: string);
|
|
44
|
+
getSecret(): string;
|
|
45
|
+
}
|
|
46
|
+
declare class BasicAuthCredentials implements AbstractCredentials<SecretStr> {
|
|
47
|
+
private readonly credentials;
|
|
48
|
+
constructor(_creds: string);
|
|
49
|
+
getCredentials(): SecretStr;
|
|
50
|
+
}
|
|
51
|
+
export declare class BasicAuthCredentialsProvider implements ClientAuthCredentialsProvider<BasicAuthCredentials> {
|
|
52
|
+
private readonly credentials;
|
|
53
|
+
/**
|
|
54
|
+
* Creates a new BasicAuthCredentialsProvider. This provider loads credentials from provided text credentials or from the environment variable CHROMA_CLIENT_AUTH_CREDENTIALS.
|
|
55
|
+
* @param _creds - The credentials
|
|
56
|
+
* @throws {Error} If neither credentials provider or text credentials are supplied.
|
|
57
|
+
*/
|
|
58
|
+
constructor(_creds: string | undefined);
|
|
59
|
+
getCredentials(): BasicAuthCredentials;
|
|
60
|
+
}
|
|
61
|
+
export declare class IsomorphicFetchClientAuthProtocolAdapter implements ClientAuthProtocolAdapter<RequestInit> {
|
|
62
|
+
private api;
|
|
63
|
+
authProvider: ClientAuthProvider | undefined;
|
|
64
|
+
wrapperApi: DefaultApi | undefined;
|
|
65
|
+
/**
|
|
66
|
+
* Creates a new adapter of IsomorphicFetchClientAuthProtocolAdapter.
|
|
67
|
+
* @param api - The API to wrap.
|
|
68
|
+
* @param authConfiguration - The configuration for the authentication provider.
|
|
69
|
+
*/
|
|
70
|
+
constructor(api: DefaultApi, authConfiguration: AuthOptions);
|
|
71
|
+
getApi(): DefaultApi;
|
|
72
|
+
getAllMethods(obj: any): string[];
|
|
73
|
+
wrapMethods(obj: any): any;
|
|
74
|
+
injectCredentials(injectionContext: RequestInit): RequestInit;
|
|
75
|
+
}
|
|
76
|
+
export type AuthOptions = {
|
|
77
|
+
provider: ClientAuthProvider | string | undefined;
|
|
78
|
+
credentialsProvider?: ClientAuthCredentialsProvider<any> | undefined;
|
|
79
|
+
configProvider?: ClientAuthConfigurationProvider<any> | undefined;
|
|
80
|
+
credentials?: any | undefined;
|
|
81
|
+
};
|
|
82
|
+
export {};
|
|
83
|
+
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,IAAI,UAAU,EAAC,MAAM,aAAa,CAAC;AAEjD,MAAM,WAAW,kBAAkB;IAC/B;;OAEG;IACH,YAAY,IAAI,kBAAkB,CAAC;CACtC;AAED,MAAM,WAAW,+BAA+B,CAAC,CAAC;IAC9C;;OAEG;IACH,SAAS,IAAI,CAAC,CAAC;CAClB;AAED,MAAM,WAAW,6BAA6B,CAAC,CAAC;IAC5C;;;OAGG;IACH,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC;CACpC;AAED,aAAK,YAAY;IACb,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,QAAQ,aAAa;CAExB;AAED,MAAM,WAAW,kBAAkB;IAC/B,eAAe,IAAI,YAAY,CAAC;IAEhC,WAAW,IAAI;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACjD;AAGD,MAAM,WAAW,mBAAmB,CAAC,CAAC;IAClC,cAAc,IAAI,CAAC,CAAC;CACvB;AAED,MAAM,WAAW,yBAAyB,CAAC,CAAC;IACxC,iBAAiB,CAAC,gBAAgB,EAAE,CAAC,GAAG,CAAC,CAAC;IAE1C,MAAM,IAAI,GAAG,CAAC;CACjB;AAGD,cAAM,SAAS;IACC,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAG3C,SAAS,IAAI,MAAM;CAGtB;AAMD,cAAM,oBAAqB,YAAW,mBAAmB,CAAC,SAAS,CAAC;IAChE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAY;gBAE5B,MAAM,EAAE,MAAM;IAI1B,cAAc,IAAI,SAAS;CAI9B;AAgBD,qBAAa,4BAA6B,YAAW,6BAA6B,CAAC,oBAAoB,CAAC;IACpG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuB;IAEnD;;;;OAIG;gBAES,MAAM,EAAE,MAAM,GAAG,SAAS;IAKtC,cAAc,IAAI,oBAAoB;CAGzC;AAyBD,qBAAa,wCAAyC,YAAW,yBAAyB,CAAC,WAAW,CAAC;IAUvF,OAAO,CAAC,GAAG;IATvB,YAAY,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAC7C,UAAU,EAAE,UAAU,GAAG,SAAS,CAAC;IAEnC;;;;OAIG;gBAEiB,GAAG,EAAE,UAAU,EAAE,iBAAiB,EAAE,WAAW;IAenE,MAAM,IAAI,UAAU;IAIpB,aAAa,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,EAAE;IAejC,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG;IA8B1B,iBAAiB,CAAC,gBAAgB,EAAE,WAAW,GAAG,WAAW;CAahE;AAGD,MAAM,MAAM,WAAW,GAAG;IACtB,QAAQ,EAAE,kBAAkB,GAAG,MAAM,GAAG,SAAS,CAAC;IAClD,mBAAmB,CAAC,EAAE,6BAA6B,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IACrE,cAAc,CAAC,EAAE,+BAA+B,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAClE,WAAW,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC;CACjC,CAAA"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IsomorphicFetchClientAuthProtocolAdapter = exports.BasicAuthCredentialsProvider = void 0;
|
|
4
|
+
var AuthInfoType;
|
|
5
|
+
(function (AuthInfoType) {
|
|
6
|
+
AuthInfoType["COOKIE"] = "cookie";
|
|
7
|
+
AuthInfoType["HEADER"] = "header";
|
|
8
|
+
AuthInfoType["URL"] = "url";
|
|
9
|
+
AuthInfoType["METADATA"] = "metadata";
|
|
10
|
+
})(AuthInfoType || (AuthInfoType = {}));
|
|
11
|
+
class SecretStr {
|
|
12
|
+
constructor(secret) {
|
|
13
|
+
this.secret = secret;
|
|
14
|
+
}
|
|
15
|
+
getSecret() {
|
|
16
|
+
return this.secret;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
const base64Encode = (str) => {
|
|
20
|
+
return Buffer.from(str).toString('base64');
|
|
21
|
+
};
|
|
22
|
+
class BasicAuthCredentials {
|
|
23
|
+
constructor(_creds) {
|
|
24
|
+
this.credentials = new SecretStr(base64Encode(_creds));
|
|
25
|
+
}
|
|
26
|
+
getCredentials() {
|
|
27
|
+
//encode base64
|
|
28
|
+
return this.credentials;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
class BasicAuthClientAuthResponse {
|
|
32
|
+
constructor(credentials) {
|
|
33
|
+
this.credentials = credentials;
|
|
34
|
+
}
|
|
35
|
+
getAuthInfo() {
|
|
36
|
+
return { key: "Authorization", value: "Basic " + this.credentials.getCredentials().getSecret() };
|
|
37
|
+
}
|
|
38
|
+
getAuthInfoType() {
|
|
39
|
+
return AuthInfoType.HEADER;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
class BasicAuthCredentialsProvider {
|
|
43
|
+
/**
|
|
44
|
+
* Creates a new BasicAuthCredentialsProvider. This provider loads credentials from provided text credentials or from the environment variable CHROMA_CLIENT_AUTH_CREDENTIALS.
|
|
45
|
+
* @param _creds - The credentials
|
|
46
|
+
* @throws {Error} If neither credentials provider or text credentials are supplied.
|
|
47
|
+
*/
|
|
48
|
+
constructor(_creds) {
|
|
49
|
+
if (_creds === undefined && !process.env.CHROMA_CLIENT_AUTH_CREDENTIALS)
|
|
50
|
+
throw new Error("Credentials must be supplied via environment variable (CHROMA_CLIENT_AUTH_CREDENTIALS) or passed in as configuration.");
|
|
51
|
+
this.credentials = new BasicAuthCredentials((_creds !== null && _creds !== void 0 ? _creds : process.env.CHROMA_CLIENT_AUTH_CREDENTIALS));
|
|
52
|
+
}
|
|
53
|
+
getCredentials() {
|
|
54
|
+
return this.credentials;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
exports.BasicAuthCredentialsProvider = BasicAuthCredentialsProvider;
|
|
58
|
+
class BasicAuthClientAuthProvider {
|
|
59
|
+
/**
|
|
60
|
+
* Creates a new BasicAuthClientAuthProvider.
|
|
61
|
+
* @param options - The options for the authentication provider.
|
|
62
|
+
* @param options.textCredentials - The credentials for the authentication provider.
|
|
63
|
+
* @param options.credentialsProvider - The credentials provider for the authentication provider.
|
|
64
|
+
* @throws {Error} If neither credentials provider or text credentials are supplied.
|
|
65
|
+
*/
|
|
66
|
+
constructor(options) {
|
|
67
|
+
if (!options.credentialsProvider && !options.textCredentials) {
|
|
68
|
+
throw new Error("Either credentials provider or text credentials must be supplied.");
|
|
69
|
+
}
|
|
70
|
+
this.credentialsProvider = options.credentialsProvider || new BasicAuthCredentialsProvider(options.textCredentials);
|
|
71
|
+
}
|
|
72
|
+
authenticate() {
|
|
73
|
+
return new BasicAuthClientAuthResponse(this.credentialsProvider.getCredentials());
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
class IsomorphicFetchClientAuthProtocolAdapter {
|
|
77
|
+
/**
|
|
78
|
+
* Creates a new adapter of IsomorphicFetchClientAuthProtocolAdapter.
|
|
79
|
+
* @param api - The API to wrap.
|
|
80
|
+
* @param authConfiguration - The configuration for the authentication provider.
|
|
81
|
+
*/
|
|
82
|
+
constructor(api, authConfiguration) {
|
|
83
|
+
this.api = api;
|
|
84
|
+
switch (authConfiguration.provider) {
|
|
85
|
+
case "basic":
|
|
86
|
+
this.authProvider = new BasicAuthClientAuthProvider({ textCredentials: authConfiguration.credentials, credentialsProvider: authConfiguration.credentialsProvider });
|
|
87
|
+
break;
|
|
88
|
+
default:
|
|
89
|
+
this.authProvider = undefined;
|
|
90
|
+
break;
|
|
91
|
+
}
|
|
92
|
+
if (this.authProvider !== undefined) {
|
|
93
|
+
this.wrapperApi = this.wrapMethods(this.api);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
getApi() {
|
|
97
|
+
var _a;
|
|
98
|
+
return (_a = this.wrapperApi) !== null && _a !== void 0 ? _a : this.api;
|
|
99
|
+
}
|
|
100
|
+
getAllMethods(obj) {
|
|
101
|
+
let methods = [];
|
|
102
|
+
let currentObj = obj;
|
|
103
|
+
do {
|
|
104
|
+
const objMethods = Object.getOwnPropertyNames(currentObj)
|
|
105
|
+
.filter(name => typeof currentObj[name] === 'function' && name !== 'constructor');
|
|
106
|
+
methods = methods.concat(objMethods);
|
|
107
|
+
currentObj = Object.getPrototypeOf(currentObj);
|
|
108
|
+
} while (currentObj);
|
|
109
|
+
return methods;
|
|
110
|
+
}
|
|
111
|
+
wrapMethods(obj) {
|
|
112
|
+
let self = this;
|
|
113
|
+
const methodNames = Object.getOwnPropertyNames(Object.getPrototypeOf(obj))
|
|
114
|
+
.filter(name => typeof obj[name] === 'function' && name !== 'constructor');
|
|
115
|
+
return new Proxy(obj, {
|
|
116
|
+
get(target, prop) {
|
|
117
|
+
if (methodNames.includes(prop)) {
|
|
118
|
+
return new Proxy(target[prop], {
|
|
119
|
+
apply(fn, thisArg, args) {
|
|
120
|
+
const modifiedArgs = args.map(arg => {
|
|
121
|
+
if (arg && typeof arg === 'object' && 'method' in arg) {
|
|
122
|
+
return self.injectCredentials(arg);
|
|
123
|
+
}
|
|
124
|
+
return arg;
|
|
125
|
+
});
|
|
126
|
+
if (Object.keys(modifiedArgs[modifiedArgs.length - 1]).length === 0) {
|
|
127
|
+
modifiedArgs[modifiedArgs.length - 1] = self.injectCredentials({});
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
modifiedArgs[modifiedArgs.length - 1] = self.injectCredentials(modifiedArgs[modifiedArgs.length - 1]);
|
|
131
|
+
}
|
|
132
|
+
return fn.apply(thisArg, modifiedArgs);
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
return target[prop];
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
injectCredentials(injectionContext) {
|
|
141
|
+
var _a;
|
|
142
|
+
const authInfo = (_a = this.authProvider) === null || _a === void 0 ? void 0 : _a.authenticate().getAuthInfo();
|
|
143
|
+
if (authInfo) {
|
|
144
|
+
const { key, value } = authInfo;
|
|
145
|
+
injectionContext = Object.assign(Object.assign({}, injectionContext), { headers: {
|
|
146
|
+
[key]: value
|
|
147
|
+
} });
|
|
148
|
+
}
|
|
149
|
+
return injectionContext;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
exports.IsomorphicFetchClientAuthProtocolAdapter = IsomorphicFetchClientAuthProtocolAdapter;
|
|
153
|
+
//# sourceMappingURL=auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,8 @@ export declare class OpenAIEmbeddingFunction implements IEmbeddingFunction {
|
|
|
3
3
|
private api_key;
|
|
4
4
|
private org_id;
|
|
5
5
|
private model;
|
|
6
|
-
|
|
6
|
+
private openaiApi;
|
|
7
|
+
constructor({ openai_api_key, openai_model, openai_organization_id }: {
|
|
7
8
|
openai_api_key: string;
|
|
8
9
|
openai_model?: string;
|
|
9
10
|
openai_organization_id?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenAIEmbeddingFunction.d.ts","sourceRoot":"","sources":["../../../src/embeddings/OpenAIEmbeddingFunction.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"OpenAIEmbeddingFunction.d.ts","sourceRoot":"","sources":["../../../src/embeddings/OpenAIEmbeddingFunction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AAyExD,qBAAa,uBAAwB,YAAW,kBAAkB;IAC9D,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,SAAS,CAAY;gBAEjB,EAAC,cAAc,EAAE,YAAY,EAAE,sBAAsB,EAAC,EAAE;QAChE,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,sBAAsB,CAAC,EAAE,MAAM,CAAA;KAClC;IAiCY,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;CAQ9D"}
|
|
@@ -2,35 +2,92 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.OpenAIEmbeddingFunction = void 0;
|
|
4
4
|
let OpenAIApi;
|
|
5
|
+
let openAiVersion = null;
|
|
6
|
+
let openAiMajorVersion = null;
|
|
7
|
+
class OpenAIAPIv3 {
|
|
8
|
+
constructor(configuration) {
|
|
9
|
+
this.configuration = new OpenAIApi.Configuration({
|
|
10
|
+
organization: configuration.organization,
|
|
11
|
+
apiKey: configuration.apiKey,
|
|
12
|
+
});
|
|
13
|
+
this.openai = new OpenAIApi.OpenAIApi(this.configuration);
|
|
14
|
+
}
|
|
15
|
+
async createEmbedding(params) {
|
|
16
|
+
const embeddings = [];
|
|
17
|
+
const response = await this.openai.createEmbedding({
|
|
18
|
+
model: params.model,
|
|
19
|
+
input: params.input,
|
|
20
|
+
}).catch((error) => {
|
|
21
|
+
throw error;
|
|
22
|
+
});
|
|
23
|
+
// @ts-ignore
|
|
24
|
+
const data = response.data["data"];
|
|
25
|
+
for (let i = 0; i < data.length; i += 1) {
|
|
26
|
+
embeddings.push(data[i]["embedding"]);
|
|
27
|
+
}
|
|
28
|
+
return embeddings;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
class OpenAIAPIv4 {
|
|
32
|
+
constructor(apiKey) {
|
|
33
|
+
this.apiKey = apiKey;
|
|
34
|
+
this.openai = new OpenAIApi({
|
|
35
|
+
apiKey: this.apiKey,
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
async createEmbedding(params) {
|
|
39
|
+
const embeddings = [];
|
|
40
|
+
const response = await this.openai.embeddings.create(params);
|
|
41
|
+
const data = response["data"];
|
|
42
|
+
for (let i = 0; i < data.length; i += 1) {
|
|
43
|
+
embeddings.push(data[i]["embedding"]);
|
|
44
|
+
}
|
|
45
|
+
return embeddings;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
5
48
|
class OpenAIEmbeddingFunction {
|
|
6
|
-
constructor({ openai_api_key, openai_model, openai_organization_id
|
|
49
|
+
constructor({ openai_api_key, openai_model, openai_organization_id }) {
|
|
7
50
|
try {
|
|
8
51
|
// eslint-disable-next-line global-require,import/no-extraneous-dependencies
|
|
9
52
|
OpenAIApi = require("openai");
|
|
53
|
+
let version = null;
|
|
54
|
+
try {
|
|
55
|
+
const { VERSION } = require('openai/version');
|
|
56
|
+
version = VERSION;
|
|
57
|
+
}
|
|
58
|
+
catch (e) {
|
|
59
|
+
version = "3.x";
|
|
60
|
+
}
|
|
61
|
+
openAiVersion = version.replace(/[^0-9.]/g, '');
|
|
62
|
+
openAiMajorVersion = openAiVersion.split('.')[0];
|
|
10
63
|
}
|
|
11
64
|
catch (_a) {
|
|
12
|
-
|
|
65
|
+
// @ts-ignore
|
|
66
|
+
if (_a.code === 'MODULE_NOT_FOUND') {
|
|
67
|
+
throw new Error("Please install the openai package to use the OpenAIEmbeddingFunction, `npm install -S openai`");
|
|
68
|
+
}
|
|
69
|
+
throw _a; // Re-throw other errors
|
|
13
70
|
}
|
|
14
71
|
this.api_key = openai_api_key;
|
|
15
72
|
this.org_id = openai_organization_id || "";
|
|
16
73
|
this.model = openai_model || "text-embedding-ada-002";
|
|
74
|
+
if (openAiMajorVersion > 3) {
|
|
75
|
+
this.openaiApi = new OpenAIAPIv4(this.api_key);
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
this.openaiApi = new OpenAIAPIv3({
|
|
79
|
+
organization: this.org_id,
|
|
80
|
+
apiKey: this.api_key,
|
|
81
|
+
});
|
|
82
|
+
}
|
|
17
83
|
}
|
|
18
84
|
async generate(texts) {
|
|
19
|
-
|
|
20
|
-
organization: this.org_id,
|
|
21
|
-
apiKey: this.api_key,
|
|
22
|
-
});
|
|
23
|
-
const openai = new OpenAIApi.OpenAIApi(configuration);
|
|
24
|
-
const embeddings = [];
|
|
25
|
-
const response = await openai.createEmbedding({
|
|
85
|
+
return await this.openaiApi.createEmbedding({
|
|
26
86
|
model: this.model,
|
|
27
87
|
input: texts,
|
|
88
|
+
}).catch((error) => {
|
|
89
|
+
throw error;
|
|
28
90
|
});
|
|
29
|
-
const data = response.data["data"];
|
|
30
|
-
for (let i = 0; i < data.length; i += 1) {
|
|
31
|
-
embeddings.push(data[i]["embedding"]);
|
|
32
|
-
}
|
|
33
|
-
return embeddings;
|
|
34
91
|
}
|
|
35
92
|
}
|
|
36
93
|
exports.OpenAIEmbeddingFunction = OpenAIEmbeddingFunction;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenAIEmbeddingFunction.js","sourceRoot":"","sources":["../../../src/embeddings/OpenAIEmbeddingFunction.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"OpenAIEmbeddingFunction.js","sourceRoot":"","sources":["../../../src/embeddings/OpenAIEmbeddingFunction.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransformersEmbeddingFunction.d.ts","sourceRoot":"","sources":["../../../src/embeddings/TransformersEmbeddingFunction.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TransformersEmbeddingFunction.d.ts","sourceRoot":"","sources":["../../../src/embeddings/TransformersEmbeddingFunction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAK1D,qBAAa,6BAA8B,YAAW,kBAAkB;IACtE,OAAO,CAAC,eAAe,CAAsB;IAE7C;;;;;;;OAOG;gBACS,EACV,KAAiC,EACjC,QAAiB,EACjB,SAAiB,EACjB,iBAAwB,GACzB,GAAE;QACD,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,iBAAiB,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;KAChC;IA4BO,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;CAK5D"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TransformersEmbeddingFunction = void 0;
|
|
4
|
+
const utils_1 = require("../utils");
|
|
4
5
|
// Dynamically import module
|
|
5
6
|
let TransformersApi;
|
|
6
7
|
class TransformersEmbeddingFunction {
|
|
@@ -14,11 +15,9 @@ class TransformersEmbeddingFunction {
|
|
|
14
15
|
*/
|
|
15
16
|
constructor({ model = "Xenova/all-MiniLM-L6-v2", revision = "main", quantized = false, progress_callback = null, } = {}) {
|
|
16
17
|
try {
|
|
17
|
-
//
|
|
18
|
-
//
|
|
19
|
-
|
|
20
|
-
// For more information, see https://github.com/microsoft/TypeScript/issues/43329#issuecomment-1008361973
|
|
21
|
-
TransformersApi = Function('return import("@xenova/transformers")')();
|
|
18
|
+
// Use dynamic import to support browser environments because we do not have a bundler that handles browser support.
|
|
19
|
+
// The util importOptionalModule is used to prevent issues when bundlers try to locate the dependency even when it's optional.
|
|
20
|
+
TransformersApi = (0, utils_1.importOptionalModule)("@xenova/transformers");
|
|
22
21
|
}
|
|
23
22
|
catch (e) {
|
|
24
23
|
throw new Error("Please install the @xenova/transformers package to use the TransformersEmbeddingFunction, `npm install -S @xenova/transformers`.");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransformersEmbeddingFunction.js","sourceRoot":"","sources":["../../../src/embeddings/TransformersEmbeddingFunction.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"TransformersEmbeddingFunction.js","sourceRoot":"","sources":["../../../src/embeddings/TransformersEmbeddingFunction.ts"],"names":[],"mappings":";;;AAAA,oCAAgD;AAGhD,4BAA4B;AAC5B,IAAI,eAA6B,CAAC;AAElC,MAAa,6BAA6B;IAGxC;;;;;;;OAOG;IACH,YAAY,EACV,KAAK,GAAG,yBAAyB,EACjC,QAAQ,GAAG,MAAM,EACjB,SAAS,GAAG,KAAK,EACjB,iBAAiB,GAAG,IAAI,MAMtB,EAAE;QACJ,IAAI;YACF,oHAAoH;YACpH,8HAA8H;YAC9H,eAAe,GAAG,IAAA,4BAAoB,EAAC,sBAAsB,CAAC,CAAC;SAChE;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,IAAI,KAAK,CACb,kIAAkI,CACnI,CAAC;SACH;QAED,gDAAgD;QAChD,IAAI,CAAC,eAAe,GAAG,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3D,IAAI;gBACF,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,eAAe,CAAC;gBAC3C,OAAO,CACL,MAAM,QAAQ,CAAC,oBAAoB,EAAE,KAAK,EAAE;oBAC1C,SAAS;oBACT,QAAQ;oBACR,iBAAiB;iBAClB,CAAC,CACH,CAAC;aACH;YAAC,OAAO,CAAC,EAAE;gBACV,MAAM,CAAC,CAAC,CAAC,CAAC;aACX;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,KAAe;QACnC,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC;QACtC,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACrE,OAAO,MAAM,CAAC,MAAM,EAAE,CAAC;IACzB,CAAC;CACF;AAtDD,sEAsDC"}
|
|
@@ -1,16 +1,25 @@
|
|
|
1
1
|
import { IEmbeddingFunction } from "./IEmbeddingFunction";
|
|
2
|
+
/**
|
|
3
|
+
* WebAIEmbeddingFunction is a function that uses the Web AI package to generate embeddings.
|
|
4
|
+
* @remarks
|
|
5
|
+
* This embedding function can be used in both NodeJS and browser environments.
|
|
6
|
+
* Browser version of Web AI (@visheratin/web-ai) is an ESM module.
|
|
7
|
+
* NodeJS version of Web AI (@visheratin/web-ai-node) is a CommonJS module.
|
|
8
|
+
*/
|
|
2
9
|
export declare class WebAIEmbeddingFunction implements IEmbeddingFunction {
|
|
3
10
|
private model;
|
|
4
11
|
private proxy?;
|
|
12
|
+
private initPromise;
|
|
13
|
+
private modality;
|
|
5
14
|
/**
|
|
6
15
|
* WebAIEmbeddingFunction constructor.
|
|
7
|
-
* @param modality - the modality of the embedding function, either "text" or "
|
|
16
|
+
* @param modality - the modality of the embedding function, either "text", "image", or "multimodal".
|
|
8
17
|
* @param node - whether the embedding function is being used in a NodeJS environment.
|
|
9
18
|
* @param proxy - whether to use web worker to avoid blocking the main thread. Works only in browser.
|
|
10
|
-
* @param wasmPath - the path/URL to the directory with ONNX runtime WebAssembly files.
|
|
19
|
+
* @param wasmPath - the path/URL to the directory with ONNX runtime WebAssembly files.
|
|
11
20
|
* @param modelID - the ID of the model to use, if not specified, the default model will be used.
|
|
12
21
|
*/
|
|
13
|
-
constructor(modality: "text" | "image", node: boolean, proxy?: boolean, wasmPath?: string, modelID?: string);
|
|
22
|
+
constructor(modality: "text" | "image" | "multimodal", node: boolean, proxy?: boolean, wasmPath?: string, modelID?: string);
|
|
14
23
|
/**
|
|
15
24
|
* Generates embeddings for the given values.
|
|
16
25
|
* @param values - the values to generate embeddings for. For text models, this is an array of strings.
|
|
@@ -18,5 +27,7 @@ export declare class WebAIEmbeddingFunction implements IEmbeddingFunction {
|
|
|
18
27
|
* @returns the embeddings.
|
|
19
28
|
*/
|
|
20
29
|
generate(values: string[]): Promise<number[][]>;
|
|
30
|
+
private initNode;
|
|
31
|
+
private initBrowser;
|
|
21
32
|
}
|
|
22
33
|
//# sourceMappingURL=WebAIEmbeddingFunction.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebAIEmbeddingFunction.d.ts","sourceRoot":"","sources":["../../../src/embeddings/WebAIEmbeddingFunction.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"WebAIEmbeddingFunction.d.ts","sourceRoot":"","sources":["../../../src/embeddings/WebAIEmbeddingFunction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;;;;;GAMG;AACH,qBAAa,sBAAuB,YAAW,kBAAkB;IAC/D,OAAO,CAAC,KAAK,CAAM;IACnB,OAAO,CAAC,KAAK,CAAC,CAAU;IACxB,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,QAAQ,CAAkC;IAElD;;;;;;;OAOG;gBAED,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,YAAY,EACzC,IAAI,EAAE,OAAO,EACb,KAAK,CAAC,EAAE,OAAO,EACf,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,MAAM;IAYlB;;;;;OAKG;IACU,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;IAiC5D,OAAO,CAAC,QAAQ;YAwEF,WAAW;CA+E1B"}
|