@celljs/ai-openai 3.8.0 → 3.9.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 (71) hide show
  1. package/esm/common/api/api-protocol.d.ts +46 -0
  2. package/esm/common/api/api-protocol.js +3 -0
  3. package/esm/common/api/api-protocol.js.map +1 -0
  4. package/esm/common/api/chat-request.d.ts +203 -0
  5. package/esm/common/api/chat-request.js +236 -0
  6. package/esm/common/api/chat-request.js.map +1 -0
  7. package/esm/common/api/chat-response.d.ts +192 -0
  8. package/esm/common/api/chat-response.js +191 -0
  9. package/esm/common/api/chat-response.js.map +1 -0
  10. package/esm/common/api/embeddings-request.d.ts +62 -0
  11. package/esm/common/api/embeddings-request.js +85 -0
  12. package/esm/common/api/embeddings-request.js.map +1 -0
  13. package/esm/common/api/embeddings-response.d.ts +26 -0
  14. package/esm/common/api/embeddings-response.js +44 -0
  15. package/esm/common/api/embeddings-response.js.map +1 -0
  16. package/esm/common/api/index.d.ts +9 -0
  17. package/esm/common/api/index.js +10 -0
  18. package/esm/common/api/index.js.map +1 -0
  19. package/esm/common/api/message.d.ts +215 -0
  20. package/esm/common/api/message.js +250 -0
  21. package/esm/common/api/message.js.map +1 -0
  22. package/esm/common/api/openai-api.d.ts +18 -0
  23. package/esm/common/api/openai-api.js +118 -0
  24. package/esm/common/api/openai-api.js.map +1 -0
  25. package/esm/common/api/openai-model.d.ts +116 -0
  26. package/esm/common/api/openai-model.js +118 -0
  27. package/esm/common/api/openai-model.js.map +1 -0
  28. package/esm/common/api/response-format.d.ts +59 -0
  29. package/esm/common/api/response-format.js +107 -0
  30. package/esm/common/api/response-format.js.map +1 -0
  31. package/esm/common/api/usage.d.ts +78 -0
  32. package/esm/common/api/usage.js +106 -0
  33. package/esm/common/api/usage.js.map +1 -0
  34. package/esm/common/index.d.ts +3 -0
  35. package/esm/common/index.js +4 -0
  36. package/esm/common/index.js.map +1 -0
  37. package/esm/common/model/index.d.ts +4 -0
  38. package/esm/common/model/index.js +5 -0
  39. package/esm/common/model/index.js.map +1 -0
  40. package/esm/common/model/openai-chat-model.d.ts +36 -0
  41. package/esm/common/model/openai-chat-model.js +363 -0
  42. package/esm/common/model/openai-chat-model.js.map +1 -0
  43. package/esm/common/model/openai-chat-options.d.ts +169 -0
  44. package/esm/common/model/openai-chat-options.js +274 -0
  45. package/esm/common/model/openai-chat-options.js.map +1 -0
  46. package/esm/common/model/openai-embedding-model.d.ts +14 -0
  47. package/esm/common/model/openai-embedding-model.js +69 -0
  48. package/esm/common/model/openai-embedding-model.js.map +1 -0
  49. package/esm/common/model/openai-embedding-options.d.ts +34 -0
  50. package/esm/common/model/openai-embedding-options.js +72 -0
  51. package/esm/common/model/openai-embedding-options.js.map +1 -0
  52. package/esm/common/module.d.ts +3 -0
  53. package/esm/common/module.js +4 -0
  54. package/esm/common/module.js.map +1 -0
  55. package/esm/common/support/index.d.ts +2 -0
  56. package/esm/common/support/index.js +3 -0
  57. package/esm/common/support/index.js.map +1 -0
  58. package/esm/common/support/openai-api-response-headers.d.ts +33 -0
  59. package/esm/common/support/openai-api-response-headers.js +42 -0
  60. package/esm/common/support/openai-api-response-headers.js.map +1 -0
  61. package/esm/common/support/openai-response-header-extractor.d.ts +11 -0
  62. package/esm/common/support/openai-response-header-extractor.js +129 -0
  63. package/esm/common/support/openai-response-header-extractor.js.map +1 -0
  64. package/esm/common/test/mock-openai-api.d.ts +12 -0
  65. package/esm/common/test/mock-openai-api.js +53 -0
  66. package/esm/common/test/mock-openai-api.js.map +1 -0
  67. package/esm/common/test/test-container.d.ts +2 -0
  68. package/esm/common/test/test-container.js +12 -0
  69. package/esm/common/test/test-container.js.map +1 -0
  70. package/esm/package.json +3 -0
  71. package/package.json +46 -6
@@ -0,0 +1,274 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ var OpenAIChatOptions_1;
11
+ import { Expose, Exclude, Type } from 'class-transformer';
12
+ import { OpenAIModel } from '../api/openai-model.js';
13
+ import { Constant } from '@celljs/core';
14
+ import { AudioParameters, FunctionTool, ResponseFormat, StreamOptions } from '../api/index.js';
15
+ /**
16
+ * Options for the OpenAI Chat API.
17
+ */
18
+ let OpenAIChatOptions = OpenAIChatOptions_1 = class OpenAIChatOptions {
19
+ constructor() {
20
+ /**
21
+ * Tool Function Callbacks to register with the ChatModel.
22
+ */
23
+ this.functionCallbacks = [];
24
+ /**
25
+ * List of functions, identified by their names, to configure for function calling in
26
+ * the chat completion requests.
27
+ */
28
+ this.functions = new Set();
29
+ /**
30
+ * Optional HTTP headers to be added to the chat completion request.
31
+ */
32
+ this.httpHeaders = {};
33
+ }
34
+ copy() {
35
+ return OpenAIChatOptions_1.options(this);
36
+ }
37
+ static options(fromOptions) {
38
+ const options = new OpenAIChatOptions_1();
39
+ Object.assign(options, fromOptions);
40
+ options.functionCallbacks = [...(fromOptions.functionCallbacks || [])];
41
+ options.functions = new Set(fromOptions.functions);
42
+ options.httpHeaders = { ...fromOptions.httpHeaders };
43
+ return options;
44
+ }
45
+ static builder() {
46
+ return new OpenAIOptionsBuilder();
47
+ }
48
+ };
49
+ OpenAIChatOptions.DEFAULT_MODEL = OpenAIModel.GPT_3_5_TURBO;
50
+ __decorate([
51
+ Expose({ name: 'max_tokens' }),
52
+ __metadata("design:type", Number)
53
+ ], OpenAIChatOptions.prototype, "maxTokens", void 0);
54
+ __decorate([
55
+ Expose({ name: 'top_p' }),
56
+ __metadata("design:type", Number)
57
+ ], OpenAIChatOptions.prototype, "topP", void 0);
58
+ __decorate([
59
+ Expose({ name: 'presence_penalty' }),
60
+ __metadata("design:type", Number)
61
+ ], OpenAIChatOptions.prototype, "presencePenalty", void 0);
62
+ __decorate([
63
+ Expose({ name: 'frequency_penalty' }),
64
+ __metadata("design:type", Number)
65
+ ], OpenAIChatOptions.prototype, "frequencyPenalty", void 0);
66
+ __decorate([
67
+ Expose({ name: 'modalities' }),
68
+ __metadata("design:type", Array)
69
+ ], OpenAIChatOptions.prototype, "outputModalities", void 0);
70
+ __decorate([
71
+ Expose({ name: 'audio' }),
72
+ __metadata("design:type", AudioParameters)
73
+ ], OpenAIChatOptions.prototype, "outputAudio", void 0);
74
+ __decorate([
75
+ Expose({ name: 'logit_bias' }),
76
+ __metadata("design:type", Object)
77
+ ], OpenAIChatOptions.prototype, "logitBias", void 0);
78
+ __decorate([
79
+ Expose(),
80
+ __metadata("design:type", Boolean)
81
+ ], OpenAIChatOptions.prototype, "logprobs", void 0);
82
+ __decorate([
83
+ Expose({ name: 'top_logprobs' }),
84
+ __metadata("design:type", Number)
85
+ ], OpenAIChatOptions.prototype, "topLogprobs", void 0);
86
+ __decorate([
87
+ Type(() => ResponseFormat),
88
+ Expose({ name: 'response_format' }),
89
+ __metadata("design:type", ResponseFormat)
90
+ ], OpenAIChatOptions.prototype, "responseFormat", void 0);
91
+ __decorate([
92
+ Type(() => StreamOptions),
93
+ Expose({ name: 'stream_options' }),
94
+ __metadata("design:type", StreamOptions)
95
+ ], OpenAIChatOptions.prototype, "streamOptions", void 0);
96
+ __decorate([
97
+ Expose(),
98
+ __metadata("design:type", Number)
99
+ ], OpenAIChatOptions.prototype, "seed", void 0);
100
+ __decorate([
101
+ Expose(),
102
+ __metadata("design:type", Array)
103
+ ], OpenAIChatOptions.prototype, "stop", void 0);
104
+ __decorate([
105
+ Type(() => FunctionTool),
106
+ Expose(),
107
+ __metadata("design:type", Array)
108
+ ], OpenAIChatOptions.prototype, "tools", void 0);
109
+ __decorate([
110
+ Expose({ name: 'tool_choice' }),
111
+ __metadata("design:type", Object)
112
+ ], OpenAIChatOptions.prototype, "toolChoice", void 0);
113
+ __decorate([
114
+ Expose(),
115
+ __metadata("design:type", String)
116
+ ], OpenAIChatOptions.prototype, "user", void 0);
117
+ __decorate([
118
+ Expose({ name: 'parallel_tool_calls' }),
119
+ __metadata("design:type", Boolean)
120
+ ], OpenAIChatOptions.prototype, "parallelToolCalls", void 0);
121
+ __decorate([
122
+ Expose(),
123
+ __metadata("design:type", Object)
124
+ ], OpenAIChatOptions.prototype, "prediction", void 0);
125
+ __decorate([
126
+ Expose(),
127
+ __metadata("design:type", Object)
128
+ ], OpenAIChatOptions.prototype, "extra", void 0);
129
+ __decorate([
130
+ Exclude(),
131
+ __metadata("design:type", Array)
132
+ ], OpenAIChatOptions.prototype, "functionCallbacks", void 0);
133
+ __decorate([
134
+ Exclude(),
135
+ __metadata("design:type", Set)
136
+ ], OpenAIChatOptions.prototype, "functions", void 0);
137
+ __decorate([
138
+ Exclude(),
139
+ __metadata("design:type", Boolean)
140
+ ], OpenAIChatOptions.prototype, "proxyToolCalls", void 0);
141
+ __decorate([
142
+ Exclude(),
143
+ __metadata("design:type", Object)
144
+ ], OpenAIChatOptions.prototype, "httpHeaders", void 0);
145
+ __decorate([
146
+ Exclude(),
147
+ __metadata("design:type", Object)
148
+ ], OpenAIChatOptions.prototype, "toolContext", void 0);
149
+ OpenAIChatOptions = OpenAIChatOptions_1 = __decorate([
150
+ Constant(OpenAIChatOptions, new OpenAIChatOptions())
151
+ ], OpenAIChatOptions);
152
+ export { OpenAIChatOptions };
153
+ export class OpenAIOptionsBuilder {
154
+ constructor() {
155
+ this.options = new OpenAIChatOptions();
156
+ }
157
+ withModel(model) {
158
+ this.options.model = model;
159
+ return this;
160
+ }
161
+ withTemperature(temperature) {
162
+ this.options.temperature = temperature;
163
+ return this;
164
+ }
165
+ withMaxTokens(maxTokens) {
166
+ this.options.maxTokens = maxTokens;
167
+ return this;
168
+ }
169
+ withTopP(topP) {
170
+ this.options.topP = topP;
171
+ return this;
172
+ }
173
+ withPresencePenalty(presencePenalty) {
174
+ this.options.presencePenalty = presencePenalty;
175
+ return this;
176
+ }
177
+ withFrequencyPenalty(frequencyPenalty) {
178
+ this.options.frequencyPenalty = frequencyPenalty;
179
+ return this;
180
+ }
181
+ withN(n) {
182
+ this.options.n = n;
183
+ return this;
184
+ }
185
+ withOutputModalities(modalities) {
186
+ this.options.outputModalities = modalities;
187
+ return this;
188
+ }
189
+ withOutputAudio(audio) {
190
+ this.options.outputAudio = audio;
191
+ return this;
192
+ }
193
+ withLogitBias(bias) {
194
+ this.options.logitBias = bias;
195
+ return this;
196
+ }
197
+ withLogprobs(logprobs) {
198
+ this.options.logprobs = logprobs;
199
+ return this;
200
+ }
201
+ withTopLogprobs(topLogprobs) {
202
+ this.options.topLogprobs = topLogprobs;
203
+ return this;
204
+ }
205
+ withResponseFormat(format) {
206
+ this.options.responseFormat = format;
207
+ return this;
208
+ }
209
+ withStreamOptions(options) {
210
+ this.options.streamOptions = options;
211
+ return this;
212
+ }
213
+ withSeed(seed) {
214
+ this.options.seed = seed;
215
+ return this;
216
+ }
217
+ withStop(stop) {
218
+ this.options.stop = stop;
219
+ return this;
220
+ }
221
+ withTools(tools) {
222
+ this.options.tools = tools;
223
+ return this;
224
+ }
225
+ withToolChoice(choice) {
226
+ this.options.toolChoice = choice;
227
+ return this;
228
+ }
229
+ withUser(user) {
230
+ this.options.user = user;
231
+ return this;
232
+ }
233
+ withParallelToolCalls(parallel) {
234
+ this.options.parallelToolCalls = parallel;
235
+ return this;
236
+ }
237
+ withFunctionCallbacks(callbacks) {
238
+ this.options.functionCallbacks = callbacks;
239
+ return this;
240
+ }
241
+ withFunctions(functions) {
242
+ this.options.functions = functions;
243
+ return this;
244
+ }
245
+ withProxyToolCalls(proxy) {
246
+ this.options.proxyToolCalls = proxy;
247
+ return this;
248
+ }
249
+ withHttpHeaders(headers) {
250
+ this.options.httpHeaders = headers;
251
+ return this;
252
+ }
253
+ withToolContext(context) {
254
+ if (!this.options.toolContext) {
255
+ this.options.toolContext = context;
256
+ }
257
+ else {
258
+ Object.assign(this.options.toolContext, context);
259
+ }
260
+ return this;
261
+ }
262
+ withPrediction(prediction) {
263
+ this.options.prediction = prediction;
264
+ return this;
265
+ }
266
+ withExtra(extra) {
267
+ this.options.extra = extra;
268
+ return this;
269
+ }
270
+ build() {
271
+ return OpenAIChatOptions.options(this.options);
272
+ }
273
+ }
274
+ //# sourceMappingURL=openai-chat-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-chat-options.js","sourceRoot":"","sources":["../../../src/common/model/openai-chat-options.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { EmbeddingModel, EmbeddingOptions, EmbeddingRequest, EmbeddingResponse } from '@celljs/ai-core';
2
+ import { EmbeddingRequest as OpenAIEmbeddingsRequest, OpenAIAPI } from '../api/index.js';
3
+ import { Logger } from '@celljs/core';
4
+ import { OpenAIEmbeddingOptions } from './openai-embedding-options.js';
5
+ export declare class OpenAIEmbeddingModel implements EmbeddingModel {
6
+ protected readonly defaultOptions: OpenAIEmbeddingOptions;
7
+ /**
8
+ * Low-level access to the OpenAI API.
9
+ */
10
+ protected readonly chatApi: OpenAIAPI;
11
+ protected readonly logger: Logger;
12
+ call(request: EmbeddingRequest): Promise<EmbeddingResponse>;
13
+ protected createOpenAIEmbeddingsRequest(inputContent: string[], options?: EmbeddingOptions): OpenAIEmbeddingsRequest<string[]>;
14
+ }
@@ -0,0 +1,69 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { EmbeddingModel, EmbeddingResultMetadata } from '@celljs/ai-core';
11
+ import { EmbeddingRequest as OpenAIEmbeddingsRequest, OpenAIAPI, } from '../api/index.js';
12
+ import { Assert, Autowired, Component, IllegalArgumentError, Logger } from '@celljs/core';
13
+ import { OpenAIEmbeddingOptions } from './openai-embedding-options.js';
14
+ let OpenAIEmbeddingModel = class OpenAIEmbeddingModel {
15
+ async call(request) {
16
+ Assert.notEmpty(request.instructions, 'At least one text is required!');
17
+ const openAIRequet = this.createOpenAIEmbeddingsRequest(request.instructions, request.options);
18
+ const openAIResponse = (await this.chatApi.embed(openAIRequet)).body;
19
+ Assert.notNull(openAIResponse, 'No embedding data available.');
20
+ const embeddings = openAIResponse.data.map(embedding => ({
21
+ embedding: embedding.embedding,
22
+ index: embedding.index,
23
+ metadata: EmbeddingResultMetadata.EMPTY,
24
+ output: embedding.embedding
25
+ }));
26
+ const embeddingResponseMetadata = {
27
+ model: openAIResponse.model,
28
+ usage: openAIResponse.usage,
29
+ extra: {}
30
+ };
31
+ Assert.notEmpty(embeddings, 'No embedding data available.');
32
+ return {
33
+ embeddings,
34
+ result: embeddings[0],
35
+ results: embeddings,
36
+ metadata: embeddingResponseMetadata
37
+ };
38
+ }
39
+ createOpenAIEmbeddingsRequest(inputContent, options) {
40
+ let runtimeOptions = OpenAIEmbeddingOptions.builder().build();
41
+ if (options) {
42
+ runtimeOptions = Object.assign(runtimeOptions, options);
43
+ }
44
+ runtimeOptions = Object.assign(this.defaultOptions, runtimeOptions);
45
+ // Override the model.
46
+ if (!runtimeOptions.model) {
47
+ throw new IllegalArgumentError('Model is not set!');
48
+ }
49
+ const model = runtimeOptions.model;
50
+ return new OpenAIEmbeddingsRequest(inputContent, model, runtimeOptions.encodingFormat, runtimeOptions.dimensions, runtimeOptions.user);
51
+ }
52
+ };
53
+ __decorate([
54
+ Autowired(OpenAIEmbeddingOptions),
55
+ __metadata("design:type", OpenAIEmbeddingOptions)
56
+ ], OpenAIEmbeddingModel.prototype, "defaultOptions", void 0);
57
+ __decorate([
58
+ Autowired(OpenAIAPI),
59
+ __metadata("design:type", Object)
60
+ ], OpenAIEmbeddingModel.prototype, "chatApi", void 0);
61
+ __decorate([
62
+ Autowired(Logger),
63
+ __metadata("design:type", Object)
64
+ ], OpenAIEmbeddingModel.prototype, "logger", void 0);
65
+ OpenAIEmbeddingModel = __decorate([
66
+ Component(EmbeddingModel)
67
+ ], OpenAIEmbeddingModel);
68
+ export { OpenAIEmbeddingModel };
69
+ //# sourceMappingURL=openai-embedding-model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-embedding-model.js","sourceRoot":"","sources":["../../../src/common/model/openai-embedding-model.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAEH,cAAc,EAKd,uBAAuB,EAC1B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACH,gBAAgB,IAAI,uBAAuB,EAC3C,SAAS,GACZ,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC1F,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAG7D,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IActB,KAAK,CAAC,IAAI,CAAC,OAAyB;QACvC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,gCAAgC,CAAC,CAAC;QACxE,MAAM,YAAY,GAAG,IAAI,CAAC,6BAA6B,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/F,MAAM,cAAc,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;QACrE,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,8BAA8B,CAAC,CAAC;QAE/D,MAAM,UAAU,GAAgB,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAClE,SAAS,EAAE,SAAS,CAAC,SAAS;YAC9B,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,QAAQ,EAAE,uBAAuB,CAAC,KAAK;YACvC,MAAM,EAAE,SAAS,CAAC,SAAS;SAC9B,CAAC,CAAC,CAAC;QAEJ,MAAM,yBAAyB,GAA8B;YACzD,KAAK,EAAE,cAAc,CAAC,KAAK;YAC3B,KAAK,EAAE,cAAc,CAAC,KAAK;YAC3B,KAAK,EAAE,EAAE;SACZ,CAAC;QACF,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,8BAA8B,CAAC,CAAC;QAC5D,OAAO;YACH,UAAU;YACV,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;YACrB,OAAO,EAAE,UAAU;YACnB,QAAQ,EAAE,yBAAyB;SACtC,CAAC;IAEN,CAAC;IAES,6BAA6B,CAAC,YAAsB,EAAE,OAA0B;QACtF,IAAI,cAAc,GAA2B,sBAAsB,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC;QACtF,IAAI,OAAO,EAAE,CAAC;YACV,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAC5D,CAAC;QAED,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;QAEpE,sBAAsB;QACtB,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;YACxB,MAAM,IAAI,oBAAoB,CAAC,mBAAmB,CAAC,CAAC;QACxD,CAAC;QACD,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC;QAEnC,OAAO,IAAI,uBAAuB,CAC9B,YAAY,EACZ,KAAK,EACL,cAAc,CAAC,cAAc,EAC7B,cAAc,CAAC,UAAU,EACzB,cAAc,CAAC,IAAI,CACtB,CAAC;IACN,CAAC;CAEJ,CAAA;AA9DsB;IADlB,SAAS,CAAC,sBAAsB,CAAC;8BACC,sBAAsB;4DAAC;AAMvC;IADlB,SAAS,CAAC,SAAS,CAAC;;qDACiB;AAGnB;IADlB,SAAS,CAAC,MAAM,CAAC;;oDACgB;AAZzB,oBAAoB;IADhC,SAAS,CAAC,cAAc,CAAC;GACb,oBAAoB,CAiEhC"}
@@ -0,0 +1,34 @@
1
+ import { EmbeddingOptions } from '@celljs/ai-core';
2
+ /**
3
+ * OpenAI Embedding Options.
4
+ */
5
+ export declare class OpenAIEmbeddingOptions implements EmbeddingOptions {
6
+ /**
7
+ * ID of the model to use.
8
+ */
9
+ model?: string;
10
+ /**
11
+ * The format to return the embeddings in. Can be either float or base64.
12
+ */
13
+ encodingFormat?: string;
14
+ /**
15
+ * The number of dimensions the resulting output embeddings should have.
16
+ * Only supported in text-embedding-3 and later models.
17
+ */
18
+ dimensions?: number;
19
+ /**
20
+ * A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse.
21
+ */
22
+ user?: string;
23
+ copy(): OpenAIEmbeddingOptions;
24
+ static options(fromOptions: OpenAIEmbeddingOptions): OpenAIEmbeddingOptions;
25
+ static builder(): OpenAIEmbeddingOptionsBuilder;
26
+ }
27
+ export declare class OpenAIEmbeddingOptionsBuilder {
28
+ private options;
29
+ withModel(model: string): OpenAIEmbeddingOptionsBuilder;
30
+ withEncodingFormat(encodingFormat: string): OpenAIEmbeddingOptionsBuilder;
31
+ withDimensions(dimensions: number): OpenAIEmbeddingOptionsBuilder;
32
+ withUser(user: string): OpenAIEmbeddingOptionsBuilder;
33
+ build(): OpenAIEmbeddingOptions;
34
+ }
@@ -0,0 +1,72 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ var OpenAIEmbeddingOptions_1;
11
+ import { Expose } from 'class-transformer';
12
+ import { Constant } from '@celljs/core';
13
+ /**
14
+ * OpenAI Embedding Options.
15
+ */
16
+ let OpenAIEmbeddingOptions = OpenAIEmbeddingOptions_1 = class OpenAIEmbeddingOptions {
17
+ copy() {
18
+ return OpenAIEmbeddingOptions_1.options(this);
19
+ }
20
+ static options(fromOptions) {
21
+ const options = new OpenAIEmbeddingOptions_1();
22
+ return Object.assign(options, fromOptions);
23
+ }
24
+ static builder() {
25
+ return new OpenAIEmbeddingOptionsBuilder();
26
+ }
27
+ };
28
+ __decorate([
29
+ Expose(),
30
+ __metadata("design:type", String)
31
+ ], OpenAIEmbeddingOptions.prototype, "model", void 0);
32
+ __decorate([
33
+ Expose({ name: 'encoding_format' }),
34
+ __metadata("design:type", String)
35
+ ], OpenAIEmbeddingOptions.prototype, "encodingFormat", void 0);
36
+ __decorate([
37
+ Expose(),
38
+ __metadata("design:type", Number)
39
+ ], OpenAIEmbeddingOptions.prototype, "dimensions", void 0);
40
+ __decorate([
41
+ Expose(),
42
+ __metadata("design:type", String)
43
+ ], OpenAIEmbeddingOptions.prototype, "user", void 0);
44
+ OpenAIEmbeddingOptions = OpenAIEmbeddingOptions_1 = __decorate([
45
+ Constant(OpenAIEmbeddingOptions, new OpenAIEmbeddingOptions())
46
+ ], OpenAIEmbeddingOptions);
47
+ export { OpenAIEmbeddingOptions };
48
+ export class OpenAIEmbeddingOptionsBuilder {
49
+ constructor() {
50
+ this.options = new OpenAIEmbeddingOptions();
51
+ }
52
+ withModel(model) {
53
+ this.options.model = model;
54
+ return this;
55
+ }
56
+ withEncodingFormat(encodingFormat) {
57
+ this.options.encodingFormat = encodingFormat;
58
+ return this;
59
+ }
60
+ withDimensions(dimensions) {
61
+ this.options.dimensions = dimensions;
62
+ return this;
63
+ }
64
+ withUser(user) {
65
+ this.options.user = user;
66
+ return this;
67
+ }
68
+ build() {
69
+ return OpenAIEmbeddingOptions.options(this.options);
70
+ }
71
+ }
72
+ //# sourceMappingURL=openai-embedding-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-embedding-options.js","sourceRoot":"","sources":["../../../src/common/model/openai-embedding-options.ts"],"names":[],"mappings":";;;;;;;;;;AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC;;GAEG;AAEI,IAAM,sBAAsB,8BAA5B,MAAM,sBAAsB;IA0B/B,IAAI;QACA,OAAO,yBAAuB,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAEM,AAAP,MAAM,CAAC,OAAO,CAAC,WAAmC;QAC9C,MAAM,OAAO,GAAG,8BAA4B,CAAC;QAC7C,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,CAAC,OAAO;QACV,OAAO,IAAI,6BAA6B,EAAE,CAAC;IAC/C,CAAC;CACJ,CAAA;AAjCG;IADC,MAAM,EAAE;;qDACM;AAMf;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;;8DACZ;AAOxB;IADC,MAAM,EAAE;;0DACW;AAMpB;IADC,MAAM,EAAE;;oDACK;AAxBL,sBAAsB;IADlC,QAAQ,CAAC,sBAAsB,EAAE,IAAI,sBAAsB,EAAE,CAAC;GAClD,sBAAsB,CAsClC;;AAED,MAAM,OAAO,6BAA6B;IAA1C;QACY,YAAO,GAAG,IAAI,sBAAsB,EAAE,CAAC;IAyBnD,CAAC;IAvBG,SAAS,CAAC,KAAa;QACnB,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;QAC3B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kBAAkB,CAAC,cAAsB;QACrC,IAAI,CAAC,OAAO,CAAC,cAAc,GAAG,cAAc,CAAC;QAC7C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,cAAc,CAAC,UAAkB;QAC7B,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;QACrC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,QAAQ,CAAC,IAAY;QACjB,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QACzB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK;QACD,OAAO,sBAAsB,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxD,CAAC;CACJ"}
@@ -0,0 +1,3 @@
1
+ import './index.js';
2
+ declare const _default: import("inversify").interfaces.ContainerModule;
3
+ export default _default;
@@ -0,0 +1,4 @@
1
+ import { autoBind } from '@celljs/core';
2
+ import './index.js';
3
+ export default autoBind();
4
+ //# sourceMappingURL=module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/common/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,SAAS,CAAC;AAEjB,eAAe,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './openai-api-response-headers.js';
2
+ export * from './openai-response-header-extractor.js';
@@ -0,0 +1,3 @@
1
+ export * from './openai-api-response-headers.js';
2
+ export * from './openai-response-header-extractor.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/support/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oCAAoC,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Enumeration of {@literal OpenAI} API response headers.
3
+ */
4
+ export declare enum OpenAIApiResponseHeaders {
5
+ /**
6
+ * Total number of requests allowed within timeframe.
7
+ */
8
+ REQUESTS_LIMIT_HEADER = "x-ratelimit-limit-requests",
9
+ /**
10
+ * Remaining number of requests available in timeframe.
11
+ */
12
+ REQUESTS_REMAINING_HEADER = "x-ratelimit-remaining-requests",
13
+ /**
14
+ * Duration of time until the number of requests reset.
15
+ */
16
+ REQUESTS_RESET_HEADER = "x-ratelimit-reset-requests",
17
+ /**
18
+ * Total number of tokens allowed within timeframe.
19
+ */
20
+ TOKENS_RESET_HEADER = "x-ratelimit-reset-tokens",
21
+ /**
22
+ * Remaining number of tokens available in timeframe.
23
+ */
24
+ TOKENS_LIMIT_HEADER = "x-ratelimit-limit-tokens",
25
+ /**
26
+ * Duration of time until the number of tokens reset.
27
+ */
28
+ TOKENS_REMAINING_HEADER = "x-ratelimit-remaining-tokens"
29
+ }
30
+ /**
31
+ * Metadata description for OpenAI API response headers.
32
+ */
33
+ export declare const OpenAIApiResponseHeadersDescription: Record<OpenAIApiResponseHeaders, string>;
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Enumeration of {@literal OpenAI} API response headers.
3
+ */
4
+ export var OpenAIApiResponseHeaders;
5
+ (function (OpenAIApiResponseHeaders) {
6
+ /**
7
+ * Total number of requests allowed within timeframe.
8
+ */
9
+ OpenAIApiResponseHeaders["REQUESTS_LIMIT_HEADER"] = "x-ratelimit-limit-requests";
10
+ /**
11
+ * Remaining number of requests available in timeframe.
12
+ */
13
+ OpenAIApiResponseHeaders["REQUESTS_REMAINING_HEADER"] = "x-ratelimit-remaining-requests";
14
+ /**
15
+ * Duration of time until the number of requests reset.
16
+ */
17
+ OpenAIApiResponseHeaders["REQUESTS_RESET_HEADER"] = "x-ratelimit-reset-requests";
18
+ /**
19
+ * Total number of tokens allowed within timeframe.
20
+ */
21
+ OpenAIApiResponseHeaders["TOKENS_RESET_HEADER"] = "x-ratelimit-reset-tokens";
22
+ /**
23
+ * Remaining number of tokens available in timeframe.
24
+ */
25
+ OpenAIApiResponseHeaders["TOKENS_LIMIT_HEADER"] = "x-ratelimit-limit-tokens";
26
+ /**
27
+ * Duration of time until the number of tokens reset.
28
+ */
29
+ OpenAIApiResponseHeaders["TOKENS_REMAINING_HEADER"] = "x-ratelimit-remaining-tokens";
30
+ })(OpenAIApiResponseHeaders || (OpenAIApiResponseHeaders = {}));
31
+ /**
32
+ * Metadata description for OpenAI API response headers.
33
+ */
34
+ export const OpenAIApiResponseHeadersDescription = {
35
+ [OpenAIApiResponseHeaders.REQUESTS_LIMIT_HEADER]: 'Total number of requests allowed within timeframe.',
36
+ [OpenAIApiResponseHeaders.REQUESTS_REMAINING_HEADER]: 'Remaining number of requests available in timeframe.',
37
+ [OpenAIApiResponseHeaders.REQUESTS_RESET_HEADER]: 'Duration of time until the number of requests reset.',
38
+ [OpenAIApiResponseHeaders.TOKENS_RESET_HEADER]: 'Total number of tokens allowed within timeframe.',
39
+ [OpenAIApiResponseHeaders.TOKENS_LIMIT_HEADER]: 'Remaining number of tokens available in timeframe.',
40
+ [OpenAIApiResponseHeaders.TOKENS_REMAINING_HEADER]: 'Duration of time until the number of tokens reset.'
41
+ };
42
+ //# sourceMappingURL=openai-api-response-headers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-api-response-headers.js","sourceRoot":"","sources":["../../../src/common/support/openai-api-response-headers.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAN,IAAY,wBA8BX;AA9BD,WAAY,wBAAwB;IAChC;;OAEG;IACH,gFAAoD,CAAA;IAEpD;;OAEG;IACH,wFAA4D,CAAA;IAE5D;;OAEG;IACH,gFAAoD,CAAA;IAEpD;;OAEG;IACH,4EAAgD,CAAA;IAEhD;;OAEG;IACH,4EAAgD,CAAA;IAEhD;;OAEG;IACH,oFAAwD,CAAA;AAC5D,CAAC,EA9BW,wBAAwB,KAAxB,wBAAwB,QA8BnC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAA6C;IACzF,CAAC,wBAAwB,CAAC,qBAAqB,CAAC,EAAE,oDAAoD;IACtG,CAAC,wBAAwB,CAAC,yBAAyB,CAAC,EAAE,sDAAsD;IAC5G,CAAC,wBAAwB,CAAC,qBAAqB,CAAC,EAAE,sDAAsD;IACxG,CAAC,wBAAwB,CAAC,mBAAmB,CAAC,EAAE,kDAAkD;IAClG,CAAC,wBAAwB,CAAC,mBAAmB,CAAC,EAAE,oDAAoD;IACpG,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,EAAE,oDAAoD;CAC3G,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { ResponseEntity } from '@celljs/http';
2
+ import { RateLimit } from '@celljs/ai-core';
3
+ /**
4
+ * Utility used to extract known HTTP response headers for the {@literal OpenAI} API.
5
+ */
6
+ export declare abstract class OpenAIResponseHeaderExtractor {
7
+ static extractAIResponseHeaders(response: ResponseEntity<unknown>): RateLimit;
8
+ private static getHeaderAsDuration;
9
+ private static getHeaderAsLong;
10
+ private static parseLong;
11
+ }