@opensumi/ide-ai-native 3.8.1-next-1741080291.0 → 3.8.1-next-1741091353.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/lib/browser/ai-core.contribution.d.ts +0 -3
- package/lib/browser/ai-core.contribution.d.ts.map +1 -1
- package/lib/browser/ai-core.contribution.js +1 -45
- package/lib/browser/ai-core.contribution.js.map +1 -1
- package/lib/browser/chat/chat-agent.service.d.ts +8 -0
- package/lib/browser/chat/chat-agent.service.d.ts.map +1 -1
- package/lib/browser/chat/chat-agent.service.js +32 -5
- package/lib/browser/chat/chat-agent.service.js.map +1 -1
- package/lib/browser/chat/chat-manager.service.d.ts.map +1 -1
- package/lib/browser/chat/chat-manager.service.js +4 -0
- package/lib/browser/chat/chat-manager.service.js.map +1 -1
- package/lib/browser/chat/chat-model.d.ts.map +1 -1
- package/lib/browser/chat/chat-model.js +3 -2
- package/lib/browser/chat/chat-model.js.map +1 -1
- package/lib/browser/chat/chat-proxy.service.d.ts.map +1 -1
- package/lib/browser/chat/chat-proxy.service.js +5 -9
- package/lib/browser/chat/chat-proxy.service.js.map +1 -1
- package/lib/browser/chat/chat.module.less +1 -2
- package/lib/browser/chat/chat.view.d.ts.map +1 -1
- package/lib/browser/chat/chat.view.js +13 -39
- package/lib/browser/chat/chat.view.js.map +1 -1
- package/lib/browser/components/ChatContext/index.js +2 -2
- package/lib/browser/components/ChatContext/index.js.map +1 -1
- package/lib/browser/components/ChatInput.d.ts.map +1 -1
- package/lib/browser/components/ChatInput.js +25 -1
- package/lib/browser/components/ChatInput.js.map +1 -1
- package/lib/browser/components/ChatToolRender.d.ts.map +1 -1
- package/lib/browser/components/ChatToolRender.js +2 -3
- package/lib/browser/components/ChatToolRender.js.map +1 -1
- package/lib/browser/components/chat-history.module.less +2 -1
- package/lib/browser/components/components.module.less +20 -0
- package/lib/browser/context/llm-context.service.d.ts +18 -5
- package/lib/browser/context/llm-context.service.d.ts.map +1 -1
- package/lib/browser/context/llm-context.service.js +80 -47
- package/lib/browser/context/llm-context.service.js.map +1 -1
- package/lib/browser/layout/layout.module.less +4 -4
- package/lib/browser/mcp/base-apply.service.d.ts +18 -7
- package/lib/browser/mcp/base-apply.service.d.ts.map +1 -1
- package/lib/browser/mcp/base-apply.service.js +185 -65
- package/lib/browser/mcp/base-apply.service.js.map +1 -1
- package/lib/browser/mcp/tools/components/EditFile.d.ts.map +1 -1
- package/lib/browser/mcp/tools/components/EditFile.js +15 -9
- package/lib/browser/mcp/tools/components/EditFile.js.map +1 -1
- package/lib/browser/mcp/tools/components/ExpandableFileList.d.ts +13 -0
- package/lib/browser/mcp/tools/components/ExpandableFileList.d.ts.map +1 -0
- package/lib/browser/mcp/tools/components/{SearchResult.js → ExpandableFileList.js} +29 -19
- package/lib/browser/mcp/tools/components/ExpandableFileList.js.map +1 -0
- package/lib/browser/mcp/tools/components/index.module.less +4 -0
- package/lib/browser/mcp/tools/createNewFileWithText.d.ts +1 -0
- package/lib/browser/mcp/tools/createNewFileWithText.d.ts.map +1 -1
- package/lib/browser/mcp/tools/createNewFileWithText.js +19 -11
- package/lib/browser/mcp/tools/createNewFileWithText.js.map +1 -1
- package/lib/browser/mcp/tools/fileSearch.d.ts +1 -0
- package/lib/browser/mcp/tools/fileSearch.d.ts.map +1 -1
- package/lib/browser/mcp/tools/fileSearch.js +14 -5
- package/lib/browser/mcp/tools/fileSearch.js.map +1 -1
- package/lib/browser/mcp/tools/getDiagnosticsByPath.d.ts.map +1 -1
- package/lib/browser/mcp/tools/getDiagnosticsByPath.js +1 -0
- package/lib/browser/mcp/tools/getDiagnosticsByPath.js.map +1 -1
- package/lib/browser/mcp/tools/grepSearch.d.ts.map +1 -1
- package/lib/browser/mcp/tools/grepSearch.js +6 -3
- package/lib/browser/mcp/tools/grepSearch.js.map +1 -1
- package/lib/browser/mcp/tools/handlers/EditFile.js +1 -1
- package/lib/browser/mcp/tools/handlers/EditFile.js.map +1 -1
- package/lib/browser/mcp/tools/handlers/ListDir.d.ts +1 -0
- package/lib/browser/mcp/tools/handlers/ListDir.d.ts.map +1 -1
- package/lib/browser/mcp/tools/handlers/ListDir.js +3 -0
- package/lib/browser/mcp/tools/handlers/ListDir.js.map +1 -1
- package/lib/browser/mcp/tools/handlers/RunCommand.d.ts.map +1 -1
- package/lib/browser/mcp/tools/handlers/RunCommand.js +2 -0
- package/lib/browser/mcp/tools/handlers/RunCommand.js.map +1 -1
- package/lib/browser/mcp/tools/listDir.d.ts +1 -0
- package/lib/browser/mcp/tools/listDir.d.ts.map +1 -1
- package/lib/browser/mcp/tools/listDir.js +35 -4
- package/lib/browser/mcp/tools/listDir.js.map +1 -1
- package/lib/browser/mcp/tools/runTerminalCmd.d.ts.map +1 -1
- package/lib/browser/mcp/tools/runTerminalCmd.js +1 -0
- package/lib/browser/mcp/tools/runTerminalCmd.js.map +1 -1
- package/lib/browser/model/msg-history-manager.d.ts +1 -0
- package/lib/browser/model/msg-history-manager.d.ts.map +1 -1
- package/lib/browser/model/msg-history-manager.js +3 -0
- package/lib/browser/model/msg-history-manager.js.map +1 -1
- package/lib/browser/preferences/schema.d.ts.map +1 -1
- package/lib/browser/preferences/schema.js +1 -7
- package/lib/browser/preferences/schema.js.map +1 -1
- package/lib/browser/widget/inline-diff/inline-diff-manager.d.ts.map +1 -1
- package/lib/browser/widget/inline-diff/inline-diff-manager.js +68 -8
- package/lib/browser/widget/inline-diff/inline-diff-manager.js.map +1 -1
- package/lib/browser/widget/inline-diff/inline-diff-previewer.d.ts +10 -4
- package/lib/browser/widget/inline-diff/inline-diff-previewer.d.ts.map +1 -1
- package/lib/browser/widget/inline-diff/inline-diff-previewer.js +14 -3
- package/lib/browser/widget/inline-diff/inline-diff-previewer.js.map +1 -1
- package/lib/browser/widget/inline-diff/inline-diff-widget.module.less +25 -4
- package/lib/browser/widget/inline-diff/inline-diff.controller.d.ts +3 -3
- package/lib/browser/widget/inline-diff/inline-diff.controller.d.ts.map +1 -1
- package/lib/browser/widget/inline-diff/inline-diff.controller.js +10 -5
- package/lib/browser/widget/inline-diff/inline-diff.controller.js.map +1 -1
- package/lib/browser/widget/inline-stream-diff/inline-stream-diff.handler.d.ts +46 -17
- package/lib/browser/widget/inline-stream-diff/inline-stream-diff.handler.d.ts.map +1 -1
- package/lib/browser/widget/inline-stream-diff/inline-stream-diff.handler.js +110 -53
- package/lib/browser/widget/inline-stream-diff/inline-stream-diff.handler.js.map +1 -1
- package/lib/browser/widget/inline-stream-diff/live-preview.decoration.d.ts +4 -0
- package/lib/browser/widget/inline-stream-diff/live-preview.decoration.d.ts.map +1 -1
- package/lib/browser/widget/inline-stream-diff/live-preview.decoration.js +26 -1
- package/lib/browser/widget/inline-stream-diff/live-preview.decoration.js.map +1 -1
- package/lib/common/index.d.ts +0 -1
- package/lib/common/index.d.ts.map +1 -1
- package/lib/common/index.js +0 -2
- package/lib/common/index.js.map +1 -1
- package/lib/common/llm-context.d.ts +13 -9
- package/lib/common/llm-context.d.ts.map +1 -1
- package/lib/common/llm-context.js.map +1 -1
- package/lib/common/prompts/context-prompt-provider.d.ts +4 -3
- package/lib/common/prompts/context-prompt-provider.d.ts.map +1 -1
- package/lib/common/prompts/context-prompt-provider.js +33 -22
- package/lib/common/prompts/context-prompt-provider.js.map +1 -1
- package/lib/common/types.d.ts +1 -0
- package/lib/common/types.d.ts.map +1 -1
- package/lib/node/anthropic/anthropic-language-model.d.ts +1 -3
- package/lib/node/anthropic/anthropic-language-model.d.ts.map +1 -1
- package/lib/node/anthropic/anthropic-language-model.js +2 -6
- package/lib/node/anthropic/anthropic-language-model.js.map +1 -1
- package/lib/node/base-language-model.d.ts +1 -4
- package/lib/node/base-language-model.d.ts.map +1 -1
- package/lib/node/base-language-model.js +6 -7
- package/lib/node/base-language-model.js.map +1 -1
- package/lib/node/deepseek/deepseek-language-model.d.ts +1 -3
- package/lib/node/deepseek/deepseek-language-model.d.ts.map +1 -1
- package/lib/node/deepseek/deepseek-language-model.js +2 -6
- package/lib/node/deepseek/deepseek-language-model.js.map +1 -1
- package/lib/node/openai/openai-language-model.d.ts +4 -5
- package/lib/node/openai/openai-language-model.d.ts.map +1 -1
- package/lib/node/openai/openai-language-model.js +7 -8
- package/lib/node/openai/openai-language-model.js.map +1 -1
- package/package.json +23 -24
- package/src/browser/ai-core.contribution.ts +1 -56
- package/src/browser/chat/chat-agent.service.ts +38 -7
- package/src/browser/chat/chat-manager.service.ts +6 -0
- package/src/browser/chat/chat-model.ts +11 -6
- package/src/browser/chat/chat-proxy.service.ts +6 -9
- package/src/browser/chat/chat.module.less +1 -2
- package/src/browser/chat/chat.view.tsx +14 -72
- package/src/browser/components/ChatContext/index.tsx +2 -2
- package/src/browser/components/ChatInput.tsx +67 -3
- package/src/browser/components/ChatToolRender.tsx +1 -2
- package/src/browser/components/chat-history.module.less +2 -1
- package/src/browser/components/components.module.less +20 -0
- package/src/browser/context/llm-context.service.ts +93 -54
- package/src/browser/layout/layout.module.less +4 -4
- package/src/browser/mcp/base-apply.service.ts +222 -67
- package/src/browser/mcp/tools/components/EditFile.tsx +16 -9
- package/src/browser/mcp/tools/components/ExpandableFileList.tsx +133 -0
- package/src/browser/mcp/tools/components/index.module.less +4 -0
- package/src/browser/mcp/tools/createNewFileWithText.ts +21 -12
- package/src/browser/mcp/tools/fileSearch.ts +14 -4
- package/src/browser/mcp/tools/getDiagnosticsByPath.ts +1 -0
- package/src/browser/mcp/tools/grepSearch.ts +6 -3
- package/src/browser/mcp/tools/handlers/EditFile.ts +1 -1
- package/src/browser/mcp/tools/handlers/ListDir.ts +4 -0
- package/src/browser/mcp/tools/handlers/RunCommand.ts +2 -0
- package/src/browser/mcp/tools/listDir.ts +36 -5
- package/src/browser/mcp/tools/runTerminalCmd.ts +1 -0
- package/src/browser/model/msg-history-manager.ts +4 -0
- package/src/browser/preferences/schema.ts +1 -7
- package/src/browser/widget/inline-diff/inline-diff-manager.tsx +143 -21
- package/src/browser/widget/inline-diff/inline-diff-previewer.ts +25 -7
- package/src/browser/widget/inline-diff/inline-diff-widget.module.less +25 -4
- package/src/browser/widget/inline-diff/inline-diff.controller.ts +16 -8
- package/src/browser/widget/inline-stream-diff/inline-stream-diff.handler.tsx +139 -68
- package/src/browser/widget/inline-stream-diff/live-preview.decoration.tsx +30 -1
- package/src/common/index.ts +0 -2
- package/src/common/llm-context.ts +10 -4
- package/src/common/prompts/context-prompt-provider.ts +38 -29
- package/src/common/types.ts +1 -0
- package/src/node/anthropic/anthropic-language-model.ts +2 -7
- package/src/node/base-language-model.ts +12 -10
- package/src/node/deepseek/deepseek-language-model.ts +2 -7
- package/src/node/openai/openai-language-model.ts +9 -10
- package/lib/browser/mcp/tools/components/SearchResult.d.ts +0 -11
- package/lib/browser/mcp/tools/components/SearchResult.d.ts.map +0 -1
- package/lib/browser/mcp/tools/components/SearchResult.js.map +0 -1
- package/lib/common/model.d.ts +0 -12
- package/lib/common/model.d.ts.map +0 -1
- package/lib/common/model.js +0 -83
- package/lib/common/model.js.map +0 -1
- package/lib/node/openai-compatible/openai-compatible-language-model.d.ts +0 -10
- package/lib/node/openai-compatible/openai-compatible-language-model.d.ts.map +0 -1
- package/lib/node/openai-compatible/openai-compatible-language-model.js +0 -32
- package/lib/node/openai-compatible/openai-compatible-language-model.js.map +0 -1
- package/src/browser/mcp/tools/components/SearchResult.tsx +0 -92
- package/src/common/model.ts +0 -90
- package/src/node/openai-compatible/openai-compatible-language-model.ts +0 -30
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Injectable } from '@opensumi/di';
|
|
2
|
-
import {
|
|
1
|
+
import { Autowired, Injectable } from '@opensumi/di';
|
|
2
|
+
import { WorkbenchEditorService } from '@opensumi/ide-editor/lib/common/editor';
|
|
3
3
|
|
|
4
4
|
import { SerializedContext } from '../llm-context';
|
|
5
5
|
|
|
@@ -10,37 +10,46 @@ export interface ChatAgentPromptProvider {
|
|
|
10
10
|
* 提供上下文提示
|
|
11
11
|
* @param context 上下文
|
|
12
12
|
*/
|
|
13
|
-
provideContextPrompt(context: SerializedContext, userMessage: string):
|
|
13
|
+
provideContextPrompt(context: SerializedContext, userMessage: string): string;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
@Injectable()
|
|
17
17
|
export class DefaultChatAgentPromptProvider implements ChatAgentPromptProvider {
|
|
18
|
-
|
|
18
|
+
@Autowired(WorkbenchEditorService)
|
|
19
|
+
protected readonly workbenchEditorService: WorkbenchEditorService;
|
|
20
|
+
|
|
21
|
+
provideContextPrompt(context: SerializedContext, userMessage: string): string {
|
|
22
|
+
const editor = this.workbenchEditorService.currentEditor;
|
|
23
|
+
const currentModel = editor?.currentDocumentModel;
|
|
19
24
|
return `
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
25
|
+
<additional_data>
|
|
26
|
+
Below are some potentially helpful/relevant pieces of information for figuring out to respond
|
|
27
|
+
<recently_viewed_files>
|
|
28
|
+
${context.recentlyViewFiles.map((file, idx) => ` ${idx + 1}: ${file}`).join('\n')}
|
|
29
|
+
</recently_viewed_files>
|
|
30
|
+
<attached_files>
|
|
31
|
+
${context.attachedFiles.map(
|
|
32
|
+
(file) =>
|
|
33
|
+
`
|
|
34
|
+
<file_contents>
|
|
35
|
+
\`\`\`${file.path}
|
|
36
|
+
${file.content}
|
|
37
|
+
\`\`\`
|
|
38
|
+
</file_contents>
|
|
39
|
+
<linter_errors>
|
|
40
|
+
${file.lineErrors.join('\n')}
|
|
41
|
+
</linter_errors>
|
|
42
|
+
`,
|
|
43
|
+
)}
|
|
44
|
+
</attached_files>
|
|
45
|
+
${currentModel ? `<current_opened_file>
|
|
46
|
+
\`\`\`${currentModel.languageId} ${currentModel.uri.toString()}
|
|
47
|
+
${currentModel.getText()}
|
|
48
|
+
\`\`\`
|
|
49
|
+
</current_opened_file>` : ''}
|
|
50
|
+
</additional_data>
|
|
51
|
+
<user_query>
|
|
52
|
+
${userMessage}
|
|
53
|
+
</user_query>`;
|
|
45
54
|
}
|
|
46
55
|
}
|
package/src/common/types.ts
CHANGED
|
@@ -4,7 +4,6 @@ import { Injectable } from '@opensumi/di';
|
|
|
4
4
|
import { IAIBackServiceOption } from '@opensumi/ide-core-common';
|
|
5
5
|
import { AINativeSettingSectionsId } from '@opensumi/ide-core-common/lib/settings/ai-native';
|
|
6
6
|
|
|
7
|
-
import { ModelInfo, anthropicModels } from '../../common/model';
|
|
8
7
|
import { BaseLanguageModel } from '../base-language-model';
|
|
9
8
|
|
|
10
9
|
export const AnthropicModelIdentifier = Symbol('AnthropicModelIdentifier');
|
|
@@ -20,11 +19,7 @@ export class AnthropicModel extends BaseLanguageModel {
|
|
|
20
19
|
return createAnthropic({ apiKey });
|
|
21
20
|
}
|
|
22
21
|
|
|
23
|
-
protected getModelIdentifier(provider: AnthropicProvider
|
|
24
|
-
return provider(
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
protected getModelInfo(modelId: string): ModelInfo | undefined {
|
|
28
|
-
return anthropicModels[modelId];
|
|
22
|
+
protected getModelIdentifier(provider: AnthropicProvider) {
|
|
23
|
+
return provider('claude-3-5-sonnet-20241022');
|
|
29
24
|
}
|
|
30
25
|
}
|
|
@@ -5,7 +5,6 @@ import { ChatMessageRole, IAIBackServiceOption, IChatMessage } from '@opensumi/i
|
|
|
5
5
|
import { ChatReadableStream } from '@opensumi/ide-core-node';
|
|
6
6
|
import { CancellationToken } from '@opensumi/ide-utils';
|
|
7
7
|
|
|
8
|
-
import { ModelInfo } from '../common';
|
|
9
8
|
import {
|
|
10
9
|
IToolInvocationRegistryManager,
|
|
11
10
|
ToolInvocationRegistryManager,
|
|
@@ -14,8 +13,6 @@ import {
|
|
|
14
13
|
|
|
15
14
|
@Injectable()
|
|
16
15
|
export abstract class BaseLanguageModel {
|
|
17
|
-
static ModelOptions: Record<string, ModelInfo>;
|
|
18
|
-
|
|
19
16
|
@Autowired(ToolInvocationRegistryManager)
|
|
20
17
|
protected readonly toolInvocationRegistryManager: IToolInvocationRegistryManager;
|
|
21
18
|
|
|
@@ -59,8 +56,12 @@ export abstract class BaseLanguageModel {
|
|
|
59
56
|
chatReadableStream,
|
|
60
57
|
options.history || [],
|
|
61
58
|
options.modelId,
|
|
59
|
+
options.temperature,
|
|
60
|
+
options.topP,
|
|
61
|
+
options.topK,
|
|
62
62
|
options.providerOptions,
|
|
63
63
|
options.trimTexts,
|
|
64
|
+
options.system,
|
|
64
65
|
cancellationToken,
|
|
65
66
|
);
|
|
66
67
|
}
|
|
@@ -77,8 +78,6 @@ export abstract class BaseLanguageModel {
|
|
|
77
78
|
|
|
78
79
|
protected abstract getModelIdentifier(provider: any, modelId?: string): any;
|
|
79
80
|
|
|
80
|
-
protected abstract getModelInfo(modelId: string): ModelInfo | undefined;
|
|
81
|
-
|
|
82
81
|
protected async handleStreamingRequest(
|
|
83
82
|
provider: any,
|
|
84
83
|
request: string,
|
|
@@ -86,8 +85,12 @@ export abstract class BaseLanguageModel {
|
|
|
86
85
|
chatReadableStream: ChatReadableStream,
|
|
87
86
|
history: IChatMessage[] = [],
|
|
88
87
|
modelId?: string,
|
|
88
|
+
temperature?: number,
|
|
89
|
+
topP?: number,
|
|
90
|
+
topK?: number,
|
|
89
91
|
providerOptions?: Record<string, any>,
|
|
90
92
|
trimTexts?: [string, string],
|
|
93
|
+
systemPrompt?: string,
|
|
91
94
|
cancellationToken?: CancellationToken,
|
|
92
95
|
): Promise<any> {
|
|
93
96
|
try {
|
|
@@ -107,18 +110,17 @@ export abstract class BaseLanguageModel {
|
|
|
107
110
|
})),
|
|
108
111
|
{ role: 'user', content: request },
|
|
109
112
|
];
|
|
110
|
-
const modelInfo = modelId ? this.getModelInfo(modelId) : undefined;
|
|
111
113
|
const stream = streamText({
|
|
112
114
|
model: this.getModelIdentifier(provider, modelId),
|
|
113
|
-
maxTokens: 4096,
|
|
114
115
|
tools: aiTools,
|
|
115
116
|
messages,
|
|
116
117
|
abortSignal: abortController.signal,
|
|
117
118
|
experimental_toolCallStreaming: true,
|
|
118
119
|
maxSteps: 12,
|
|
119
|
-
temperature
|
|
120
|
-
topP:
|
|
121
|
-
topK:
|
|
120
|
+
temperature,
|
|
121
|
+
topP: topP || 0.8,
|
|
122
|
+
topK: topK || 1,
|
|
123
|
+
system: systemPrompt,
|
|
122
124
|
providerOptions,
|
|
123
125
|
});
|
|
124
126
|
|
|
@@ -4,7 +4,6 @@ import { Injectable } from '@opensumi/di';
|
|
|
4
4
|
import { IAIBackServiceOption } from '@opensumi/ide-core-common';
|
|
5
5
|
import { AINativeSettingSectionsId } from '@opensumi/ide-core-common/lib/settings/ai-native';
|
|
6
6
|
|
|
7
|
-
import { ModelInfo, deepSeekModels } from '../../common';
|
|
8
7
|
import { BaseLanguageModel } from '../base-language-model';
|
|
9
8
|
|
|
10
9
|
export const DeepSeekModelIdentifier = Symbol('DeepSeekModelIdentifier');
|
|
@@ -20,11 +19,7 @@ export class DeepSeekModel extends BaseLanguageModel {
|
|
|
20
19
|
return createDeepSeek({ apiKey });
|
|
21
20
|
}
|
|
22
21
|
|
|
23
|
-
protected getModelIdentifier(provider: DeepSeekProvider
|
|
24
|
-
return provider(
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
protected getModelInfo(modelId: string): ModelInfo | undefined {
|
|
28
|
-
return deepSeekModels[modelId];
|
|
22
|
+
protected getModelIdentifier(provider: DeepSeekProvider) {
|
|
23
|
+
return provider('deepseek-chat');
|
|
29
24
|
}
|
|
30
25
|
}
|
|
@@ -1,29 +1,28 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { OpenAICompatibleProvider, createOpenAICompatible } from '@ai-sdk/openai-compatible';
|
|
2
2
|
import { LanguageModelV1 } from 'ai';
|
|
3
3
|
|
|
4
4
|
import { Injectable } from '@opensumi/di';
|
|
5
5
|
import { AINativeSettingSectionsId, IAIBackServiceOption } from '@opensumi/ide-core-common';
|
|
6
6
|
|
|
7
|
-
import { ModelInfo, openAiNativeModels } from '../../common/model';
|
|
8
7
|
import { BaseLanguageModel } from '../base-language-model';
|
|
9
8
|
|
|
9
|
+
export const DeepSeekModelIdentifier = Symbol('DeepSeekModelIdentifier');
|
|
10
|
+
|
|
10
11
|
@Injectable()
|
|
11
12
|
export class OpenAIModel extends BaseLanguageModel {
|
|
12
|
-
protected initializeProvider(options: IAIBackServiceOption):
|
|
13
|
+
protected initializeProvider(options: IAIBackServiceOption): OpenAICompatibleProvider {
|
|
13
14
|
const apiKey = options.apiKey;
|
|
14
15
|
if (!apiKey) {
|
|
15
16
|
throw new Error(`Please provide OpenAI API Key in preferences (${AINativeSettingSectionsId.OpenaiApiKey})`);
|
|
16
17
|
}
|
|
17
|
-
return
|
|
18
|
+
return createOpenAICompatible({
|
|
18
19
|
apiKey,
|
|
20
|
+
baseURL: options.baseURL || 'https://dashscope.aliyuncs.com/compatible-mode/v1',
|
|
21
|
+
name: 'openai',
|
|
19
22
|
});
|
|
20
23
|
}
|
|
21
24
|
|
|
22
|
-
protected getModelIdentifier(provider:
|
|
23
|
-
return provider(modelId
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
protected getModelInfo(modelId: string): ModelInfo | undefined {
|
|
27
|
-
return openAiNativeModels[modelId];
|
|
25
|
+
protected getModelIdentifier(provider: OpenAICompatibleProvider, modelId?: string): LanguageModelV1 {
|
|
26
|
+
return provider(modelId || 'qwen-max');
|
|
28
27
|
}
|
|
29
28
|
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
interface SearchResultProps {
|
|
3
|
-
args: any;
|
|
4
|
-
toolCallId: string;
|
|
5
|
-
messageId: string;
|
|
6
|
-
toolName: string;
|
|
7
|
-
}
|
|
8
|
-
export declare const FileSearchToolComponent: React.FC<SearchResultProps>;
|
|
9
|
-
export declare const GrepSearchToolComponent: React.FC<SearchResultProps>;
|
|
10
|
-
export {};
|
|
11
|
-
//# sourceMappingURL=SearchResult.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SearchResult.d.ts","sourceRoot":"","sources":["../../../../../src/browser/mcp/tools/components/SearchResult.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAW5D,UAAU,iBAAiB;IACzB,IAAI,EAAE,GAAG,CAAC;IACV,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAE/D,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAE/D,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SearchResult.js","sourceRoot":"","sources":["../../../../../src/browser/mcp/tools/components/SearchResult.tsx"],"names":[],"mappings":"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"}
|
package/lib/common/model.d.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export interface ModelInfo {
|
|
2
|
-
maxTokens?: number;
|
|
3
|
-
contextWindow?: number;
|
|
4
|
-
supportsImages?: boolean;
|
|
5
|
-
temperature?: number;
|
|
6
|
-
topP?: number;
|
|
7
|
-
topK?: number;
|
|
8
|
-
}
|
|
9
|
-
export declare const deepSeekModels: Record<string, ModelInfo>;
|
|
10
|
-
export declare const anthropicModels: Record<string, ModelInfo>;
|
|
11
|
-
export declare const openAiNativeModels: Record<string, ModelInfo>;
|
|
12
|
-
//# sourceMappingURL=model.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/common/model.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,cAAc,EAatB,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAE/B,eAAO,MAAM,eAAe,EA0BvB,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAE/B,eAAO,MAAM,kBAAkB,EAqC1B,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC"}
|
package/lib/common/model.js
DELETED
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.openAiNativeModels = exports.anthropicModels = exports.deepSeekModels = void 0;
|
|
4
|
-
exports.deepSeekModels = {
|
|
5
|
-
'deepseek-chat': {
|
|
6
|
-
maxTokens: 8000,
|
|
7
|
-
contextWindow: 64000,
|
|
8
|
-
supportsImages: false,
|
|
9
|
-
},
|
|
10
|
-
'deepseek-reasoner': {
|
|
11
|
-
maxTokens: 8000,
|
|
12
|
-
contextWindow: 64000,
|
|
13
|
-
supportsImages: false,
|
|
14
|
-
temperature: 0.7,
|
|
15
|
-
topP: 0.95,
|
|
16
|
-
},
|
|
17
|
-
};
|
|
18
|
-
exports.anthropicModels = {
|
|
19
|
-
'claude-3-7-sonnet-20250219': {
|
|
20
|
-
maxTokens: 8192,
|
|
21
|
-
contextWindow: 200000,
|
|
22
|
-
supportsImages: true,
|
|
23
|
-
},
|
|
24
|
-
'claude-3-5-sonnet-20241022': {
|
|
25
|
-
maxTokens: 8192,
|
|
26
|
-
contextWindow: 200000,
|
|
27
|
-
supportsImages: true,
|
|
28
|
-
},
|
|
29
|
-
'claude-3-5-haiku-20241022': {
|
|
30
|
-
maxTokens: 8192,
|
|
31
|
-
contextWindow: 200000,
|
|
32
|
-
supportsImages: false,
|
|
33
|
-
},
|
|
34
|
-
'claude-3-opus-20240229': {
|
|
35
|
-
maxTokens: 4096,
|
|
36
|
-
contextWindow: 200000,
|
|
37
|
-
supportsImages: true,
|
|
38
|
-
},
|
|
39
|
-
'claude-3-haiku-20240307': {
|
|
40
|
-
maxTokens: 4096,
|
|
41
|
-
contextWindow: 200000,
|
|
42
|
-
supportsImages: true,
|
|
43
|
-
},
|
|
44
|
-
}; // as const assertion makes the object deeply readonly
|
|
45
|
-
exports.openAiNativeModels = {
|
|
46
|
-
'o3-mini': {
|
|
47
|
-
maxTokens: 100000,
|
|
48
|
-
contextWindow: 200000,
|
|
49
|
-
supportsImages: false,
|
|
50
|
-
},
|
|
51
|
-
// don't support tool use yet
|
|
52
|
-
o1: {
|
|
53
|
-
maxTokens: 100000,
|
|
54
|
-
contextWindow: 200000,
|
|
55
|
-
supportsImages: true,
|
|
56
|
-
},
|
|
57
|
-
'o1-preview': {
|
|
58
|
-
maxTokens: 32768,
|
|
59
|
-
contextWindow: 128000,
|
|
60
|
-
supportsImages: true,
|
|
61
|
-
},
|
|
62
|
-
'o1-mini': {
|
|
63
|
-
maxTokens: 65536,
|
|
64
|
-
contextWindow: 128000,
|
|
65
|
-
supportsImages: true,
|
|
66
|
-
},
|
|
67
|
-
'gpt-4o': {
|
|
68
|
-
maxTokens: 4096,
|
|
69
|
-
contextWindow: 128000,
|
|
70
|
-
supportsImages: true,
|
|
71
|
-
},
|
|
72
|
-
'gpt-4o-mini': {
|
|
73
|
-
maxTokens: 16384,
|
|
74
|
-
contextWindow: 128000,
|
|
75
|
-
supportsImages: true,
|
|
76
|
-
},
|
|
77
|
-
'gpt-4.5-preview': {
|
|
78
|
-
maxTokens: 16384,
|
|
79
|
-
contextWindow: 128000,
|
|
80
|
-
supportsImages: true,
|
|
81
|
-
},
|
|
82
|
-
};
|
|
83
|
-
//# sourceMappingURL=model.js.map
|
package/lib/common/model.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/common/model.ts"],"names":[],"mappings":";;;AASa,QAAA,cAAc,GAAG;IAC5B,eAAe,EAAE;QACf,SAAS,EAAE,IAAK;QAChB,aAAa,EAAE,KAAM;QACrB,cAAc,EAAE,KAAK;KACtB;IACD,mBAAmB,EAAE;QACnB,SAAS,EAAE,IAAK;QAChB,aAAa,EAAE,KAAM;QACrB,cAAc,EAAE,KAAK;QACrB,WAAW,EAAE,GAAG;QAChB,IAAI,EAAE,IAAI;KACX;CAC2B,CAAC;AAElB,QAAA,eAAe,GAAG;IAC7B,4BAA4B,EAAE;QAC5B,SAAS,EAAE,IAAI;QACf,aAAa,EAAE,MAAO;QACtB,cAAc,EAAE,IAAI;KACrB;IACD,4BAA4B,EAAE;QAC5B,SAAS,EAAE,IAAI;QACf,aAAa,EAAE,MAAO;QACtB,cAAc,EAAE,IAAI;KACrB;IACD,2BAA2B,EAAE;QAC3B,SAAS,EAAE,IAAI;QACf,aAAa,EAAE,MAAO;QACtB,cAAc,EAAE,KAAK;KACtB;IACD,wBAAwB,EAAE;QACxB,SAAS,EAAE,IAAI;QACf,aAAa,EAAE,MAAO;QACtB,cAAc,EAAE,IAAI;KACrB;IACD,yBAAyB,EAAE;QACzB,SAAS,EAAE,IAAI;QACf,aAAa,EAAE,MAAO;QACtB,cAAc,EAAE,IAAI;KACrB;CAC2B,CAAC,CAAC,sDAAsD;AAEzE,QAAA,kBAAkB,GAAG;IAChC,SAAS,EAAE;QACT,SAAS,EAAE,MAAO;QAClB,aAAa,EAAE,MAAO;QACtB,cAAc,EAAE,KAAK;KACtB;IACD,6BAA6B;IAC7B,EAAE,EAAE;QACF,SAAS,EAAE,MAAO;QAClB,aAAa,EAAE,MAAO;QACtB,cAAc,EAAE,IAAI;KACrB;IACD,YAAY,EAAE;QACZ,SAAS,EAAE,KAAM;QACjB,aAAa,EAAE,MAAO;QACtB,cAAc,EAAE,IAAI;KACrB;IACD,SAAS,EAAE;QACT,SAAS,EAAE,KAAM;QACjB,aAAa,EAAE,MAAO;QACtB,cAAc,EAAE,IAAI;KACrB;IACD,QAAQ,EAAE;QACR,SAAS,EAAE,IAAK;QAChB,aAAa,EAAE,MAAO;QACtB,cAAc,EAAE,IAAI;KACrB;IACD,aAAa,EAAE;QACb,SAAS,EAAE,KAAM;QACjB,aAAa,EAAE,MAAO;QACtB,cAAc,EAAE,IAAI;KACrB;IACD,iBAAiB,EAAE;QACjB,SAAS,EAAE,KAAM;QACjB,aAAa,EAAE,MAAO;QACtB,cAAc,EAAE,IAAI;KACrB;CAC2B,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { OpenAICompatibleProvider } from '@ai-sdk/openai-compatible';
|
|
2
|
-
import { LanguageModelV1 } from 'ai';
|
|
3
|
-
import { IAIBackServiceOption } from '@opensumi/ide-core-common';
|
|
4
|
-
import { BaseLanguageModel } from '../base-language-model';
|
|
5
|
-
export declare class OpenAICompatibleModel extends BaseLanguageModel {
|
|
6
|
-
protected initializeProvider(options: IAIBackServiceOption): OpenAICompatibleProvider;
|
|
7
|
-
protected getModelIdentifier(provider: OpenAICompatibleProvider, modelId?: string): LanguageModelV1;
|
|
8
|
-
protected getModelInfo(): undefined;
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=openai-compatible-language-model.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openai-compatible-language-model.d.ts","sourceRoot":"","sources":["../../../src/node/openai-compatible/openai-compatible-language-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAA0B,MAAM,2BAA2B,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AAGrC,OAAO,EAA6B,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAE5F,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,qBACa,qBAAsB,SAAQ,iBAAiB;IAC1D,SAAS,CAAC,kBAAkB,CAAC,OAAO,EAAE,oBAAoB,GAAG,wBAAwB;IAYrF,SAAS,CAAC,kBAAkB,CAAC,QAAQ,EAAE,wBAAwB,EAAE,OAAO,SAAa,GAAG,eAAe;IAIvG,SAAS,CAAC,YAAY;CAGvB"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.OpenAICompatibleModel = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const openai_compatible_1 = require("@ai-sdk/openai-compatible");
|
|
6
|
-
const di_1 = require("@opensumi/di");
|
|
7
|
-
const ide_core_common_1 = require("@opensumi/ide-core-common");
|
|
8
|
-
const base_language_model_1 = require("../base-language-model");
|
|
9
|
-
let OpenAICompatibleModel = class OpenAICompatibleModel extends base_language_model_1.BaseLanguageModel {
|
|
10
|
-
initializeProvider(options) {
|
|
11
|
-
const apiKey = options.apiKey;
|
|
12
|
-
if (!apiKey) {
|
|
13
|
-
throw new Error(`Please provide OpenAI API Key in preferences (${ide_core_common_1.AINativeSettingSectionsId.OpenaiApiKey})`);
|
|
14
|
-
}
|
|
15
|
-
return (0, openai_compatible_1.createOpenAICompatible)({
|
|
16
|
-
apiKey,
|
|
17
|
-
baseURL: options.baseURL || 'https://dashscope.aliyuncs.com/compatible-mode/v1',
|
|
18
|
-
name: 'openai',
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
getModelIdentifier(provider, modelId = 'qwen-max') {
|
|
22
|
-
return provider(modelId);
|
|
23
|
-
}
|
|
24
|
-
getModelInfo() {
|
|
25
|
-
return undefined;
|
|
26
|
-
}
|
|
27
|
-
};
|
|
28
|
-
exports.OpenAICompatibleModel = OpenAICompatibleModel;
|
|
29
|
-
exports.OpenAICompatibleModel = OpenAICompatibleModel = tslib_1.__decorate([
|
|
30
|
-
(0, di_1.Injectable)()
|
|
31
|
-
], OpenAICompatibleModel);
|
|
32
|
-
//# sourceMappingURL=openai-compatible-language-model.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openai-compatible-language-model.js","sourceRoot":"","sources":["../../../src/node/openai-compatible/openai-compatible-language-model.ts"],"names":[],"mappings":";;;;AAAA,iEAA6F;AAG7F,qCAA0C;AAC1C,+DAA4F;AAE5F,gEAA2D;AAGpD,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,uCAAiB;IAChD,kBAAkB,CAAC,OAA6B;QACxD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC9B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,iDAAiD,2CAAyB,CAAC,YAAY,GAAG,CAAC,CAAC;QAC9G,CAAC;QACD,OAAO,IAAA,0CAAsB,EAAC;YAC5B,MAAM;YACN,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,mDAAmD;YAC/E,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;IACL,CAAC;IAES,kBAAkB,CAAC,QAAkC,EAAE,OAAO,GAAG,UAAU;QACnF,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAES,YAAY;QACpB,OAAO,SAAS,CAAC;IACnB,CAAC;CACF,CAAA;AApBY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,eAAU,GAAE;GACA,qBAAqB,CAoBjC"}
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import React, { useEffect, useMemo, useState } from 'react';
|
|
2
|
-
|
|
3
|
-
import { LabelService, URI, path, useInjectable } from '@opensumi/ide-core-browser';
|
|
4
|
-
import { WorkbenchEditorService } from '@opensumi/ide-editor';
|
|
5
|
-
import { IWorkspaceService } from '@opensumi/ide-workspace';
|
|
6
|
-
|
|
7
|
-
import { IChatInternalService } from '../../../../common';
|
|
8
|
-
import { ChatInternalService } from '../../../chat/chat.internal.service';
|
|
9
|
-
|
|
10
|
-
import styles from './index.module.less';
|
|
11
|
-
|
|
12
|
-
interface SearchResultProps {
|
|
13
|
-
args: any;
|
|
14
|
-
toolCallId: string;
|
|
15
|
-
messageId: string;
|
|
16
|
-
toolName: string;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export const FileSearchToolComponent: React.FC<SearchResultProps> = ({ args, toolCallId, messageId }) => (
|
|
20
|
-
<SearchResult args={args} toolCallId={toolCallId} messageId={messageId} toolName='fileSearch' />
|
|
21
|
-
);
|
|
22
|
-
|
|
23
|
-
export const GrepSearchToolComponent: React.FC<SearchResultProps> = ({ args, toolCallId, messageId }) => (
|
|
24
|
-
<SearchResult args={args} toolCallId={toolCallId} messageId={messageId} toolName='grepSearch' />
|
|
25
|
-
);
|
|
26
|
-
|
|
27
|
-
const SearchResult: React.FC<SearchResultProps> = ({ args, toolCallId, toolName, messageId }) => {
|
|
28
|
-
const [isExpanded, setIsExpanded] = useState(false);
|
|
29
|
-
const labelService = useInjectable<LabelService>(LabelService);
|
|
30
|
-
const editorService = useInjectable<WorkbenchEditorService>(WorkbenchEditorService);
|
|
31
|
-
const workspaceService = useInjectable<IWorkspaceService>(IWorkspaceService);
|
|
32
|
-
const workspaceRoot = useMemo(() => URI.parse(workspaceService.tryGetRoots()?.[0]?.uri), []);
|
|
33
|
-
|
|
34
|
-
const chatService = useInjectable<ChatInternalService>(IChatInternalService);
|
|
35
|
-
const [files, setFiles] = useState<string[]>(
|
|
36
|
-
chatService.sessionModel.history.getMessageAdditional(messageId)?.[toolCallId]?.files || [],
|
|
37
|
-
);
|
|
38
|
-
useEffect(() => {
|
|
39
|
-
const toDispose = chatService.sessionModel.history.onMessageAdditionalChange((additional) => {
|
|
40
|
-
setFiles(additional[toolCallId]?.files || []);
|
|
41
|
-
});
|
|
42
|
-
return () => {
|
|
43
|
-
toDispose.dispose();
|
|
44
|
-
};
|
|
45
|
-
}, []);
|
|
46
|
-
|
|
47
|
-
const handleFileClick = (uri: URI) => {
|
|
48
|
-
// 处理文件点击跳转
|
|
49
|
-
editorService.open(uri);
|
|
50
|
-
};
|
|
51
|
-
|
|
52
|
-
const parsedFiles = useMemo(
|
|
53
|
-
() =>
|
|
54
|
-
files.map((file) => {
|
|
55
|
-
const uri = URI.parse(file);
|
|
56
|
-
const iconClass = labelService.getIcon(uri);
|
|
57
|
-
return {
|
|
58
|
-
iconClass,
|
|
59
|
-
name: uri.path.base,
|
|
60
|
-
path: path.relative(workspaceRoot.codeUri.fsPath, uri.path.dir.toString()),
|
|
61
|
-
};
|
|
62
|
-
}),
|
|
63
|
-
[files],
|
|
64
|
-
);
|
|
65
|
-
|
|
66
|
-
return (
|
|
67
|
-
<div className={styles.container}>
|
|
68
|
-
<div className={styles.header} onClick={() => setIsExpanded(!isExpanded)}>
|
|
69
|
-
<span style={{ transform: `rotate(${isExpanded ? '90deg' : '0deg'})` }}>▶</span>
|
|
70
|
-
<span>
|
|
71
|
-
{toolName === 'fileSearch' ? `Searched files "${args.query}"` : `Grepped codebase "${args.query}"`} ·{' '}
|
|
72
|
-
{files.length} files
|
|
73
|
-
</span>
|
|
74
|
-
</div>
|
|
75
|
-
{isExpanded && (
|
|
76
|
-
<ul className={styles.fileList}>
|
|
77
|
-
{parsedFiles.map((file, index) => (
|
|
78
|
-
<li
|
|
79
|
-
key={index}
|
|
80
|
-
className={styles.fileItem}
|
|
81
|
-
onClick={() => handleFileClick(URI.file(path.join(workspaceRoot.codeUri.fsPath, file.path, file.name)))}
|
|
82
|
-
>
|
|
83
|
-
<span className={file.iconClass}></span>
|
|
84
|
-
<span style={{ flex: 1 }}>{file.name}</span>
|
|
85
|
-
<span className={styles.filePath}>{file.path}</span>
|
|
86
|
-
</li>
|
|
87
|
-
))}
|
|
88
|
-
</ul>
|
|
89
|
-
)}
|
|
90
|
-
</div>
|
|
91
|
-
);
|
|
92
|
-
};
|
package/src/common/model.ts
DELETED
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
export interface ModelInfo {
|
|
2
|
-
maxTokens?: number;
|
|
3
|
-
contextWindow?: number;
|
|
4
|
-
supportsImages?: boolean;
|
|
5
|
-
temperature?: number;
|
|
6
|
-
topP?: number;
|
|
7
|
-
topK?: number;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export const deepSeekModels = {
|
|
11
|
-
'deepseek-chat': {
|
|
12
|
-
maxTokens: 8_000,
|
|
13
|
-
contextWindow: 64_000,
|
|
14
|
-
supportsImages: false,
|
|
15
|
-
},
|
|
16
|
-
'deepseek-reasoner': {
|
|
17
|
-
maxTokens: 8_000,
|
|
18
|
-
contextWindow: 64_000,
|
|
19
|
-
supportsImages: false,
|
|
20
|
-
temperature: 0.7,
|
|
21
|
-
topP: 0.95,
|
|
22
|
-
},
|
|
23
|
-
} as Record<string, ModelInfo>;
|
|
24
|
-
|
|
25
|
-
export const anthropicModels = {
|
|
26
|
-
'claude-3-7-sonnet-20250219': {
|
|
27
|
-
maxTokens: 8192,
|
|
28
|
-
contextWindow: 200_000,
|
|
29
|
-
supportsImages: true,
|
|
30
|
-
},
|
|
31
|
-
'claude-3-5-sonnet-20241022': {
|
|
32
|
-
maxTokens: 8192,
|
|
33
|
-
contextWindow: 200_000,
|
|
34
|
-
supportsImages: true,
|
|
35
|
-
},
|
|
36
|
-
'claude-3-5-haiku-20241022': {
|
|
37
|
-
maxTokens: 8192,
|
|
38
|
-
contextWindow: 200_000,
|
|
39
|
-
supportsImages: false,
|
|
40
|
-
},
|
|
41
|
-
'claude-3-opus-20240229': {
|
|
42
|
-
maxTokens: 4096,
|
|
43
|
-
contextWindow: 200_000,
|
|
44
|
-
supportsImages: true,
|
|
45
|
-
},
|
|
46
|
-
'claude-3-haiku-20240307': {
|
|
47
|
-
maxTokens: 4096,
|
|
48
|
-
contextWindow: 200_000,
|
|
49
|
-
supportsImages: true,
|
|
50
|
-
},
|
|
51
|
-
} as Record<string, ModelInfo>; // as const assertion makes the object deeply readonly
|
|
52
|
-
|
|
53
|
-
export const openAiNativeModels = {
|
|
54
|
-
'o3-mini': {
|
|
55
|
-
maxTokens: 100_000,
|
|
56
|
-
contextWindow: 200_000,
|
|
57
|
-
supportsImages: false,
|
|
58
|
-
},
|
|
59
|
-
// don't support tool use yet
|
|
60
|
-
o1: {
|
|
61
|
-
maxTokens: 100_000,
|
|
62
|
-
contextWindow: 200_000,
|
|
63
|
-
supportsImages: true,
|
|
64
|
-
},
|
|
65
|
-
'o1-preview': {
|
|
66
|
-
maxTokens: 32_768,
|
|
67
|
-
contextWindow: 128_000,
|
|
68
|
-
supportsImages: true,
|
|
69
|
-
},
|
|
70
|
-
'o1-mini': {
|
|
71
|
-
maxTokens: 65_536,
|
|
72
|
-
contextWindow: 128_000,
|
|
73
|
-
supportsImages: true,
|
|
74
|
-
},
|
|
75
|
-
'gpt-4o': {
|
|
76
|
-
maxTokens: 4_096,
|
|
77
|
-
contextWindow: 128_000,
|
|
78
|
-
supportsImages: true,
|
|
79
|
-
},
|
|
80
|
-
'gpt-4o-mini': {
|
|
81
|
-
maxTokens: 16_384,
|
|
82
|
-
contextWindow: 128_000,
|
|
83
|
-
supportsImages: true,
|
|
84
|
-
},
|
|
85
|
-
'gpt-4.5-preview': {
|
|
86
|
-
maxTokens: 16_384,
|
|
87
|
-
contextWindow: 128_000,
|
|
88
|
-
supportsImages: true,
|
|
89
|
-
},
|
|
90
|
-
} as Record<string, ModelInfo>;
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { OpenAICompatibleProvider, createOpenAICompatible } from '@ai-sdk/openai-compatible';
|
|
2
|
-
import { LanguageModelV1 } from 'ai';
|
|
3
|
-
|
|
4
|
-
import { Injectable } from '@opensumi/di';
|
|
5
|
-
import { AINativeSettingSectionsId, IAIBackServiceOption } from '@opensumi/ide-core-common';
|
|
6
|
-
|
|
7
|
-
import { BaseLanguageModel } from '../base-language-model';
|
|
8
|
-
|
|
9
|
-
@Injectable()
|
|
10
|
-
export class OpenAICompatibleModel extends BaseLanguageModel {
|
|
11
|
-
protected initializeProvider(options: IAIBackServiceOption): OpenAICompatibleProvider {
|
|
12
|
-
const apiKey = options.apiKey;
|
|
13
|
-
if (!apiKey) {
|
|
14
|
-
throw new Error(`Please provide OpenAI API Key in preferences (${AINativeSettingSectionsId.OpenaiApiKey})`);
|
|
15
|
-
}
|
|
16
|
-
return createOpenAICompatible({
|
|
17
|
-
apiKey,
|
|
18
|
-
baseURL: options.baseURL || 'https://dashscope.aliyuncs.com/compatible-mode/v1',
|
|
19
|
-
name: 'openai',
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
protected getModelIdentifier(provider: OpenAICompatibleProvider, modelId = 'qwen-max'): LanguageModelV1 {
|
|
24
|
-
return provider(modelId);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
protected getModelInfo() {
|
|
28
|
-
return undefined;
|
|
29
|
-
}
|
|
30
|
-
}
|