@theia/ai-openai 1.63.0-next.0 → 1.63.0-next.52
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/lib/browser/openai-frontend-application-contribution.d.ts +3 -0
- package/lib/browser/openai-frontend-application-contribution.d.ts.map +1 -1
- package/lib/browser/openai-frontend-application-contribution.js +25 -3
- package/lib/browser/openai-frontend-application-contribution.js.map +1 -1
- package/lib/common/openai-language-models-manager.d.ts +4 -0
- package/lib/common/openai-language-models-manager.d.ts.map +1 -1
- package/lib/node/openai-language-model.d.ts +12 -1
- package/lib/node/openai-language-model.d.ts.map +1 -1
- package/lib/node/openai-language-model.js +39 -12
- package/lib/node/openai-language-model.js.map +1 -1
- package/lib/node/openai-language-models-manager-impl.d.ts.map +1 -1
- package/lib/node/openai-language-models-manager-impl.js +2 -1
- package/lib/node/openai-language-models-manager-impl.js.map +1 -1
- package/package.json +7 -7
- package/src/browser/openai-frontend-application-contribution.ts +24 -2
- package/src/common/openai-language-models-manager.ts +4 -0
- package/src/node/openai-language-model.ts +46 -13
- package/src/node/openai-language-models-manager-impl.ts +2 -0
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import { FrontendApplicationContribution, PreferenceService } from '@theia/core/lib/browser';
|
|
2
2
|
import { OpenAiLanguageModelsManager, OpenAiModelDescription } from '../common';
|
|
3
|
+
import { AICorePreferences } from '@theia/ai-core/lib/browser/ai-core-preferences';
|
|
3
4
|
export declare class OpenAiFrontendApplicationContribution implements FrontendApplicationContribution {
|
|
4
5
|
protected preferenceService: PreferenceService;
|
|
5
6
|
protected manager: OpenAiLanguageModelsManager;
|
|
7
|
+
protected aiCorePreferences: AICorePreferences;
|
|
6
8
|
protected prevModels: string[];
|
|
7
9
|
protected prevCustomModels: Partial<OpenAiModelDescription>[];
|
|
8
10
|
onStart(): void;
|
|
9
11
|
protected handleModelChanges(newModels: string[]): void;
|
|
10
12
|
protected handleCustomModelChanges(newCustomModels: Partial<OpenAiModelDescription>[]): void;
|
|
13
|
+
protected updateAllModelsWithNewRetries(): void;
|
|
11
14
|
protected createOpenAIModelDescription(modelId: string): OpenAiModelDescription;
|
|
12
15
|
protected createCustomModelDescriptionsFromPreferences(preferences: Partial<OpenAiModelDescription>[]): OpenAiModelDescription[];
|
|
13
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-frontend-application-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/openai-frontend-application-contribution.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,+BAA+B,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE7F,OAAO,EAAE,2BAA2B,EAAE,sBAAsB,EAAsB,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"openai-frontend-application-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/openai-frontend-application-contribution.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,+BAA+B,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE7F,OAAO,EAAE,2BAA2B,EAAE,sBAAsB,EAAsB,MAAM,WAAW,CAAC;AAEpG,OAAO,EAAE,iBAAiB,EAA+B,MAAM,gDAAgD,CAAC;AAEhH,qBACa,qCAAsC,YAAW,+BAA+B;IAGzF,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAG/C,SAAS,CAAC,OAAO,EAAE,2BAA2B,CAAC;IAG/C,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAE/C,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,CAAM;IACpC,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAC,sBAAsB,CAAC,EAAE,CAAM;IAEnE,OAAO,IAAI,IAAI;IA+Bf,SAAS,CAAC,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI;IAYvD,SAAS,CAAC,wBAAwB,CAAC,eAAe,EAAE,OAAO,CAAC,sBAAsB,CAAC,EAAE,GAAG,IAAI;IAqB5F,SAAS,CAAC,6BAA6B,IAAI,IAAI;IAQ/C,SAAS,CAAC,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,sBAAsB;IAe/E,SAAS,CAAC,4CAA4C,CAClD,WAAW,EAAE,OAAO,CAAC,sBAAsB,CAAC,EAAE,GAC/C,sBAAsB,EAAE;CAuB9B"}
|
|
@@ -21,6 +21,7 @@ const browser_1 = require("@theia/core/lib/browser");
|
|
|
21
21
|
const inversify_1 = require("@theia/core/shared/inversify");
|
|
22
22
|
const common_1 = require("../common");
|
|
23
23
|
const openai_preferences_1 = require("./openai-preferences");
|
|
24
|
+
const ai_core_preferences_1 = require("@theia/ai-core/lib/browser/ai-core-preferences");
|
|
24
25
|
let OpenAiFrontendApplicationContribution = class OpenAiFrontendApplicationContribution {
|
|
25
26
|
constructor() {
|
|
26
27
|
this.prevModels = [];
|
|
@@ -47,6 +48,11 @@ let OpenAiFrontendApplicationContribution = class OpenAiFrontendApplicationContr
|
|
|
47
48
|
this.handleCustomModelChanges(event.newValue);
|
|
48
49
|
}
|
|
49
50
|
});
|
|
51
|
+
this.aiCorePreferences.onPreferenceChanged(event => {
|
|
52
|
+
if (event.preferenceName === ai_core_preferences_1.PREFERENCE_NAME_MAX_RETRIES) {
|
|
53
|
+
this.updateAllModelsWithNewRetries();
|
|
54
|
+
}
|
|
55
|
+
});
|
|
50
56
|
});
|
|
51
57
|
}
|
|
52
58
|
handleModelChanges(newModels) {
|
|
@@ -74,8 +80,16 @@ let OpenAiFrontendApplicationContribution = class OpenAiFrontendApplicationContr
|
|
|
74
80
|
this.manager.createOrUpdateLanguageModels(...modelsToAddOrUpdate);
|
|
75
81
|
this.prevCustomModels = [...newCustomModels];
|
|
76
82
|
}
|
|
83
|
+
updateAllModelsWithNewRetries() {
|
|
84
|
+
const models = this.preferenceService.get(openai_preferences_1.MODELS_PREF, []);
|
|
85
|
+
this.manager.createOrUpdateLanguageModels(...models.map(modelId => this.createOpenAIModelDescription(modelId)));
|
|
86
|
+
const customModels = this.preferenceService.get(openai_preferences_1.CUSTOM_ENDPOINTS_PREF, []);
|
|
87
|
+
this.manager.createOrUpdateLanguageModels(...this.createCustomModelDescriptionsFromPreferences(customModels));
|
|
88
|
+
}
|
|
77
89
|
createOpenAIModelDescription(modelId) {
|
|
90
|
+
var _a;
|
|
78
91
|
const id = `${common_1.OPENAI_PROVIDER_ID}/${modelId}`;
|
|
92
|
+
const maxRetries = (_a = this.aiCorePreferences.get(ai_core_preferences_1.PREFERENCE_NAME_MAX_RETRIES)) !== null && _a !== void 0 ? _a : 3;
|
|
79
93
|
return {
|
|
80
94
|
id: id,
|
|
81
95
|
model: modelId,
|
|
@@ -83,12 +97,15 @@ let OpenAiFrontendApplicationContribution = class OpenAiFrontendApplicationContr
|
|
|
83
97
|
apiVersion: true,
|
|
84
98
|
developerMessageSettings: openAIModelsNotSupportingDeveloperMessages.includes(modelId) ? 'user' : 'developer',
|
|
85
99
|
enableStreaming: !openAIModelsWithDisabledStreaming.includes(modelId),
|
|
86
|
-
supportsStructuredOutput: !openAIModelsWithoutStructuredOutput.includes(modelId)
|
|
100
|
+
supportsStructuredOutput: !openAIModelsWithoutStructuredOutput.includes(modelId),
|
|
101
|
+
maxRetries: maxRetries
|
|
87
102
|
};
|
|
88
103
|
}
|
|
89
104
|
createCustomModelDescriptionsFromPreferences(preferences) {
|
|
105
|
+
var _a;
|
|
106
|
+
const maxRetries = (_a = this.aiCorePreferences.get(ai_core_preferences_1.PREFERENCE_NAME_MAX_RETRIES)) !== null && _a !== void 0 ? _a : 3;
|
|
90
107
|
return preferences.reduce((acc, pref) => {
|
|
91
|
-
var _a, _b, _c;
|
|
108
|
+
var _a, _b, _c, _d;
|
|
92
109
|
if (!pref.model || !pref.url || typeof pref.model !== 'string' || typeof pref.url !== 'string') {
|
|
93
110
|
return acc;
|
|
94
111
|
}
|
|
@@ -102,7 +119,8 @@ let OpenAiFrontendApplicationContribution = class OpenAiFrontendApplicationContr
|
|
|
102
119
|
apiVersion: typeof pref.apiVersion === 'string' || pref.apiVersion === true ? pref.apiVersion : undefined,
|
|
103
120
|
developerMessageSettings: (_a = pref.developerMessageSettings) !== null && _a !== void 0 ? _a : 'developer',
|
|
104
121
|
supportsStructuredOutput: (_b = pref.supportsStructuredOutput) !== null && _b !== void 0 ? _b : true,
|
|
105
|
-
enableStreaming: (_c = pref.enableStreaming) !== null && _c !== void 0 ? _c : true
|
|
122
|
+
enableStreaming: (_c = pref.enableStreaming) !== null && _c !== void 0 ? _c : true,
|
|
123
|
+
maxRetries: (_d = pref.maxRetries) !== null && _d !== void 0 ? _d : maxRetries
|
|
106
124
|
}
|
|
107
125
|
];
|
|
108
126
|
}, []);
|
|
@@ -117,6 +135,10 @@ tslib_1.__decorate([
|
|
|
117
135
|
(0, inversify_1.inject)(common_1.OpenAiLanguageModelsManager),
|
|
118
136
|
tslib_1.__metadata("design:type", Object)
|
|
119
137
|
], OpenAiFrontendApplicationContribution.prototype, "manager", void 0);
|
|
138
|
+
tslib_1.__decorate([
|
|
139
|
+
(0, inversify_1.inject)(ai_core_preferences_1.AICorePreferences),
|
|
140
|
+
tslib_1.__metadata("design:type", Object)
|
|
141
|
+
], OpenAiFrontendApplicationContribution.prototype, "aiCorePreferences", void 0);
|
|
120
142
|
exports.OpenAiFrontendApplicationContribution = OpenAiFrontendApplicationContribution = tslib_1.__decorate([
|
|
121
143
|
(0, inversify_1.injectable)()
|
|
122
144
|
], OpenAiFrontendApplicationContribution);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-frontend-application-contribution.js","sourceRoot":"","sources":["../../src/browser/openai-frontend-application-contribution.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAEhF,qDAA6F;AAC7F,4DAAkE;AAClE,sCAAoG;AACpG,6DAAwF;
|
|
1
|
+
{"version":3,"file":"openai-frontend-application-contribution.js","sourceRoot":"","sources":["../../src/browser/openai-frontend-application-contribution.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,6 +37,10 @@ export interface OpenAiModelDescription {
|
|
|
37
37
|
* Flag to configure whether the OpenAPI model supports structured output. Default is `true`.
|
|
38
38
|
*/
|
|
39
39
|
supportsStructuredOutput: boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Maximum number of retry attempts when a request fails. Default is 3.
|
|
42
|
+
*/
|
|
43
|
+
maxRetries: number;
|
|
40
44
|
}
|
|
41
45
|
export interface OpenAiLanguageModelsManager {
|
|
42
46
|
apiKey: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-language-models-manager.d.ts","sourceRoot":"","sources":["../../src/common/openai-language-models-manager.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,mCAAmC,6CAA6C,CAAC;AAC9F,eAAO,MAAM,2BAA2B,eAAwC,CAAC;AAEjF,eAAO,MAAM,kBAAkB,WAAW,CAAC;AAE3C,MAAM,WAAW,sBAAsB;IACnC;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAClC;;OAEG;IACH,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACtC;;OAEG;IACH,eAAe,EAAE,OAAO,CAAC;IACzB;;;;;OAKG;IACH,wBAAwB,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,+BAA+B,GAAG,MAAM,CAAC;IACtG;;OAEG;IACH,wBAAwB,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"openai-language-models-manager.d.ts","sourceRoot":"","sources":["../../src/common/openai-language-models-manager.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,mCAAmC,6CAA6C,CAAC;AAC9F,eAAO,MAAM,2BAA2B,eAAwC,CAAC;AAEjF,eAAO,MAAM,kBAAkB,WAAW,CAAC;AAE3C,MAAM,WAAW,sBAAsB;IACnC;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAClC;;OAEG;IACH,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACtC;;OAEG;IACH,eAAe,EAAE,OAAO,CAAC;IACzB;;;;;OAKG;IACH,wBAAwB,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,+BAA+B,GAAG,MAAM,CAAC;IACtG;;OAEG;IACH,wBAAwB,EAAE,OAAO,CAAC;IAClC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACtB;AACD,MAAM,WAAW,2BAA2B;IACxC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACzC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACjD,4BAA4B,CAAC,GAAG,MAAM,EAAE,sBAAsB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjF,oBAAoB,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;CACpD"}
|
|
@@ -3,6 +3,11 @@ import { CancellationToken } from '@theia/core';
|
|
|
3
3
|
import { OpenAI } from 'openai';
|
|
4
4
|
import { RunnableToolFunctionWithoutParse } from 'openai/lib/RunnableFunction';
|
|
5
5
|
import { ChatCompletionMessageParam } from 'openai/resources';
|
|
6
|
+
import type { FinalRequestOptions } from 'openai/internal/request-options';
|
|
7
|
+
import type { RunnerOptions } from 'openai/lib/AbstractChatCompletionRunner';
|
|
8
|
+
export declare class MistralFixedOpenAI extends OpenAI {
|
|
9
|
+
protected prepareOptions(options: FinalRequestOptions): Promise<void>;
|
|
10
|
+
}
|
|
6
11
|
export declare const OpenAiModelIdentifier: unique symbol;
|
|
7
12
|
export type DeveloperMessageSettings = 'user' | 'system' | 'developer' | 'mergeWithFollowingUserMessage' | 'skip';
|
|
8
13
|
export declare class OpenAiModel implements LanguageModel {
|
|
@@ -15,7 +20,12 @@ export declare class OpenAiModel implements LanguageModel {
|
|
|
15
20
|
url: string | undefined;
|
|
16
21
|
openAiModelUtils: OpenAiModelUtils;
|
|
17
22
|
developerMessageSettings: DeveloperMessageSettings;
|
|
23
|
+
maxRetries: number;
|
|
18
24
|
protected readonly tokenUsageService?: TokenUsageService | undefined;
|
|
25
|
+
/**
|
|
26
|
+
* The options for the OpenAI runner.
|
|
27
|
+
*/
|
|
28
|
+
protected runnerOptions: RunnerOptions;
|
|
19
29
|
/**
|
|
20
30
|
* @param id the unique id for this language model. It will be used to identify the model in the UI.
|
|
21
31
|
* @param model the model id as it is used by the OpenAI API
|
|
@@ -24,8 +34,9 @@ export declare class OpenAiModel implements LanguageModel {
|
|
|
24
34
|
* @param apiVersion a function that returns the OpenAPI version to use for this model, called on each request
|
|
25
35
|
* @param developerMessageSettings how to handle system messages
|
|
26
36
|
* @param url the OpenAI API compatible endpoint where the model is hosted. If not provided the default OpenAI endpoint will be used.
|
|
37
|
+
* @param maxRetries the maximum number of retry attempts when a request fails
|
|
27
38
|
*/
|
|
28
|
-
constructor(id: string, model: string, enableStreaming: boolean, apiKey: () => string | undefined, apiVersion: () => string | undefined, supportsStructuredOutput: boolean, url: string | undefined, openAiModelUtils: OpenAiModelUtils, developerMessageSettings?: DeveloperMessageSettings, tokenUsageService?: TokenUsageService | undefined);
|
|
39
|
+
constructor(id: string, model: string, enableStreaming: boolean, apiKey: () => string | undefined, apiVersion: () => string | undefined, supportsStructuredOutput: boolean, url: string | undefined, openAiModelUtils: OpenAiModelUtils, developerMessageSettings?: DeveloperMessageSettings, maxRetries?: number, tokenUsageService?: TokenUsageService | undefined);
|
|
29
40
|
protected getSettings(request: LanguageModelRequest): Record<string, unknown>;
|
|
30
41
|
request(request: UserRequest, cancellationToken?: CancellationToken): Promise<LanguageModelResponse>;
|
|
31
42
|
protected handleNonStreamingRequest(openai: OpenAI, request: UserRequest): Promise<LanguageModelTextResponse>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-language-model.d.ts","sourceRoot":"","sources":["../../src/node/openai-language-model.ts"],"names":[],"mappings":"AAgBA,OAAO,EACH,aAAa,EACb,2BAA2B,EAC3B,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,EAEzB,iBAAiB,EACjB,WAAW,
|
|
1
|
+
{"version":3,"file":"openai-language-model.d.ts","sourceRoot":"","sources":["../../src/node/openai-language-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
16
|
// *****************************************************************************
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.OpenAiModelUtils = exports.OpenAiModel = exports.OpenAiModelIdentifier = void 0;
|
|
18
|
+
exports.OpenAiModelUtils = exports.OpenAiModel = exports.OpenAiModelIdentifier = exports.MistralFixedOpenAI = void 0;
|
|
19
19
|
const tslib_1 = require("tslib");
|
|
20
20
|
const ai_core_1 = require("@theia/ai-core");
|
|
21
21
|
const inversify_1 = require("@theia/core/shared/inversify");
|
|
@@ -42,6 +42,7 @@ class MistralFixedOpenAI extends openai_1.OpenAI {
|
|
|
42
42
|
}
|
|
43
43
|
;
|
|
44
44
|
}
|
|
45
|
+
exports.MistralFixedOpenAI = MistralFixedOpenAI;
|
|
45
46
|
exports.OpenAiModelIdentifier = Symbol('OpenAiModelIdentifier');
|
|
46
47
|
class OpenAiModel {
|
|
47
48
|
/**
|
|
@@ -52,8 +53,9 @@ class OpenAiModel {
|
|
|
52
53
|
* @param apiVersion a function that returns the OpenAPI version to use for this model, called on each request
|
|
53
54
|
* @param developerMessageSettings how to handle system messages
|
|
54
55
|
* @param url the OpenAI API compatible endpoint where the model is hosted. If not provided the default OpenAI endpoint will be used.
|
|
56
|
+
* @param maxRetries the maximum number of retry attempts when a request fails
|
|
55
57
|
*/
|
|
56
|
-
constructor(id, model, enableStreaming, apiKey, apiVersion, supportsStructuredOutput, url, openAiModelUtils, developerMessageSettings = 'developer', tokenUsageService) {
|
|
58
|
+
constructor(id, model, enableStreaming, apiKey, apiVersion, supportsStructuredOutput, url, openAiModelUtils, developerMessageSettings = 'developer', maxRetries = 3, tokenUsageService) {
|
|
57
59
|
this.id = id;
|
|
58
60
|
this.model = model;
|
|
59
61
|
this.enableStreaming = enableStreaming;
|
|
@@ -63,7 +65,17 @@ class OpenAiModel {
|
|
|
63
65
|
this.url = url;
|
|
64
66
|
this.openAiModelUtils = openAiModelUtils;
|
|
65
67
|
this.developerMessageSettings = developerMessageSettings;
|
|
68
|
+
this.maxRetries = maxRetries;
|
|
66
69
|
this.tokenUsageService = tokenUsageService;
|
|
70
|
+
/**
|
|
71
|
+
* The options for the OpenAI runner.
|
|
72
|
+
*/
|
|
73
|
+
this.runnerOptions = {
|
|
74
|
+
// The maximum number of chat completions to return in a single request.
|
|
75
|
+
// Each function call counts as a chat completion.
|
|
76
|
+
// To support use cases with many function calls (e.g. @Coder), we set this to a high value.
|
|
77
|
+
maxChatCompletions: 100,
|
|
78
|
+
};
|
|
67
79
|
}
|
|
68
80
|
getSettings(request) {
|
|
69
81
|
var _a;
|
|
@@ -72,9 +84,6 @@ class OpenAiModel {
|
|
|
72
84
|
async request(request, cancellationToken) {
|
|
73
85
|
var _a;
|
|
74
86
|
const settings = this.getSettings(request);
|
|
75
|
-
if (this.id.startsWith(`${common_1.OPENAI_PROVIDER_ID}/`)) {
|
|
76
|
-
settings['stream_options'] = { include_usage: true };
|
|
77
|
-
}
|
|
78
87
|
const openai = this.initializeOpenAi();
|
|
79
88
|
if (((_a = request.response_format) === null || _a === void 0 ? void 0 : _a.type) === 'json_schema' && this.supportsStructuredOutput) {
|
|
80
89
|
return this.handleStructuredOutputRequest(openai, request);
|
|
@@ -82,23 +91,28 @@ class OpenAiModel {
|
|
|
82
91
|
if (this.isNonStreamingModel(this.model) || (typeof settings.stream === 'boolean' && !settings.stream)) {
|
|
83
92
|
return this.handleNonStreamingRequest(openai, request);
|
|
84
93
|
}
|
|
94
|
+
if (this.id.startsWith(`${common_1.OPENAI_PROVIDER_ID}/`)) {
|
|
95
|
+
settings['stream_options'] = { include_usage: true };
|
|
96
|
+
}
|
|
85
97
|
if (cancellationToken === null || cancellationToken === void 0 ? void 0 : cancellationToken.isCancellationRequested) {
|
|
86
98
|
return { text: '' };
|
|
87
99
|
}
|
|
88
100
|
let runner;
|
|
89
101
|
const tools = this.createTools(request);
|
|
90
102
|
if (tools) {
|
|
91
|
-
runner = openai.
|
|
103
|
+
runner = openai.chat.completions.runTools({
|
|
92
104
|
model: this.model,
|
|
93
105
|
messages: this.processMessages(request.messages),
|
|
94
106
|
stream: true,
|
|
95
107
|
tools: tools,
|
|
96
108
|
tool_choice: 'auto',
|
|
97
109
|
...settings
|
|
110
|
+
}, {
|
|
111
|
+
...this.runnerOptions, maxRetries: this.maxRetries
|
|
98
112
|
});
|
|
99
113
|
}
|
|
100
114
|
else {
|
|
101
|
-
runner = openai.
|
|
115
|
+
runner = openai.chat.completions.stream({
|
|
102
116
|
model: this.model,
|
|
103
117
|
messages: this.processMessages(request.messages),
|
|
104
118
|
stream: true,
|
|
@@ -135,7 +149,7 @@ class OpenAiModel {
|
|
|
135
149
|
var _a;
|
|
136
150
|
const settings = this.getSettings(request);
|
|
137
151
|
// TODO implement tool support for structured output (parse() seems to require different tool format)
|
|
138
|
-
const result = await openai.
|
|
152
|
+
const result = await openai.chat.completions.parse({
|
|
139
153
|
model: this.model,
|
|
140
154
|
messages: this.processMessages(request.messages),
|
|
141
155
|
response_format: request.response_format,
|
|
@@ -176,13 +190,13 @@ class OpenAiModel {
|
|
|
176
190
|
throw new Error('Please provide OPENAI_API_KEY in preferences or via environment variable');
|
|
177
191
|
}
|
|
178
192
|
const apiVersion = this.apiVersion();
|
|
193
|
+
// We need to hand over "some" key, even if a custom url is not key protected as otherwise the OpenAI client will throw an error
|
|
194
|
+
const key = apiKey !== null && apiKey !== void 0 ? apiKey : 'no-key';
|
|
179
195
|
if (apiVersion) {
|
|
180
|
-
|
|
181
|
-
return new openai_1.AzureOpenAI({ apiKey: apiKey !== null && apiKey !== void 0 ? apiKey : 'no-key', baseURL: this.url, apiVersion: apiVersion });
|
|
196
|
+
return new openai_1.AzureOpenAI({ apiKey: key, baseURL: this.url, apiVersion: apiVersion });
|
|
182
197
|
}
|
|
183
198
|
else {
|
|
184
|
-
|
|
185
|
-
return new MistralFixedOpenAI({ apiKey: apiKey !== null && apiKey !== void 0 ? apiKey : 'no-key', baseURL: this.url });
|
|
199
|
+
return new MistralFixedOpenAI({ apiKey: key, baseURL: this.url });
|
|
186
200
|
}
|
|
187
201
|
}
|
|
188
202
|
processMessages(messages) {
|
|
@@ -259,6 +273,19 @@ let OpenAiModelUtils = class OpenAiModelUtils {
|
|
|
259
273
|
content: ''
|
|
260
274
|
};
|
|
261
275
|
}
|
|
276
|
+
if (ai_core_1.LanguageModelMessage.isImageMessage(message) && message.actor === 'user') {
|
|
277
|
+
return {
|
|
278
|
+
role: 'user',
|
|
279
|
+
content: [{
|
|
280
|
+
type: 'image_url',
|
|
281
|
+
image_url: {
|
|
282
|
+
url: ai_core_1.ImageContent.isBase64(message.image) ?
|
|
283
|
+
`data:${message.image.mimeType};base64,${message.image.base64data}` :
|
|
284
|
+
message.image.url
|
|
285
|
+
}
|
|
286
|
+
}]
|
|
287
|
+
};
|
|
288
|
+
}
|
|
262
289
|
throw new Error(`Unknown message type:'${JSON.stringify(message)}'`);
|
|
263
290
|
}
|
|
264
291
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-language-model.js","sourceRoot":"","sources":["../../src/node/openai-language-model.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAEhF,
|
|
1
|
+
{"version":3,"file":"openai-language-model.js","sourceRoot":"","sources":["../../src/node/openai-language-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-language-models-manager-impl.d.ts","sourceRoot":"","sources":["../../src/node/openai-language-models-manager-impl.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAE1E,OAAO,EAAe,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAEhF,qBACa,+BAAgC,YAAW,2BAA2B;IAG/E,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAEtD,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAG1C,SAAS,CAAC,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;IAGhE,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAExD,IAAI,MAAM,IAAI,MAAM,GAAG,SAAS,CAE/B;IAED,IAAI,UAAU,IAAI,MAAM,GAAG,SAAS,CAEnC;IAIK,4BAA4B,CAAC,GAAG,iBAAiB,EAAE,sBAAsB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"openai-language-models-manager-impl.d.ts","sourceRoot":"","sources":["../../src/node/openai-language-models-manager-impl.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAE1E,OAAO,EAAe,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAEhF,qBACa,+BAAgC,YAAW,2BAA2B;IAG/E,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAEtD,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAG1C,SAAS,CAAC,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;IAGhE,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAExD,IAAI,MAAM,IAAI,MAAM,GAAG,SAAS,CAE/B;IAED,IAAI,UAAU,IAAI,MAAM,GAAG,SAAS,CAEnC;IAIK,4BAA4B,CAAC,GAAG,iBAAiB,EAAE,sBAAsB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAuDjG,oBAAoB,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAIjD,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAQ3C,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;CAOtD"}
|
|
@@ -64,10 +64,11 @@ let OpenAiLanguageModelsManagerImpl = class OpenAiLanguageModelsManagerImpl {
|
|
|
64
64
|
model.apiVersion = apiVersionProvider;
|
|
65
65
|
model.developerMessageSettings = modelDescription.developerMessageSettings || 'developer';
|
|
66
66
|
model.supportsStructuredOutput = modelDescription.supportsStructuredOutput;
|
|
67
|
+
model.maxRetries = modelDescription.maxRetries;
|
|
67
68
|
}
|
|
68
69
|
else {
|
|
69
70
|
this.languageModelRegistry.addLanguageModels([
|
|
70
|
-
new openai_language_model_1.OpenAiModel(modelDescription.id, modelDescription.model, modelDescription.enableStreaming, apiKeyProvider, apiVersionProvider, modelDescription.supportsStructuredOutput, modelDescription.url, this.openAiModelUtils, modelDescription.developerMessageSettings, this.tokenUsageService)
|
|
71
|
+
new openai_language_model_1.OpenAiModel(modelDescription.id, modelDescription.model, modelDescription.enableStreaming, apiKeyProvider, apiVersionProvider, modelDescription.supportsStructuredOutput, modelDescription.url, this.openAiModelUtils, modelDescription.developerMessageSettings, modelDescription.maxRetries, this.tokenUsageService)
|
|
71
72
|
]);
|
|
72
73
|
}
|
|
73
74
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-language-models-manager-impl.js","sourceRoot":"","sources":["../../src/node/openai-language-models-manager-impl.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAEhF,4CAA0E;AAC1E,4DAAkE;AAClE,mEAAwE;AAIjE,IAAM,+BAA+B,GAArC,MAAM,+BAA+B;IAcxC,IAAI,MAAM;;QACN,OAAO,MAAA,IAAI,CAAC,OAAO,mCAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IACtD,CAAC;IAED,IAAI,UAAU;;QACV,OAAO,MAAA,IAAI,CAAC,WAAW,mCAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;IAC9D,CAAC;IAED,6EAA6E;IAC7E,6CAA6C;IAC7C,KAAK,CAAC,4BAA4B,CAAC,GAAG,iBAA2C;QAC7E,KAAK,MAAM,gBAAgB,IAAI,iBAAiB,EAAE,CAAC;YAC/C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;YACrF,MAAM,cAAc,GAAG,GAAG,EAAE;gBACxB,IAAI,gBAAgB,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;oBACnC,OAAO,IAAI,CAAC,MAAM,CAAC;gBACvB,CAAC;gBACD,IAAI,gBAAgB,CAAC,MAAM,EAAE,CAAC;oBAC1B,OAAO,gBAAgB,CAAC,MAAM,CAAC;gBACnC,CAAC;gBACD,OAAO,SAAS,CAAC;YACrB,CAAC,CAAC;YACF,MAAM,kBAAkB,GAAG,GAAG,EAAE;gBAC5B,IAAI,gBAAgB,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;oBACvC,OAAO,IAAI,CAAC,UAAU,CAAC;gBAC3B,CAAC;gBACD,IAAI,gBAAgB,CAAC,UAAU,EAAE,CAAC;oBAC9B,OAAO,gBAAgB,CAAC,UAAU,CAAC;gBACvC,CAAC;gBACD,OAAO,SAAS,CAAC;YACrB,CAAC,CAAC;YAEF,IAAI,KAAK,EAAE,CAAC;gBACR,IAAI,CAAC,CAAC,KAAK,YAAY,mCAAW,CAAC,EAAE,CAAC;oBAClC,OAAO,CAAC,IAAI,CAAC,iBAAiB,gBAAgB,CAAC,EAAE,yBAAyB,CAAC,CAAC;oBAC5E,SAAS;gBACb,CAAC;gBACD,KAAK,CAAC,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC;gBACrC,KAAK,CAAC,eAAe,GAAG,gBAAgB,CAAC,eAAe,CAAC;gBACzD,KAAK,CAAC,GAAG,GAAG,gBAAgB,CAAC,GAAG,CAAC;gBACjC,KAAK,CAAC,MAAM,GAAG,cAAc,CAAC;gBAC9B,KAAK,CAAC,UAAU,GAAG,kBAAkB,CAAC;gBACtC,KAAK,CAAC,wBAAwB,GAAG,gBAAgB,CAAC,wBAAwB,IAAI,WAAW,CAAC;gBAC1F,KAAK,CAAC,wBAAwB,GAAG,gBAAgB,CAAC,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"openai-language-models-manager-impl.js","sourceRoot":"","sources":["../../src/node/openai-language-models-manager-impl.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAEhF,4CAA0E;AAC1E,4DAAkE;AAClE,mEAAwE;AAIjE,IAAM,+BAA+B,GAArC,MAAM,+BAA+B;IAcxC,IAAI,MAAM;;QACN,OAAO,MAAA,IAAI,CAAC,OAAO,mCAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IACtD,CAAC;IAED,IAAI,UAAU;;QACV,OAAO,MAAA,IAAI,CAAC,WAAW,mCAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;IAC9D,CAAC;IAED,6EAA6E;IAC7E,6CAA6C;IAC7C,KAAK,CAAC,4BAA4B,CAAC,GAAG,iBAA2C;QAC7E,KAAK,MAAM,gBAAgB,IAAI,iBAAiB,EAAE,CAAC;YAC/C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;YACrF,MAAM,cAAc,GAAG,GAAG,EAAE;gBACxB,IAAI,gBAAgB,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;oBACnC,OAAO,IAAI,CAAC,MAAM,CAAC;gBACvB,CAAC;gBACD,IAAI,gBAAgB,CAAC,MAAM,EAAE,CAAC;oBAC1B,OAAO,gBAAgB,CAAC,MAAM,CAAC;gBACnC,CAAC;gBACD,OAAO,SAAS,CAAC;YACrB,CAAC,CAAC;YACF,MAAM,kBAAkB,GAAG,GAAG,EAAE;gBAC5B,IAAI,gBAAgB,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;oBACvC,OAAO,IAAI,CAAC,UAAU,CAAC;gBAC3B,CAAC;gBACD,IAAI,gBAAgB,CAAC,UAAU,EAAE,CAAC;oBAC9B,OAAO,gBAAgB,CAAC,UAAU,CAAC;gBACvC,CAAC;gBACD,OAAO,SAAS,CAAC;YACrB,CAAC,CAAC;YAEF,IAAI,KAAK,EAAE,CAAC;gBACR,IAAI,CAAC,CAAC,KAAK,YAAY,mCAAW,CAAC,EAAE,CAAC;oBAClC,OAAO,CAAC,IAAI,CAAC,iBAAiB,gBAAgB,CAAC,EAAE,yBAAyB,CAAC,CAAC;oBAC5E,SAAS;gBACb,CAAC;gBACD,KAAK,CAAC,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC;gBACrC,KAAK,CAAC,eAAe,GAAG,gBAAgB,CAAC,eAAe,CAAC;gBACzD,KAAK,CAAC,GAAG,GAAG,gBAAgB,CAAC,GAAG,CAAC;gBACjC,KAAK,CAAC,MAAM,GAAG,cAAc,CAAC;gBAC9B,KAAK,CAAC,UAAU,GAAG,kBAAkB,CAAC;gBACtC,KAAK,CAAC,wBAAwB,GAAG,gBAAgB,CAAC,wBAAwB,IAAI,WAAW,CAAC;gBAC1F,KAAK,CAAC,wBAAwB,GAAG,gBAAgB,CAAC,wBAAwB,CAAC;gBAC3E,KAAK,CAAC,UAAU,GAAG,gBAAgB,CAAC,UAAU,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC;oBACzC,IAAI,mCAAW,CACX,gBAAgB,CAAC,EAAE,EACnB,gBAAgB,CAAC,KAAK,EACtB,gBAAgB,CAAC,eAAe,EAChC,cAAc,EACd,kBAAkB,EAClB,gBAAgB,CAAC,wBAAwB,EACzC,gBAAgB,CAAC,GAAG,EACpB,IAAI,CAAC,gBAAgB,EACrB,gBAAgB,CAAC,wBAAwB,EACzC,gBAAgB,CAAC,UAAU,EAC3B,IAAI,CAAC,iBAAiB,CACzB;iBACJ,CAAC,CAAC;YACP,CAAC;QACL,CAAC;IACL,CAAC;IAED,oBAAoB,CAAC,GAAG,QAAkB;QACtC,IAAI,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAC9D,CAAC;IAED,SAAS,CAAC,MAA0B;QAChC,IAAI,MAAM,EAAE,CAAC;YACT,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QAC1B,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QAC7B,CAAC;IACL,CAAC;IAED,aAAa,CAAC,UAA8B;QACxC,IAAI,UAAU,EAAE,CAAC;YACb,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAClC,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QACjC,CAAC;IACL,CAAC;CACJ,CAAA;AAlGY,0EAA+B;AAGrB;IADlB,IAAA,kBAAM,EAAC,wCAAgB,CAAC;sCACY,wCAAgB;yEAAC;AAMnC;IADlB,IAAA,kBAAM,EAAC,+BAAqB,CAAC;;8EACkC;AAG7C;IADlB,IAAA,kBAAM,EAAC,2BAAiB,CAAC;;0EAC8B;0CAZ/C,+BAA+B;IAD3C,IAAA,sBAAU,GAAE;GACA,+BAA+B,CAkG3C"}
|
package/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/ai-openai",
|
|
3
|
-
"version": "1.63.0-next.
|
|
3
|
+
"version": "1.63.0-next.52+176018e53",
|
|
4
4
|
"description": "Theia - OpenAI Integration",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@theia/ai-core": "1.63.0-next.
|
|
7
|
-
"@theia/core": "1.63.0-next.
|
|
8
|
-
"@theia/filesystem": "1.63.0-next.
|
|
9
|
-
"@theia/workspace": "1.63.0-next.
|
|
6
|
+
"@theia/ai-core": "1.63.0-next.52+176018e53",
|
|
7
|
+
"@theia/core": "1.63.0-next.52+176018e53",
|
|
8
|
+
"@theia/filesystem": "1.63.0-next.52+176018e53",
|
|
9
|
+
"@theia/workspace": "1.63.0-next.52+176018e53",
|
|
10
10
|
"minimatch": "^5.1.0",
|
|
11
|
-
"openai": "^
|
|
11
|
+
"openai": "^5.0.1",
|
|
12
12
|
"tslib": "^2.6.2"
|
|
13
13
|
},
|
|
14
14
|
"publishConfig": {
|
|
@@ -50,5 +50,5 @@
|
|
|
50
50
|
"nyc": {
|
|
51
51
|
"extends": "../../configs/nyc.json"
|
|
52
52
|
},
|
|
53
|
-
"gitHead": "
|
|
53
|
+
"gitHead": "176018e53e62cafec9b25b23ac9f0b4826b6d0f7"
|
|
54
54
|
}
|
|
@@ -18,6 +18,7 @@ import { FrontendApplicationContribution, PreferenceService } from '@theia/core/
|
|
|
18
18
|
import { inject, injectable } from '@theia/core/shared/inversify';
|
|
19
19
|
import { OpenAiLanguageModelsManager, OpenAiModelDescription, OPENAI_PROVIDER_ID } from '../common';
|
|
20
20
|
import { API_KEY_PREF, CUSTOM_ENDPOINTS_PREF, MODELS_PREF } from './openai-preferences';
|
|
21
|
+
import { AICorePreferences, PREFERENCE_NAME_MAX_RETRIES } from '@theia/ai-core/lib/browser/ai-core-preferences';
|
|
21
22
|
|
|
22
23
|
@injectable()
|
|
23
24
|
export class OpenAiFrontendApplicationContribution implements FrontendApplicationContribution {
|
|
@@ -28,6 +29,9 @@ export class OpenAiFrontendApplicationContribution implements FrontendApplicatio
|
|
|
28
29
|
@inject(OpenAiLanguageModelsManager)
|
|
29
30
|
protected manager: OpenAiLanguageModelsManager;
|
|
30
31
|
|
|
32
|
+
@inject(AICorePreferences)
|
|
33
|
+
protected aiCorePreferences: AICorePreferences;
|
|
34
|
+
|
|
31
35
|
protected prevModels: string[] = [];
|
|
32
36
|
protected prevCustomModels: Partial<OpenAiModelDescription>[] = [];
|
|
33
37
|
|
|
@@ -53,6 +57,12 @@ export class OpenAiFrontendApplicationContribution implements FrontendApplicatio
|
|
|
53
57
|
this.handleCustomModelChanges(event.newValue as Partial<OpenAiModelDescription>[]);
|
|
54
58
|
}
|
|
55
59
|
});
|
|
60
|
+
|
|
61
|
+
this.aiCorePreferences.onPreferenceChanged(event => {
|
|
62
|
+
if (event.preferenceName === PREFERENCE_NAME_MAX_RETRIES) {
|
|
63
|
+
this.updateAllModelsWithNewRetries();
|
|
64
|
+
}
|
|
65
|
+
});
|
|
56
66
|
});
|
|
57
67
|
}
|
|
58
68
|
|
|
@@ -89,8 +99,17 @@ export class OpenAiFrontendApplicationContribution implements FrontendApplicatio
|
|
|
89
99
|
this.prevCustomModels = [...newCustomModels];
|
|
90
100
|
}
|
|
91
101
|
|
|
102
|
+
protected updateAllModelsWithNewRetries(): void {
|
|
103
|
+
const models = this.preferenceService.get<string[]>(MODELS_PREF, []);
|
|
104
|
+
this.manager.createOrUpdateLanguageModels(...models.map(modelId => this.createOpenAIModelDescription(modelId)));
|
|
105
|
+
|
|
106
|
+
const customModels = this.preferenceService.get<Partial<OpenAiModelDescription>[]>(CUSTOM_ENDPOINTS_PREF, []);
|
|
107
|
+
this.manager.createOrUpdateLanguageModels(...this.createCustomModelDescriptionsFromPreferences(customModels));
|
|
108
|
+
}
|
|
109
|
+
|
|
92
110
|
protected createOpenAIModelDescription(modelId: string): OpenAiModelDescription {
|
|
93
111
|
const id = `${OPENAI_PROVIDER_ID}/${modelId}`;
|
|
112
|
+
const maxRetries = this.aiCorePreferences.get(PREFERENCE_NAME_MAX_RETRIES) ?? 3;
|
|
94
113
|
return {
|
|
95
114
|
id: id,
|
|
96
115
|
model: modelId,
|
|
@@ -98,13 +117,15 @@ export class OpenAiFrontendApplicationContribution implements FrontendApplicatio
|
|
|
98
117
|
apiVersion: true,
|
|
99
118
|
developerMessageSettings: openAIModelsNotSupportingDeveloperMessages.includes(modelId) ? 'user' : 'developer',
|
|
100
119
|
enableStreaming: !openAIModelsWithDisabledStreaming.includes(modelId),
|
|
101
|
-
supportsStructuredOutput: !openAIModelsWithoutStructuredOutput.includes(modelId)
|
|
120
|
+
supportsStructuredOutput: !openAIModelsWithoutStructuredOutput.includes(modelId),
|
|
121
|
+
maxRetries: maxRetries
|
|
102
122
|
};
|
|
103
123
|
}
|
|
104
124
|
|
|
105
125
|
protected createCustomModelDescriptionsFromPreferences(
|
|
106
126
|
preferences: Partial<OpenAiModelDescription>[]
|
|
107
127
|
): OpenAiModelDescription[] {
|
|
128
|
+
const maxRetries = this.aiCorePreferences.get(PREFERENCE_NAME_MAX_RETRIES) ?? 3;
|
|
108
129
|
return preferences.reduce((acc, pref) => {
|
|
109
130
|
if (!pref.model || !pref.url || typeof pref.model !== 'string' || typeof pref.url !== 'string') {
|
|
110
131
|
return acc;
|
|
@@ -120,7 +141,8 @@ export class OpenAiFrontendApplicationContribution implements FrontendApplicatio
|
|
|
120
141
|
apiVersion: typeof pref.apiVersion === 'string' || pref.apiVersion === true ? pref.apiVersion : undefined,
|
|
121
142
|
developerMessageSettings: pref.developerMessageSettings ?? 'developer',
|
|
122
143
|
supportsStructuredOutput: pref.supportsStructuredOutput ?? true,
|
|
123
|
-
enableStreaming: pref.enableStreaming ?? true
|
|
144
|
+
enableStreaming: pref.enableStreaming ?? true,
|
|
145
|
+
maxRetries: pref.maxRetries ?? maxRetries
|
|
124
146
|
}
|
|
125
147
|
];
|
|
126
148
|
}, []);
|
|
@@ -54,6 +54,10 @@ export interface OpenAiModelDescription {
|
|
|
54
54
|
* Flag to configure whether the OpenAPI model supports structured output. Default is `true`.
|
|
55
55
|
*/
|
|
56
56
|
supportsStructuredOutput: boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Maximum number of retry attempts when a request fails. Default is 3.
|
|
59
|
+
*/
|
|
60
|
+
maxRetries: number;
|
|
57
61
|
}
|
|
58
62
|
export interface OpenAiLanguageModelsManager {
|
|
59
63
|
apiKey: string | undefined;
|
|
@@ -23,7 +23,8 @@ import {
|
|
|
23
23
|
LanguageModelTextResponse,
|
|
24
24
|
TextMessage,
|
|
25
25
|
TokenUsageService,
|
|
26
|
-
UserRequest
|
|
26
|
+
UserRequest,
|
|
27
|
+
ImageContent
|
|
27
28
|
} from '@theia/ai-core';
|
|
28
29
|
import { CancellationToken } from '@theia/core';
|
|
29
30
|
import { injectable } from '@theia/core/shared/inversify';
|
|
@@ -33,9 +34,10 @@ import { RunnableToolFunctionWithoutParse } from 'openai/lib/RunnableFunction';
|
|
|
33
34
|
import { ChatCompletionMessageParam } from 'openai/resources';
|
|
34
35
|
import { StreamingAsyncIterator } from './openai-streaming-iterator';
|
|
35
36
|
import { OPENAI_PROVIDER_ID } from '../common';
|
|
36
|
-
import { FinalRequestOptions } from 'openai/
|
|
37
|
+
import type { FinalRequestOptions } from 'openai/internal/request-options';
|
|
38
|
+
import type { RunnerOptions } from 'openai/lib/AbstractChatCompletionRunner';
|
|
37
39
|
|
|
38
|
-
class MistralFixedOpenAI extends OpenAI {
|
|
40
|
+
export class MistralFixedOpenAI extends OpenAI {
|
|
39
41
|
protected override async prepareOptions(options: FinalRequestOptions): Promise<void> {
|
|
40
42
|
(options.body as { messages: Array<ChatCompletionMessageParam> }).messages.forEach(m => {
|
|
41
43
|
if (m.role === 'assistant' && m.tool_calls) {
|
|
@@ -61,6 +63,16 @@ export type DeveloperMessageSettings = 'user' | 'system' | 'developer' | 'mergeW
|
|
|
61
63
|
|
|
62
64
|
export class OpenAiModel implements LanguageModel {
|
|
63
65
|
|
|
66
|
+
/**
|
|
67
|
+
* The options for the OpenAI runner.
|
|
68
|
+
*/
|
|
69
|
+
protected runnerOptions: RunnerOptions = {
|
|
70
|
+
// The maximum number of chat completions to return in a single request.
|
|
71
|
+
// Each function call counts as a chat completion.
|
|
72
|
+
// To support use cases with many function calls (e.g. @Coder), we set this to a high value.
|
|
73
|
+
maxChatCompletions: 100,
|
|
74
|
+
};
|
|
75
|
+
|
|
64
76
|
/**
|
|
65
77
|
* @param id the unique id for this language model. It will be used to identify the model in the UI.
|
|
66
78
|
* @param model the model id as it is used by the OpenAI API
|
|
@@ -69,6 +81,7 @@ export class OpenAiModel implements LanguageModel {
|
|
|
69
81
|
* @param apiVersion a function that returns the OpenAPI version to use for this model, called on each request
|
|
70
82
|
* @param developerMessageSettings how to handle system messages
|
|
71
83
|
* @param url the OpenAI API compatible endpoint where the model is hosted. If not provided the default OpenAI endpoint will be used.
|
|
84
|
+
* @param maxRetries the maximum number of retry attempts when a request fails
|
|
72
85
|
*/
|
|
73
86
|
constructor(
|
|
74
87
|
public readonly id: string,
|
|
@@ -80,6 +93,7 @@ export class OpenAiModel implements LanguageModel {
|
|
|
80
93
|
public url: string | undefined,
|
|
81
94
|
public openAiModelUtils: OpenAiModelUtils,
|
|
82
95
|
public developerMessageSettings: DeveloperMessageSettings = 'developer',
|
|
96
|
+
public maxRetries: number = 3,
|
|
83
97
|
protected readonly tokenUsageService?: TokenUsageService
|
|
84
98
|
) { }
|
|
85
99
|
|
|
@@ -89,9 +103,6 @@ export class OpenAiModel implements LanguageModel {
|
|
|
89
103
|
|
|
90
104
|
async request(request: UserRequest, cancellationToken?: CancellationToken): Promise<LanguageModelResponse> {
|
|
91
105
|
const settings = this.getSettings(request);
|
|
92
|
-
if (this.id.startsWith(`${OPENAI_PROVIDER_ID}/`)) {
|
|
93
|
-
settings['stream_options'] = { include_usage: true };
|
|
94
|
-
}
|
|
95
106
|
const openai = this.initializeOpenAi();
|
|
96
107
|
|
|
97
108
|
if (request.response_format?.type === 'json_schema' && this.supportsStructuredOutput) {
|
|
@@ -102,22 +113,29 @@ export class OpenAiModel implements LanguageModel {
|
|
|
102
113
|
return this.handleNonStreamingRequest(openai, request);
|
|
103
114
|
}
|
|
104
115
|
|
|
116
|
+
if (this.id.startsWith(`${OPENAI_PROVIDER_ID}/`)) {
|
|
117
|
+
settings['stream_options'] = { include_usage: true };
|
|
118
|
+
}
|
|
119
|
+
|
|
105
120
|
if (cancellationToken?.isCancellationRequested) {
|
|
106
121
|
return { text: '' };
|
|
107
122
|
}
|
|
108
123
|
let runner: ChatCompletionStream;
|
|
109
124
|
const tools = this.createTools(request);
|
|
125
|
+
|
|
110
126
|
if (tools) {
|
|
111
|
-
runner = openai.
|
|
127
|
+
runner = openai.chat.completions.runTools({
|
|
112
128
|
model: this.model,
|
|
113
129
|
messages: this.processMessages(request.messages),
|
|
114
130
|
stream: true,
|
|
115
131
|
tools: tools,
|
|
116
132
|
tool_choice: 'auto',
|
|
117
133
|
...settings
|
|
134
|
+
}, {
|
|
135
|
+
...this.runnerOptions, maxRetries: this.maxRetries
|
|
118
136
|
});
|
|
119
137
|
} else {
|
|
120
|
-
runner = openai.
|
|
138
|
+
runner = openai.chat.completions.stream({
|
|
121
139
|
model: this.model,
|
|
122
140
|
messages: this.processMessages(request.messages),
|
|
123
141
|
stream: true,
|
|
@@ -163,7 +181,7 @@ export class OpenAiModel implements LanguageModel {
|
|
|
163
181
|
protected async handleStructuredOutputRequest(openai: OpenAI, request: UserRequest): Promise<LanguageModelParsedResponse> {
|
|
164
182
|
const settings = this.getSettings(request);
|
|
165
183
|
// TODO implement tool support for structured output (parse() seems to require different tool format)
|
|
166
|
-
const result = await openai.
|
|
184
|
+
const result = await openai.chat.completions.parse({
|
|
167
185
|
model: this.model,
|
|
168
186
|
messages: this.processMessages(request.messages),
|
|
169
187
|
response_format: request.response_format,
|
|
@@ -211,12 +229,13 @@ export class OpenAiModel implements LanguageModel {
|
|
|
211
229
|
}
|
|
212
230
|
|
|
213
231
|
const apiVersion = this.apiVersion();
|
|
232
|
+
// We need to hand over "some" key, even if a custom url is not key protected as otherwise the OpenAI client will throw an error
|
|
233
|
+
const key = apiKey ?? 'no-key';
|
|
234
|
+
|
|
214
235
|
if (apiVersion) {
|
|
215
|
-
|
|
216
|
-
return new AzureOpenAI({ apiKey: apiKey ?? 'no-key', baseURL: this.url, apiVersion: apiVersion });
|
|
236
|
+
return new AzureOpenAI({ apiKey: key, baseURL: this.url, apiVersion: apiVersion });
|
|
217
237
|
} else {
|
|
218
|
-
|
|
219
|
-
return new MistralFixedOpenAI({ apiKey: apiKey ?? 'no-key', baseURL: this.url });
|
|
238
|
+
return new MistralFixedOpenAI({ apiKey: key, baseURL: this.url });
|
|
220
239
|
}
|
|
221
240
|
}
|
|
222
241
|
|
|
@@ -303,6 +322,20 @@ export class OpenAiModelUtils {
|
|
|
303
322
|
content: ''
|
|
304
323
|
};
|
|
305
324
|
}
|
|
325
|
+
if (LanguageModelMessage.isImageMessage(message) && message.actor === 'user') {
|
|
326
|
+
return {
|
|
327
|
+
role: 'user',
|
|
328
|
+
content: [{
|
|
329
|
+
type: 'image_url',
|
|
330
|
+
image_url: {
|
|
331
|
+
url:
|
|
332
|
+
ImageContent.isBase64(message.image) ?
|
|
333
|
+
`data:${message.image.mimeType};base64,${message.image.base64data}` :
|
|
334
|
+
message.image.url
|
|
335
|
+
}
|
|
336
|
+
}]
|
|
337
|
+
};
|
|
338
|
+
}
|
|
306
339
|
throw new Error(`Unknown message type:'${JSON.stringify(message)}'`);
|
|
307
340
|
}
|
|
308
341
|
|
|
@@ -78,6 +78,7 @@ export class OpenAiLanguageModelsManagerImpl implements OpenAiLanguageModelsMana
|
|
|
78
78
|
model.apiVersion = apiVersionProvider;
|
|
79
79
|
model.developerMessageSettings = modelDescription.developerMessageSettings || 'developer';
|
|
80
80
|
model.supportsStructuredOutput = modelDescription.supportsStructuredOutput;
|
|
81
|
+
model.maxRetries = modelDescription.maxRetries;
|
|
81
82
|
} else {
|
|
82
83
|
this.languageModelRegistry.addLanguageModels([
|
|
83
84
|
new OpenAiModel(
|
|
@@ -90,6 +91,7 @@ export class OpenAiLanguageModelsManagerImpl implements OpenAiLanguageModelsMana
|
|
|
90
91
|
modelDescription.url,
|
|
91
92
|
this.openAiModelUtils,
|
|
92
93
|
modelDescription.developerMessageSettings,
|
|
94
|
+
modelDescription.maxRetries,
|
|
93
95
|
this.tokenUsageService
|
|
94
96
|
)
|
|
95
97
|
]);
|