@celljs/ai-core 3.0.0 → 3.1.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.
Files changed (45) hide show
  1. package/lib/common/chat/index.js +5 -18
  2. package/lib/common/chat/index.js.map +1 -1
  3. package/lib/common/chat/message/index.js +7 -20
  4. package/lib/common/chat/message/index.js.map +1 -1
  5. package/lib/common/chat/metadata/index.js +2 -15
  6. package/lib/common/chat/metadata/index.js.map +1 -1
  7. package/lib/common/chat/model/chat-protocol.d.ts +2 -0
  8. package/lib/common/chat/model/chat-protocol.d.ts.map +1 -1
  9. package/lib/common/chat/model/chat-protocol.js +3 -0
  10. package/lib/common/chat/model/chat-protocol.js.map +1 -1
  11. package/lib/common/chat/model/index.js +2 -15
  12. package/lib/common/chat/model/index.js.map +1 -1
  13. package/lib/common/chat/prompt/index.js +3 -16
  14. package/lib/common/chat/prompt/index.js.map +1 -1
  15. package/lib/common/embedding/embedding-protocol.d.ts +118 -0
  16. package/lib/common/embedding/embedding-protocol.d.ts.map +1 -0
  17. package/lib/common/embedding/embedding-protocol.js +51 -0
  18. package/lib/common/embedding/embedding-protocol.js.map +1 -0
  19. package/lib/common/embedding/index.d.ts +2 -0
  20. package/lib/common/embedding/index.d.ts.map +1 -0
  21. package/lib/common/embedding/index.js +5 -0
  22. package/lib/common/embedding/index.js.map +1 -0
  23. package/lib/common/index.d.ts +1 -0
  24. package/lib/common/index.d.ts.map +1 -1
  25. package/lib/common/index.js +5 -17
  26. package/lib/common/index.js.map +1 -1
  27. package/lib/common/model/function/index.js +2 -15
  28. package/lib/common/model/function/index.js.map +1 -1
  29. package/lib/common/model/index.d.ts +1 -0
  30. package/lib/common/model/index.d.ts.map +1 -1
  31. package/lib/common/model/index.js +3 -15
  32. package/lib/common/model/index.js.map +1 -1
  33. package/lib/common/model/model-protocol.d.ts +2 -0
  34. package/lib/common/model/model-protocol.d.ts.map +1 -1
  35. package/lib/common/model/model-protocol.js +3 -0
  36. package/lib/common/model/model-protocol.js.map +1 -1
  37. package/lib/common/utils/index.js +2 -15
  38. package/lib/common/utils/index.js.map +1 -1
  39. package/package.json +5 -5
  40. package/src/common/chat/model/chat-protocol.ts +3 -0
  41. package/src/common/embedding/embedding-protocol.ts +153 -0
  42. package/src/common/embedding/index.ts +1 -0
  43. package/src/common/index.ts +1 -0
  44. package/src/common/model/index.ts +1 -0
  45. package/src/common/model/model-protocol.ts +3 -0
@@ -1,21 +1,8 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
2
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./message"), exports);
18
- __exportStar(require("./metadata"), exports);
19
- __exportStar(require("./prompt"), exports);
20
- __exportStar(require("./model"), exports);
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./message"), exports);
5
+ tslib_1.__exportStar(require("./metadata"), exports);
6
+ tslib_1.__exportStar(require("./prompt"), exports);
7
+ tslib_1.__exportStar(require("./model"), exports);
21
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/chat/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,6CAA2B;AAC3B,2CAAyB;AACzB,0CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/chat/index.ts"],"names":[],"mappings":";;;AAAA,oDAA0B;AAC1B,qDAA2B;AAC3B,mDAAyB;AACzB,kDAAwB"}
@@ -1,23 +1,10 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
2
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./message-protocol"), exports);
18
- __exportStar(require("./abstract-message"), exports);
19
- __exportStar(require("./user-message"), exports);
20
- __exportStar(require("./system-message"), exports);
21
- __exportStar(require("./assistant-message"), exports);
22
- __exportStar(require("./function-message"), exports);
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./message-protocol"), exports);
5
+ tslib_1.__exportStar(require("./abstract-message"), exports);
6
+ tslib_1.__exportStar(require("./user-message"), exports);
7
+ tslib_1.__exportStar(require("./system-message"), exports);
8
+ tslib_1.__exportStar(require("./assistant-message"), exports);
9
+ tslib_1.__exportStar(require("./function-message"), exports);
23
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/common/chat/message/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,qDAAmC;AACnC,iDAA+B;AAC/B,mDAAiC;AACjC,sDAAoC;AACpC,qDAAmC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/common/chat/message/index.ts"],"names":[],"mappings":";;;AAAA,6DAAmC;AACnC,6DAAmC;AACnC,yDAA+B;AAC/B,2DAAiC;AACjC,8DAAoC;AACpC,6DAAmC"}
@@ -1,18 +1,5 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
2
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./metadata-protocol"), exports);
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./metadata-protocol"), exports);
18
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/common/chat/metadata/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/common/chat/metadata/index.ts"],"names":[],"mappings":";;;AAAA,8DAAoC"}
@@ -1,6 +1,8 @@
1
1
  import { Model, ModelResponse, ModelResult, StreamingModel } from '../../model/model-protocol';
2
2
  import { AssistantMessage } from '../message';
3
3
  import { Prompt } from '../prompt/prompt-protocol';
4
+ export declare const StreamingChatModel: unique symbol;
5
+ export declare const ChatModel: unique symbol;
4
6
  /**
5
7
  * Represents a response returned by the AI.
6
8
  */
@@ -1 +1 @@
1
- {"version":3,"file":"chat-protocol.d.ts","sourceRoot":"","sources":["../../../../src/common/chat/model/chat-protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC/F,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,WAAW,CAAC,gBAAgB,CAAC;CAEhE;AAED,MAAM,WAAW,YAAa,SAAQ,aAAa,CAAC,UAAU,CAAC;CAE9D;AAED,MAAM,WAAW,kBAAmB,SAAQ,cAAc,CAAC,MAAM,EAAE,YAAY,CAAC;CAE/E;AAED,MAAM,WAAW,SAAU,SAAQ,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,kBAAkB;CAEjF"}
1
+ {"version":3,"file":"chat-protocol.d.ts","sourceRoot":"","sources":["../../../../src/common/chat/model/chat-protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC/F,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAEnD,eAAO,MAAM,kBAAkB,eAA+B,CAAC;AAC/D,eAAO,MAAM,SAAS,eAAsB,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,WAAW,CAAC,gBAAgB,CAAC;CAEhE;AAED,MAAM,WAAW,YAAa,SAAQ,aAAa,CAAC,UAAU,CAAC;CAE9D;AAED,MAAM,WAAW,kBAAmB,SAAQ,cAAc,CAAC,MAAM,EAAE,YAAY,CAAC;CAE/E;AAED,MAAM,WAAW,SAAU,SAAQ,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,kBAAkB;CAEjF"}
@@ -1,3 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ChatModel = exports.StreamingChatModel = void 0;
4
+ exports.StreamingChatModel = Symbol('StreamingChatModel');
5
+ exports.ChatModel = Symbol('ChatModel');
3
6
  //# sourceMappingURL=chat-protocol.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat-protocol.js","sourceRoot":"","sources":["../../../../src/common/chat/model/chat-protocol.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"chat-protocol.js","sourceRoot":"","sources":["../../../../src/common/chat/model/chat-protocol.ts"],"names":[],"mappings":";;;AAIa,QAAA,kBAAkB,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAClD,QAAA,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC"}
@@ -1,18 +1,5 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
2
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./chat-protocol"), exports);
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./chat-protocol"), exports);
18
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/common/chat/model/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/common/chat/model/index.ts"],"names":[],"mappings":";;;AAAA,0DAAgC"}
@@ -1,19 +1,6 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
2
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./prompt-protocol"), exports);
18
- __exportStar(require("./prompt"), exports);
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./prompt-protocol"), exports);
5
+ tslib_1.__exportStar(require("./prompt"), exports);
19
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/common/chat/prompt/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,2CAAyB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/common/chat/prompt/index.ts"],"names":[],"mappings":";;;AAAA,4DAAkC;AAClC,mDAAyB"}
@@ -0,0 +1,118 @@
1
+ import { MimeType } from '@celljs/core';
2
+ import { Usage } from '../chat/metadata/metadata-protocol';
3
+ import { Model, ModelOptions, ModelRequest, ModelResponse, ModelResult, ResponseMetadata, ResultMetadata } from '../model/model-protocol';
4
+ export declare const EmbeddingModel: unique symbol;
5
+ /**
6
+ * Represents the metadata for an embedding result.
7
+ */
8
+ export interface EmbeddingResultMetadata extends ResultMetadata {
9
+ /**
10
+ * The modality type of the source data used to generate the embedding.
11
+ */
12
+ modalityType: ModalityType;
13
+ /**
14
+ * The document ID associated with the embedding.
15
+ */
16
+ documentId: string;
17
+ /**
18
+ * The MIME type of the source data used to generate the embedding.
19
+ */
20
+ mimeType: MimeType;
21
+ /**
22
+ * The document data associated with the embedding.
23
+ */
24
+ documentData: any;
25
+ }
26
+ /**
27
+ * Enum representing the modality type of the source data.
28
+ */
29
+ export declare enum ModalityType {
30
+ TEXT = "TEXT",
31
+ IMAGE = "IMAGE",
32
+ AUDIO = "AUDIO",
33
+ VIDEO = "VIDEO"
34
+ }
35
+ /**
36
+ * Utility class for modality-related operations.
37
+ */
38
+ export declare class ModalityUtils {
39
+ private static TEXT_MIME_TYPE;
40
+ private static IMAGE_MIME_TYPE;
41
+ private static VIDEO_MIME_TYPE;
42
+ private static AUDIO_MIME_TYPE;
43
+ /**
44
+ * Infers the {@link ModalityType} of the source data used to generate the
45
+ * embedding using the source data {@link MimeType}.
46
+ * @param mimeType the {@link MimeType} of the source data.
47
+ * @return Returns the {@link ModalityType} of the source data used to generate
48
+ * the embedding.
49
+ */
50
+ static getModalityType(mimeType: MimeType): ModalityType;
51
+ }
52
+ /**
53
+ * Metadata for the embedding response.
54
+ */
55
+ export interface EmbeddingResponseMetadata extends ResponseMetadata {
56
+ /**
57
+ * The model that handled the request.
58
+ */
59
+ model: string;
60
+ /**
61
+ * The AI provider specific metadata on API usage.
62
+ * @see Usage
63
+ */
64
+ usage: Usage;
65
+ }
66
+ /**
67
+ * Represents a single embedding vector.
68
+ */
69
+ export interface Embedding extends ModelResult<number[]> {
70
+ /**
71
+ * The embedding vector values.
72
+ */
73
+ embedding: number[];
74
+ /**
75
+ * The embedding index in a list of embeddings.
76
+ */
77
+ index: number;
78
+ /**
79
+ * The metadata associated with the embedding.
80
+ */
81
+ metadata: EmbeddingResultMetadata;
82
+ }
83
+ export interface EmbeddingOptions extends ModelOptions {
84
+ /**
85
+ * The name of the embedding model to use.
86
+ */
87
+ model?: string;
88
+ /**
89
+ * The dimensionality of the embedding vectors.
90
+ */
91
+ dimensions?: number;
92
+ }
93
+ export interface EmbeddingRequest extends ModelRequest<string[]> {
94
+ /**
95
+ * The list of input strings for the embedding request.
96
+ */
97
+ inputs: string[];
98
+ /**
99
+ * The options for the embedding request.
100
+ */
101
+ options: EmbeddingOptions;
102
+ }
103
+ /**
104
+ * Embedding response object.
105
+ */
106
+ export interface EmbeddingResponse extends ModelResponse<Embedding> {
107
+ /**
108
+ * Embedding data.
109
+ */
110
+ embeddings: Embedding[];
111
+ /**
112
+ * Embedding metadata.
113
+ */
114
+ metadata: EmbeddingResponseMetadata;
115
+ }
116
+ export interface EmbeddingModel extends Model<EmbeddingRequest, EmbeddingResponse> {
117
+ }
118
+ //# sourceMappingURL=embedding-protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embedding-protocol.d.ts","sourceRoot":"","sources":["../../../src/common/embedding/embedding-protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAiB,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,oCAAoC,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE1I,eAAO,MAAM,cAAc,eAA2B,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,cAAc;IAC3D;;OAEG;IACH,YAAY,EAAE,YAAY,CAAC;IAE3B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,QAAQ,EAAE,QAAQ,CAAC;IAEnB;;OAEG;IACH,YAAY,EAAE,GAAG,CAAC;CACrB;AAED;;GAEG;AACH,oBAAY,YAAY;IACpB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,KAAK,UAAU;IACf,KAAK,UAAU;CAClB;AAED;;GAEG;AACH,qBAAa,aAAa;IACtB,OAAO,CAAC,MAAM,CAAC,cAAc,CAAyC;IACtE,OAAO,CAAC,MAAM,CAAC,eAAe,CAA0C;IACxE,OAAO,CAAC,MAAM,CAAC,eAAe,CAA0C;IACxE,OAAO,CAAC,MAAM,CAAC,eAAe,CAA0C;IAExE;;;;;;OAMG;WACW,eAAe,CAAC,QAAQ,EAAE,QAAQ,GAAG,YAAY;CAiBlE;AAED;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,gBAAgB;IAC/D;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,KAAK,EAAE,KAAK,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,SAAU,SAAQ,WAAW,CAAC,MAAM,EAAE,CAAC;IACpD;;OAEG;IACH,SAAS,EAAE,MAAM,EAAE,CAAC;IAEpB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,QAAQ,EAAE,uBAAuB,CAAC;CACrC;AAED,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IAElD;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,gBAAiB,SAAQ,YAAY,CAAC,MAAM,EAAE,CAAC;IAC5D;;OAEG;IACH,MAAM,EAAE,MAAM,EAAE,CAAC;IAEjB;;OAEG;IACH,OAAO,EAAE,gBAAgB,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,aAAa,CAAC,SAAS,CAAC;IAC/D;;OAEG;IACH,UAAU,EAAE,SAAS,EAAE,CAAC;IAExB;;OAEG;IACH,QAAQ,EAAE,yBAAyB,CAAC;CACvC;AAED,MAAM,WAAW,cAAe,SAAQ,KAAK,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;CAAG"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ModalityUtils = exports.ModalityType = exports.EmbeddingModel = void 0;
4
+ const core_1 = require("@celljs/core");
5
+ exports.EmbeddingModel = Symbol('EmbeddingModel');
6
+ /**
7
+ * Enum representing the modality type of the source data.
8
+ */
9
+ var ModalityType;
10
+ (function (ModalityType) {
11
+ ModalityType["TEXT"] = "TEXT";
12
+ ModalityType["IMAGE"] = "IMAGE";
13
+ ModalityType["AUDIO"] = "AUDIO";
14
+ ModalityType["VIDEO"] = "VIDEO";
15
+ })(ModalityType = exports.ModalityType || (exports.ModalityType = {}));
16
+ /**
17
+ * Utility class for modality-related operations.
18
+ */
19
+ class ModalityUtils {
20
+ /**
21
+ * Infers the {@link ModalityType} of the source data used to generate the
22
+ * embedding using the source data {@link MimeType}.
23
+ * @param mimeType the {@link MimeType} of the source data.
24
+ * @return Returns the {@link ModalityType} of the source data used to generate
25
+ * the embedding.
26
+ */
27
+ static getModalityType(mimeType) {
28
+ if (!mimeType) {
29
+ return ModalityType.TEXT;
30
+ }
31
+ if (mimeType.isCompatibleWith(ModalityUtils.IMAGE_MIME_TYPE)) {
32
+ return ModalityType.IMAGE;
33
+ }
34
+ else if (mimeType.isCompatibleWith(ModalityUtils.AUDIO_MIME_TYPE)) {
35
+ return ModalityType.AUDIO;
36
+ }
37
+ else if (mimeType.isCompatibleWith(ModalityUtils.VIDEO_MIME_TYPE)) {
38
+ return ModalityType.VIDEO;
39
+ }
40
+ else if (mimeType.isCompatibleWith(ModalityUtils.TEXT_MIME_TYPE)) {
41
+ return ModalityType.TEXT;
42
+ }
43
+ throw new Error('Unsupported MimeType: ' + mimeType);
44
+ }
45
+ }
46
+ exports.ModalityUtils = ModalityUtils;
47
+ ModalityUtils.TEXT_MIME_TYPE = core_1.MimeTypeUtils.parseMimeType('text/*');
48
+ ModalityUtils.IMAGE_MIME_TYPE = core_1.MimeTypeUtils.parseMimeType('image/*');
49
+ ModalityUtils.VIDEO_MIME_TYPE = core_1.MimeTypeUtils.parseMimeType('video/*');
50
+ ModalityUtils.AUDIO_MIME_TYPE = core_1.MimeTypeUtils.parseMimeType('audio/*');
51
+ //# sourceMappingURL=embedding-protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embedding-protocol.js","sourceRoot":"","sources":["../../../src/common/embedding/embedding-protocol.ts"],"names":[],"mappings":";;;AAAA,uCAAuD;AAI1C,QAAA,cAAc,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AA2BvD;;GAEG;AACH,IAAY,YAKX;AALD,WAAY,YAAY;IACpB,6BAAa,CAAA;IACb,+BAAe,CAAA;IACf,+BAAe,CAAA;IACf,+BAAe,CAAA;AACnB,CAAC,EALW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAKvB;AAED;;GAEG;AACH,MAAa,aAAa;IAMtB;;;;;;OAMG;IACI,MAAM,CAAC,eAAe,CAAC,QAAkB;QAC5C,IAAI,CAAC,QAAQ,EAAE;YACX,OAAO,YAAY,CAAC,IAAI,CAAC;SAC5B;QAED,IAAI,QAAQ,CAAC,gBAAgB,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE;YAC1D,OAAO,YAAY,CAAC,KAAK,CAAC;SAC7B;aAAM,IAAI,QAAQ,CAAC,gBAAgB,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE;YACjE,OAAO,YAAY,CAAC,KAAK,CAAC;SAC7B;aAAM,IAAI,QAAQ,CAAC,gBAAgB,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE;YACjE,OAAO,YAAY,CAAC,KAAK,CAAC;SAC7B;aAAM,IAAI,QAAQ,CAAC,gBAAgB,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE;YAChE,OAAO,YAAY,CAAC,IAAI,CAAC;SAC5B;QAED,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,QAAQ,CAAC,CAAC;IACzD,CAAC;;AA7BL,sCA8BC;AA7BkB,4BAAc,GAAG,oBAAa,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AACvD,6BAAe,GAAG,oBAAa,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;AACzD,6BAAe,GAAG,oBAAa,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;AACzD,6BAAe,GAAG,oBAAa,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './embedding-protocol';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/common/embedding/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./embedding-protocol"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/embedding/index.ts"],"names":[],"mappings":";;;AAAA,+DAAqC"}
@@ -1,4 +1,5 @@
1
1
  export * from './chat';
2
2
  export * from './model';
3
+ export * from './embedding';
3
4
  export * from './utils';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC"}
@@ -1,20 +1,8 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
2
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./chat"), exports);
18
- __exportStar(require("./model"), exports);
19
- __exportStar(require("./utils"), exports);
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./chat"), exports);
5
+ tslib_1.__exportStar(require("./model"), exports);
6
+ tslib_1.__exportStar(require("./embedding"), exports);
7
+ tslib_1.__exportStar(require("./utils"), exports);
20
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,0CAAwB;AACxB,0CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":";;;AAAA,iDAAuB;AACvB,kDAAwB;AACxB,sDAA4B;AAC5B,kDAAwB"}
@@ -1,18 +1,5 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
2
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./function-protocol"), exports);
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./function-protocol"), exports);
18
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/common/model/function/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/common/model/function/index.ts"],"names":[],"mappings":";;;AAAA,8DAAoC"}
@@ -1,2 +1,3 @@
1
1
  export * from './model-protocol';
2
+ export * from './function';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/common/model/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/common/model/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC"}
@@ -1,18 +1,6 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
2
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./model-protocol"), exports);
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./model-protocol"), exports);
5
+ tslib_1.__exportStar(require("./function"), exports);
18
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/model/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,mDAAiC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/model/index.ts"],"names":[],"mappings":";;;AACA,2DAAiC;AACjC,qDAA2B"}
@@ -9,6 +9,8 @@
9
9
  */
10
10
  import { Media } from '../chat';
11
11
  import { Observable } from 'rxjs';
12
+ export declare const Model: unique symbol;
13
+ export declare const StreamingModel: unique symbol;
12
14
  /**
13
15
  * Interface representing the customizable options for AI model interactions. This marker
14
16
  * interface allows for the specification of various settings and parameters that can
@@ -1 +1 @@
1
- {"version":3,"file":"model-protocol.d.ts","sourceRoot":"","sources":["../../../src/common/model/model-protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAElC;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;CAAG;AAEhC;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;CAAG;AAElC;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;CAAG;AAEpC;;;;;;;GAOG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC;IAE1B;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAEnB;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;CAErC;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC;IAE3B;;;OAGG;IACH,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC;IAEzB;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;CAElC;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,WAAW,CAAC,GAAG,CAAC;IAErD;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAEnB;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;IAEtB;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;CAEvC;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,KAAK,CAAC,IAAI,SAAS,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,SAAS,aAAa,CAAC,GAAG,CAAC;IAElF;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAEtC;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IAEpB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;IAExB;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAE1C;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,cAAc,CAAC,IAAI,SAAS,YAAY,CAAC,GAAG,CAAC,EAAE,SAAS,SAAS,aAAa,CAAC,GAAG,CAAC;IAEhG;;;;OAIG;IACH,MAAM,CAAC,OAAO,EAAE,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;CAEhD"}
1
+ {"version":3,"file":"model-protocol.d.ts","sourceRoot":"","sources":["../../../src/common/model/model-protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAElC,eAAO,MAAM,KAAK,eAAkB,CAAC;AACrC,eAAO,MAAM,cAAc,eAA2B,CAAC;AAEvD;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;CAAG;AAEhC;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;CAAG;AAElC;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;CAAG;AAEpC;;;;;;;GAOG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC;IAE1B;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAEnB;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;CAErC;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC;IAE3B;;;OAGG;IACH,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC;IAEzB;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;CAElC;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,WAAW,CAAC,GAAG,CAAC;IAErD;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAEnB;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;IAEtB;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;CAEvC;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,KAAK,CAAC,IAAI,SAAS,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,SAAS,aAAa,CAAC,GAAG,CAAC;IAElF;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAEtC;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IAEpB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;IAExB;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAE1C;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,cAAc,CAAC,IAAI,SAAS,YAAY,CAAC,GAAG,CAAC,EAAE,SAAS,SAAS,aAAa,CAAC,GAAG,CAAC;IAEhG;;;;OAIG;IACH,MAAM,CAAC,OAAO,EAAE,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;CAEhD"}
@@ -9,4 +9,7 @@
9
9
  * ensuring a broad applicability across diverse AI scenarios.
10
10
  */
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.StreamingModel = exports.Model = void 0;
13
+ exports.Model = Symbol('Model');
14
+ exports.StreamingModel = Symbol('StreamingModel');
12
15
  //# sourceMappingURL=model-protocol.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"model-protocol.js","sourceRoot":"","sources":["../../../src/common/model/model-protocol.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG"}
1
+ {"version":3,"file":"model-protocol.js","sourceRoot":"","sources":["../../../src/common/model/model-protocol.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAKU,QAAA,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;AACxB,QAAA,cAAc,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC"}
@@ -1,18 +1,5 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
2
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./prompt-util"), exports);
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./prompt-util"), exports);
18
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/utils/index.ts"],"names":[],"mappings":";;;AAAA,wDAA8B"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@celljs/ai-core",
3
- "version": "3.0.0",
3
+ "version": "3.1.0",
4
4
  "description": "Core domain for AI programming",
5
5
  "main": "lib/common/index.js",
6
6
  "typings": "lib/common/index.d.ts",
7
7
  "dependencies": {
8
- "@celljs/core": "3.0.0",
9
- "@celljs/http": "3.0.0",
8
+ "@celljs/core": "3.1.0",
9
+ "@celljs/http": "3.1.0",
10
10
  "rxjs": "^6.6.0"
11
11
  },
12
12
  "publishConfig": {
@@ -37,7 +37,7 @@
37
37
  "test": "cell-component test:js"
38
38
  },
39
39
  "devDependencies": {
40
- "@celljs/component": "3.0.0"
40
+ "@celljs/component": "3.1.0"
41
41
  },
42
- "gitHead": "c0ef8d269e33a795406bcbb240cac4b845c6c24c"
42
+ "gitHead": "6bb7168beaf93b3c54ef92ce51775e9603163444"
43
43
  }
@@ -2,6 +2,9 @@ import { Model, ModelResponse, ModelResult, StreamingModel } from '../../model/m
2
2
  import { AssistantMessage } from '../message';
3
3
  import { Prompt } from '../prompt/prompt-protocol';
4
4
 
5
+ export const StreamingChatModel = Symbol('StreamingChatModel');
6
+ export const ChatModel = Symbol('ChatModel');
7
+
5
8
  /**
6
9
  * Represents a response returned by the AI.
7
10
  */
@@ -0,0 +1,153 @@
1
+ import { MimeType, MimeTypeUtils } from '@celljs/core';
2
+ import { Usage } from '../chat/metadata/metadata-protocol';
3
+ import { Model, ModelOptions, ModelRequest, ModelResponse, ModelResult, ResponseMetadata, ResultMetadata } from '../model/model-protocol';
4
+
5
+ export const EmbeddingModel = Symbol('EmbeddingModel');
6
+
7
+ /**
8
+ * Represents the metadata for an embedding result.
9
+ */
10
+ export interface EmbeddingResultMetadata extends ResultMetadata {
11
+ /**
12
+ * The modality type of the source data used to generate the embedding.
13
+ */
14
+ modalityType: ModalityType;
15
+
16
+ /**
17
+ * The document ID associated with the embedding.
18
+ */
19
+ documentId: string;
20
+
21
+ /**
22
+ * The MIME type of the source data used to generate the embedding.
23
+ */
24
+ mimeType: MimeType;
25
+
26
+ /**
27
+ * The document data associated with the embedding.
28
+ */
29
+ documentData: any;
30
+ }
31
+
32
+ /**
33
+ * Enum representing the modality type of the source data.
34
+ */
35
+ export enum ModalityType {
36
+ TEXT = 'TEXT',
37
+ IMAGE = 'IMAGE',
38
+ AUDIO = 'AUDIO',
39
+ VIDEO = 'VIDEO'
40
+ }
41
+
42
+ /**
43
+ * Utility class for modality-related operations.
44
+ */
45
+ export class ModalityUtils {
46
+ private static TEXT_MIME_TYPE = MimeTypeUtils.parseMimeType('text/*');
47
+ private static IMAGE_MIME_TYPE = MimeTypeUtils.parseMimeType('image/*');
48
+ private static VIDEO_MIME_TYPE = MimeTypeUtils.parseMimeType('video/*');
49
+ private static AUDIO_MIME_TYPE = MimeTypeUtils.parseMimeType('audio/*');
50
+
51
+ /**
52
+ * Infers the {@link ModalityType} of the source data used to generate the
53
+ * embedding using the source data {@link MimeType}.
54
+ * @param mimeType the {@link MimeType} of the source data.
55
+ * @return Returns the {@link ModalityType} of the source data used to generate
56
+ * the embedding.
57
+ */
58
+ public static getModalityType(mimeType: MimeType): ModalityType {
59
+ if (!mimeType) {
60
+ return ModalityType.TEXT;
61
+ }
62
+
63
+ if (mimeType.isCompatibleWith(ModalityUtils.IMAGE_MIME_TYPE)) {
64
+ return ModalityType.IMAGE;
65
+ } else if (mimeType.isCompatibleWith(ModalityUtils.AUDIO_MIME_TYPE)) {
66
+ return ModalityType.AUDIO;
67
+ } else if (mimeType.isCompatibleWith(ModalityUtils.VIDEO_MIME_TYPE)) {
68
+ return ModalityType.VIDEO;
69
+ } else if (mimeType.isCompatibleWith(ModalityUtils.TEXT_MIME_TYPE)) {
70
+ return ModalityType.TEXT;
71
+ }
72
+
73
+ throw new Error('Unsupported MimeType: ' + mimeType);
74
+ }
75
+ }
76
+
77
+ /**
78
+ * Metadata for the embedding response.
79
+ */
80
+ export interface EmbeddingResponseMetadata extends ResponseMetadata {
81
+ /**
82
+ * The model that handled the request.
83
+ */
84
+ model: string;
85
+
86
+ /**
87
+ * The AI provider specific metadata on API usage.
88
+ * @see Usage
89
+ */
90
+ usage: Usage;
91
+ }
92
+
93
+ /**
94
+ * Represents a single embedding vector.
95
+ */
96
+ export interface Embedding extends ModelResult<number[]> {
97
+ /**
98
+ * The embedding vector values.
99
+ */
100
+ embedding: number[];
101
+
102
+ /**
103
+ * The embedding index in a list of embeddings.
104
+ */
105
+ index: number;
106
+
107
+ /**
108
+ * The metadata associated with the embedding.
109
+ */
110
+ metadata: EmbeddingResultMetadata;
111
+ }
112
+
113
+ export interface EmbeddingOptions extends ModelOptions {
114
+
115
+ /**
116
+ * The name of the embedding model to use.
117
+ */
118
+ model?: string;
119
+
120
+ /**
121
+ * The dimensionality of the embedding vectors.
122
+ */
123
+ dimensions?: number;
124
+ }
125
+
126
+ export interface EmbeddingRequest extends ModelRequest<string[]> {
127
+ /**
128
+ * The list of input strings for the embedding request.
129
+ */
130
+ inputs: string[];
131
+
132
+ /**
133
+ * The options for the embedding request.
134
+ */
135
+ options: EmbeddingOptions;
136
+ }
137
+
138
+ /**
139
+ * Embedding response object.
140
+ */
141
+ export interface EmbeddingResponse extends ModelResponse<Embedding> {
142
+ /**
143
+ * Embedding data.
144
+ */
145
+ embeddings: Embedding[];
146
+
147
+ /**
148
+ * Embedding metadata.
149
+ */
150
+ metadata: EmbeddingResponseMetadata;
151
+ }
152
+
153
+ export interface EmbeddingModel extends Model<EmbeddingRequest, EmbeddingResponse> {}
@@ -0,0 +1 @@
1
+ export * from './embedding-protocol';
@@ -1,3 +1,4 @@
1
1
  export * from './chat';
2
2
  export * from './model';
3
+ export * from './embedding';
3
4
  export * from './utils';
@@ -1,2 +1,3 @@
1
1
 
2
2
  export * from './model-protocol';
3
+ export * from './function';
@@ -11,6 +11,9 @@
11
11
  import { Media } from '../chat';
12
12
  import { Observable } from 'rxjs';
13
13
 
14
+ export const Model = Symbol('Model');
15
+ export const StreamingModel = Symbol('StreamingModel');
16
+
14
17
  /**
15
18
  * Interface representing the customizable options for AI model interactions. This marker
16
19
  * interface allows for the specification of various settings and parameters that can