Skip to content

Commit adf2521

Browse files
committed
feat: add OpenAI Compatible Model
1 parent e435ba5 commit adf2521

File tree

5 files changed

+558
-525
lines changed

5 files changed

+558
-525
lines changed

package.json

Lines changed: 51 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -81,57 +81,57 @@
8181
"yauzl": "^3.1.3"
8282
},
8383
"dependencies": {
84-
"@opensumi/ide-addons": "3.8.0",
85-
"@opensumi/ide-ai-native": "3.8.0",
86-
"@opensumi/ide-comments": "3.8.0",
87-
"@opensumi/ide-core-browser": "3.8.0",
88-
"@opensumi/ide-core-common": "3.8.0",
89-
"@opensumi/ide-core-electron-main": "3.8.0",
90-
"@opensumi/ide-core-node": "3.8.0",
91-
"@opensumi/ide-debug": "3.8.0",
92-
"@opensumi/ide-decoration": "3.8.0",
93-
"@opensumi/ide-design": "3.8.0",
94-
"@opensumi/ide-editor": "3.8.0",
95-
"@opensumi/ide-electron-basic": "3.8.0",
96-
"@opensumi/ide-explorer": "3.8.0",
97-
"@opensumi/ide-express-file-server": "3.8.0",
98-
"@opensumi/ide-extension": "3.8.0",
99-
"@opensumi/ide-extension-manager": "3.8.0",
100-
"@opensumi/ide-extension-storage": "3.8.0",
101-
"@opensumi/ide-file-scheme": "3.8.0",
102-
"@opensumi/ide-file-search": "3.8.0",
103-
"@opensumi/ide-file-service": "3.8.0",
104-
"@opensumi/ide-file-tree-next": "3.8.0",
105-
"@opensumi/ide-i18n": "3.8.0",
106-
"@opensumi/ide-keymaps": "3.8.0",
107-
"@opensumi/ide-logs": "3.8.0",
108-
"@opensumi/ide-main-layout": "3.8.0",
109-
"@opensumi/ide-markdown": "3.8.0",
110-
"@opensumi/ide-markers": "3.8.0",
111-
"@opensumi/ide-menu-bar": "3.8.0",
112-
"@opensumi/ide-monaco": "3.8.0",
113-
"@opensumi/ide-monaco-enhance": "3.8.0",
114-
"@opensumi/ide-opened-editor": "3.8.0",
115-
"@opensumi/ide-outline": "3.8.0",
116-
"@opensumi/ide-output": "3.8.0",
117-
"@opensumi/ide-overlay": "3.8.0",
118-
"@opensumi/ide-preferences": "3.8.0",
119-
"@opensumi/ide-process": "3.8.0",
120-
"@opensumi/ide-quick-open": "3.8.0",
121-
"@opensumi/ide-remote-opener": "3.8.0",
122-
"@opensumi/ide-scm": "3.8.0",
123-
"@opensumi/ide-search": "3.8.0",
124-
"@opensumi/ide-status-bar": "3.8.0",
125-
"@opensumi/ide-storage": "3.8.0",
126-
"@opensumi/ide-task": "3.8.0",
127-
"@opensumi/ide-terminal-next": "3.8.0",
128-
"@opensumi/ide-testing": "3.8.0",
129-
"@opensumi/ide-theme": "3.8.0",
130-
"@opensumi/ide-toolbar": "3.8.0",
131-
"@opensumi/ide-variable": "3.8.0",
132-
"@opensumi/ide-webview": "3.8.0",
133-
"@opensumi/ide-workspace": "3.8.0",
134-
"@opensumi/ide-workspace-edit": "3.8.0",
84+
"@opensumi/ide-addons": "3.8.1-next-1741160259.0",
85+
"@opensumi/ide-ai-native": "3.8.1-next-1741160259.0",
86+
"@opensumi/ide-comments": "3.8.1-next-1741160259.0",
87+
"@opensumi/ide-core-browser": "3.8.1-next-1741160259.0",
88+
"@opensumi/ide-core-common": "3.8.1-next-1741160259.0",
89+
"@opensumi/ide-core-electron-main": "3.8.1-next-1741160259.0",
90+
"@opensumi/ide-core-node": "3.8.1-next-1741160259.0",
91+
"@opensumi/ide-debug": "3.8.1-next-1741160259.0",
92+
"@opensumi/ide-decoration": "3.8.1-next-1741160259.0",
93+
"@opensumi/ide-design": "3.8.1-next-1741160259.0",
94+
"@opensumi/ide-editor": "3.8.1-next-1741160259.0",
95+
"@opensumi/ide-electron-basic": "3.8.1-next-1741160259.0",
96+
"@opensumi/ide-explorer": "3.8.1-next-1741160259.0",
97+
"@opensumi/ide-express-file-server": "3.8.1-next-1741160259.0",
98+
"@opensumi/ide-extension": "3.8.1-next-1741160259.0",
99+
"@opensumi/ide-extension-manager": "3.8.1-next-1741160259.0",
100+
"@opensumi/ide-extension-storage": "3.8.1-next-1741160259.0",
101+
"@opensumi/ide-file-scheme": "3.8.1-next-1741160259.0",
102+
"@opensumi/ide-file-search": "3.8.1-next-1741160259.0",
103+
"@opensumi/ide-file-service": "3.8.1-next-1741160259.0",
104+
"@opensumi/ide-file-tree-next": "3.8.1-next-1741160259.0",
105+
"@opensumi/ide-i18n": "3.8.1-next-1741160259.0",
106+
"@opensumi/ide-keymaps": "3.8.1-next-1741160259.0",
107+
"@opensumi/ide-logs": "3.8.1-next-1741160259.0",
108+
"@opensumi/ide-main-layout": "3.8.1-next-1741160259.0",
109+
"@opensumi/ide-markdown": "3.8.1-next-1741160259.0",
110+
"@opensumi/ide-markers": "3.8.1-next-1741160259.0",
111+
"@opensumi/ide-menu-bar": "3.8.1-next-1741160259.0",
112+
"@opensumi/ide-monaco": "3.8.1-next-1741160259.0",
113+
"@opensumi/ide-monaco-enhance": "3.8.1-next-1741160259.0",
114+
"@opensumi/ide-opened-editor": "3.8.1-next-1741160259.0",
115+
"@opensumi/ide-outline": "3.8.1-next-1741160259.0",
116+
"@opensumi/ide-output": "3.8.1-next-1741160259.0",
117+
"@opensumi/ide-overlay": "3.8.1-next-1741160259.0",
118+
"@opensumi/ide-preferences": "3.8.1-next-1741160259.0",
119+
"@opensumi/ide-process": "3.8.1-next-1741160259.0",
120+
"@opensumi/ide-quick-open": "3.8.1-next-1741160259.0",
121+
"@opensumi/ide-remote-opener": "3.8.1-next-1741160259.0",
122+
"@opensumi/ide-scm": "3.8.1-next-1741160259.0",
123+
"@opensumi/ide-search": "3.8.1-next-1741160259.0",
124+
"@opensumi/ide-status-bar": "3.8.1-next-1741160259.0",
125+
"@opensumi/ide-storage": "3.8.1-next-1741160259.0",
126+
"@opensumi/ide-task": "3.8.1-next-1741160259.0",
127+
"@opensumi/ide-terminal-next": "3.8.1-next-1741160259.0",
128+
"@opensumi/ide-testing": "3.8.1-next-1741160259.0",
129+
"@opensumi/ide-theme": "3.8.1-next-1741160259.0",
130+
"@opensumi/ide-toolbar": "3.8.1-next-1741160259.0",
131+
"@opensumi/ide-variable": "3.8.1-next-1741160259.0",
132+
"@opensumi/ide-webview": "3.8.1-next-1741160259.0",
133+
"@opensumi/ide-workspace": "3.8.1-next-1741160259.0",
134+
"@opensumi/ide-workspace-edit": "3.8.1-next-1741160259.0",
135135
"@opensumi/tree-sitter-wasm": "1.1.2",
136136
"@vscode/spdlog": "^0.15.0",
137137
"buffer": "^6.0.3",

src/ai/browser/ai-native.contribution.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ export class AINativeContribution implements ComponentContribution, AINativeCore
244244
}
245245

246246
const controller = new InlineChatController({ enableCodeblockRender: true });
247-
const stream = await this.aiBackService.requestStream(prompt, {}, token);
247+
const stream = await this.aiBackService.requestStream(prompt, { noTool: true }, token);
248248
controller.mountReadable(stream);
249249

250250
return controller;
@@ -348,7 +348,7 @@ export class AINativeContribution implements ComponentContribution, AINativeCore
348348
const prompt = terminalCommandSuggestionPrompt(message);
349349

350350
aiCommandSuggestions = [];
351-
const backStream = await this.aiBackService.requestStream(prompt, {}, token);
351+
const backStream = await this.aiBackService.requestStream(prompt, { noTool: true }, token);
352352
const stream = TerminalSuggestionReadableStream.create();
353353

354354
let buffer = '';
@@ -406,7 +406,7 @@ ${editor.getModel()!.getValueInRange(editRange)}
406406
不需要任何解释,只要返回修复后的代码块内容`;
407407

408408
const controller = new InlineChatController({ enableCodeblockRender: true });
409-
const stream = await this.aiBackService.requestStream(prompt, {}, token);
409+
const stream = await this.aiBackService.requestStream(prompt, { noTool: true }, token);
410410
controller.mountReadable(stream);
411411

412412
return controller;

src/ai/browser/inline-chat-operation.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ export class InlineChatOperationModel {
5252
const prompt = commentsPrompt(crossCode);
5353

5454
const controller = new InlineChatController({ enableCodeblockRender: true });
55-
const stream = await this.aiBackService.requestStream(prompt, {}, token);
55+
const stream = await this.aiBackService.requestStream(prompt, { noTool: true }, token);
5656
controller.mountReadable(stream);
5757

5858
return controller;
@@ -78,7 +78,7 @@ export class InlineChatOperationModel {
7878
const prompt = optimizePrompt(crossCode);
7979

8080
const controller = new InlineChatController({ enableCodeblockRender: true });
81-
const stream = await this.aiBackService.requestStream(prompt, {}, token);
81+
const stream = await this.aiBackService.requestStream(prompt, { noTool: true }, token);
8282
controller.mountReadable(stream);
8383

8484
return controller;

src/ai/node/ai-back.service.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,9 @@ import { ILogServiceManager } from '@opensumi/ide-logs';
1010
import { AnthropicModel } from '@opensumi/ide-ai-native/lib/node/anthropic/anthropic-language-model';
1111
import { DeepSeekModel } from '@opensumi/ide-ai-native/lib/node/deepseek/deepseek-language-model';
1212
import { OpenAIModel } from '@opensumi/ide-ai-native/lib/node/openai/openai-language-model';
13+
import { OpenAICompatibleModel } from '@opensumi/ide-ai-native/lib/node/openai-compatible/openai-compatible-language-model';
1314

14-
import { ChatCompletionChunk, ChatCompletion, Completion } from './types';
15+
import { ChatCompletion, Completion } from './types';
1516
import { AIModelService } from './model.service'
1617

1718
@Injectable()
@@ -33,6 +34,9 @@ export class AIBackService extends BaseAIBackService implements IAIBackService {
3334
@Autowired(DeepSeekModel)
3435
protected readonly deepseekModel: DeepSeekModel;
3536

37+
@Autowired(OpenAICompatibleModel)
38+
protected readonly openAICompatibleModel: OpenAICompatibleModel;
39+
3640
constructor() {
3741
super();
3842
this.logger = this.loggerManager.getLogger('ai' as any);
@@ -50,8 +54,10 @@ export class AIBackService extends BaseAIBackService implements IAIBackService {
5054
this.openaiModel.request(input, chatReadableStream, options, cancelToken);
5155
} else if (model === 'deepseek') {
5256
this.deepseekModel.request(input, chatReadableStream, options, cancelToken);
53-
} else {
57+
} else if (model === 'anthropic') {
5458
this.anthropicModel.request(input, chatReadableStream, options, cancelToken);
59+
} else {
60+
this.openAICompatibleModel.request(input, chatReadableStream, options, cancelToken);
5561
}
5662

5763
return chatReadableStream;

0 commit comments

Comments
 (0)