@celljs/ai-core 3.4.3 → 3.5.1

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 (93) hide show
  1. package/README.md +26 -1
  2. package/lib/common/chat/index.d.ts +1 -0
  3. package/lib/common/chat/index.d.ts.map +1 -1
  4. package/lib/common/chat/index.js +1 -0
  5. package/lib/common/chat/index.js.map +1 -1
  6. package/lib/common/chat/message/message-protocol.d.ts +29 -4
  7. package/lib/common/chat/message/message-protocol.d.ts.map +1 -1
  8. package/lib/common/chat/message/message-protocol.js.map +1 -1
  9. package/lib/common/chat/metadata/chat-generation-metadata.d.ts +2 -2
  10. package/lib/common/chat/metadata/chat-generation-metadata.d.ts.map +1 -1
  11. package/lib/common/chat/metadata/chat-generation-metadata.js +2 -3
  12. package/lib/common/chat/metadata/chat-generation-metadata.js.map +1 -1
  13. package/lib/common/chat/metadata/metadata-protocol.d.ts +15 -11
  14. package/lib/common/chat/metadata/metadata-protocol.d.ts.map +1 -1
  15. package/lib/common/chat/metadata/metadata-protocol.js +26 -41
  16. package/lib/common/chat/metadata/metadata-protocol.js.map +1 -1
  17. package/lib/common/chat/model/chat-protocol.d.ts +3 -0
  18. package/lib/common/chat/model/chat-protocol.d.ts.map +1 -1
  19. package/lib/common/chat/model/chat-protocol.js +18 -2
  20. package/lib/common/chat/model/chat-protocol.js.map +1 -1
  21. package/lib/common/chat/model/index.d.ts +1 -0
  22. package/lib/common/chat/model/index.d.ts.map +1 -1
  23. package/lib/common/chat/model/index.js +1 -0
  24. package/lib/common/chat/model/index.js.map +1 -1
  25. package/lib/common/chat/model/proxy-chat-model.d.ts +12 -0
  26. package/lib/common/chat/model/proxy-chat-model.d.ts.map +1 -0
  27. package/lib/common/chat/model/proxy-chat-model.js +58 -0
  28. package/lib/common/chat/model/proxy-chat-model.js.map +1 -0
  29. package/lib/common/chat/prompt/prompt-protocol.d.ts +2 -1
  30. package/lib/common/chat/prompt/prompt-protocol.d.ts.map +1 -1
  31. package/lib/common/chat/prompt/prompt-template.d.ts +2 -1
  32. package/lib/common/chat/prompt/prompt-template.d.ts.map +1 -1
  33. package/lib/common/chat/prompt/prompt-template.js +10 -4
  34. package/lib/common/chat/prompt/prompt-template.js.map +1 -1
  35. package/lib/common/chat/tool/index.d.ts +3 -0
  36. package/lib/common/chat/tool/index.d.ts.map +1 -0
  37. package/lib/common/chat/tool/index.js +6 -0
  38. package/lib/common/chat/tool/index.js.map +1 -0
  39. package/lib/common/chat/tool/tool-handler.d.ts +12 -0
  40. package/lib/common/chat/tool/tool-handler.d.ts.map +1 -0
  41. package/lib/common/chat/tool/tool-handler.js +54 -0
  42. package/lib/common/chat/tool/tool-handler.js.map +1 -0
  43. package/lib/common/chat/tool/tool-protocol.d.ts +8 -0
  44. package/lib/common/chat/tool/tool-protocol.d.ts.map +1 -0
  45. package/lib/common/chat/tool/tool-protocol.js +5 -0
  46. package/lib/common/chat/tool/tool-protocol.js.map +1 -0
  47. package/lib/common/error/error.d.ts +3 -0
  48. package/lib/common/error/error.d.ts.map +1 -1
  49. package/lib/common/error/error.js +7 -1
  50. package/lib/common/error/error.js.map +1 -1
  51. package/lib/common/model/function/function-callback-register.d.ts +9 -0
  52. package/lib/common/model/function/function-callback-register.d.ts.map +1 -0
  53. package/lib/common/model/function/function-callback-register.js +43 -0
  54. package/lib/common/model/function/function-callback-register.js.map +1 -0
  55. package/lib/common/model/function/function-protocol.d.ts +28 -2
  56. package/lib/common/model/function/function-protocol.d.ts.map +1 -1
  57. package/lib/common/model/function/function-protocol.js +42 -1
  58. package/lib/common/model/function/function-protocol.js.map +1 -1
  59. package/lib/common/model/function/index.d.ts +1 -0
  60. package/lib/common/model/function/index.d.ts.map +1 -1
  61. package/lib/common/model/function/index.js +1 -0
  62. package/lib/common/model/function/index.js.map +1 -1
  63. package/lib/common/utils/index.d.ts +1 -0
  64. package/lib/common/utils/index.d.ts.map +1 -1
  65. package/lib/common/utils/index.js +1 -0
  66. package/lib/common/utils/index.js.map +1 -1
  67. package/lib/common/utils/sse-util.d.ts +1 -1
  68. package/lib/common/utils/sse-util.d.ts.map +1 -1
  69. package/lib/common/utils/sse-util.js.map +1 -1
  70. package/lib/common/utils/usage-util.d.ts +17 -0
  71. package/lib/common/utils/usage-util.d.ts.map +1 -0
  72. package/lib/common/utils/usage-util.js +62 -0
  73. package/lib/common/utils/usage-util.js.map +1 -0
  74. package/package.json +5 -5
  75. package/src/common/chat/index.ts +1 -0
  76. package/src/common/chat/message/message-protocol.ts +31 -4
  77. package/src/common/chat/metadata/chat-generation-metadata.ts +4 -4
  78. package/src/common/chat/metadata/metadata-protocol.ts +33 -49
  79. package/src/common/chat/model/chat-protocol.ts +22 -4
  80. package/src/common/chat/model/index.ts +1 -0
  81. package/src/common/chat/model/proxy-chat-model.ts +54 -0
  82. package/src/common/chat/prompt/prompt-protocol.ts +2 -1
  83. package/src/common/chat/prompt/prompt-template.ts +12 -6
  84. package/src/common/chat/tool/index.ts +2 -0
  85. package/src/common/chat/tool/tool-handler.ts +51 -0
  86. package/src/common/chat/tool/tool-protocol.ts +9 -0
  87. package/src/common/error/error.ts +6 -0
  88. package/src/common/model/function/function-callback-register.ts +38 -0
  89. package/src/common/model/function/function-protocol.ts +59 -2
  90. package/src/common/model/function/index.ts +1 -0
  91. package/src/common/utils/index.ts +1 -0
  92. package/src/common/utils/sse-util.ts +1 -1
  93. package/src/common/utils/usage-util.ts +60 -0
package/README.md CHANGED
@@ -44,7 +44,7 @@ yarn add @celljs/ai-ollama
44
44
 
45
45
  ```typescript
46
46
  import { AssistantMessage, PromptTemplate } from '@celljs/ai-core';
47
- import { Component Autowired } from '@celljs/core';
47
+ import { Component, Autowired } from '@celljs/core';
48
48
 
49
49
  @Component()
50
50
  export class OllamaDemo {
@@ -103,6 +103,31 @@ export class OllamaDemo {
103
103
  }
104
104
  ```
105
105
 
106
+ 另外也可以使用 `ProxyChatModel` 类统一调用所有的模型服务商的模型:
107
+
108
+ ```typescript
109
+ import { ProxyChatModel } from '@celljs/ai-core';
110
+ import { Component Autowired } from '@celljs/core';
111
+
112
+ @Component()
113
+ export class OllamaDemo {
114
+ @Autowired(ProxyChatModel)
115
+ private chatModel: ChatModel;
116
+
117
+ /**
118
+ * Chat with Ollama
119
+ */
120
+ async chat() {
121
+ const response = await this.chatModel.call({
122
+ prompt: 'Hello {name}',
123
+ variables: { name: 'Ollama' },
124
+ chatOptions: { model: 'ollama:llama3.2' }
125
+ });
126
+ console.log(response.result.output);
127
+ }
128
+ }
129
+ ```
130
+
106
131
  ## 许可证
107
132
 
108
133
  本项目采用 MIT 许可证。
@@ -2,4 +2,5 @@ export * from './message';
2
2
  export * from './metadata';
3
3
  export * from './prompt';
4
4
  export * from './model';
5
+ export * from './tool';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/common/chat/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/common/chat/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC"}
@@ -5,4 +5,5 @@ tslib_1.__exportStar(require("./message"), exports);
5
5
  tslib_1.__exportStar(require("./metadata"), exports);
6
6
  tslib_1.__exportStar(require("./prompt"), exports);
7
7
  tslib_1.__exportStar(require("./model"), exports);
8
+ tslib_1.__exportStar(require("./tool"), exports);
8
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/chat/index.ts"],"names":[],"mappings":";;;AAAA,oDAA0B;AAC1B,qDAA2B;AAC3B,mDAAyB;AACzB,kDAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/chat/index.ts"],"names":[],"mappings":";;;AAAA,oDAA0B;AAC1B,qDAA2B;AAC3B,mDAAyB;AACzB,kDAAwB;AACxB,iDAAuB"}
@@ -1,5 +1,5 @@
1
- import { MediaType } from '@celljs/http';
2
1
  import { Content } from '../../model/model-protocol';
2
+ import { MimeType } from '@celljs/core';
3
3
  /**
4
4
  * The Media class represents the data and metadata of a media attachment in a message. It
5
5
  * consists of a MIME type and the raw data.
@@ -8,11 +8,36 @@ import { Content } from '../../model/model-protocol';
8
8
  *
9
9
  */
10
10
  export interface Media {
11
- readonly mediaType: MediaType;
12
11
  /**
13
- * Get the media data object
12
+ * The unique identifier of the media attachment.
14
13
  */
15
- readonly data: any;
14
+ id?: string;
15
+ /**
16
+ * The MIME type of the media attachment.
17
+ */
18
+ mimeType: MimeType;
19
+ /**
20
+ * The raw data of the media attachment.
21
+ */
22
+ data: any;
23
+ /**
24
+ * The name of the media object that can be referenced by the AI model.
25
+ * <p>
26
+ * Important security note: This field is vulnerable to prompt injections, as the
27
+ * model might inadvertently interpret it as instructions. It is recommended to
28
+ * specify neutral names.
29
+ *
30
+ * <p>
31
+ * The name must only contain:
32
+ * <ul>
33
+ * <li>Alphanumeric characters
34
+ * <li>Whitespace characters (no more than one in a row)
35
+ * <li>Hyphens
36
+ * <li>Parentheses
37
+ * <li>Square brackets
38
+ * </ul>
39
+ */
40
+ name?: string;
16
41
  }
17
42
  /**
18
43
  * The MessageType enum represents the type of a message in a chat application. It can be
@@ -1 +1 @@
1
- {"version":3,"file":"message-protocol.d.ts","sourceRoot":"","sources":["../../../../src/common/chat/message/message-protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAErD;;;;;;GAMG;AACH,MAAM,WAAW,KAAK;IAElB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAE9B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC;CAEtB;AAED;;;GAGG;AACH,oBAAY,WAAW;IACnB,IAAI,SAAS;IACb,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,IAAI,SAAS;CAChB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,OAAQ,SAAQ,OAAO;IACpC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACrC;AAED,yBAAiB,OAAO,CAAC;IACrB,SAAgB,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,OAAO,CAElD;CACJ;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACrB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;CACrB"}
1
+ {"version":3,"file":"message-protocol.d.ts","sourceRoot":"","sources":["../../../../src/common/chat/message/message-protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC;;;;;;GAMG;AACH,MAAM,WAAW,KAAK;IAElB;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,QAAQ,EAAE,QAAQ,CAAC;IAEnB;;OAEG;IACH,IAAI,EAAE,GAAG,CAAC;IAEV;;;;;;;;;;;;;;;;OAgBG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CAEjB;AAED;;;GAGG;AACH,oBAAY,WAAW;IACnB,IAAI,SAAS;IACb,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,IAAI,SAAS;CAChB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,OAAQ,SAAQ,OAAO;IACpC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACrC;AAED,yBAAiB,OAAO,CAAC;IACrB,SAAgB,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,OAAO,CAElD;CACJ;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACrB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;CACrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"message-protocol.js","sourceRoot":"","sources":["../../../../src/common/chat/message/message-protocol.ts"],"names":[],"mappings":";;;AAqBA;;;GAGG;AACH,IAAY,WAMX;AAND,WAAY,WAAW;IACnB,4BAAa,CAAA;IACb,sCAAuB,CAAA;IACvB,gCAAiB,CAAA;IACjB,oCAAqB,CAAA;IACrB,4BAAa,CAAA;AACjB,CAAC,EANW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAMtB;AAcD,IAAiB,OAAO,CAIvB;AAJD,WAAiB,OAAO;IACpB,SAAgB,SAAS,CAAC,GAAQ;QAC9B,OAAO,GAAG,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC;IAChD,CAAC;IAFe,iBAAS,YAExB,CAAA;AACL,CAAC,EAJgB,OAAO,GAAP,eAAO,KAAP,eAAO,QAIvB"}
1
+ {"version":3,"file":"message-protocol.js","sourceRoot":"","sources":["../../../../src/common/chat/message/message-protocol.ts"],"names":[],"mappings":";;;AAgDA;;;GAGG;AACH,IAAY,WAMX;AAND,WAAY,WAAW;IACnB,4BAAa,CAAA;IACb,sCAAuB,CAAA;IACvB,gCAAiB,CAAA;IACjB,oCAAqB,CAAA;IACrB,4BAAa,CAAA;AACjB,CAAC,EANW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAMtB;AAcD,IAAiB,OAAO,CAIvB;AAJD,WAAiB,OAAO;IACpB,SAAgB,SAAS,CAAC,GAAQ;QAC9B,OAAO,GAAG,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC;IAChD,CAAC;IAFe,iBAAS,YAExB,CAAA;AACL,CAAC,EAJgB,OAAO,GAAP,eAAO,KAAP,eAAO,QAIvB"}
@@ -12,9 +12,9 @@ export interface ChatGenerationMetadata extends ResultMetadata {
12
12
  * The reason this choice completed for the generation.
13
13
  */
14
14
  readonly finishReason?: string;
15
+ readonly metadata: Record<string, any>;
15
16
  }
16
17
  export declare class ChatGenerationMetadata {
17
- static EMPTY: ChatGenerationMetadata;
18
18
  /**
19
19
  * Factory method used to construct a new {@link ChatGenerationMetadata} from the
20
20
  * given finish reason and content filter metadata.
@@ -23,6 +23,6 @@ export declare class ChatGenerationMetadata {
23
23
  * @param contentFilterMetadata The content filter metadata.
24
24
  * @returns A new instance of {@link ChatGenerationMetadata}.
25
25
  */
26
- static from(finishReason?: string, contentFilterMetadata?: any): ChatGenerationMetadata;
26
+ static from(finishReason?: string, metadata?: Record<string, any>, contentFilterMetadata?: any): ChatGenerationMetadata;
27
27
  }
28
28
  //# sourceMappingURL=chat-generation-metadata.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat-generation-metadata.d.ts","sourceRoot":"","sources":["../../../../src/common/chat/metadata/chat-generation-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D;;;GAGG;AACH,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAE1D;;OAEG;IACH,QAAQ,CAAC,qBAAqB,CAAC,EAAE,GAAG,CAAC;IAErC;;OAEG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,qBAAa,sBAAsB;IAE/B,MAAM,CAAC,KAAK,EAAE,sBAAsB,CAAiC;IAErE;;;;;;;OAOG;IACH,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,qBAAqB,CAAC,EAAE,GAAG,GAAG,sBAAsB;CAK1F"}
1
+ {"version":3,"file":"chat-generation-metadata.d.ts","sourceRoot":"","sources":["../../../../src/common/chat/metadata/chat-generation-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D;;;GAGG;AACH,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAE1D;;OAEG;IACH,QAAQ,CAAC,qBAAqB,CAAC,EAAE,GAAG,CAAC;IAErC;;OAEG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAE/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC1C;AAED,qBAAa,sBAAsB;IAE/B;;;;;;;OAOG;IACH,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,EAAE,qBAAqB,CAAC,EAAE,GAAG,GAAG,sBAAsB;CAK9H"}
@@ -10,12 +10,11 @@ class ChatGenerationMetadata {
10
10
  * @param contentFilterMetadata The content filter metadata.
11
11
  * @returns A new instance of {@link ChatGenerationMetadata}.
12
12
  */
13
- static from(finishReason, contentFilterMetadata) {
13
+ static from(finishReason, metadata = {}, contentFilterMetadata) {
14
14
  return {
15
- finishReason, contentFilterMetadata
15
+ finishReason, contentFilterMetadata, metadata
16
16
  };
17
17
  }
18
18
  }
19
19
  exports.ChatGenerationMetadata = ChatGenerationMetadata;
20
- ChatGenerationMetadata.EMPTY = ChatGenerationMetadata.from();
21
20
  //# sourceMappingURL=chat-generation-metadata.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat-generation-metadata.js","sourceRoot":"","sources":["../../../../src/common/chat/metadata/chat-generation-metadata.ts"],"names":[],"mappings":";;;AAmBA,MAAa,sBAAsB;IAI/B;;;;;;;OAOG;IACH,MAAM,CAAC,IAAI,CAAC,YAAqB,EAAE,qBAA2B;QAC1D,OAAO;YACH,YAAY,EAAE,qBAAqB;SACtC,CAAC;IACN,CAAC;;AAhBL,wDAiBC;AAfU,4BAAK,GAA2B,sBAAsB,CAAC,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"chat-generation-metadata.js","sourceRoot":"","sources":["../../../../src/common/chat/metadata/chat-generation-metadata.ts"],"names":[],"mappings":";;;AAqBA,MAAa,sBAAsB;IAE/B;;;;;;;OAOG;IACH,MAAM,CAAC,IAAI,CAAC,YAAqB,EAAE,WAAgC,EAAE,EAAE,qBAA2B;QAC9F,OAAO;YACH,YAAY,EAAE,qBAAqB,EAAE,QAAQ;SAChD,CAAC;IACN,CAAC;CACJ;AAfD,wDAeC"}
@@ -7,20 +7,21 @@ export interface Usage {
7
7
  /**
8
8
  * The number of tokens used in the prompt of the AI request.
9
9
  */
10
- readonly promptTokens: number;
10
+ readonly promptTokens?: number;
11
11
  /**
12
12
  * The number of tokens returned in the generation (aka completion)
13
13
  * of the AI's response.
14
14
  */
15
- readonly generationTokens: number;
15
+ readonly generationTokens?: number;
16
16
  /**
17
17
  * The total number of tokens from both the prompt of an AI request
18
18
  * and generation of the AI's response.
19
19
  */
20
- readonly totalTokens: number;
20
+ readonly totalTokens?: number;
21
21
  }
22
22
  export declare namespace Usage {
23
- function from(promptTokens: number, generationTokens: number): Usage;
23
+ function createEmpty(): Usage;
24
+ function from(promptTokens?: number, generationTokens?: number, totalTokens?: number): Usage;
24
25
  }
25
26
  /**
26
27
  * Abstract Data Type (ADT) encapsulating metadata from an AI provider's API rate limits
@@ -31,32 +32,32 @@ export interface RateLimit {
31
32
  * The maximum number of requests that are permitted before exhausting the
32
33
  * rate limit.
33
34
  */
34
- readonly requestsLimit: number;
35
+ readonly requestsLimit?: number;
35
36
  /**
36
37
  * The remaining number of requests that are permitted before exhausting the
37
38
  * requestsLimit rate limit.
38
39
  */
39
- readonly requestsRemaining: number;
40
+ readonly requestsRemaining?: number;
40
41
  /**
41
42
  * The duration time until the rate limit (based on requests) resets
42
43
  * to its requestsLimit initial state.
43
44
  */
44
- readonly requestsReset: number;
45
+ readonly requestsReset?: number;
45
46
  /**
46
47
  * The maximum number of tokens that are permitted before exhausting the rate
47
48
  * limit.
48
49
  */
49
- readonly tokensLimit: number;
50
+ readonly tokensLimit?: number;
50
51
  /**
51
52
  * The remaining number of tokens that are permitted before exhausting the
52
53
  * tokensLimit rate limit.
53
54
  */
54
- readonly tokensRemaining: number;
55
+ readonly tokensRemaining?: number;
55
56
  /**
56
57
  * The duration time until the rate limit (based on tokens) resets to
57
58
  * its tokensLimit initial state.
58
59
  */
59
- readonly tokensReset: number;
60
+ readonly tokensReset?: number;
60
61
  }
61
62
  /**
62
63
  * Abstract Data Type (ADT) modeling filter metadata for all prompts sent during an AI
@@ -92,6 +93,9 @@ export declare namespace PromptMetadata {
92
93
  */
93
94
  function findByPromptIndex(promptMetadata: PromptMetadata, promptIndex: number): PromptFilterMetadata | undefined;
94
95
  }
96
+ export declare namespace RateLimit {
97
+ function createEmpty(): RateLimit;
98
+ }
95
99
  export interface ChatResponseMetadata extends ResponseMetadata {
96
100
  id?: string;
97
101
  model?: string;
@@ -118,7 +122,7 @@ export declare class ChatResponseMetadataBuilder {
118
122
  build(): ChatResponseMetadata;
119
123
  }
120
124
  export declare namespace ChatResponseMetadata {
121
- const EMPTY: ChatResponseMetadata;
125
+ function createEmpty(): ChatResponseMetadata;
122
126
  function builder(): ChatResponseMetadataBuilder;
123
127
  }
124
128
  //# sourceMappingURL=metadata-protocol.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"metadata-protocol.d.ts","sourceRoot":"","sources":["../../../../src/common/chat/metadata/metadata-protocol.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D;;;GAGG;AACH,MAAM,WAAW,KAAK;IAElB;;OAEG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAE9B;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAElC;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAEhC;AAED,yBAAiB,KAAK,CAAC;IACnB,SAAgB,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,KAAK,CAE1E;CACJ;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IAEtB;;;OAGG;IACH,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAE/B;;;OAGG;IACH,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IAEnC;;;OAGG;IACH,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAE/B;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B;;;OAGG;IACH,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IAEjC;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAEhC;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB,CAAC,CAAC,GAAG,GAAG;IAEzC;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B;;;;;;;OAOG;IACH,QAAQ,CAAC,qBAAqB,EAAE,CAAC,CAAC;CAErC;AAED;;;GAGG;AACH,oBAAY,cAAc,GAAG,oBAAoB,EAAE,CAAC;AAEpD,yBAAiB,cAAc,CAAC;IAC5B;;;;;;OAMG;IACH,SAAgB,iBAAiB,CAAC,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS,CAOvH;CACJ;AAED,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC1D,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,SAAS,EAAE,SAAS,CAAC;IAErB;;;OAGG;IACH,KAAK,EAAE,KAAK,CAAC;IAEb,cAAc,EAAE,cAAc,CAAC;CAElC;AAED,qBAAa,2BAA2B;IAEpC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAkBnC;IAEF,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,2BAA2B;IAK3C,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,2BAA2B;IAKjD,SAAS,CAAC,SAAS,EAAE,SAAS,GAAG,2BAA2B;IAK5D,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,2BAA2B;IAKhD,cAAc,CAAC,cAAc,EAAE,cAAc,GAAG,2BAA2B;IAK3E,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,2BAA2B;IAW9D,KAAK,IAAI,oBAAoB;CAIhC;AAED,yBAAiB,oBAAoB,CAAC;IAC3B,MAAM,KAAK,EAAE,oBAkBnB,CAAC;IAEF,SAAgB,OAAO,IAAI,2BAA2B,CAErD;CACJ"}
1
+ {"version":3,"file":"metadata-protocol.d.ts","sourceRoot":"","sources":["../../../../src/common/chat/metadata/metadata-protocol.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D;;;GAGG;AACH,MAAM,WAAW,KAAK;IAElB;;OAEG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAE/B;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAEnC;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAEjC;AAED,yBAAiB,KAAK,CAAC;IACnB,SAAgB,WAAW,IAAI,KAAK,CAEnC;IAED,SAAgB,IAAI,CAAC,YAAY,SAAI,EAAE,gBAAgB,SAAI,EAAE,WAAW,SAAI,GAAG,KAAK,CAEnF;CACJ;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IAEtB;;;OAGG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEhC;;;OAGG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAEpC;;;OAGG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEhC;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAE9B;;;OAGG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAElC;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAEjC;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB,CAAC,CAAC,GAAG,GAAG;IAEzC;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B;;;;;;;OAOG;IACH,QAAQ,CAAC,qBAAqB,EAAE,CAAC,CAAC;CAErC;AAED;;;GAGG;AACH,oBAAY,cAAc,GAAG,oBAAoB,EAAE,CAAC;AAEpD,yBAAiB,cAAc,CAAC;IAC5B;;;;;;OAMG;IACH,SAAgB,iBAAiB,CAAC,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS,CAOvH;CACJ;AAED,yBAAiB,SAAS,CAAC;IACvB,SAAgB,WAAW,IAAI,SAAS,CAEvC;CACJ;AAED,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC1D,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,SAAS,EAAE,SAAS,CAAC;IAErB;;;OAGG;IACH,KAAK,EAAE,KAAK,CAAC;IAEb,cAAc,EAAE,cAAc,CAAC;CAElC;AAED,qBAAa,2BAA2B;IAEpC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA4D;IAEjG,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,2BAA2B;IAK3C,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,2BAA2B;IAKjD,SAAS,CAAC,SAAS,EAAE,SAAS,GAAG,2BAA2B;IAK5D,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,2BAA2B;IAKhD,cAAc,CAAC,cAAc,EAAE,cAAc,GAAG,2BAA2B;IAK3E,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,2BAA2B;IAW9D,KAAK,IAAI,oBAAoB;CAIhC;AAED,yBAAiB,oBAAoB,CAAC;IAElC,SAAgB,WAAW,IAAI,oBAAoB,CASlD;IAED,SAAgB,OAAO,IAAI,2BAA2B,CAErD;CACJ"}
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ChatResponseMetadata = exports.ChatResponseMetadataBuilder = exports.PromptMetadata = exports.Usage = void 0;
3
+ exports.ChatResponseMetadata = exports.ChatResponseMetadataBuilder = exports.RateLimit = exports.PromptMetadata = exports.Usage = void 0;
4
4
  const core_1 = require("@celljs/core");
5
5
  var Usage;
6
6
  (function (Usage) {
7
- function from(promptTokens, generationTokens) {
8
- return { promptTokens, generationTokens, totalTokens: promptTokens + generationTokens };
7
+ function createEmpty() {
8
+ return { promptTokens: 0, generationTokens: 0, totalTokens: 0 };
9
+ }
10
+ Usage.createEmpty = createEmpty;
11
+ function from(promptTokens = 0, generationTokens = 0, totalTokens = 0) {
12
+ return { promptTokens, generationTokens, totalTokens: totalTokens ? totalTokens : promptTokens + generationTokens };
9
13
  }
10
14
  Usage.from = from;
11
15
  })(Usage = exports.Usage || (exports.Usage = {}));
@@ -26,27 +30,16 @@ var PromptMetadata;
26
30
  }
27
31
  PromptMetadata.findByPromptIndex = findByPromptIndex;
28
32
  })(PromptMetadata = exports.PromptMetadata || (exports.PromptMetadata = {}));
33
+ var RateLimit;
34
+ (function (RateLimit) {
35
+ function createEmpty() {
36
+ return { requestsLimit: 0, requestsRemaining: 0, requestsReset: 0, tokensLimit: 0, tokensRemaining: 0, tokensReset: 0 };
37
+ }
38
+ RateLimit.createEmpty = createEmpty;
39
+ })(RateLimit = exports.RateLimit || (exports.RateLimit = {}));
29
40
  class ChatResponseMetadataBuilder {
30
41
  constructor() {
31
- this.chatResponseMetadata = {
32
- id: '',
33
- model: '',
34
- rateLimit: {
35
- requestsLimit: 0,
36
- requestsRemaining: 0,
37
- requestsReset: 0,
38
- tokensLimit: 0,
39
- tokensRemaining: 0,
40
- tokensReset: 0
41
- },
42
- usage: {
43
- promptTokens: 0,
44
- generationTokens: 0,
45
- totalTokens: 0
46
- },
47
- promptMetadata: [],
48
- extra: {}
49
- };
42
+ this.chatResponseMetadata = ChatResponseMetadata.createEmpty();
50
43
  }
51
44
  id(id) {
52
45
  this.chatResponseMetadata.id = id;
@@ -84,25 +77,17 @@ class ChatResponseMetadataBuilder {
84
77
  exports.ChatResponseMetadataBuilder = ChatResponseMetadataBuilder;
85
78
  var ChatResponseMetadata;
86
79
  (function (ChatResponseMetadata) {
87
- ChatResponseMetadata.EMPTY = {
88
- id: '',
89
- model: '',
90
- rateLimit: {
91
- requestsLimit: 0,
92
- requestsRemaining: 0,
93
- requestsReset: 0,
94
- tokensLimit: 0,
95
- tokensRemaining: 0,
96
- tokensReset: 0
97
- },
98
- usage: {
99
- promptTokens: 0,
100
- generationTokens: 0,
101
- totalTokens: 0
102
- },
103
- promptMetadata: [],
104
- extra: {}
105
- };
80
+ function createEmpty() {
81
+ return {
82
+ id: '',
83
+ model: '',
84
+ rateLimit: RateLimit.createEmpty(),
85
+ usage: Usage.createEmpty(),
86
+ promptMetadata: [],
87
+ extra: {}
88
+ };
89
+ }
90
+ ChatResponseMetadata.createEmpty = createEmpty;
106
91
  function builder() {
107
92
  return new ChatResponseMetadataBuilder();
108
93
  }
@@ -1 +1 @@
1
- {"version":3,"file":"metadata-protocol.js","sourceRoot":"","sources":["../../../../src/common/chat/metadata/metadata-protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metadata-protocol.js","sourceRoot":"","sources":["../../../../src/common/chat/metadata/metadata-protocol.ts"],"names":[],"mappings":"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"}
@@ -8,14 +8,17 @@ export declare const ChatModel: unique symbol;
8
8
  * Represents a response returned by the AI.
9
9
  */
10
10
  export interface Generation extends ModelResult<AssistantMessage> {
11
+ metadata: ChatGenerationMetadata;
11
12
  }
12
13
  export interface ChatResponse extends ModelResponse<Generation> {
14
+ metadata: ChatResponseMetadata;
13
15
  }
14
16
  export declare namespace Generation {
15
17
  function from(output: AssistantMessage, metadata?: ChatGenerationMetadata): Generation;
16
18
  }
17
19
  export declare namespace ChatResponse {
18
20
  function from(results: Generation[], metadata?: ChatResponseMetadata): ChatResponse;
21
+ function isToolCall(chatResponse: ChatResponse, toolCallFinishReasons: Set<string>): boolean;
19
22
  }
20
23
  export interface StreamingChatModel extends StreamingModel<Prompt, ChatResponse> {
21
24
  }
@@ -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,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAC3E,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,yBAAiB,UAAU,CAAC;IACxB,SAAgB,IAAI,CAAC,MAAM,EAAE,gBAAgB,EAAE,QAAQ,yBAA+B,GAAG,UAAU,CAElG;CACJ;AAED,yBAAiB,YAAY,CAAC;IAC1B,SAAgB,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,QAAQ,uBAA6B,GAAG,YAAY,CAE/F;CACJ;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,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAC3E,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;IAC7D,QAAQ,EAAE,sBAAsB,CAAC;CACpC;AAED,MAAM,WAAW,YAAa,SAAQ,aAAa,CAAC,UAAU,CAAC;IAC3D,QAAQ,EAAE,oBAAoB,CAAC;CAClC;AAED,yBAAiB,UAAU,CAAC;IACxB,SAAgB,IAAI,CAAC,MAAM,EAAE,gBAAgB,EAAE,QAAQ,yBAAgC,GAAG,UAAU,CAEnG;CACJ;AAED,yBAAiB,YAAY,CAAC;IAC1B,SAAgB,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,QAAQ,uBAAqC,GAAG,YAAY,CAEvG;IAED,SAAgB,UAAU,CAAC,YAAY,EAAE,YAAY,EAAE,qBAAqB,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,CAWlG;CAMJ;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"}
@@ -6,16 +6,32 @@ exports.StreamingChatModel = Symbol('StreamingChatModel');
6
6
  exports.ChatModel = Symbol('ChatModel');
7
7
  var Generation;
8
8
  (function (Generation) {
9
- function from(output, metadata = metadata_1.ChatGenerationMetadata.EMPTY) {
9
+ function from(output, metadata = metadata_1.ChatGenerationMetadata.from()) {
10
10
  return { output, metadata };
11
11
  }
12
12
  Generation.from = from;
13
13
  })(Generation = exports.Generation || (exports.Generation = {}));
14
14
  var ChatResponse;
15
15
  (function (ChatResponse) {
16
- function from(results, metadata = metadata_1.ChatResponseMetadata.EMPTY) {
16
+ function from(results, metadata = metadata_1.ChatResponseMetadata.createEmpty()) {
17
17
  return { result: results[0], results, metadata };
18
18
  }
19
19
  ChatResponse.from = from;
20
+ function isToolCall(chatResponse, toolCallFinishReasons) {
21
+ if (!chatResponse) {
22
+ return false;
23
+ }
24
+ const generations = chatResponse.results;
25
+ if (!generations || generations.length === 0) {
26
+ return false;
27
+ }
28
+ return generations.some(g => doIsToolCall(g, toolCallFinishReasons));
29
+ }
30
+ ChatResponse.isToolCall = isToolCall;
31
+ function doIsToolCall(generation, toolCallFinishReasons) {
32
+ var _a, _b;
33
+ const finishReason = (_a = generation.metadata.finishReason) !== null && _a !== void 0 ? _a : '';
34
+ return ((_b = generation.output.toolCalls) === null || _b === void 0 ? void 0 : _b.length) > 0 && toolCallFinishReasons.has(finishReason.toLowerCase());
35
+ }
20
36
  })(ChatResponse = exports.ChatResponse || (exports.ChatResponse = {}));
21
37
  //# 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":";;;AAEA,0CAA2E;AAG9D,QAAA,kBAAkB,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAClD,QAAA,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAa7C,IAAiB,UAAU,CAI1B;AAJD,WAAiB,UAAU;IACvB,SAAgB,IAAI,CAAC,MAAwB,EAAE,QAAQ,GAAG,iCAAsB,CAAC,KAAK;QAClF,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAChC,CAAC;IAFe,eAAI,OAEnB,CAAA;AACL,CAAC,EAJgB,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAI1B;AAED,IAAiB,YAAY,CAI5B;AAJD,WAAiB,YAAY;IACzB,SAAgB,IAAI,CAAC,OAAqB,EAAE,QAAQ,GAAG,+BAAoB,CAAC,KAAK;QAC7E,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IACrD,CAAC;IAFe,iBAAI,OAEnB,CAAA;AACL,CAAC,EAJgB,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAI5B"}
1
+ {"version":3,"file":"chat-protocol.js","sourceRoot":"","sources":["../../../../src/common/chat/model/chat-protocol.ts"],"names":[],"mappings":";;;AAEA,0CAA2E;AAG9D,QAAA,kBAAkB,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAClD,QAAA,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAa7C,IAAiB,UAAU,CAI1B;AAJD,WAAiB,UAAU;IACvB,SAAgB,IAAI,CAAC,MAAwB,EAAE,QAAQ,GAAG,iCAAsB,CAAC,IAAI,EAAE;QACnF,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAChC,CAAC;IAFe,eAAI,OAEnB,CAAA;AACL,CAAC,EAJgB,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAI1B;AAED,IAAiB,YAAY,CAsB5B;AAtBD,WAAiB,YAAY;IACzB,SAAgB,IAAI,CAAC,OAAqB,EAAE,QAAQ,GAAG,+BAAoB,CAAC,WAAW,EAAE;QACrF,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IACrD,CAAC;IAFe,iBAAI,OAEnB,CAAA;IAED,SAAgB,UAAU,CAAC,YAA0B,EAAE,qBAAkC;QACrF,IAAI,CAAC,YAAY,EAAE;YACf,OAAO,KAAK,CAAC;SAChB;QAED,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC;QACzC,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;YAC1C,OAAO,KAAK,CAAC;SAChB;QAED,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC;IACzE,CAAC;IAXe,uBAAU,aAWzB,CAAA;IAED,SAAS,YAAY,CAAC,UAAsB,EAAE,qBAAkC;;QAC5E,MAAM,YAAY,GAAG,MAAA,UAAU,CAAC,QAAQ,CAAC,YAAY,mCAAI,EAAE,CAAC;QAC5D,OAAO,CAAA,MAAA,UAAU,CAAC,MAAM,CAAC,SAAS,0CAAE,MAAM,IAAG,CAAC,IAAI,qBAAqB,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;IAC5G,CAAC;AACL,CAAC,EAtBgB,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAsB5B"}
@@ -1,2 +1,3 @@
1
1
  export * from './chat-protocol';
2
+ export * from './proxy-chat-model';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/common/chat/model/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/common/chat/model/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC"}
@@ -2,4 +2,5 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  tslib_1.__exportStar(require("./chat-protocol"), exports);
5
+ tslib_1.__exportStar(require("./proxy-chat-model"), exports);
5
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/common/chat/model/index.ts"],"names":[],"mappings":";;;AAAA,0DAAgC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/common/chat/model/index.ts"],"names":[],"mappings":";;;AAAA,0DAAgC;AAChC,6DAAmC"}
@@ -0,0 +1,12 @@
1
+ import { ChatModel, ChatResponse } from './chat-protocol';
2
+ import { Observable } from 'rxjs';
3
+ import { Prompt } from '../prompt';
4
+ export declare class ProxyChatModel implements ChatModel {
5
+ protected readonly chatModels: ChatModel[];
6
+ protected readonly chatModelMap: Map<string, ChatModel>;
7
+ protected init(): void;
8
+ protected resolveChatModelAndPrompt(prompt: Prompt): [ChatModel, Prompt];
9
+ call(prompt: Prompt): Promise<ChatResponse>;
10
+ stream(prompt: Prompt): Promise<Observable<ChatResponse>>;
11
+ }
12
+ //# sourceMappingURL=proxy-chat-model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy-chat-model.d.ts","sourceRoot":"","sources":["../../../../src/common/chat/model/proxy-chat-model.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,qBACa,cAAe,YAAW,SAAS;IAG5C,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC;IAE3C,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAa;IAEpE,SAAS,CAAC,IAAI;IAYd,SAAS,CAAC,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC;IAkBxE,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAK3C,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;CAK5D"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var ProxyChatModel_1;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.ProxyChatModel = void 0;
5
+ const tslib_1 = require("tslib");
6
+ const core_1 = require("@celljs/core");
7
+ const chat_protocol_1 = require("./chat-protocol");
8
+ let ProxyChatModel = ProxyChatModel_1 = class ProxyChatModel {
9
+ constructor() {
10
+ this.chatModelMap = new Map();
11
+ }
12
+ init() {
13
+ for (const chatModel of this.chatModels) {
14
+ if ('provider' in chatModel) {
15
+ // @ts-ignore
16
+ this.chatModelMap.set(chatModel.provider, chatModel);
17
+ }
18
+ else {
19
+ const provider = chatModel.constructor.name.split('ChatModel')[0].toLowerCase();
20
+ this.chatModelMap.set(provider, chatModel);
21
+ }
22
+ }
23
+ }
24
+ resolveChatModelAndPrompt(prompt) {
25
+ const model = prompt.options.model;
26
+ if (!model) {
27
+ throw new core_1.IllegalArgumentError('Model not specified in prompt options.');
28
+ }
29
+ if (!model.includes(':')) {
30
+ throw new core_1.IllegalArgumentError('Invalid model name format. Expected "<provider>:<model-name>".');
31
+ }
32
+ const [provider, modelName] = model.split(':');
33
+ const chatModel = this.chatModelMap.get(provider);
34
+ if (!chatModel) {
35
+ throw new core_1.IllegalArgumentError(`Chat model provider "${provider}" not found.`);
36
+ }
37
+ const newPrompt = prompt.copy();
38
+ newPrompt.options.model = modelName;
39
+ return [chatModel, newPrompt];
40
+ }
41
+ call(prompt) {
42
+ const [chatModel, newPrompt] = this.resolveChatModelAndPrompt(prompt);
43
+ return chatModel.call(newPrompt);
44
+ }
45
+ stream(prompt) {
46
+ const [chatModel, newPrompt] = this.resolveChatModelAndPrompt(prompt);
47
+ return chatModel.stream(newPrompt);
48
+ }
49
+ };
50
+ tslib_1.__decorate([
51
+ (0, core_1.Autowired)(chat_protocol_1.ChatModel),
52
+ tslib_1.__metadata("design:type", Array)
53
+ ], ProxyChatModel.prototype, "chatModels", void 0);
54
+ ProxyChatModel = ProxyChatModel_1 = tslib_1.__decorate([
55
+ (0, core_1.Component)(ProxyChatModel_1)
56
+ ], ProxyChatModel);
57
+ exports.ProxyChatModel = ProxyChatModel;
58
+ //# sourceMappingURL=proxy-chat-model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy-chat-model.js","sourceRoot":"","sources":["../../../../src/common/chat/model/proxy-chat-model.ts"],"names":[],"mappings":";;;;;AAAA,uCAA0E;AAC1E,mDAA0D;AAKnD,IAAM,cAAc,sBAApB,MAAM,cAAc;IAApB;QAKgB,iBAAY,GAA2B,IAAI,GAAG,EAAE,CAAC;IA0CxE,CAAC;IAxCa,IAAI;QACV,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE;YACrC,IAAI,UAAU,IAAI,SAAS,EAAE;gBACzB,aAAa;gBACb,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,QAAkB,EAAE,SAAS,CAAC,CAAC;aAClE;iBAAM;gBACH,MAAM,QAAQ,GAAG,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;gBAChF,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;aAC9C;SACJ;IACL,CAAC;IAES,yBAAyB,CAAC,MAAc;QAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;QACnC,IAAI,CAAC,KAAK,EAAE;YACR,MAAM,IAAI,2BAAoB,CAAC,wCAAwC,CAAC,CAAC;SAC5E;QACD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACtB,MAAM,IAAI,2BAAoB,CAAC,gEAAgE,CAAC,CAAC;SACpG;QACD,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC,SAAS,EAAE;YACZ,MAAM,IAAI,2BAAoB,CAAC,wBAAwB,QAAQ,cAAc,CAAC,CAAC;SAClF;QACD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAChC,SAAS,CAAC,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;QACpC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,CAAC,MAAc;QACf,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;QACtE,OAAO,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,MAAc;QACjB,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;QACtE,OAAO,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;CAEJ,CAAA;AA7CG;IAAC,IAAA,gBAAS,EAAC,yBAAS,CAAC;;kDACsB;AAHlC,cAAc;IAD1B,IAAA,gBAAS,EAAC,gBAAc,CAAC;GACb,cAAc,CA+C1B;AA/CY,wCAAc"}
@@ -16,6 +16,7 @@ export interface ChatOptions extends ModelOptions {
16
16
  }
17
17
  export interface Prompt extends ModelRequest<Message[]> {
18
18
  readonly contents: string;
19
+ readonly options: ChatOptions;
19
20
  copy(): Prompt;
20
21
  }
21
22
  export interface PromptTemplateContext {
@@ -25,6 +26,6 @@ export interface PromptTemplateContext {
25
26
  }
26
27
  export interface PromptTemplate {
27
28
  render(template: string, ctx?: PromptTemplateContext): Promise<string>;
28
- create(template: string, ctx?: PromptTemplateContext): Promise<Prompt>;
29
+ create(template: string | Message[], ctx?: PromptTemplateContext): Promise<Prompt>;
29
30
  }
30
31
  //# sourceMappingURL=prompt-protocol.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-protocol.d.ts","sourceRoot":"","sources":["../../../../src/common/chat/prompt/prompt-protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAEnE,eAAO,MAAM,cAAc,eAA2B,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,YAAY;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,MAAO,SAAQ,YAAY,CAAC,OAAO,EAAE,CAAC;IACnD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,IAAI,IAAI,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,WAAW,CAAC,EAAE,WAAW,CAAC;CAC7B;AAED,MAAM,WAAW,cAAc;IAC3B,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACvE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC1E"}
1
+ {"version":3,"file":"prompt-protocol.d.ts","sourceRoot":"","sources":["../../../../src/common/chat/prompt/prompt-protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAEnE,eAAO,MAAM,cAAc,eAA2B,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,YAAY;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,MAAO,SAAQ,YAAY,CAAC,OAAO,EAAE,CAAC;IACnD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,IAAI,IAAI,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,WAAW,CAAC,EAAE,WAAW,CAAC;CAC7B;AAED,MAAM,WAAW,cAAc;IAC3B,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACvE,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,EAAE,EAAE,GAAG,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACtF"}
@@ -1,8 +1,9 @@
1
1
  import { ExpressionHandler } from '@celljs/core';
2
2
  import { Prompt, PromptTemplate, PromptTemplateContext } from './prompt-protocol';
3
+ import { Message } from '../message';
3
4
  export declare class PromptTemplateImpl implements PromptTemplate {
4
5
  protected readonly expressionHandler: ExpressionHandler;
5
6
  render(template: string, ctx?: PromptTemplateContext): Promise<string>;
6
- create(template: string, ctx?: PromptTemplateContext): Promise<Prompt>;
7
+ create(template: string | Message[], ctx?: PromptTemplateContext): Promise<Prompt>;
7
8
  }
8
9
  //# sourceMappingURL=prompt-template.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-template.d.ts","sourceRoot":"","sources":["../../../../src/common/chat/prompt/prompt-template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,iBAAiB,EAAwB,MAAM,cAAc,CAAC;AAC7F,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAIlF,qBACa,kBAAmB,YAAW,cAAc;IAGrD,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAElD,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAMtE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;CAQ/E"}
1
+ {"version":3,"file":"prompt-template.d.ts","sourceRoot":"","sources":["../../../../src/common/chat/prompt/prompt-template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,iBAAiB,EAAwB,MAAM,cAAc,CAAC;AAC7F,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAElF,OAAO,EAAE,OAAO,EAA8B,MAAM,YAAY,CAAC;AAEjE,qBACa,kBAAmB,YAAW,cAAc;IAGrD,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAElD,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAMtE,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,EAAE,EAAE,GAAG,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;CAc3F"}
@@ -14,11 +14,17 @@ let PromptTemplateImpl = class PromptTemplateImpl {
14
14
  return template;
15
15
  }
16
16
  async create(template, ctx) {
17
- if (!(ctx === null || ctx === void 0 ? void 0 : ctx.messageType) || (ctx === null || ctx === void 0 ? void 0 : ctx.messageType) === message_1.MessageType.USER) {
18
- return new prompt_1.PromptImpl(await this.render(template, ctx), ctx === null || ctx === void 0 ? void 0 : ctx.chatOptions);
17
+ if (Array.isArray(template)
18
+ && template.some(message => message_1.Message.isMessage(message))) {
19
+ return new prompt_1.PromptImpl(template, ctx === null || ctx === void 0 ? void 0 : ctx.chatOptions);
19
20
  }
20
- else if ((ctx === null || ctx === void 0 ? void 0 : ctx.messageType) === message_1.MessageType.SYSTEM) {
21
- return new prompt_1.PromptImpl(new message_1.SystemMessage(await this.render(template, ctx)), ctx === null || ctx === void 0 ? void 0 : ctx.chatOptions);
21
+ else if (typeof template === 'string') {
22
+ if (!(ctx === null || ctx === void 0 ? void 0 : ctx.messageType) || (ctx === null || ctx === void 0 ? void 0 : ctx.messageType) === message_1.MessageType.USER) {
23
+ return new prompt_1.PromptImpl(await this.render(template, ctx), ctx === null || ctx === void 0 ? void 0 : ctx.chatOptions);
24
+ }
25
+ else if ((ctx === null || ctx === void 0 ? void 0 : ctx.messageType) === message_1.MessageType.SYSTEM) {
26
+ return new prompt_1.PromptImpl(new message_1.SystemMessage(await this.render(template, ctx)), ctx === null || ctx === void 0 ? void 0 : ctx.chatOptions);
27
+ }
22
28
  }
23
29
  throw new core_1.IllegalArgumentError(`Invalid message type: ${ctx === null || ctx === void 0 ? void 0 : ctx.messageType}`);
24
30
  }