@celljs/ai-openai 3.7.8 → 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.
- package/esm/common/api/api-protocol.d.ts +46 -0
- package/esm/common/api/api-protocol.js +3 -0
- package/esm/common/api/api-protocol.js.map +1 -0
- package/esm/common/api/chat-request.d.ts +203 -0
- package/esm/common/api/chat-request.js +236 -0
- package/esm/common/api/chat-request.js.map +1 -0
- package/esm/common/api/chat-response.d.ts +192 -0
- package/esm/common/api/chat-response.js +191 -0
- package/esm/common/api/chat-response.js.map +1 -0
- package/esm/common/api/embeddings-request.d.ts +62 -0
- package/esm/common/api/embeddings-request.js +85 -0
- package/esm/common/api/embeddings-request.js.map +1 -0
- package/esm/common/api/embeddings-response.d.ts +26 -0
- package/esm/common/api/embeddings-response.js +44 -0
- package/esm/common/api/embeddings-response.js.map +1 -0
- package/esm/common/api/index.d.ts +9 -0
- package/esm/common/api/index.js +10 -0
- package/esm/common/api/index.js.map +1 -0
- package/esm/common/api/message.d.ts +215 -0
- package/esm/common/api/message.js +250 -0
- package/esm/common/api/message.js.map +1 -0
- package/esm/common/api/openai-api.d.ts +18 -0
- package/esm/common/api/openai-api.js +118 -0
- package/esm/common/api/openai-api.js.map +1 -0
- package/esm/common/api/openai-model.d.ts +116 -0
- package/esm/common/api/openai-model.js +118 -0
- package/esm/common/api/openai-model.js.map +1 -0
- package/esm/common/api/response-format.d.ts +59 -0
- package/esm/common/api/response-format.js +107 -0
- package/esm/common/api/response-format.js.map +1 -0
- package/esm/common/api/usage.d.ts +78 -0
- package/esm/common/api/usage.js +106 -0
- package/esm/common/api/usage.js.map +1 -0
- package/esm/common/index.d.ts +3 -0
- package/esm/common/index.js +4 -0
- package/esm/common/index.js.map +1 -0
- package/esm/common/model/index.d.ts +4 -0
- package/esm/common/model/index.js +5 -0
- package/esm/common/model/index.js.map +1 -0
- package/esm/common/model/openai-chat-model.d.ts +36 -0
- package/esm/common/model/openai-chat-model.js +363 -0
- package/esm/common/model/openai-chat-model.js.map +1 -0
- package/esm/common/model/openai-chat-options.d.ts +169 -0
- package/esm/common/model/openai-chat-options.js +274 -0
- package/esm/common/model/openai-chat-options.js.map +1 -0
- package/esm/common/model/openai-embedding-model.d.ts +14 -0
- package/esm/common/model/openai-embedding-model.js +69 -0
- package/esm/common/model/openai-embedding-model.js.map +1 -0
- package/esm/common/model/openai-embedding-options.d.ts +34 -0
- package/esm/common/model/openai-embedding-options.js +72 -0
- package/esm/common/model/openai-embedding-options.js.map +1 -0
- package/esm/common/module.d.ts +3 -0
- package/esm/common/module.js +4 -0
- package/esm/common/module.js.map +1 -0
- package/esm/common/support/index.d.ts +2 -0
- package/esm/common/support/index.js +3 -0
- package/esm/common/support/index.js.map +1 -0
- package/esm/common/support/openai-api-response-headers.d.ts +33 -0
- package/esm/common/support/openai-api-response-headers.js +42 -0
- package/esm/common/support/openai-api-response-headers.js.map +1 -0
- package/esm/common/support/openai-response-header-extractor.d.ts +11 -0
- package/esm/common/support/openai-response-header-extractor.js +129 -0
- package/esm/common/support/openai-response-header-extractor.js.map +1 -0
- package/esm/common/test/mock-openai-api.d.ts +12 -0
- package/esm/common/test/mock-openai-api.js +53 -0
- package/esm/common/test/mock-openai-api.js.map +1 -0
- package/esm/common/test/test-container.d.ts +2 -0
- package/esm/common/test/test-container.js +12 -0
- package/esm/common/test/test-container.js.map +1 -0
- package/esm/package.json +3 -0
- package/lib/common/api/chat-request.d.ts.map +1 -1
- package/lib/common/api/chat-request.js.map +1 -1
- package/lib/common/api/chat-response.js.map +1 -1
- package/lib/common/api/embeddings-request.d.ts.map +1 -1
- package/lib/common/api/embeddings-request.js.map +1 -1
- package/lib/common/api/embeddings-response.d.ts.map +1 -1
- package/lib/common/api/embeddings-response.js.map +1 -1
- package/lib/common/api/message.d.ts.map +1 -1
- package/lib/common/api/message.js.map +1 -1
- package/lib/common/api/openai-api.d.ts.map +1 -1
- package/lib/common/api/openai-api.js.map +1 -1
- package/lib/common/api/openai-api.spec.d.ts.map +1 -1
- package/lib/common/api/openai-api.spec.js +14 -13
- package/lib/common/api/openai-api.spec.js.map +1 -1
- package/lib/common/api/openai-model.js.map +1 -1
- package/lib/common/api/response-format.d.ts.map +1 -1
- package/lib/common/api/response-format.js.map +1 -1
- package/lib/common/api/usage.d.ts.map +1 -1
- package/lib/common/api/usage.js.map +1 -1
- package/lib/common/model/openai-chat-model.d.ts.map +1 -1
- package/lib/common/model/openai-chat-model.js +12 -13
- package/lib/common/model/openai-chat-model.js.map +1 -1
- package/lib/common/model/openai-chat-model.spec.d.ts.map +1 -1
- package/lib/common/model/openai-chat-model.spec.js +9 -8
- package/lib/common/model/openai-chat-model.spec.js.map +1 -1
- package/lib/common/model/openai-chat-options.d.ts.map +1 -1
- package/lib/common/model/openai-chat-options.js.map +1 -1
- package/lib/common/model/openai-embedding-model.d.ts.map +1 -1
- package/lib/common/model/openai-embedding-model.js.map +1 -1
- package/lib/common/model/openai-embedding-model.spec.d.ts.map +1 -1
- package/lib/common/model/openai-embedding-model.spec.js +9 -8
- package/lib/common/model/openai-embedding-model.spec.js.map +1 -1
- package/lib/common/model/openai-embedding-options.d.ts.map +1 -1
- package/lib/common/model/openai-embedding-options.js.map +1 -1
- package/lib/common/module.d.ts.map +1 -1
- package/lib/common/module.js.map +1 -1
- package/lib/common/support/openai-api-response-headers.js.map +1 -1
- package/lib/common/support/openai-response-header-extractor.d.ts.map +1 -1
- package/lib/common/support/openai-response-header-extractor.js +4 -2
- package/lib/common/support/openai-response-header-extractor.js.map +1 -1
- package/lib/common/test/mock-openai-api.d.ts.map +1 -1
- package/lib/common/test/mock-openai-api.js.map +1 -1
- package/lib/common/test/test-container.js +5 -2
- package/lib/common/test/test-container.js.map +1 -1
- package/lib/package.spec.d.ts +1 -0
- package/lib/package.spec.js +5 -2
- package/lib/package.spec.js.map +1 -1
- package/package.json +48 -13
- package/src/common/api/openai-api.spec.ts +1 -0
- package/src/common/model/openai-chat-model.spec.ts +2 -1
- package/src/common/model/openai-embedding-model.spec.ts +2 -1
- package/src/package.spec.ts +1 -0
- package/LICENSE +0 -21
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
export declare enum ResponseFormatType {
|
|
2
|
+
TEXT = "text",
|
|
3
|
+
JSON_OBJECT = "json_object",
|
|
4
|
+
JSON_SCHEMA = "json_schema"
|
|
5
|
+
}
|
|
6
|
+
export declare class JsonSchema {
|
|
7
|
+
name: string;
|
|
8
|
+
schema: Map<string, any>;
|
|
9
|
+
strict: boolean;
|
|
10
|
+
constructor(name: string, schema: Map<string, any>, strict: boolean);
|
|
11
|
+
static builder(): JsonSchemaBuilder;
|
|
12
|
+
}
|
|
13
|
+
export declare class JsonSchemaBuilder {
|
|
14
|
+
private name;
|
|
15
|
+
private schema;
|
|
16
|
+
private strict;
|
|
17
|
+
withName(name: string): this;
|
|
18
|
+
withSchema(schema: Map<string, any>): this;
|
|
19
|
+
withStrict(strict: boolean): this;
|
|
20
|
+
build(): JsonSchema;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* An object specifying the format that the model must output.
|
|
24
|
+
*
|
|
25
|
+
* Setting the type to JSON_SCHEMA, enables Structured Outputs which ensures the model
|
|
26
|
+
* will match your supplied JSON schema. Learn more in the
|
|
27
|
+
* [Structured Outputs guide](https://platform.openai.com/docs/guides/structured-outputs).
|
|
28
|
+
*
|
|
29
|
+
* References: [OpenAi API - ResponseFormat](https://platform.openai.com/docs/api-reference/chat/create#chat-create-response_format),
|
|
30
|
+
* [JSON Mode](https://platform.openai.com/docs/guides/structured-outputs#json-mode),
|
|
31
|
+
* [Structured Outputs vs JSON mode](https://platform.openai.com/docs/guides/structured-outputs#structured-outputs-vs-json-mode)
|
|
32
|
+
*/
|
|
33
|
+
export declare class ResponseFormat {
|
|
34
|
+
/**
|
|
35
|
+
* Type Must be one of 'text', 'json_object' or 'json_schema'.
|
|
36
|
+
*/
|
|
37
|
+
type: ResponseFormatType;
|
|
38
|
+
/**
|
|
39
|
+
* JSON schema object that describes the format of the JSON object. Only applicable
|
|
40
|
+
* when type is 'json_schema'.
|
|
41
|
+
*/
|
|
42
|
+
schema?: JsonSchema;
|
|
43
|
+
/**
|
|
44
|
+
* Whether the model must strictly adhere to the schema. Only applicable when type is
|
|
45
|
+
* 'json_schema'.
|
|
46
|
+
*/
|
|
47
|
+
strict?: boolean;
|
|
48
|
+
constructor(type: ResponseFormatType, schema?: JsonSchema, strict?: boolean);
|
|
49
|
+
static builder(): ResponseFormatBuilder;
|
|
50
|
+
}
|
|
51
|
+
export declare class ResponseFormatBuilder {
|
|
52
|
+
private type;
|
|
53
|
+
private schema?;
|
|
54
|
+
private strict?;
|
|
55
|
+
withType(type: ResponseFormatType): this;
|
|
56
|
+
withSchema(schema: JsonSchema): this;
|
|
57
|
+
withStrict(strict: boolean): this;
|
|
58
|
+
build(): ResponseFormat;
|
|
59
|
+
}
|
|
@@ -0,0 +1,107 @@
|
|
|
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 { Expose, Type } from 'class-transformer';
|
|
11
|
+
export var ResponseFormatType;
|
|
12
|
+
(function (ResponseFormatType) {
|
|
13
|
+
ResponseFormatType["TEXT"] = "text";
|
|
14
|
+
ResponseFormatType["JSON_OBJECT"] = "json_object";
|
|
15
|
+
ResponseFormatType["JSON_SCHEMA"] = "json_schema";
|
|
16
|
+
})(ResponseFormatType || (ResponseFormatType = {}));
|
|
17
|
+
export class JsonSchema {
|
|
18
|
+
constructor(name, schema, strict) {
|
|
19
|
+
this.name = name;
|
|
20
|
+
this.schema = schema;
|
|
21
|
+
this.strict = strict;
|
|
22
|
+
}
|
|
23
|
+
static builder() {
|
|
24
|
+
return new JsonSchemaBuilder();
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
__decorate([
|
|
28
|
+
Expose(),
|
|
29
|
+
__metadata("design:type", String)
|
|
30
|
+
], JsonSchema.prototype, "name", void 0);
|
|
31
|
+
__decorate([
|
|
32
|
+
Expose(),
|
|
33
|
+
__metadata("design:type", Map)
|
|
34
|
+
], JsonSchema.prototype, "schema", void 0);
|
|
35
|
+
__decorate([
|
|
36
|
+
Expose(),
|
|
37
|
+
__metadata("design:type", Boolean)
|
|
38
|
+
], JsonSchema.prototype, "strict", void 0);
|
|
39
|
+
export class JsonSchemaBuilder {
|
|
40
|
+
withName(name) {
|
|
41
|
+
this.name = name;
|
|
42
|
+
return this;
|
|
43
|
+
}
|
|
44
|
+
withSchema(schema) {
|
|
45
|
+
this.schema = schema;
|
|
46
|
+
return this;
|
|
47
|
+
}
|
|
48
|
+
withStrict(strict) {
|
|
49
|
+
this.strict = strict;
|
|
50
|
+
return this;
|
|
51
|
+
}
|
|
52
|
+
build() {
|
|
53
|
+
return new JsonSchema(this.name, this.schema, this.strict);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* An object specifying the format that the model must output.
|
|
58
|
+
*
|
|
59
|
+
* Setting the type to JSON_SCHEMA, enables Structured Outputs which ensures the model
|
|
60
|
+
* will match your supplied JSON schema. Learn more in the
|
|
61
|
+
* [Structured Outputs guide](https://platform.openai.com/docs/guides/structured-outputs).
|
|
62
|
+
*
|
|
63
|
+
* References: [OpenAi API - ResponseFormat](https://platform.openai.com/docs/api-reference/chat/create#chat-create-response_format),
|
|
64
|
+
* [JSON Mode](https://platform.openai.com/docs/guides/structured-outputs#json-mode),
|
|
65
|
+
* [Structured Outputs vs JSON mode](https://platform.openai.com/docs/guides/structured-outputs#structured-outputs-vs-json-mode)
|
|
66
|
+
*/
|
|
67
|
+
export class ResponseFormat {
|
|
68
|
+
constructor(type, schema, strict) {
|
|
69
|
+
this.type = type;
|
|
70
|
+
this.schema = schema;
|
|
71
|
+
this.strict = strict;
|
|
72
|
+
}
|
|
73
|
+
static builder() {
|
|
74
|
+
return new ResponseFormatBuilder();
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
__decorate([
|
|
78
|
+
Expose(),
|
|
79
|
+
__metadata("design:type", String)
|
|
80
|
+
], ResponseFormat.prototype, "type", void 0);
|
|
81
|
+
__decorate([
|
|
82
|
+
Type(() => JsonSchema),
|
|
83
|
+
Expose(),
|
|
84
|
+
__metadata("design:type", JsonSchema)
|
|
85
|
+
], ResponseFormat.prototype, "schema", void 0);
|
|
86
|
+
__decorate([
|
|
87
|
+
Expose(),
|
|
88
|
+
__metadata("design:type", Boolean)
|
|
89
|
+
], ResponseFormat.prototype, "strict", void 0);
|
|
90
|
+
export class ResponseFormatBuilder {
|
|
91
|
+
withType(type) {
|
|
92
|
+
this.type = type;
|
|
93
|
+
return this;
|
|
94
|
+
}
|
|
95
|
+
withSchema(schema) {
|
|
96
|
+
this.schema = schema;
|
|
97
|
+
return this;
|
|
98
|
+
}
|
|
99
|
+
withStrict(strict) {
|
|
100
|
+
this.strict = strict;
|
|
101
|
+
return this;
|
|
102
|
+
}
|
|
103
|
+
build() {
|
|
104
|
+
return new ResponseFormat(this.type, this.schema, this.strict);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=response-format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response-format.js","sourceRoot":"","sources":["../../../src/common/api/response-format.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,CAAN,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC1B,mCAAa,CAAA;IACb,iDAA2B,CAAA;IAC3B,iDAA2B,CAAA;AAC/B,CAAC,EAJW,kBAAkB,KAAlB,kBAAkB,QAI7B;AAED,MAAM,OAAO,UAAU;IAOnB,YAAY,IAAY,EAAE,MAAwB,EAAE,MAAe;QAC/D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,OAAO;QACV,OAAO,IAAI,iBAAiB,EAAE,CAAC;IACnC,CAAC;CACJ;AAdG;IADC,MAAM,EAAE;;wCACI;AAEb;IADC,MAAM,EAAE;8BACD,GAAG;0CAAc;AAEzB;IADC,MAAM,EAAE;;0CACO;AAYpB,MAAM,OAAO,iBAAiB;IAK1B,QAAQ,CAAC,IAAY;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,UAAU,CAAC,MAAwB;QAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,UAAU,CAAC,MAAe;QACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK;QACD,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/D,CAAC;CACJ;AAED;;;;;;;;;;GAUG;AACH,MAAM,OAAO,cAAc;IAsBvB,YAAY,IAAwB,EAAE,MAAmB,EAAE,MAAgB;QACvE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,OAAO;QACV,OAAO,IAAI,qBAAqB,EAAE,CAAC;IACvC,CAAC;CACJ;AA1BG;IADC,MAAM,EAAE;;4CACgB;AAQzB;IAFC,IAAI,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC;IACtB,MAAM,EAAE;8BACA,UAAU;8CAAC;AAOpB;IADC,MAAM,EAAE;;8CACQ;AAarB,MAAM,OAAO,qBAAqB;IAK9B,QAAQ,CAAC,IAAwB;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,UAAU,CAAC,MAAkB;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,UAAU,CAAC,MAAe;QACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,KAAK;QACD,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACnE,CAAC;CACJ"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { Usage as IUsage } from '@celljs/ai-core';
|
|
2
|
+
/**
|
|
3
|
+
* Breakdown of tokens used in the prompt.
|
|
4
|
+
*/
|
|
5
|
+
export declare class PromptTokensDetails {
|
|
6
|
+
/**
|
|
7
|
+
* Audio input tokens present in the prompt.
|
|
8
|
+
*/
|
|
9
|
+
audioTokens?: number;
|
|
10
|
+
/**
|
|
11
|
+
* Cached tokens present in the prompt.
|
|
12
|
+
*/
|
|
13
|
+
cachedTokens?: number;
|
|
14
|
+
constructor(audioTokens?: number, cachedTokens?: number);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Breakdown of tokens used in a completion.
|
|
18
|
+
*/
|
|
19
|
+
export declare class CompletionTokenDetails {
|
|
20
|
+
/**
|
|
21
|
+
* Number of tokens generated by the model for reasoning.
|
|
22
|
+
*/
|
|
23
|
+
reasoningTokens?: number;
|
|
24
|
+
/**
|
|
25
|
+
* Number of tokens generated by the model for accepted predictions.
|
|
26
|
+
*/
|
|
27
|
+
acceptedPredictionTokens?: number;
|
|
28
|
+
/**
|
|
29
|
+
* Number of tokens generated by the model for audio.
|
|
30
|
+
*/
|
|
31
|
+
audioTokens?: number;
|
|
32
|
+
/**
|
|
33
|
+
* Number of tokens generated by the model for rejected predictions.
|
|
34
|
+
*/
|
|
35
|
+
rejectedPredictionTokens?: number;
|
|
36
|
+
constructor(reasoningTokens?: number, acceptedPredictionTokens?: number, audioTokens?: number, rejectedPredictionTokens?: number);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* The response object returned from the /embedding endpoint.
|
|
40
|
+
*/
|
|
41
|
+
export declare class EmbeddingsResponse {
|
|
42
|
+
/**
|
|
43
|
+
* The model used for generating the embeddings.
|
|
44
|
+
*/
|
|
45
|
+
model: string;
|
|
46
|
+
/**
|
|
47
|
+
* The list of embeddings generated from the model.
|
|
48
|
+
* Each embedding (list of doubles) corresponds to a single input text.
|
|
49
|
+
*/
|
|
50
|
+
embeddings: number[][];
|
|
51
|
+
constructor(model: string, embeddings: number[][]);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Usage statistics for the completion request.
|
|
55
|
+
*/
|
|
56
|
+
export declare class Usage implements IUsage {
|
|
57
|
+
/**
|
|
58
|
+
* Number of tokens in the generated completion. Only applicable for completion requests.
|
|
59
|
+
*/
|
|
60
|
+
completionTokens?: number;
|
|
61
|
+
/**
|
|
62
|
+
* Number of tokens in the prompt.
|
|
63
|
+
*/
|
|
64
|
+
promptTokens?: number;
|
|
65
|
+
/**
|
|
66
|
+
* Total number of tokens used in the request (prompt + completion).
|
|
67
|
+
*/
|
|
68
|
+
totalTokens?: number;
|
|
69
|
+
/**
|
|
70
|
+
* Breakdown of tokens used in the prompt.
|
|
71
|
+
*/
|
|
72
|
+
promptTokensDetails?: PromptTokensDetails;
|
|
73
|
+
/**
|
|
74
|
+
* Breakdown of tokens used in a completion.
|
|
75
|
+
*/
|
|
76
|
+
completionTokenDetails?: CompletionTokenDetails;
|
|
77
|
+
constructor(completionTokens?: number, promptTokens?: number, totalTokens?: number, promptTokensDetails?: PromptTokensDetails, completionTokenDetails?: CompletionTokenDetails);
|
|
78
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
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 { Expose, Type } from 'class-transformer';
|
|
11
|
+
/**
|
|
12
|
+
* Breakdown of tokens used in the prompt.
|
|
13
|
+
*/
|
|
14
|
+
export class PromptTokensDetails {
|
|
15
|
+
constructor(audioTokens, cachedTokens) {
|
|
16
|
+
this.audioTokens = audioTokens;
|
|
17
|
+
this.cachedTokens = cachedTokens;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
__decorate([
|
|
21
|
+
Expose({ name: 'audio_tokens' }),
|
|
22
|
+
__metadata("design:type", Number)
|
|
23
|
+
], PromptTokensDetails.prototype, "audioTokens", void 0);
|
|
24
|
+
__decorate([
|
|
25
|
+
Expose({ name: 'cached_tokens' }),
|
|
26
|
+
__metadata("design:type", Number)
|
|
27
|
+
], PromptTokensDetails.prototype, "cachedTokens", void 0);
|
|
28
|
+
/**
|
|
29
|
+
* Breakdown of tokens used in a completion.
|
|
30
|
+
*/
|
|
31
|
+
export class CompletionTokenDetails {
|
|
32
|
+
constructor(reasoningTokens, acceptedPredictionTokens, audioTokens, rejectedPredictionTokens) {
|
|
33
|
+
this.reasoningTokens = reasoningTokens;
|
|
34
|
+
this.acceptedPredictionTokens = acceptedPredictionTokens;
|
|
35
|
+
this.audioTokens = audioTokens;
|
|
36
|
+
this.rejectedPredictionTokens = rejectedPredictionTokens;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
__decorate([
|
|
40
|
+
Expose({ name: 'reasoning_tokens' }),
|
|
41
|
+
__metadata("design:type", Number)
|
|
42
|
+
], CompletionTokenDetails.prototype, "reasoningTokens", void 0);
|
|
43
|
+
__decorate([
|
|
44
|
+
Expose({ name: 'accepted_prediction_tokens' }),
|
|
45
|
+
__metadata("design:type", Number)
|
|
46
|
+
], CompletionTokenDetails.prototype, "acceptedPredictionTokens", void 0);
|
|
47
|
+
__decorate([
|
|
48
|
+
Expose({ name: 'audio_tokens' }),
|
|
49
|
+
__metadata("design:type", Number)
|
|
50
|
+
], CompletionTokenDetails.prototype, "audioTokens", void 0);
|
|
51
|
+
__decorate([
|
|
52
|
+
Expose({ name: 'rejected_prediction_tokens' }),
|
|
53
|
+
__metadata("design:type", Number)
|
|
54
|
+
], CompletionTokenDetails.prototype, "rejectedPredictionTokens", void 0);
|
|
55
|
+
/**
|
|
56
|
+
* The response object returned from the /embedding endpoint.
|
|
57
|
+
*/
|
|
58
|
+
export class EmbeddingsResponse {
|
|
59
|
+
constructor(model, embeddings) {
|
|
60
|
+
this.model = model;
|
|
61
|
+
this.embeddings = embeddings;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
__decorate([
|
|
65
|
+
Expose(),
|
|
66
|
+
__metadata("design:type", String)
|
|
67
|
+
], EmbeddingsResponse.prototype, "model", void 0);
|
|
68
|
+
__decorate([
|
|
69
|
+
Expose(),
|
|
70
|
+
__metadata("design:type", Array)
|
|
71
|
+
], EmbeddingsResponse.prototype, "embeddings", void 0);
|
|
72
|
+
/**
|
|
73
|
+
* Usage statistics for the completion request.
|
|
74
|
+
*/
|
|
75
|
+
export class Usage {
|
|
76
|
+
constructor(completionTokens, promptTokens, totalTokens, promptTokensDetails, completionTokenDetails) {
|
|
77
|
+
this.completionTokens = completionTokens;
|
|
78
|
+
this.promptTokens = promptTokens;
|
|
79
|
+
this.totalTokens = totalTokens;
|
|
80
|
+
this.promptTokensDetails = promptTokensDetails;
|
|
81
|
+
this.completionTokenDetails = completionTokenDetails;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
__decorate([
|
|
85
|
+
Expose({ name: 'completion_tokens' }),
|
|
86
|
+
__metadata("design:type", Number)
|
|
87
|
+
], Usage.prototype, "completionTokens", void 0);
|
|
88
|
+
__decorate([
|
|
89
|
+
Expose({ name: 'prompt_tokens' }),
|
|
90
|
+
__metadata("design:type", Number)
|
|
91
|
+
], Usage.prototype, "promptTokens", void 0);
|
|
92
|
+
__decorate([
|
|
93
|
+
Expose({ name: 'total_tokens' }),
|
|
94
|
+
__metadata("design:type", Number)
|
|
95
|
+
], Usage.prototype, "totalTokens", void 0);
|
|
96
|
+
__decorate([
|
|
97
|
+
Type(() => PromptTokensDetails),
|
|
98
|
+
Expose({ name: 'prompt_tokens_details' }),
|
|
99
|
+
__metadata("design:type", PromptTokensDetails)
|
|
100
|
+
], Usage.prototype, "promptTokensDetails", void 0);
|
|
101
|
+
__decorate([
|
|
102
|
+
Type(() => CompletionTokenDetails),
|
|
103
|
+
Expose({ name: 'completion_tokens_details' }),
|
|
104
|
+
__metadata("design:type", CompletionTokenDetails)
|
|
105
|
+
], Usage.prototype, "completionTokenDetails", void 0);
|
|
106
|
+
//# sourceMappingURL=usage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usage.js","sourceRoot":"","sources":["../../../src/common/api/usage.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEjD;;GAEG;AACH,MAAM,OAAO,mBAAmB;IAa5B,YAAY,WAAoB,EAAE,YAAqB;QACnD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACrC,CAAC;CACJ;AAZG;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;;wDACZ;AAMrB;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;;yDACZ;AAQ1B;;GAEG;AACH,MAAM,OAAO,sBAAsB;IAyB/B,YACI,eAAwB,EACxB,wBAAiC,EACjC,WAAoB,EACpB,wBAAiC;QAEjC,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;QACzD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;IAC7D,CAAC;CACJ;AA/BG;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;;+DACZ;AAMzB;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,4BAA4B,EAAE,CAAC;;wEACb;AAMlC;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;;2DACZ;AAMrB;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,4BAA4B,EAAE,CAAC;;wEACb;AAetC;;GAEG;AACH,MAAM,OAAO,kBAAkB;IAc3B,YAAY,KAAa,EAAE,UAAsB;QAC7C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IACjC,CAAC;CACJ;AAbG;IADC,MAAM,EAAE;;iDACK;AAOd;IADC,MAAM,EAAE;;sDACc;AAQ3B;;GAEG;AACH,MAAM,OAAO,KAAK;IAiCd,YACI,gBAAyB,EACzB,YAAqB,EACrB,WAAoB,EACpB,mBAAyC,EACzC,sBAA+C;QAE/C,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;IACzD,CAAC;CACJ;AAzCG;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC;;+CACZ;AAM1B;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;;2CACZ;AAMtB;IADC,MAAM,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;;0CACZ;AAOrB;IAFC,IAAI,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC;IAC/B,MAAM,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC;8BACpB,mBAAmB;kDAAC;AAO1C;IAFC,IAAI,CAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC;IAClC,MAAM,CAAC,EAAE,IAAI,EAAE,2BAA2B,EAAE,CAAC;8BACrB,sBAAsB;qDAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/model/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { ChatModel, ChatResponse, ChatResponseMetadata, FunctionCallbackRegister, Generation, Media, Prompt, RateLimit, Usage, ToolHandler, PromptTemplate } from '@celljs/ai-core';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
import { ChatCompletionRequest, ChatCompletion, OpenAIAPI, Choice, MediaContent, FunctionTool, ChatCompletionChunk } from '../api/index.js';
|
|
4
|
+
import { Logger, MimeType } from '@celljs/core';
|
|
5
|
+
import { OpenAIChatOptions } from './openai-chat-options.js';
|
|
6
|
+
/**
|
|
7
|
+
* {@link ChatModel} implementation for {@literal OpenAI}
|
|
8
|
+
* backed by {@link OpenAIAPI}.
|
|
9
|
+
*/
|
|
10
|
+
export declare class OpenAIChatModel implements ChatModel {
|
|
11
|
+
/**
|
|
12
|
+
* The default options used for the chat completion requests.
|
|
13
|
+
*/
|
|
14
|
+
protected readonly defaultOptions: OpenAIChatOptions;
|
|
15
|
+
/**
|
|
16
|
+
* Low-level access to the OpenAI API.
|
|
17
|
+
*/
|
|
18
|
+
protected readonly chatApi: OpenAIAPI;
|
|
19
|
+
protected readonly logger: Logger;
|
|
20
|
+
protected readonly functionCallbackRegister: FunctionCallbackRegister;
|
|
21
|
+
protected readonly toolHandler: ToolHandler;
|
|
22
|
+
protected readonly promptTemplate: PromptTemplate;
|
|
23
|
+
protected fromAudioData(audioData: any): string;
|
|
24
|
+
protected fromMediaData(mimeType: MimeType, mediaContentData: any): string;
|
|
25
|
+
protected mapToMediaContent(media: Media): MediaContent;
|
|
26
|
+
protected getFunctionTools(functionNames: Set<string>): FunctionTool[];
|
|
27
|
+
protected createRequest(prompt: Prompt, stream: boolean): ChatCompletionRequest;
|
|
28
|
+
protected buildGeneration(choice: Choice, metadata: Record<string, any>, request: ChatCompletionRequest): Generation;
|
|
29
|
+
protected buildChatResponseMetadataByResult(result: ChatCompletion, usage: Usage, rateLimit?: RateLimit): ChatResponseMetadata;
|
|
30
|
+
protected buildChatResponseMetadata(chatResponseMetadata: ChatResponseMetadata, usage: Usage): ChatResponseMetadata;
|
|
31
|
+
call(prompt: Prompt): Promise<ChatResponse>;
|
|
32
|
+
protected internalCall(prompt: Prompt, previousChatResponse?: ChatResponse): Promise<ChatResponse>;
|
|
33
|
+
protected chunkToChatCompletion(chunk: ChatCompletionChunk): ChatCompletion;
|
|
34
|
+
protected internalStream(prompt: Prompt, previousChatResponse?: ChatResponse): Promise<Observable<ChatResponse>>;
|
|
35
|
+
stream(prompt: Prompt): Promise<Observable<ChatResponse>>;
|
|
36
|
+
}
|