@theia/ai-openai 1.66.0-next.73 → 1.66.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/lib/browser/openai-frontend-application-contribution.d.ts.map +1 -1
  2. package/lib/browser/openai-frontend-application-contribution.js +11 -4
  3. package/lib/browser/openai-frontend-application-contribution.js.map +1 -1
  4. package/lib/common/openai-language-models-manager.d.ts +6 -0
  5. package/lib/common/openai-language-models-manager.d.ts.map +1 -1
  6. package/lib/common/openai-preferences.d.ts +1 -0
  7. package/lib/common/openai-preferences.d.ts.map +1 -1
  8. package/lib/common/openai-preferences.js +17 -1
  9. package/lib/common/openai-preferences.js.map +1 -1
  10. package/lib/node/openai-backend-module.d.ts.map +1 -1
  11. package/lib/node/openai-backend-module.js +2 -0
  12. package/lib/node/openai-backend-module.js.map +1 -1
  13. package/lib/node/openai-language-model.d.ts +8 -2
  14. package/lib/node/openai-language-model.d.ts.map +1 -1
  15. package/lib/node/openai-language-model.js +43 -42
  16. package/lib/node/openai-language-model.js.map +1 -1
  17. package/lib/node/openai-language-models-manager-impl.d.ts +2 -0
  18. package/lib/node/openai-language-models-manager-impl.d.ts.map +1 -1
  19. package/lib/node/openai-language-models-manager-impl.js +9 -2
  20. package/lib/node/openai-language-models-manager-impl.js.map +1 -1
  21. package/lib/node/openai-model-utils.spec.d.ts +1 -3
  22. package/lib/node/openai-model-utils.spec.d.ts.map +1 -1
  23. package/lib/node/openai-model-utils.spec.js +250 -23
  24. package/lib/node/openai-model-utils.spec.js.map +1 -1
  25. package/lib/node/openai-request-api-context.d.ts +4 -0
  26. package/lib/node/openai-request-api-context.d.ts.map +1 -0
  27. package/lib/node/openai-request-api-context.js +18 -0
  28. package/lib/node/openai-request-api-context.js.map +1 -0
  29. package/lib/node/openai-response-api-utils.d.ts +42 -0
  30. package/lib/node/openai-response-api-utils.d.ts.map +1 -0
  31. package/lib/node/openai-response-api-utils.js +677 -0
  32. package/lib/node/openai-response-api-utils.js.map +1 -0
  33. package/package.json +7 -7
  34. package/src/browser/openai-frontend-application-contribution.ts +10 -4
  35. package/src/common/openai-language-models-manager.ts +6 -0
  36. package/src/common/openai-preferences.ts +18 -0
  37. package/src/node/openai-backend-module.ts +2 -0
  38. package/src/node/openai-language-model.ts +59 -42
  39. package/src/node/openai-language-models-manager-impl.ts +8 -1
  40. package/src/node/openai-model-utils.spec.ts +257 -22
  41. package/src/node/openai-request-api-context.ts +23 -0
  42. package/src/node/openai-response-api-utils.ts +801 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-response-api-utils.js","sourceRoot":"","sources":["../../src/node/openai-response-api-utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@theia/ai-openai",
3
- "version": "1.66.0-next.73+6d82794da",
3
+ "version": "1.66.0",
4
4
  "description": "Theia - OpenAI Integration",
5
5
  "dependencies": {
6
- "@theia/ai-core": "1.66.0-next.73+6d82794da",
7
- "@theia/core": "1.66.0-next.73+6d82794da",
8
- "@theia/filesystem": "1.66.0-next.73+6d82794da",
9
- "@theia/workspace": "1.66.0-next.73+6d82794da",
6
+ "@theia/ai-core": "1.66.0",
7
+ "@theia/core": "1.66.0",
8
+ "@theia/filesystem": "1.66.0",
9
+ "@theia/workspace": "1.66.0",
10
10
  "openai": "^6.3.0",
11
11
  "tslib": "^2.6.2",
12
12
  "undici": "^7.16.0"
@@ -45,10 +45,10 @@
45
45
  "watch": "theiaext watch"
46
46
  },
47
47
  "devDependencies": {
48
- "@theia/ext-scripts": "1.65.0"
48
+ "@theia/ext-scripts": "1.66.0"
49
49
  },
50
50
  "nyc": {
51
51
  "extends": "../../configs/nyc.json"
52
52
  },
53
- "gitHead": "6d82794da24e16f75d70eaac3a4178a29e822e82"
53
+ "gitHead": "dc03613006449e67b722a8c2e75c9a62585d5da8"
54
54
  }
@@ -17,7 +17,7 @@
17
17
  import { FrontendApplicationContribution } from '@theia/core/lib/browser';
18
18
  import { inject, injectable } from '@theia/core/shared/inversify';
19
19
  import { OpenAiLanguageModelsManager, OpenAiModelDescription, OPENAI_PROVIDER_ID } from '../common';
20
- import { API_KEY_PREF, CUSTOM_ENDPOINTS_PREF, MODELS_PREF } from '../common/openai-preferences';
20
+ import { API_KEY_PREF, CUSTOM_ENDPOINTS_PREF, MODELS_PREF, USE_RESPONSE_API_PREF } from '../common/openai-preferences';
21
21
  import { AICorePreferences, PREFERENCE_NAME_MAX_RETRIES } from '@theia/ai-core/lib/common/ai-core-preferences';
22
22
  import { PreferenceService } from '@theia/core';
23
23
 
@@ -60,6 +60,8 @@ export class OpenAiFrontendApplicationContribution implements FrontendApplicatio
60
60
  this.handleModelChanges(event.newValue as string[]);
61
61
  } else if (event.preferenceName === CUSTOM_ENDPOINTS_PREF) {
62
62
  this.handleCustomModelChanges(event.newValue as Partial<OpenAiModelDescription>[]);
63
+ } else if (event.preferenceName === USE_RESPONSE_API_PREF) {
64
+ this.updateAllModels();
63
65
  } else if (event.preferenceName === 'http.proxy') {
64
66
  this.manager.setProxyUrl(event.newValue as string);
65
67
  }
@@ -100,7 +102,8 @@ export class OpenAiFrontendApplicationContribution implements FrontendApplicatio
100
102
  model.apiVersion === newModel.apiVersion &&
101
103
  model.developerMessageSettings === newModel.developerMessageSettings &&
102
104
  model.supportsStructuredOutput === newModel.supportsStructuredOutput &&
103
- model.enableStreaming === newModel.enableStreaming));
105
+ model.enableStreaming === newModel.enableStreaming &&
106
+ model.useResponseApi === newModel.useResponseApi));
104
107
 
105
108
  this.manager.removeLanguageModels(...modelsToRemove.map(model => model.id));
106
109
  this.manager.createOrUpdateLanguageModels(...modelsToAddOrUpdate);
@@ -118,6 +121,7 @@ export class OpenAiFrontendApplicationContribution implements FrontendApplicatio
118
121
  protected createOpenAIModelDescription(modelId: string): OpenAiModelDescription {
119
122
  const id = `${OPENAI_PROVIDER_ID}/${modelId}`;
120
123
  const maxRetries = this.aiCorePreferences.get(PREFERENCE_NAME_MAX_RETRIES) ?? 3;
124
+ const useResponseApi = this.preferenceService.get<boolean>(USE_RESPONSE_API_PREF, false);
121
125
  return {
122
126
  id: id,
123
127
  model: modelId,
@@ -126,7 +130,8 @@ export class OpenAiFrontendApplicationContribution implements FrontendApplicatio
126
130
  developerMessageSettings: openAIModelsNotSupportingDeveloperMessages.includes(modelId) ? 'user' : 'developer',
127
131
  enableStreaming: !openAIModelsWithDisabledStreaming.includes(modelId),
128
132
  supportsStructuredOutput: !openAIModelsWithoutStructuredOutput.includes(modelId),
129
- maxRetries: maxRetries
133
+ maxRetries: maxRetries,
134
+ useResponseApi: useResponseApi
130
135
  };
131
136
  }
132
137
 
@@ -151,7 +156,8 @@ export class OpenAiFrontendApplicationContribution implements FrontendApplicatio
151
156
  developerMessageSettings: pref.developerMessageSettings ?? 'developer',
152
157
  supportsStructuredOutput: pref.supportsStructuredOutput ?? true,
153
158
  enableStreaming: pref.enableStreaming ?? true,
154
- maxRetries: pref.maxRetries ?? maxRetries
159
+ maxRetries: pref.maxRetries ?? maxRetries,
160
+ useResponseApi: pref.useResponseApi ?? false
155
161
  }
156
162
  ];
157
163
  }, []);
@@ -62,6 +62,12 @@ export interface OpenAiModelDescription {
62
62
  * Maximum number of retry attempts when a request fails. Default is 3.
63
63
  */
64
64
  maxRetries: number;
65
+ /**
66
+ * Flag to configure whether to use the newer OpenAI Response API instead of the Chat Completion API.
67
+ * For official OpenAI models, this defaults to `true`. For custom providers, users must explicitly enable it.
68
+ * Default is `false` for custom models.
69
+ */
70
+ useResponseApi?: boolean;
65
71
  }
66
72
  export interface OpenAiLanguageModelsManager {
67
73
  apiKey: string | undefined;
@@ -19,6 +19,7 @@ import { nls, PreferenceSchema } from '@theia/core';
19
19
 
20
20
  export const API_KEY_PREF = 'ai-features.openAiOfficial.openAiApiKey';
21
21
  export const MODELS_PREF = 'ai-features.openAiOfficial.officialOpenAiModels';
22
+ export const USE_RESPONSE_API_PREF = 'ai-features.openAiOfficial.useResponseApi';
22
23
  export const CUSTOM_ENDPOINTS_PREF = 'ai-features.openAiCustom.customOpenAiModels';
23
24
 
24
25
  export const OpenAiPreferencesSchema: PreferenceSchema = {
@@ -52,6 +53,15 @@ on the machine running Theia. Use the environment variable `OPENAI_API_KEY` to s
52
53
  type: 'string'
53
54
  }
54
55
  },
56
+ [USE_RESPONSE_API_PREF]: {
57
+ type: 'boolean',
58
+ default: false,
59
+ title: AI_CORE_PREFERENCES_TITLE,
60
+ markdownDescription: nls.localize('theia/ai/openai/useResponseApi/mdDescription',
61
+ 'Use the newer OpenAI Response API instead of the Chat Completion API for official OpenAI models. \
62
+ \
63
+ This setting only applies to official OpenAI models - custom providers must configure this individually.')
64
+ },
55
65
  [CUSTOM_ENDPOINTS_PREF]: {
56
66
  type: 'array',
57
67
  title: AI_CORE_PREFERENCES_TITLE,
@@ -77,6 +87,8 @@ on the machine running Theia. Use the environment variable `OPENAI_API_KEY` to s
77
87
  \n\
78
88
  - specify `enableStreaming: false` to indicate that streaming shall not be used.\
79
89
  \n\
90
+ - specify `useResponseApi: true` to use the newer OpenAI Response API instead of the Chat Completion API (requires compatible endpoint).\
91
+ \n\
80
92
  Refer to [our documentation](https://theia-ide.org/docs/user_ai/#openai-compatible-models-eg-via-vllm) for more information.'),
81
93
  default: [],
82
94
  items: {
@@ -127,6 +139,12 @@ on the machine running Theia. Use the environment variable `OPENAI_API_KEY` to s
127
139
  type: 'boolean',
128
140
  title: nls.localize('theia/ai/openai/customEndpoints/enableStreaming/title',
129
141
  'Indicates whether the streaming API shall be used. `true` by default.'),
142
+ },
143
+ useResponseApi: {
144
+ type: 'boolean',
145
+ title: nls.localize('theia/ai/openai/customEndpoints/useResponseApi/title',
146
+ 'Use the newer OpenAI Response API instead of the Chat Completion API. `false` by default for custom providers.'
147
+ + 'Note: Will automatically fall back to Chat Completions API when tools are used.'),
130
148
  }
131
149
  }
132
150
  }
@@ -20,6 +20,7 @@ import { ConnectionHandler, PreferenceContribution, RpcConnectionHandler } from
20
20
  import { OpenAiLanguageModelsManagerImpl } from './openai-language-models-manager-impl';
21
21
  import { ConnectionContainerModule } from '@theia/core/lib/node/messaging/connection-container-module';
22
22
  import { OpenAiModelUtils } from './openai-language-model';
23
+ import { OpenAiResponseApiUtils } from './openai-response-api-utils';
23
24
  import { OpenAiPreferencesSchema } from '../common/openai-preferences';
24
25
 
25
26
  export const OpenAiModelFactory = Symbol('OpenAiModelFactory');
@@ -36,5 +37,6 @@ const openAiConnectionModule = ConnectionContainerModule.create(({ bind, bindBac
36
37
  export default new ContainerModule(bind => {
37
38
  bind(PreferenceContribution).toConstantValue({ schema: OpenAiPreferencesSchema });
38
39
  bind(OpenAiModelUtils).toSelf().inSingletonScope();
40
+ bind(OpenAiResponseApiUtils).toSelf().inSingletonScope();
39
41
  bind(ConnectionContainerModule).toConstantValue(openAiConnectionModule);
40
42
  });
@@ -21,7 +21,6 @@ import {
21
21
  LanguageModelMessage,
22
22
  LanguageModelResponse,
23
23
  LanguageModelTextResponse,
24
- TextMessage,
25
24
  TokenUsageService,
26
25
  UserRequest,
27
26
  ImageContent,
@@ -37,24 +36,28 @@ import { StreamingAsyncIterator } from './openai-streaming-iterator';
37
36
  import { OPENAI_PROVIDER_ID } from '../common';
38
37
  import type { FinalRequestOptions } from 'openai/internal/request-options';
39
38
  import type { RunnerOptions } from 'openai/lib/AbstractChatCompletionRunner';
39
+ import { OpenAiResponseApiUtils, processSystemMessages } from './openai-response-api-utils';
40
40
  import * as undici from 'undici';
41
41
 
42
42
  export class MistralFixedOpenAI extends OpenAI {
43
43
  protected override async prepareOptions(options: FinalRequestOptions): Promise<void> {
44
- (options.body as { messages: Array<ChatCompletionMessageParam> }).messages.forEach(m => {
45
- if (m.role === 'assistant' && m.tool_calls) {
46
- // Mistral OpenAI Endpoint expects refusal to be undefined and not null for optional properties
47
- // eslint-disable-next-line no-null/no-null
48
- if (m.refusal === null) {
49
- m.refusal = undefined;
50
- }
51
- // Mistral OpenAI Endpoint expects parsed to be undefined and not null for optional properties
52
- // eslint-disable-next-line no-null/no-null
53
- if ((m as unknown as { parsed: null | undefined }).parsed === null) {
54
- (m as unknown as { parsed: null | undefined }).parsed = undefined;
44
+ const messages = (options.body as { messages: Array<ChatCompletionMessageParam> }).messages;
45
+ if (Array.isArray(messages)) {
46
+ (options.body as { messages: Array<ChatCompletionMessageParam> }).messages.forEach(m => {
47
+ if (m.role === 'assistant' && m.tool_calls) {
48
+ // Mistral OpenAI Endpoint expects refusal to be undefined and not null for optional properties
49
+ // eslint-disable-next-line no-null/no-null
50
+ if (m.refusal === null) {
51
+ m.refusal = undefined;
52
+ }
53
+ // Mistral OpenAI Endpoint expects parsed to be undefined and not null for optional properties
54
+ // eslint-disable-next-line no-null/no-null
55
+ if ((m as unknown as { parsed: null | undefined }).parsed === null) {
56
+ (m as unknown as { parsed: null | undefined }).parsed = undefined;
57
+ }
55
58
  }
56
- }
57
- });
59
+ });
60
+ }
58
61
  return super.prepareOptions(options);
59
62
  };
60
63
  }
@@ -84,6 +87,7 @@ export class OpenAiModel implements LanguageModel {
84
87
  * @param developerMessageSettings how to handle system messages
85
88
  * @param url the OpenAI API compatible endpoint where the model is hosted. If not provided the default OpenAI endpoint will be used.
86
89
  * @param maxRetries the maximum number of retry attempts when a request fails
90
+ * @param useResponseApi whether to use the newer OpenAI Response API instead of the Chat Completion API
87
91
  */
88
92
  constructor(
89
93
  public readonly id: string,
@@ -96,8 +100,10 @@ export class OpenAiModel implements LanguageModel {
96
100
  public url: string | undefined,
97
101
  public deployment: string | undefined,
98
102
  public openAiModelUtils: OpenAiModelUtils,
103
+ public responseApiUtils: OpenAiResponseApiUtils,
99
104
  public developerMessageSettings: DeveloperMessageSettings = 'developer',
100
105
  public maxRetries: number = 3,
106
+ public useResponseApi: boolean = false,
101
107
  protected readonly tokenUsageService?: TokenUsageService,
102
108
  protected proxy?: string
103
109
  ) { }
@@ -107,9 +113,16 @@ export class OpenAiModel implements LanguageModel {
107
113
  }
108
114
 
109
115
  async request(request: UserRequest, cancellationToken?: CancellationToken): Promise<LanguageModelResponse> {
110
- const settings = this.getSettings(request);
111
116
  const openai = this.initializeOpenAi();
112
117
 
118
+ return this.useResponseApi ?
119
+ this.handleResponseApiRequest(openai, request, cancellationToken)
120
+ : this.handleChatCompletionsRequest(openai, request, cancellationToken);
121
+ }
122
+
123
+ protected async handleChatCompletionsRequest(openai: OpenAI, request: UserRequest, cancellationToken?: CancellationToken): Promise<LanguageModelResponse> {
124
+ const settings = this.getSettings(request);
125
+
113
126
  if (request.response_format?.type === 'json_schema' && this.supportsStructuredOutput) {
114
127
  return this.handleStructuredOutputRequest(openai, request);
115
128
  }
@@ -170,7 +183,6 @@ export class OpenAiModel implements LanguageModel {
170
183
  outputTokens: response.usage.completion_tokens,
171
184
  requestId: request.requestId
172
185
  }
173
-
174
186
  );
175
187
  }
176
188
 
@@ -252,6 +264,34 @@ export class OpenAiModel implements LanguageModel {
252
264
  }
253
265
  }
254
266
 
267
+ protected async handleResponseApiRequest(openai: OpenAI, request: UserRequest, cancellationToken?: CancellationToken): Promise<LanguageModelResponse> {
268
+ const settings = this.getSettings(request);
269
+ const isStreamingRequest = this.enableStreaming && !(typeof settings.stream === 'boolean' && !settings.stream);
270
+
271
+ try {
272
+ return await this.responseApiUtils.handleRequest(
273
+ openai,
274
+ request,
275
+ settings,
276
+ this.model,
277
+ this.openAiModelUtils,
278
+ this.developerMessageSettings,
279
+ this.runnerOptions,
280
+ this.id,
281
+ isStreamingRequest,
282
+ this.tokenUsageService,
283
+ cancellationToken
284
+ );
285
+ } catch (error) {
286
+ // If Response API fails, fall back to Chat Completions API
287
+ if (error instanceof Error) {
288
+ console.warn(`Response API failed for model ${this.id}, falling back to Chat Completions API:`, error.message);
289
+ return this.handleChatCompletionsRequest(openai, request, cancellationToken);
290
+ }
291
+ throw error;
292
+ }
293
+ }
294
+
255
295
  protected processMessages(messages: LanguageModelMessage[]): ChatCompletionMessageParam[] {
256
296
  return this.openAiModelUtils.processMessages(messages, this.developerMessageSettings, this.model);
257
297
  }
@@ -269,31 +309,7 @@ export class OpenAiModelUtils {
269
309
  messages: LanguageModelMessage[],
270
310
  developerMessageSettings: DeveloperMessageSettings
271
311
  ): LanguageModelMessage[] {
272
- if (developerMessageSettings === 'skip') {
273
- return messages.filter(message => message.actor !== 'system');
274
- } else if (developerMessageSettings === 'mergeWithFollowingUserMessage') {
275
- const updated = messages.slice();
276
- for (let i = updated.length - 1; i >= 0; i--) {
277
- if (updated[i].actor === 'system') {
278
- const systemMessage = updated[i] as TextMessage;
279
- if (i + 1 < updated.length && updated[i + 1].actor === 'user') {
280
- // Merge system message with the next user message
281
- const userMessage = updated[i + 1] as TextMessage;
282
- updated[i + 1] = {
283
- ...updated[i + 1],
284
- text: systemMessage.text + '\n' + userMessage.text
285
- } as TextMessage;
286
- updated.splice(i, 1);
287
- } else {
288
- // The message directly after is not a user message (or none exists), so create a new user message right after
289
- updated.splice(i + 1, 0, { actor: 'user', type: 'text', text: systemMessage.text });
290
- updated.splice(i, 1);
291
- }
292
- }
293
- }
294
- return updated;
295
- }
296
- return messages;
312
+ return processSystemMessages(messages, developerMessageSettings);
297
313
  }
298
314
 
299
315
  protected toOpenAiRole(
@@ -367,9 +383,10 @@ export class OpenAiModelUtils {
367
383
  processMessages(
368
384
  messages: LanguageModelMessage[],
369
385
  developerMessageSettings: DeveloperMessageSettings,
370
- model: string
386
+ model?: string
371
387
  ): ChatCompletionMessageParam[] {
372
388
  const processed = this.processSystemMessages(messages, developerMessageSettings);
373
389
  return processed.filter(m => m.type !== 'thinking').map(m => this.toOpenAIMessage(m, developerMessageSettings));
374
390
  }
391
+
375
392
  }
@@ -17,6 +17,7 @@
17
17
  import { LanguageModelRegistry, LanguageModelStatus, TokenUsageService } from '@theia/ai-core';
18
18
  import { inject, injectable } from '@theia/core/shared/inversify';
19
19
  import { OpenAiModel, OpenAiModelUtils } from './openai-language-model';
20
+ import { OpenAiResponseApiUtils } from './openai-response-api-utils';
20
21
  import { OpenAiLanguageModelsManager, OpenAiModelDescription } from '../common';
21
22
 
22
23
  @injectable()
@@ -25,6 +26,9 @@ export class OpenAiLanguageModelsManagerImpl implements OpenAiLanguageModelsMana
25
26
  @inject(OpenAiModelUtils)
26
27
  protected readonly openAiModelUtils: OpenAiModelUtils;
27
28
 
29
+ @inject(OpenAiResponseApiUtils)
30
+ protected readonly responseApiUtils: OpenAiResponseApiUtils;
31
+
28
32
  protected _apiKey: string | undefined;
29
33
  protected _apiVersion: string | undefined;
30
34
  protected _proxyUrl: string | undefined;
@@ -117,7 +121,8 @@ export class OpenAiLanguageModelsManagerImpl implements OpenAiLanguageModelsMana
117
121
  developerMessageSettings: modelDescription.developerMessageSettings || 'developer',
118
122
  supportsStructuredOutput: modelDescription.supportsStructuredOutput,
119
123
  status,
120
- maxRetries: modelDescription.maxRetries
124
+ maxRetries: modelDescription.maxRetries,
125
+ useResponseApi: modelDescription.useResponseApi ?? false
121
126
  });
122
127
  } else {
123
128
  this.languageModelRegistry.addLanguageModels([
@@ -132,8 +137,10 @@ export class OpenAiLanguageModelsManagerImpl implements OpenAiLanguageModelsMana
132
137
  modelDescription.url,
133
138
  modelDescription.deployment,
134
139
  this.openAiModelUtils,
140
+ this.responseApiUtils,
135
141
  modelDescription.developerMessageSettings,
136
142
  modelDescription.maxRetries,
143
+ modelDescription.useResponseApi ?? false,
137
144
  this.tokenUsageService,
138
145
  proxyUrlProvider(modelDescription.url)
139
146
  )