modelfusion 0.108.0 → 0.110.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/CHANGELOG.md +11 -1
- package/{extension → internal}/index.cjs +2 -1
- package/{extension → internal}/index.d.ts +1 -1
- package/{extension → internal}/index.js +1 -1
- package/model-provider/openai/OpenAICompletionModel.cjs +3 -91
- package/model-provider/openai/OpenAICompletionModel.d.ts +3 -71
- package/model-provider/openai/OpenAICompletionModel.js +3 -91
- package/model-provider/openai/OpenAIImageGenerationModel.d.ts +1 -1
- package/model-provider/openai/TikTokenTokenizer.cjs +0 -18
- package/model-provider/openai/TikTokenTokenizer.d.ts +3 -3
- package/model-provider/openai/TikTokenTokenizer.js +0 -18
- package/package.json +20 -20
package/CHANGELOG.md
CHANGED
@@ -1,6 +1,16 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
-
## v0.
|
3
|
+
## v0.110.0 - 2023-12-30
|
4
|
+
|
5
|
+
### Changed
|
6
|
+
|
7
|
+
- **breaking change**: renamed `modelfusion/extension` to `modelfusion/internal`. This requires updating `modelfusion-experimental` (if used) to `v0.3.0`
|
8
|
+
|
9
|
+
### Removed
|
10
|
+
|
11
|
+
- Deprecated OpenAI completion models that will be deactivated on January 4, 2024.
|
12
|
+
|
13
|
+
## v0.109.0 - 2023-12-30
|
4
14
|
|
5
15
|
### Added
|
6
16
|
|
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
15
15
|
};
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
-
exports.parseEventSourceStream = exports.AbstractModel = exports.executeFunctionCall = exports.postToApi = exports.postJsonToApi = exports.createTextResponseHandler = exports.createJsonResponseHandler = exports.createAudioMpegResponseHandler = exports.loadApiKey = exports.callWithRetryAndThrottle = void 0;
|
17
|
+
exports.parseEventSourceStream = exports.AbstractModel = exports.executeFunctionCall = exports.postToApi = exports.postJsonToApi = exports.createTextResponseHandler = exports.createJsonResponseHandler = exports.createJsonErrorResponseHandler = exports.createAudioMpegResponseHandler = exports.loadApiKey = exports.callWithRetryAndThrottle = void 0;
|
18
18
|
__exportStar(require("../core/ExtensionFunctionEvent.cjs"), exports);
|
19
19
|
var callWithRetryAndThrottle_js_1 = require("../core/api/callWithRetryAndThrottle.cjs");
|
20
20
|
Object.defineProperty(exports, "callWithRetryAndThrottle", { enumerable: true, get: function () { return callWithRetryAndThrottle_js_1.callWithRetryAndThrottle; } });
|
@@ -22,6 +22,7 @@ var loadApiKey_js_1 = require("../core/api/loadApiKey.cjs");
|
|
22
22
|
Object.defineProperty(exports, "loadApiKey", { enumerable: true, get: function () { return loadApiKey_js_1.loadApiKey; } });
|
23
23
|
var postToApi_js_1 = require("../core/api/postToApi.cjs");
|
24
24
|
Object.defineProperty(exports, "createAudioMpegResponseHandler", { enumerable: true, get: function () { return postToApi_js_1.createAudioMpegResponseHandler; } });
|
25
|
+
Object.defineProperty(exports, "createJsonErrorResponseHandler", { enumerable: true, get: function () { return postToApi_js_1.createJsonErrorResponseHandler; } });
|
25
26
|
Object.defineProperty(exports, "createJsonResponseHandler", { enumerable: true, get: function () { return postToApi_js_1.createJsonResponseHandler; } });
|
26
27
|
Object.defineProperty(exports, "createTextResponseHandler", { enumerable: true, get: function () { return postToApi_js_1.createTextResponseHandler; } });
|
27
28
|
Object.defineProperty(exports, "postJsonToApi", { enumerable: true, get: function () { return postToApi_js_1.postJsonToApi; } });
|
@@ -1,7 +1,7 @@
|
|
1
1
|
export * from "../core/ExtensionFunctionEvent.js";
|
2
2
|
export { callWithRetryAndThrottle } from "../core/api/callWithRetryAndThrottle.js";
|
3
3
|
export { loadApiKey } from "../core/api/loadApiKey.js";
|
4
|
-
export { ResponseHandler, createAudioMpegResponseHandler, createJsonResponseHandler, createTextResponseHandler, postJsonToApi, postToApi, } from "../core/api/postToApi.js";
|
4
|
+
export { ResponseHandler, createAudioMpegResponseHandler, createJsonErrorResponseHandler, createJsonResponseHandler, createTextResponseHandler, postJsonToApi, postToApi, } from "../core/api/postToApi.js";
|
5
5
|
export { executeFunctionCall } from "../core/executeFunctionCall.js";
|
6
6
|
export { AbstractModel } from "../model-function/AbstractModel.js";
|
7
7
|
export { ErrorHandler } from "../util/ErrorHandler.js";
|
@@ -1,7 +1,7 @@
|
|
1
1
|
export * from "../core/ExtensionFunctionEvent.js";
|
2
2
|
export { callWithRetryAndThrottle } from "../core/api/callWithRetryAndThrottle.js";
|
3
3
|
export { loadApiKey } from "../core/api/loadApiKey.js";
|
4
|
-
export { createAudioMpegResponseHandler, createJsonResponseHandler, createTextResponseHandler, postJsonToApi, postToApi, } from "../core/api/postToApi.js";
|
4
|
+
export { createAudioMpegResponseHandler, createJsonErrorResponseHandler, createJsonResponseHandler, createTextResponseHandler, postJsonToApi, postToApi, } from "../core/api/postToApi.js";
|
5
5
|
export { executeFunctionCall } from "../core/executeFunctionCall.js";
|
6
6
|
export { AbstractModel } from "../model-function/AbstractModel.js";
|
7
7
|
export { parseEventSourceStream } from "../util/streaming/parseEventSourceStream.js";
|
@@ -17,100 +17,12 @@ exports.OPENAI_TEXT_GENERATION_MODELS = {
|
|
17
17
|
promptTokenCostInMillicents: 0.15,
|
18
18
|
completionTokenCostInMillicents: 0.2,
|
19
19
|
},
|
20
|
-
"davinci-002": {
|
21
|
-
contextWindowSize: 16384,
|
22
|
-
promptTokenCostInMillicents: 0.2,
|
23
|
-
completionTokenCostInMillicents: 0.2,
|
24
|
-
fineTunedTokenCostInMillicents: 1.2,
|
25
|
-
},
|
26
|
-
"babbage-002": {
|
27
|
-
contextWindowSize: 16384,
|
28
|
-
promptTokenCostInMillicents: 0.04,
|
29
|
-
completionTokenCostInMillicents: 0.04,
|
30
|
-
fineTunedTokenCostInMillicents: 0.16,
|
31
|
-
},
|
32
|
-
"text-davinci-003": {
|
33
|
-
contextWindowSize: 4096,
|
34
|
-
promptTokenCostInMillicents: 2,
|
35
|
-
completionTokenCostInMillicents: 2,
|
36
|
-
},
|
37
|
-
"text-davinci-002": {
|
38
|
-
contextWindowSize: 4096,
|
39
|
-
promptTokenCostInMillicents: 2,
|
40
|
-
completionTokenCostInMillicents: 2,
|
41
|
-
},
|
42
|
-
"code-davinci-002": {
|
43
|
-
contextWindowSize: 8000,
|
44
|
-
promptTokenCostInMillicents: 2,
|
45
|
-
completionTokenCostInMillicents: 2,
|
46
|
-
},
|
47
|
-
davinci: {
|
48
|
-
contextWindowSize: 2048,
|
49
|
-
promptTokenCostInMillicents: 2,
|
50
|
-
completionTokenCostInMillicents: 2,
|
51
|
-
},
|
52
|
-
"text-curie-001": {
|
53
|
-
contextWindowSize: 2048,
|
54
|
-
promptTokenCostInMillicents: 0.2,
|
55
|
-
completionTokenCostInMillicents: 0.2,
|
56
|
-
},
|
57
|
-
curie: {
|
58
|
-
contextWindowSize: 2048,
|
59
|
-
promptTokenCostInMillicents: 0.2,
|
60
|
-
completionTokenCostInMillicents: 0.2,
|
61
|
-
},
|
62
|
-
"text-babbage-001": {
|
63
|
-
contextWindowSize: 2048,
|
64
|
-
promptTokenCostInMillicents: 0.05,
|
65
|
-
completionTokenCostInMillicents: 0.05,
|
66
|
-
},
|
67
|
-
babbage: {
|
68
|
-
contextWindowSize: 2048,
|
69
|
-
promptTokenCostInMillicents: 0.05,
|
70
|
-
completionTokenCostInMillicents: 0.05,
|
71
|
-
},
|
72
|
-
"text-ada-001": {
|
73
|
-
contextWindowSize: 2048,
|
74
|
-
promptTokenCostInMillicents: 0.04,
|
75
|
-
completionTokenCostInMillicents: 0.04,
|
76
|
-
},
|
77
|
-
ada: {
|
78
|
-
contextWindowSize: 2048,
|
79
|
-
promptTokenCostInMillicents: 0.04,
|
80
|
-
completionTokenCostInMillicents: 0.04,
|
81
|
-
},
|
82
20
|
};
|
83
21
|
function getOpenAICompletionModelInformation(model) {
|
84
|
-
|
85
|
-
if (model in exports.OPENAI_TEXT_GENERATION_MODELS) {
|
86
|
-
const baseModelInformation = exports.OPENAI_TEXT_GENERATION_MODELS[model];
|
87
|
-
return {
|
88
|
-
baseModel: model,
|
89
|
-
isFineTuned: false,
|
90
|
-
contextWindowSize: baseModelInformation.contextWindowSize,
|
91
|
-
promptTokenCostInMillicents: baseModelInformation.promptTokenCostInMillicents,
|
92
|
-
completionTokenCostInMillicents: baseModelInformation.completionTokenCostInMillicents,
|
93
|
-
};
|
94
|
-
}
|
95
|
-
// Extract the base model from the fine-tuned model:
|
96
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
97
|
-
const [_, baseModel, ___, ____, _____] = model.split(":");
|
98
|
-
if (["davinci-002", "babbage-002"].includes(baseModel)) {
|
99
|
-
const baseModelInformation = exports.OPENAI_TEXT_GENERATION_MODELS[baseModel];
|
100
|
-
return {
|
101
|
-
baseModel: baseModel,
|
102
|
-
isFineTuned: true,
|
103
|
-
contextWindowSize: baseModelInformation.contextWindowSize,
|
104
|
-
promptTokenCostInMillicents: baseModelInformation.fineTunedTokenCostInMillicents,
|
105
|
-
completionTokenCostInMillicents: baseModelInformation.fineTunedTokenCostInMillicents,
|
106
|
-
};
|
107
|
-
}
|
108
|
-
throw new Error(`Unknown OpenAI chat base model ${baseModel}.`);
|
22
|
+
return exports.OPENAI_TEXT_GENERATION_MODELS[model];
|
109
23
|
}
|
110
24
|
exports.getOpenAICompletionModelInformation = getOpenAICompletionModelInformation;
|
111
|
-
const isOpenAICompletionModel = (model) => model in exports.OPENAI_TEXT_GENERATION_MODELS
|
112
|
-
model.startsWith("ft:davinci-002:") ||
|
113
|
-
model.startsWith("ft:babbage-002:");
|
25
|
+
const isOpenAICompletionModel = (model) => model in exports.OPENAI_TEXT_GENERATION_MODELS;
|
114
26
|
exports.isOpenAICompletionModel = isOpenAICompletionModel;
|
115
27
|
const calculateOpenAICompletionCostInMillicents = ({ model, response, }) => {
|
116
28
|
const modelInformation = getOpenAICompletionModelInformation(model);
|
@@ -161,7 +73,7 @@ class OpenAICompletionModel extends AbstractOpenAICompletionModel_js_1.AbstractO
|
|
161
73
|
});
|
162
74
|
const modelInformation = getOpenAICompletionModelInformation(this.settings.model);
|
163
75
|
this.tokenizer = new TikTokenTokenizer_js_1.TikTokenTokenizer({
|
164
|
-
model:
|
76
|
+
model: this.settings.model,
|
165
77
|
});
|
166
78
|
this.contextWindowSize = modelInformation.contextWindowSize;
|
167
79
|
}
|
@@ -13,81 +13,14 @@ export declare const OPENAI_TEXT_GENERATION_MODELS: {
|
|
13
13
|
promptTokenCostInMillicents: number;
|
14
14
|
completionTokenCostInMillicents: number;
|
15
15
|
};
|
16
|
-
"davinci-002": {
|
17
|
-
contextWindowSize: number;
|
18
|
-
promptTokenCostInMillicents: number;
|
19
|
-
completionTokenCostInMillicents: number;
|
20
|
-
fineTunedTokenCostInMillicents: number;
|
21
|
-
};
|
22
|
-
"babbage-002": {
|
23
|
-
contextWindowSize: number;
|
24
|
-
promptTokenCostInMillicents: number;
|
25
|
-
completionTokenCostInMillicents: number;
|
26
|
-
fineTunedTokenCostInMillicents: number;
|
27
|
-
};
|
28
|
-
"text-davinci-003": {
|
29
|
-
contextWindowSize: number;
|
30
|
-
promptTokenCostInMillicents: number;
|
31
|
-
completionTokenCostInMillicents: number;
|
32
|
-
};
|
33
|
-
"text-davinci-002": {
|
34
|
-
contextWindowSize: number;
|
35
|
-
promptTokenCostInMillicents: number;
|
36
|
-
completionTokenCostInMillicents: number;
|
37
|
-
};
|
38
|
-
"code-davinci-002": {
|
39
|
-
contextWindowSize: number;
|
40
|
-
promptTokenCostInMillicents: number;
|
41
|
-
completionTokenCostInMillicents: number;
|
42
|
-
};
|
43
|
-
davinci: {
|
44
|
-
contextWindowSize: number;
|
45
|
-
promptTokenCostInMillicents: number;
|
46
|
-
completionTokenCostInMillicents: number;
|
47
|
-
};
|
48
|
-
"text-curie-001": {
|
49
|
-
contextWindowSize: number;
|
50
|
-
promptTokenCostInMillicents: number;
|
51
|
-
completionTokenCostInMillicents: number;
|
52
|
-
};
|
53
|
-
curie: {
|
54
|
-
contextWindowSize: number;
|
55
|
-
promptTokenCostInMillicents: number;
|
56
|
-
completionTokenCostInMillicents: number;
|
57
|
-
};
|
58
|
-
"text-babbage-001": {
|
59
|
-
contextWindowSize: number;
|
60
|
-
promptTokenCostInMillicents: number;
|
61
|
-
completionTokenCostInMillicents: number;
|
62
|
-
};
|
63
|
-
babbage: {
|
64
|
-
contextWindowSize: number;
|
65
|
-
promptTokenCostInMillicents: number;
|
66
|
-
completionTokenCostInMillicents: number;
|
67
|
-
};
|
68
|
-
"text-ada-001": {
|
69
|
-
contextWindowSize: number;
|
70
|
-
promptTokenCostInMillicents: number;
|
71
|
-
completionTokenCostInMillicents: number;
|
72
|
-
};
|
73
|
-
ada: {
|
74
|
-
contextWindowSize: number;
|
75
|
-
promptTokenCostInMillicents: number;
|
76
|
-
completionTokenCostInMillicents: number;
|
77
|
-
};
|
78
16
|
};
|
79
17
|
export declare function getOpenAICompletionModelInformation(model: OpenAICompletionModelType): {
|
80
|
-
baseModel: OpenAICompletionBaseModelType;
|
81
|
-
isFineTuned: boolean;
|
82
18
|
contextWindowSize: number;
|
83
19
|
promptTokenCostInMillicents: number;
|
84
20
|
completionTokenCostInMillicents: number;
|
85
21
|
};
|
86
|
-
type
|
87
|
-
|
88
|
-
export type OpenAICompletionBaseModelType = keyof typeof OPENAI_TEXT_GENERATION_MODELS;
|
89
|
-
export type OpenAICompletionModelType = OpenAICompletionBaseModelType | FineTunedOpenAICompletionModelType;
|
90
|
-
export declare const isOpenAICompletionModel: (model: string) => model is OpenAICompletionModelType;
|
22
|
+
export type OpenAICompletionModelType = keyof typeof OPENAI_TEXT_GENERATION_MODELS;
|
23
|
+
export declare const isOpenAICompletionModel: (model: string) => model is "gpt-3.5-turbo-instruct";
|
91
24
|
export declare const calculateOpenAICompletionCostInMillicents: ({ model, response, }: {
|
92
25
|
model: OpenAICompletionModelType;
|
93
26
|
response: OpenAICompletionResponse;
|
@@ -116,7 +49,7 @@ export interface OpenAICompletionModelSettings extends AbstractOpenAICompletionM
|
|
116
49
|
export declare class OpenAICompletionModel extends AbstractOpenAICompletionModel<OpenAICompletionModelSettings> implements TextStreamingModel<string, OpenAICompletionModelSettings> {
|
117
50
|
constructor(settings: OpenAICompletionModelSettings);
|
118
51
|
readonly provider: "openai";
|
119
|
-
get modelName():
|
52
|
+
get modelName(): "gpt-3.5-turbo-instruct";
|
120
53
|
readonly contextWindowSize: number;
|
121
54
|
readonly tokenizer: TikTokenTokenizer;
|
122
55
|
countPromptTokens(input: string): Promise<number>;
|
@@ -135,4 +68,3 @@ export declare class OpenAICompletionModel extends AbstractOpenAICompletionModel
|
|
135
68
|
withPromptTemplate<INPUT_PROMPT>(promptTemplate: TextGenerationPromptTemplate<INPUT_PROMPT, string>): PromptTemplateTextStreamingModel<INPUT_PROMPT, string, OpenAICompletionModelSettings, this>;
|
136
69
|
withSettings(additionalSettings: Partial<OpenAICompletionModelSettings>): this;
|
137
70
|
}
|
138
|
-
export {};
|
@@ -14,99 +14,11 @@ export const OPENAI_TEXT_GENERATION_MODELS = {
|
|
14
14
|
promptTokenCostInMillicents: 0.15,
|
15
15
|
completionTokenCostInMillicents: 0.2,
|
16
16
|
},
|
17
|
-
"davinci-002": {
|
18
|
-
contextWindowSize: 16384,
|
19
|
-
promptTokenCostInMillicents: 0.2,
|
20
|
-
completionTokenCostInMillicents: 0.2,
|
21
|
-
fineTunedTokenCostInMillicents: 1.2,
|
22
|
-
},
|
23
|
-
"babbage-002": {
|
24
|
-
contextWindowSize: 16384,
|
25
|
-
promptTokenCostInMillicents: 0.04,
|
26
|
-
completionTokenCostInMillicents: 0.04,
|
27
|
-
fineTunedTokenCostInMillicents: 0.16,
|
28
|
-
},
|
29
|
-
"text-davinci-003": {
|
30
|
-
contextWindowSize: 4096,
|
31
|
-
promptTokenCostInMillicents: 2,
|
32
|
-
completionTokenCostInMillicents: 2,
|
33
|
-
},
|
34
|
-
"text-davinci-002": {
|
35
|
-
contextWindowSize: 4096,
|
36
|
-
promptTokenCostInMillicents: 2,
|
37
|
-
completionTokenCostInMillicents: 2,
|
38
|
-
},
|
39
|
-
"code-davinci-002": {
|
40
|
-
contextWindowSize: 8000,
|
41
|
-
promptTokenCostInMillicents: 2,
|
42
|
-
completionTokenCostInMillicents: 2,
|
43
|
-
},
|
44
|
-
davinci: {
|
45
|
-
contextWindowSize: 2048,
|
46
|
-
promptTokenCostInMillicents: 2,
|
47
|
-
completionTokenCostInMillicents: 2,
|
48
|
-
},
|
49
|
-
"text-curie-001": {
|
50
|
-
contextWindowSize: 2048,
|
51
|
-
promptTokenCostInMillicents: 0.2,
|
52
|
-
completionTokenCostInMillicents: 0.2,
|
53
|
-
},
|
54
|
-
curie: {
|
55
|
-
contextWindowSize: 2048,
|
56
|
-
promptTokenCostInMillicents: 0.2,
|
57
|
-
completionTokenCostInMillicents: 0.2,
|
58
|
-
},
|
59
|
-
"text-babbage-001": {
|
60
|
-
contextWindowSize: 2048,
|
61
|
-
promptTokenCostInMillicents: 0.05,
|
62
|
-
completionTokenCostInMillicents: 0.05,
|
63
|
-
},
|
64
|
-
babbage: {
|
65
|
-
contextWindowSize: 2048,
|
66
|
-
promptTokenCostInMillicents: 0.05,
|
67
|
-
completionTokenCostInMillicents: 0.05,
|
68
|
-
},
|
69
|
-
"text-ada-001": {
|
70
|
-
contextWindowSize: 2048,
|
71
|
-
promptTokenCostInMillicents: 0.04,
|
72
|
-
completionTokenCostInMillicents: 0.04,
|
73
|
-
},
|
74
|
-
ada: {
|
75
|
-
contextWindowSize: 2048,
|
76
|
-
promptTokenCostInMillicents: 0.04,
|
77
|
-
completionTokenCostInMillicents: 0.04,
|
78
|
-
},
|
79
17
|
};
|
80
18
|
export function getOpenAICompletionModelInformation(model) {
|
81
|
-
|
82
|
-
if (model in OPENAI_TEXT_GENERATION_MODELS) {
|
83
|
-
const baseModelInformation = OPENAI_TEXT_GENERATION_MODELS[model];
|
84
|
-
return {
|
85
|
-
baseModel: model,
|
86
|
-
isFineTuned: false,
|
87
|
-
contextWindowSize: baseModelInformation.contextWindowSize,
|
88
|
-
promptTokenCostInMillicents: baseModelInformation.promptTokenCostInMillicents,
|
89
|
-
completionTokenCostInMillicents: baseModelInformation.completionTokenCostInMillicents,
|
90
|
-
};
|
91
|
-
}
|
92
|
-
// Extract the base model from the fine-tuned model:
|
93
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
94
|
-
const [_, baseModel, ___, ____, _____] = model.split(":");
|
95
|
-
if (["davinci-002", "babbage-002"].includes(baseModel)) {
|
96
|
-
const baseModelInformation = OPENAI_TEXT_GENERATION_MODELS[baseModel];
|
97
|
-
return {
|
98
|
-
baseModel: baseModel,
|
99
|
-
isFineTuned: true,
|
100
|
-
contextWindowSize: baseModelInformation.contextWindowSize,
|
101
|
-
promptTokenCostInMillicents: baseModelInformation.fineTunedTokenCostInMillicents,
|
102
|
-
completionTokenCostInMillicents: baseModelInformation.fineTunedTokenCostInMillicents,
|
103
|
-
};
|
104
|
-
}
|
105
|
-
throw new Error(`Unknown OpenAI chat base model ${baseModel}.`);
|
19
|
+
return OPENAI_TEXT_GENERATION_MODELS[model];
|
106
20
|
}
|
107
|
-
export const isOpenAICompletionModel = (model) => model in OPENAI_TEXT_GENERATION_MODELS
|
108
|
-
model.startsWith("ft:davinci-002:") ||
|
109
|
-
model.startsWith("ft:babbage-002:");
|
21
|
+
export const isOpenAICompletionModel = (model) => model in OPENAI_TEXT_GENERATION_MODELS;
|
110
22
|
export const calculateOpenAICompletionCostInMillicents = ({ model, response, }) => {
|
111
23
|
const modelInformation = getOpenAICompletionModelInformation(model);
|
112
24
|
return (response.usage.prompt_tokens *
|
@@ -155,7 +67,7 @@ export class OpenAICompletionModel extends AbstractOpenAICompletionModel {
|
|
155
67
|
});
|
156
68
|
const modelInformation = getOpenAICompletionModelInformation(this.settings.model);
|
157
69
|
this.tokenizer = new TikTokenTokenizer({
|
158
|
-
model:
|
70
|
+
model: this.settings.model,
|
159
71
|
});
|
160
72
|
this.contextWindowSize = modelInformation.contextWindowSize;
|
161
73
|
}
|
@@ -11,7 +11,7 @@ export declare const OPENAI_IMAGE_MODELS: {
|
|
11
11
|
getCost(settings: OpenAIImageGenerationSettings): 2000 | 1800 | 1600 | null;
|
12
12
|
};
|
13
13
|
"dall-e-3": {
|
14
|
-
getCost(settings: OpenAIImageGenerationSettings):
|
14
|
+
getCost(settings: OpenAIImageGenerationSettings): 4000 | 8000 | 12000 | null;
|
15
15
|
};
|
16
16
|
};
|
17
17
|
/**
|
@@ -6,8 +6,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.TikTokenTokenizer = void 0;
|
7
7
|
const lite_1 = require("js-tiktoken/lite");
|
8
8
|
const cl100k_base_1 = __importDefault(require("js-tiktoken/ranks/cl100k_base"));
|
9
|
-
const p50k_base_1 = __importDefault(require("js-tiktoken/ranks/p50k_base"));
|
10
|
-
const r50k_base_1 = __importDefault(require("js-tiktoken/ranks/r50k_base"));
|
11
9
|
const never_js_1 = require("../../util/never.cjs");
|
12
10
|
/**
|
13
11
|
* TikToken tokenizer for OpenAI language models.
|
@@ -56,22 +54,6 @@ exports.TikTokenTokenizer = TikTokenTokenizer;
|
|
56
54
|
// when new models are released
|
57
55
|
function getTiktokenBPE(model) {
|
58
56
|
switch (model) {
|
59
|
-
case "code-davinci-002":
|
60
|
-
case "text-davinci-002":
|
61
|
-
case "text-davinci-003": {
|
62
|
-
return p50k_base_1.default;
|
63
|
-
}
|
64
|
-
case "ada":
|
65
|
-
case "babbage":
|
66
|
-
case "curie":
|
67
|
-
case "davinci":
|
68
|
-
case "text-ada-001":
|
69
|
-
case "text-babbage-001":
|
70
|
-
case "text-curie-001": {
|
71
|
-
return r50k_base_1.default;
|
72
|
-
}
|
73
|
-
case "babbage-002":
|
74
|
-
case "davinci-002":
|
75
57
|
case "gpt-3.5-turbo":
|
76
58
|
case "gpt-3.5-turbo-0301":
|
77
59
|
case "gpt-3.5-turbo-0613":
|
@@ -1,9 +1,9 @@
|
|
1
1
|
import { FullTokenizer } from "../../model-function/tokenize-text/Tokenizer.js";
|
2
|
-
import { OpenAITextEmbeddingModelType } from "./OpenAITextEmbeddingModel.js";
|
3
|
-
import { OpenAICompletionBaseModelType } from "./OpenAICompletionModel.js";
|
4
2
|
import { OpenAIChatBaseModelType } from "./OpenAIChatModel.js";
|
3
|
+
import { OpenAICompletionModelType } from "./OpenAICompletionModel.js";
|
4
|
+
import { OpenAITextEmbeddingModelType } from "./OpenAITextEmbeddingModel.js";
|
5
5
|
export type TikTokenTokenizerSettings = {
|
6
|
-
model: OpenAIChatBaseModelType |
|
6
|
+
model: OpenAIChatBaseModelType | OpenAICompletionModelType | OpenAITextEmbeddingModelType;
|
7
7
|
};
|
8
8
|
/**
|
9
9
|
* TikToken tokenizer for OpenAI language models.
|
@@ -1,7 +1,5 @@
|
|
1
1
|
import { Tiktoken } from "js-tiktoken/lite";
|
2
2
|
import cl100k_base from "js-tiktoken/ranks/cl100k_base";
|
3
|
-
import p50k_base from "js-tiktoken/ranks/p50k_base";
|
4
|
-
import r50k_base from "js-tiktoken/ranks/r50k_base";
|
5
3
|
import { never } from "../../util/never.js";
|
6
4
|
/**
|
7
5
|
* TikToken tokenizer for OpenAI language models.
|
@@ -49,22 +47,6 @@ export class TikTokenTokenizer {
|
|
49
47
|
// when new models are released
|
50
48
|
function getTiktokenBPE(model) {
|
51
49
|
switch (model) {
|
52
|
-
case "code-davinci-002":
|
53
|
-
case "text-davinci-002":
|
54
|
-
case "text-davinci-003": {
|
55
|
-
return p50k_base;
|
56
|
-
}
|
57
|
-
case "ada":
|
58
|
-
case "babbage":
|
59
|
-
case "curie":
|
60
|
-
case "davinci":
|
61
|
-
case "text-ada-001":
|
62
|
-
case "text-babbage-001":
|
63
|
-
case "text-curie-001": {
|
64
|
-
return r50k_base;
|
65
|
-
}
|
66
|
-
case "babbage-002":
|
67
|
-
case "davinci-002":
|
68
50
|
case "gpt-3.5-turbo":
|
69
51
|
case "gpt-3.5-turbo-0301":
|
70
52
|
case "gpt-3.5-turbo-0613":
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "modelfusion",
|
3
3
|
"description": "The TypeScript library for building multi-modal AI applications.",
|
4
|
-
"version": "0.
|
4
|
+
"version": "0.110.0",
|
5
5
|
"author": "Lars Grammel",
|
6
6
|
"license": "MIT",
|
7
7
|
"keywords": [
|
@@ -42,12 +42,26 @@
|
|
42
42
|
"import": "./index.js",
|
43
43
|
"require": "./index.cjs"
|
44
44
|
},
|
45
|
-
"./
|
46
|
-
"types": "./
|
47
|
-
"import": "./
|
48
|
-
"require": "./
|
45
|
+
"./internal": {
|
46
|
+
"types": "./internal/index.d.ts",
|
47
|
+
"import": "./internal/index.js",
|
48
|
+
"require": "./internal/index.cjs"
|
49
49
|
}
|
50
50
|
},
|
51
|
+
"scripts": {
|
52
|
+
"lint": "eslint --ext .ts src",
|
53
|
+
"clean": "rimraf build dist .turbo node_modules",
|
54
|
+
"clean:build": "rimraf build dist",
|
55
|
+
"build": "pnpm build:esm && pnpm build:cjs && pnpm build:copy-files",
|
56
|
+
"build:esm": "tsc --outDir dist/",
|
57
|
+
"build:cjs": "tsc --outDir build/cjs/ -p tsconfig.cjs.json && node bin/prepare-cjs.js",
|
58
|
+
"build:copy-files": "copyfiles --flat package.json ../../README.md ../../LICENSE ../../CHANGELOG.md dist",
|
59
|
+
"test": "vitest --config vitest.config.js --run src",
|
60
|
+
"test:watch": "vitest watch --config vitest.config.js",
|
61
|
+
"test:coverage": "vitest run --config vitest.config.js --coverage",
|
62
|
+
"test:coverage:ui": "vitest --config vitest.config.js --coverage --ui",
|
63
|
+
"dist": "pnpm clean:build && pnpm lint && pnpm test && pnpm build"
|
64
|
+
},
|
51
65
|
"dependencies": {
|
52
66
|
"eventsource-parser": "1.1.1",
|
53
67
|
"js-tiktoken": "1.0.7",
|
@@ -67,19 +81,5 @@
|
|
67
81
|
"eslint": "^8.45.0",
|
68
82
|
"eslint-config-prettier": "9.1.0",
|
69
83
|
"msw": "2.0.11"
|
70
|
-
},
|
71
|
-
"scripts": {
|
72
|
-
"lint": "eslint --ext .ts src",
|
73
|
-
"clean": "rimraf build dist .turbo node_modules",
|
74
|
-
"clean:build": "rimraf build dist",
|
75
|
-
"build": "pnpm build:esm && pnpm build:cjs && pnpm build:copy-files",
|
76
|
-
"build:esm": "tsc --outDir dist/",
|
77
|
-
"build:cjs": "tsc --outDir build/cjs/ -p tsconfig.cjs.json && node bin/prepare-cjs.js",
|
78
|
-
"build:copy-files": "copyfiles --flat package.json ../../README.md ../../LICENSE ../../CHANGELOG.md dist",
|
79
|
-
"test": "vitest --config vitest.config.js --run src",
|
80
|
-
"test:watch": "vitest watch --config vitest.config.js",
|
81
|
-
"test:coverage": "vitest run --config vitest.config.js --coverage",
|
82
|
-
"test:coverage:ui": "vitest --config vitest.config.js --coverage --ui",
|
83
|
-
"dist": "pnpm clean:build && pnpm lint && pnpm test && pnpm build"
|
84
84
|
}
|
85
|
-
}
|
85
|
+
}
|