@theia/ai-anthropic 1.60.0-next.47 → 1.61.0-next.8
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/anthropic-frontend-application-contribution.d.ts +1 -5
- package/lib/browser/anthropic-frontend-application-contribution.d.ts.map +1 -1
- package/lib/browser/anthropic-frontend-application-contribution.js +4 -26
- package/lib/browser/anthropic-frontend-application-contribution.js.map +1 -1
- package/lib/common/anthropic-language-models-manager.d.ts +0 -6
- package/lib/common/anthropic-language-models-manager.d.ts.map +1 -1
- package/lib/node/anthropic-language-model.d.ts +6 -6
- package/lib/node/anthropic-language-model.d.ts.map +1 -1
- package/lib/node/anthropic-language-model.js +75 -29
- package/lib/node/anthropic-language-model.js.map +1 -1
- package/lib/node/anthropic-language-models-manager-impl.d.ts +2 -1
- package/lib/node/anthropic-language-models-manager-impl.d.ts.map +1 -1
- package/lib/node/anthropic-language-models-manager-impl.js +5 -2
- package/lib/node/anthropic-language-models-manager-impl.js.map +1 -1
- package/package.json +6 -6
- package/src/browser/anthropic-frontend-application-contribution.ts +4 -36
- package/src/common/anthropic-language-models-manager.ts +1 -4
- package/src/node/anthropic-language-model.ts +81 -34
- package/src/node/anthropic-language-models-manager-impl.ts +6 -4
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
import { FrontendApplicationContribution, PreferenceService } from '@theia/core/lib/browser';
|
|
2
2
|
import { AnthropicLanguageModelsManager, AnthropicModelDescription } from '../common';
|
|
3
|
-
import { RequestSetting } from '@theia/ai-core/lib/browser/ai-core-preferences';
|
|
4
3
|
export declare class AnthropicFrontendApplicationContribution implements FrontendApplicationContribution {
|
|
5
4
|
protected preferenceService: PreferenceService;
|
|
6
5
|
protected manager: AnthropicLanguageModelsManager;
|
|
7
6
|
protected prevModels: string[];
|
|
8
7
|
onStart(): void;
|
|
9
8
|
protected handleModelChanges(newModels: string[]): void;
|
|
10
|
-
|
|
11
|
-
protected handleRequestSettingsChanges(newSettings: RequestSetting[]): void;
|
|
12
|
-
protected createAnthropicModelDescription(modelId: string, requestSettings: RequestSetting[]): AnthropicModelDescription;
|
|
13
|
-
protected getMatchingRequestSetting(modelId: string, providerId: string, requestSettings: RequestSetting[]): RequestSetting | undefined;
|
|
9
|
+
protected createAnthropicModelDescription(modelId: string): AnthropicModelDescription;
|
|
14
10
|
}
|
|
15
11
|
//# sourceMappingURL=anthropic-frontend-application-contribution.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic-frontend-application-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/anthropic-frontend-application-contribution.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,+BAA+B,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE7F,OAAO,EAAE,8BAA8B,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"anthropic-frontend-application-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/anthropic-frontend-application-contribution.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,+BAA+B,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE7F,OAAO,EAAE,8BAA8B,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAatF,qBACa,wCAAyC,YAAW,+BAA+B;IAG5F,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAG/C,SAAS,CAAC,OAAO,EAAE,8BAA8B,CAAC;IAElD,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,CAAM;IAEpC,OAAO,IAAI,IAAI;IAmBf,SAAS,CAAC,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI;IAYvD,SAAS,CAAC,+BAA+B,CAAC,OAAO,EAAE,MAAM,GAAG,yBAAyB;CAiBxF"}
|
|
@@ -21,7 +21,6 @@ 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 anthropic_preferences_1 = require("./anthropic-preferences");
|
|
24
|
-
const ai_core_preferences_1 = require("@theia/ai-core/lib/browser/ai-core-preferences");
|
|
25
24
|
const ANTHROPIC_PROVIDER_ID = 'anthropic';
|
|
26
25
|
// Model-specific maxTokens values
|
|
27
26
|
const DEFAULT_MODEL_MAX_TOKENS = {
|
|
@@ -39,8 +38,7 @@ let AnthropicFrontendApplicationContribution = class AnthropicFrontendApplicatio
|
|
|
39
38
|
const apiKey = this.preferenceService.get(anthropic_preferences_1.API_KEY_PREF, undefined);
|
|
40
39
|
this.manager.setApiKey(apiKey);
|
|
41
40
|
const models = this.preferenceService.get(anthropic_preferences_1.MODELS_PREF, []);
|
|
42
|
-
|
|
43
|
-
this.manager.createOrUpdateLanguageModels(...models.map(modelId => this.createAnthropicModelDescription(modelId, requestSettings)));
|
|
41
|
+
this.manager.createOrUpdateLanguageModels(...models.map(modelId => this.createAnthropicModelDescription(modelId)));
|
|
44
42
|
this.prevModels = [...models];
|
|
45
43
|
this.preferenceService.onPreferenceChanged(event => {
|
|
46
44
|
if (event.preferenceName === anthropic_preferences_1.API_KEY_PREF) {
|
|
@@ -49,9 +47,6 @@ let AnthropicFrontendApplicationContribution = class AnthropicFrontendApplicatio
|
|
|
49
47
|
else if (event.preferenceName === anthropic_preferences_1.MODELS_PREF) {
|
|
50
48
|
this.handleModelChanges(event.newValue);
|
|
51
49
|
}
|
|
52
|
-
else if (event.preferenceName === ai_core_preferences_1.PREFERENCE_NAME_REQUEST_SETTINGS) {
|
|
53
|
-
this.handleRequestSettingsChanges(event.newValue);
|
|
54
|
-
}
|
|
55
50
|
});
|
|
56
51
|
});
|
|
57
52
|
}
|
|
@@ -61,40 +56,23 @@ let AnthropicFrontendApplicationContribution = class AnthropicFrontendApplicatio
|
|
|
61
56
|
const modelsToRemove = [...oldModels].filter(model => !updatedModels.has(model));
|
|
62
57
|
const modelsToAdd = [...updatedModels].filter(model => !oldModels.has(model));
|
|
63
58
|
this.manager.removeLanguageModels(...modelsToRemove.map(model => `${ANTHROPIC_PROVIDER_ID}/${model}`));
|
|
64
|
-
|
|
65
|
-
this.manager.createOrUpdateLanguageModels(...modelsToAdd.map(modelId => this.createAnthropicModelDescription(modelId, requestSettings)));
|
|
59
|
+
this.manager.createOrUpdateLanguageModels(...modelsToAdd.map(modelId => this.createAnthropicModelDescription(modelId)));
|
|
66
60
|
this.prevModels = newModels;
|
|
67
61
|
}
|
|
68
|
-
|
|
69
|
-
return this.preferenceService.get(ai_core_preferences_1.PREFERENCE_NAME_REQUEST_SETTINGS, []);
|
|
70
|
-
}
|
|
71
|
-
handleRequestSettingsChanges(newSettings) {
|
|
72
|
-
const models = this.preferenceService.get(anthropic_preferences_1.MODELS_PREF, []);
|
|
73
|
-
this.manager.createOrUpdateLanguageModels(...models.map(modelId => this.createAnthropicModelDescription(modelId, newSettings)));
|
|
74
|
-
}
|
|
75
|
-
createAnthropicModelDescription(modelId, requestSettings) {
|
|
62
|
+
createAnthropicModelDescription(modelId) {
|
|
76
63
|
const id = `${ANTHROPIC_PROVIDER_ID}/${modelId}`;
|
|
77
|
-
const modelRequestSetting = this.getMatchingRequestSetting(modelId, ANTHROPIC_PROVIDER_ID, requestSettings);
|
|
78
64
|
const maxTokens = DEFAULT_MODEL_MAX_TOKENS[modelId];
|
|
79
65
|
const description = {
|
|
80
66
|
id: id,
|
|
81
67
|
model: modelId,
|
|
82
68
|
apiKey: true,
|
|
83
|
-
enableStreaming: true
|
|
84
|
-
defaultRequestSettings: modelRequestSetting === null || modelRequestSetting === void 0 ? void 0 : modelRequestSetting.requestSettings
|
|
69
|
+
enableStreaming: true
|
|
85
70
|
};
|
|
86
71
|
if (maxTokens !== undefined) {
|
|
87
72
|
description.maxTokens = maxTokens;
|
|
88
73
|
}
|
|
89
74
|
return description;
|
|
90
75
|
}
|
|
91
|
-
getMatchingRequestSetting(modelId, providerId, requestSettings) {
|
|
92
|
-
const matchingSettings = requestSettings.filter(setting => (!setting.providerId || setting.providerId === providerId) && setting.modelId === modelId);
|
|
93
|
-
if (matchingSettings.length > 1) {
|
|
94
|
-
console.warn(`Multiple entries found for provider "${providerId}" and model "${modelId}". Using the first match.`);
|
|
95
|
-
}
|
|
96
|
-
return matchingSettings[0];
|
|
97
|
-
}
|
|
98
76
|
};
|
|
99
77
|
exports.AnthropicFrontendApplicationContribution = AnthropicFrontendApplicationContribution;
|
|
100
78
|
tslib_1.__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic-frontend-application-contribution.js","sourceRoot":"","sources":["../../src/browser/anthropic-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,sCAAsF;AACtF,mEAAoE;
|
|
1
|
+
{"version":3,"file":"anthropic-frontend-application-contribution.js","sourceRoot":"","sources":["../../src/browser/anthropic-frontend-application-contribution.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,12 +21,6 @@ export interface AnthropicModelDescription {
|
|
|
21
21
|
* Maximum number of tokens to generate. Default is 4096.
|
|
22
22
|
*/
|
|
23
23
|
maxTokens?: number;
|
|
24
|
-
/**
|
|
25
|
-
* Default request settings for the Anthropic model.
|
|
26
|
-
*/
|
|
27
|
-
defaultRequestSettings?: {
|
|
28
|
-
[key: string]: unknown;
|
|
29
|
-
};
|
|
30
24
|
}
|
|
31
25
|
export interface AnthropicLanguageModelsManager {
|
|
32
26
|
apiKey: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic-language-models-manager.d.ts","sourceRoot":"","sources":["../../src/common/anthropic-language-models-manager.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,sCAAsC,+CAA+C,CAAC;AACnG,eAAO,MAAM,8BAA8B,eAA2C,CAAC;AACvF,MAAM,WAAW,yBAAyB;IACtC;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAClC;;OAEG;IACH,eAAe,EAAE,OAAO,CAAC;IACzB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"anthropic-language-models-manager.d.ts","sourceRoot":"","sources":["../../src/common/anthropic-language-models-manager.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,sCAAsC,+CAA+C,CAAC;AACnG,eAAO,MAAM,8BAA8B,eAA2C,CAAC;AACvF,MAAM,WAAW,yBAAyB;IACtC;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAClC;;OAEG;IACH,eAAe,EAAE,OAAO,CAAC;IACzB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CAEtB;AACD,MAAM,WAAW,8BAA8B;IAC3C,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACzC,4BAA4B,CAAC,GAAG,MAAM,EAAE,yBAAyB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpF,oBAAoB,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;CACpD"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { LanguageModel, LanguageModelRequest, LanguageModelResponse, LanguageModelStreamResponse, LanguageModelTextResponse } from '@theia/ai-core';
|
|
1
|
+
import { LanguageModel, LanguageModelRequest, LanguageModelResponse, LanguageModelStreamResponse, LanguageModelTextResponse, TokenUsageService, UserRequest } from '@theia/ai-core';
|
|
2
2
|
import { CancellationToken } from '@theia/core';
|
|
3
3
|
import { Anthropic } from '@anthropic-ai/sdk';
|
|
4
4
|
export declare const DEFAULT_MAX_TOKENS = 4096;
|
|
@@ -11,18 +11,18 @@ export declare class AnthropicModel implements LanguageModel {
|
|
|
11
11
|
model: string;
|
|
12
12
|
enableStreaming: boolean;
|
|
13
13
|
apiKey: () => string | undefined;
|
|
14
|
-
defaultRequestSettings?: Readonly<Record<string, unknown>> | undefined;
|
|
15
14
|
maxTokens: number;
|
|
16
|
-
|
|
15
|
+
protected readonly tokenUsageService?: TokenUsageService | undefined;
|
|
16
|
+
constructor(id: string, model: string, enableStreaming: boolean, apiKey: () => string | undefined, maxTokens?: number, tokenUsageService?: TokenUsageService | undefined);
|
|
17
17
|
protected getSettings(request: LanguageModelRequest): Readonly<Record<string, unknown>>;
|
|
18
|
-
request(request:
|
|
18
|
+
request(request: UserRequest, cancellationToken?: CancellationToken): Promise<LanguageModelResponse>;
|
|
19
19
|
protected formatToolCallResult(result: unknown): string | Array<{
|
|
20
20
|
type: 'text';
|
|
21
21
|
text: string;
|
|
22
22
|
}>;
|
|
23
|
-
protected handleStreamingRequest(anthropic: Anthropic, request:
|
|
23
|
+
protected handleStreamingRequest(anthropic: Anthropic, request: UserRequest, cancellationToken?: CancellationToken, toolMessages?: readonly Anthropic.Messages.MessageParam[]): Promise<LanguageModelStreamResponse>;
|
|
24
24
|
private createTools;
|
|
25
|
-
protected handleNonStreamingRequest(anthropic: Anthropic, request:
|
|
25
|
+
protected handleNonStreamingRequest(anthropic: Anthropic, request: UserRequest): Promise<LanguageModelTextResponse>;
|
|
26
26
|
protected initializeAnthropic(): Anthropic;
|
|
27
27
|
}
|
|
28
28
|
//# sourceMappingURL=anthropic-language-model.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic-language-model.d.ts","sourceRoot":"","sources":["../../src/node/anthropic-language-model.ts"],"names":[],"mappings":"AAgBA,OAAO,EACH,aAAa,EACb,oBAAoB,EAEpB,qBAAqB,EACrB,2BAA2B,EAE3B,yBAAyB,
|
|
1
|
+
{"version":3,"file":"anthropic-language-model.d.ts","sourceRoot":"","sources":["../../src/node/anthropic-language-model.ts"],"names":[],"mappings":"AAgBA,OAAO,EACH,aAAa,EACb,oBAAoB,EAEpB,qBAAqB,EACrB,2BAA2B,EAE3B,yBAAyB,EACzB,iBAAiB,EAEjB,WAAW,EACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAW,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAG9C,eAAO,MAAM,kBAAkB,OAAO,CAAC;AA+CvC,eAAO,MAAM,wBAAwB,eAAqC,CAAC;AAgB3E;;GAEG;AACH,qBAAa,cAAe,YAAW,aAAa;aAG5B,EAAE,EAAE,MAAM;IACnB,KAAK,EAAE,MAAM;IACb,eAAe,EAAE,OAAO;IACxB,MAAM,EAAE,MAAM,MAAM,GAAG,SAAS;IAChC,SAAS,EAAE,MAAM;IACxB,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC;gBALrB,EAAE,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,eAAe,EAAE,OAAO,EACxB,MAAM,EAAE,MAAM,MAAM,GAAG,SAAS,EAChC,SAAS,GAAE,MAA2B,EAC1B,iBAAiB,CAAC,+BAAmB;IAG5D,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,oBAAoB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAIjF,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAkB1G,SAAS,CAAC,oBAAoB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;cAiB/E,sBAAsB,CAClC,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,WAAW,EACpB,iBAAiB,CAAC,EAAE,iBAAiB,EACrC,YAAY,CAAC,EAAE,SAAS,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,GAC1D,OAAO,CAAC,2BAA2B,CAAC;IAsIvC,OAAO,CAAC,WAAW;cAWH,yBAAyB,CACrC,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,WAAW,GACrB,OAAO,CAAC,yBAAyB,CAAC;IAoCrC,SAAS,CAAC,mBAAmB,IAAI,SAAS;CAQ7C"}
|
|
@@ -16,13 +16,24 @@
|
|
|
16
16
|
// *****************************************************************************
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
18
|
exports.AnthropicModel = exports.AnthropicModelIdentifier = exports.DEFAULT_MAX_TOKENS = void 0;
|
|
19
|
+
const ai_core_1 = require("@theia/ai-core");
|
|
19
20
|
const core_1 = require("@theia/core");
|
|
20
21
|
const sdk_1 = require("@anthropic-ai/sdk");
|
|
21
22
|
exports.DEFAULT_MAX_TOKENS = 4096;
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
const createMessageContent = (message) => {
|
|
24
|
+
if (ai_core_1.LanguageModelMessage.isTextMessage(message)) {
|
|
25
|
+
return message.text;
|
|
26
|
+
}
|
|
27
|
+
else if (ai_core_1.LanguageModelMessage.isThinkingMessage(message)) {
|
|
28
|
+
return [{ signature: message.signature, thinking: message.thinking, type: 'thinking' }];
|
|
29
|
+
}
|
|
30
|
+
else if (ai_core_1.LanguageModelMessage.isToolUseMessage(message)) {
|
|
31
|
+
return [{ id: message.id, input: message.input, name: message.name, type: 'tool_use' }];
|
|
32
|
+
}
|
|
33
|
+
else if (ai_core_1.LanguageModelMessage.isToolResultMessage(message)) {
|
|
34
|
+
return [{ type: 'tool_result', tool_use_id: message.tool_use_id }];
|
|
35
|
+
}
|
|
36
|
+
throw new Error(`Unknown message type:'${JSON.stringify(message)}'`);
|
|
26
37
|
};
|
|
27
38
|
/**
|
|
28
39
|
* Transforms Theia language model messages to Anthropic API format
|
|
@@ -32,12 +43,12 @@ const EMPTY_INPUT_SCHEMA = {
|
|
|
32
43
|
function transformToAnthropicParams(messages) {
|
|
33
44
|
// Extract the system message (if any), as it is a separate parameter in the Anthropic API.
|
|
34
45
|
const systemMessageObj = messages.find(message => message.actor === 'system');
|
|
35
|
-
const systemMessage = systemMessageObj
|
|
46
|
+
const systemMessage = systemMessageObj && ai_core_1.LanguageModelMessage.isTextMessage(systemMessageObj) && systemMessageObj.text || undefined;
|
|
36
47
|
const convertedMessages = messages
|
|
37
48
|
.filter(message => message.actor !== 'system')
|
|
38
49
|
.map(message => ({
|
|
39
50
|
role: toAnthropicRole(message),
|
|
40
|
-
content: message
|
|
51
|
+
content: createMessageContent(message)
|
|
41
52
|
}));
|
|
42
53
|
return {
|
|
43
54
|
messages: convertedMessages,
|
|
@@ -62,17 +73,17 @@ function toAnthropicRole(message) {
|
|
|
62
73
|
* Implements the Anthropic language model integration for Theia
|
|
63
74
|
*/
|
|
64
75
|
class AnthropicModel {
|
|
65
|
-
constructor(id, model, enableStreaming, apiKey,
|
|
76
|
+
constructor(id, model, enableStreaming, apiKey, maxTokens = exports.DEFAULT_MAX_TOKENS, tokenUsageService) {
|
|
66
77
|
this.id = id;
|
|
67
78
|
this.model = model;
|
|
68
79
|
this.enableStreaming = enableStreaming;
|
|
69
80
|
this.apiKey = apiKey;
|
|
70
|
-
this.defaultRequestSettings = defaultRequestSettings;
|
|
71
81
|
this.maxTokens = maxTokens;
|
|
82
|
+
this.tokenUsageService = tokenUsageService;
|
|
72
83
|
}
|
|
73
84
|
getSettings(request) {
|
|
74
|
-
var _a
|
|
75
|
-
return (
|
|
85
|
+
var _a;
|
|
86
|
+
return (_a = request.settings) !== null && _a !== void 0 ? _a : {};
|
|
76
87
|
}
|
|
77
88
|
async request(request, cancellationToken) {
|
|
78
89
|
var _a;
|
|
@@ -112,6 +123,7 @@ class AnthropicModel {
|
|
|
112
123
|
max_tokens: this.maxTokens,
|
|
113
124
|
messages: [...messages, ...(toolMessages !== null && toolMessages !== void 0 ? toolMessages : [])],
|
|
114
125
|
tools,
|
|
126
|
+
tool_choice: tools ? { type: 'auto' } : undefined,
|
|
115
127
|
model: this.model,
|
|
116
128
|
...(systemMessage && { system: systemMessage }),
|
|
117
129
|
...settings
|
|
@@ -123,11 +135,17 @@ class AnthropicModel {
|
|
|
123
135
|
const that = this;
|
|
124
136
|
const asyncIterator = {
|
|
125
137
|
async *[Symbol.asyncIterator]() {
|
|
138
|
+
var _a;
|
|
126
139
|
const toolCalls = [];
|
|
127
140
|
let toolCall;
|
|
141
|
+
const currentMessages = [];
|
|
142
|
+
let currentMessage = undefined;
|
|
128
143
|
for await (const event of stream) {
|
|
129
144
|
if (event.type === 'content_block_start') {
|
|
130
145
|
const contentBlock = event.content_block;
|
|
146
|
+
if (contentBlock.type === 'thinking') {
|
|
147
|
+
yield { thought: contentBlock.thinking, signature: (_a = contentBlock.signature) !== null && _a !== void 0 ? _a : '' };
|
|
148
|
+
}
|
|
131
149
|
if (contentBlock.type === 'text') {
|
|
132
150
|
yield { content: contentBlock.text };
|
|
133
151
|
}
|
|
@@ -138,6 +156,12 @@ class AnthropicModel {
|
|
|
138
156
|
}
|
|
139
157
|
else if (event.type === 'content_block_delta') {
|
|
140
158
|
const delta = event.delta;
|
|
159
|
+
if (delta.type === 'thinking_delta') {
|
|
160
|
+
yield { thought: delta.thinking, signature: '' };
|
|
161
|
+
}
|
|
162
|
+
if (delta.type === 'signature_delta') {
|
|
163
|
+
yield { thought: '', signature: delta.signature };
|
|
164
|
+
}
|
|
141
165
|
if (delta.type === 'text_delta') {
|
|
142
166
|
yield { content: delta.text };
|
|
143
167
|
}
|
|
@@ -160,6 +184,24 @@ class AnthropicModel {
|
|
|
160
184
|
throw new Error(`The response was stopped because it exceeded the max token limit of ${event.usage.output_tokens}.`);
|
|
161
185
|
}
|
|
162
186
|
}
|
|
187
|
+
else if (event.type === 'message_start') {
|
|
188
|
+
currentMessages.push(event.message);
|
|
189
|
+
currentMessage = event.message;
|
|
190
|
+
}
|
|
191
|
+
else if (event.type === 'message_stop') {
|
|
192
|
+
if (currentMessage) {
|
|
193
|
+
yield { input_tokens: currentMessage.usage.input_tokens, output_tokens: currentMessage.usage.output_tokens };
|
|
194
|
+
// Record token usage if token usage service is available
|
|
195
|
+
if (that.tokenUsageService && currentMessage.usage) {
|
|
196
|
+
const tokenUsageParams = {
|
|
197
|
+
inputTokens: currentMessage.usage.input_tokens,
|
|
198
|
+
outputTokens: currentMessage.usage.output_tokens,
|
|
199
|
+
requestId: request.requestId
|
|
200
|
+
};
|
|
201
|
+
await that.tokenUsageService.recordTokenUsage(that.id, tokenUsageParams);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
163
205
|
}
|
|
164
206
|
if (toolCalls.length > 0) {
|
|
165
207
|
const toolResult = await Promise.all(toolCalls.map(async (tc) => {
|
|
@@ -173,15 +215,6 @@ class AnthropicModel {
|
|
|
173
215
|
return { finished: true, id: tr.id, result: resultAsString, function: { name: tr.name, arguments: tr.arguments } };
|
|
174
216
|
});
|
|
175
217
|
yield { tool_calls: calls };
|
|
176
|
-
const toolRequestMessage = {
|
|
177
|
-
role: 'assistant',
|
|
178
|
-
content: toolResult.map(call => ({
|
|
179
|
-
type: 'tool_use',
|
|
180
|
-
id: call.id,
|
|
181
|
-
name: call.name,
|
|
182
|
-
input: JSON.parse(call.arguments)
|
|
183
|
-
}))
|
|
184
|
-
};
|
|
185
218
|
const toolResponseMessage = {
|
|
186
219
|
role: 'user',
|
|
187
220
|
content: toolResult.map(call => ({
|
|
@@ -190,7 +223,11 @@ class AnthropicModel {
|
|
|
190
223
|
content: that.formatToolCallResult(call.result)
|
|
191
224
|
}))
|
|
192
225
|
};
|
|
193
|
-
const result = await that.handleStreamingRequest(anthropic, request, cancellationToken, [
|
|
226
|
+
const result = await that.handleStreamingRequest(anthropic, request, cancellationToken, [
|
|
227
|
+
...(toolMessages !== null && toolMessages !== void 0 ? toolMessages : []),
|
|
228
|
+
...currentMessages.map(m => ({ role: m.role, content: m.content })),
|
|
229
|
+
toolResponseMessage
|
|
230
|
+
]);
|
|
194
231
|
for await (const nestedEvent of result.stream) {
|
|
195
232
|
yield nestedEvent;
|
|
196
233
|
}
|
|
@@ -203,15 +240,15 @@ class AnthropicModel {
|
|
|
203
240
|
return { stream: asyncIterator };
|
|
204
241
|
}
|
|
205
242
|
createTools(request) {
|
|
206
|
-
var _a;
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
});
|
|
243
|
+
var _a, _b;
|
|
244
|
+
if (((_a = request.tools) === null || _a === void 0 ? void 0 : _a.length) === 0) {
|
|
245
|
+
return undefined;
|
|
246
|
+
}
|
|
247
|
+
return (_b = request.tools) === null || _b === void 0 ? void 0 : _b.map(tool => ({
|
|
248
|
+
name: tool.name,
|
|
249
|
+
description: tool.description,
|
|
250
|
+
input_schema: tool.parameters
|
|
251
|
+
}));
|
|
215
252
|
}
|
|
216
253
|
async handleNonStreamingRequest(anthropic, request) {
|
|
217
254
|
const settings = this.getSettings(request);
|
|
@@ -226,6 +263,15 @@ class AnthropicModel {
|
|
|
226
263
|
try {
|
|
227
264
|
const response = await anthropic.messages.create(params);
|
|
228
265
|
const textContent = response.content[0];
|
|
266
|
+
// Record token usage if token usage service is available
|
|
267
|
+
if (this.tokenUsageService && response.usage) {
|
|
268
|
+
const tokenUsageParams = {
|
|
269
|
+
inputTokens: response.usage.input_tokens,
|
|
270
|
+
outputTokens: response.usage.output_tokens,
|
|
271
|
+
requestId: request.requestId
|
|
272
|
+
};
|
|
273
|
+
await this.tokenUsageService.recordTokenUsage(this.id, tokenUsageParams);
|
|
274
|
+
}
|
|
229
275
|
if ((textContent === null || textContent === void 0 ? void 0 : textContent.type) === 'text') {
|
|
230
276
|
return { text: textContent.text };
|
|
231
277
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic-language-model.js","sourceRoot":"","sources":["../../src/node/anthropic-language-model.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"anthropic-language-model.js","sourceRoot":"","sources":["../../src/node/anthropic-language-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { LanguageModelRegistry } from '@theia/ai-core';
|
|
1
|
+
import { LanguageModelRegistry, TokenUsageService } from '@theia/ai-core';
|
|
2
2
|
import { AnthropicLanguageModelsManager, AnthropicModelDescription } from '../common';
|
|
3
3
|
export declare class AnthropicLanguageModelsManagerImpl implements AnthropicLanguageModelsManager {
|
|
4
4
|
protected _apiKey: string | undefined;
|
|
5
5
|
protected readonly languageModelRegistry: LanguageModelRegistry;
|
|
6
|
+
protected readonly tokenUsageService: TokenUsageService;
|
|
6
7
|
get apiKey(): string | undefined;
|
|
7
8
|
createOrUpdateLanguageModels(...modelDescriptions: AnthropicModelDescription[]): Promise<void>;
|
|
8
9
|
removeLanguageModels(...modelIds: string[]): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic-language-models-manager-impl.d.ts","sourceRoot":"","sources":["../../src/node/anthropic-language-models-manager-impl.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"anthropic-language-models-manager-impl.d.ts","sourceRoot":"","sources":["../../src/node/anthropic-language-models-manager-impl.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAG1E,OAAO,EAAE,8BAA8B,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAEtF,qBACa,kCAAmC,YAAW,8BAA8B;IAErF,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAGtC,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;IAEK,4BAA4B,CAAC,GAAG,iBAAiB,EAAE,yBAAyB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAyCpG,oBAAoB,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAIjD,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;CAO9C"}
|
|
@@ -45,7 +45,6 @@ let AnthropicLanguageModelsManagerImpl = class AnthropicLanguageModelsManagerImp
|
|
|
45
45
|
model.model = modelDescription.model;
|
|
46
46
|
model.enableStreaming = modelDescription.enableStreaming;
|
|
47
47
|
model.apiKey = apiKeyProvider;
|
|
48
|
-
model.defaultRequestSettings = modelDescription.defaultRequestSettings;
|
|
49
48
|
if (modelDescription.maxTokens !== undefined) {
|
|
50
49
|
model.maxTokens = modelDescription.maxTokens;
|
|
51
50
|
}
|
|
@@ -55,7 +54,7 @@ let AnthropicLanguageModelsManagerImpl = class AnthropicLanguageModelsManagerImp
|
|
|
55
54
|
}
|
|
56
55
|
else {
|
|
57
56
|
this.languageModelRegistry.addLanguageModels([
|
|
58
|
-
new anthropic_language_model_1.AnthropicModel(modelDescription.id, modelDescription.model, modelDescription.enableStreaming, apiKeyProvider, modelDescription.
|
|
57
|
+
new anthropic_language_model_1.AnthropicModel(modelDescription.id, modelDescription.model, modelDescription.enableStreaming, apiKeyProvider, modelDescription.maxTokens, this.tokenUsageService)
|
|
59
58
|
]);
|
|
60
59
|
}
|
|
61
60
|
}
|
|
@@ -77,6 +76,10 @@ tslib_1.__decorate([
|
|
|
77
76
|
(0, inversify_1.inject)(ai_core_1.LanguageModelRegistry),
|
|
78
77
|
tslib_1.__metadata("design:type", Object)
|
|
79
78
|
], AnthropicLanguageModelsManagerImpl.prototype, "languageModelRegistry", void 0);
|
|
79
|
+
tslib_1.__decorate([
|
|
80
|
+
(0, inversify_1.inject)(ai_core_1.TokenUsageService),
|
|
81
|
+
tslib_1.__metadata("design:type", Object)
|
|
82
|
+
], AnthropicLanguageModelsManagerImpl.prototype, "tokenUsageService", void 0);
|
|
80
83
|
exports.AnthropicLanguageModelsManagerImpl = AnthropicLanguageModelsManagerImpl = tslib_1.__decorate([
|
|
81
84
|
(0, inversify_1.injectable)()
|
|
82
85
|
], AnthropicLanguageModelsManagerImpl);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic-language-models-manager-impl.js","sourceRoot":"","sources":["../../src/node/anthropic-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,
|
|
1
|
+
{"version":3,"file":"anthropic-language-models-manager-impl.js","sourceRoot":"","sources":["../../src/node/anthropic-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,yEAAgF;AAIzE,IAAM,kCAAkC,GAAxC,MAAM,kCAAkC;IAU3C,IAAI,MAAM;;QACN,OAAO,MAAA,IAAI,CAAC,OAAO,mCAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,4BAA4B,CAAC,GAAG,iBAA8C;QAChF,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;YAEF,IAAI,KAAK,EAAE,CAAC;gBACR,IAAI,CAAC,CAAC,KAAK,YAAY,yCAAc,CAAC,EAAE,CAAC;oBACrC,OAAO,CAAC,IAAI,CAAC,oBAAoB,gBAAgB,CAAC,EAAE,4BAA4B,CAAC,CAAC;oBAClF,SAAS;gBACb,CAAC;gBACD,KAAK,CAAC,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC;gBACrC,KAAK,CAAC,eAAe,GAAG,gBAAgB,CAAC,eAAe,CAAC;gBACzD,KAAK,CAAC,MAAM,GAAG,cAAc,CAAC;gBAC9B,IAAI,gBAAgB,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;oBAC3C,KAAK,CAAC,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC;gBACjD,CAAC;qBAAM,CAAC;oBACJ,KAAK,CAAC,SAAS,GAAG,6CAAkB,CAAC;gBACzC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC;oBACzC,IAAI,yCAAc,CACd,gBAAgB,CAAC,EAAE,EACnB,gBAAgB,CAAC,KAAK,EACtB,gBAAgB,CAAC,eAAe,EAChC,cAAc,EACd,gBAAgB,CAAC,SAAS,EAC1B,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;CACJ,CAAA;AAlEY,gFAAkC;AAKxB;IADlB,IAAA,kBAAM,EAAC,+BAAqB,CAAC;;iFACkC;AAG7C;IADlB,IAAA,kBAAM,EAAC,2BAAiB,CAAC;;6EAC8B;6CAR/C,kCAAkC;IAD9C,IAAA,sBAAU,GAAE;GACA,kCAAkC,CAkE9C"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/ai-anthropic",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.61.0-next.8+436de3c45",
|
|
4
4
|
"description": "Theia - Anthropic Integration",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@anthropic-ai/sdk": "^0.
|
|
7
|
-
"@theia/ai-core": "1.
|
|
8
|
-
"@theia/core": "1.
|
|
6
|
+
"@anthropic-ai/sdk": "^0.39.0",
|
|
7
|
+
"@theia/ai-core": "1.61.0-next.8+436de3c45",
|
|
8
|
+
"@theia/core": "1.61.0-next.8+436de3c45"
|
|
9
9
|
},
|
|
10
10
|
"publishConfig": {
|
|
11
11
|
"access": "public"
|
|
@@ -41,10 +41,10 @@
|
|
|
41
41
|
"watch": "theiaext watch"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
|
-
"@theia/ext-scripts": "1.
|
|
44
|
+
"@theia/ext-scripts": "1.60.0"
|
|
45
45
|
},
|
|
46
46
|
"nyc": {
|
|
47
47
|
"extends": "../../configs/nyc.json"
|
|
48
48
|
},
|
|
49
|
-
"gitHead": "
|
|
49
|
+
"gitHead": "436de3c4571e0000fdcbbf2e94ddfc992f38ccb2"
|
|
50
50
|
}
|
|
@@ -18,7 +18,6 @@ import { FrontendApplicationContribution, PreferenceService } from '@theia/core/
|
|
|
18
18
|
import { inject, injectable } from '@theia/core/shared/inversify';
|
|
19
19
|
import { AnthropicLanguageModelsManager, AnthropicModelDescription } from '../common';
|
|
20
20
|
import { API_KEY_PREF, MODELS_PREF } from './anthropic-preferences';
|
|
21
|
-
import { PREFERENCE_NAME_REQUEST_SETTINGS, RequestSetting } from '@theia/ai-core/lib/browser/ai-core-preferences';
|
|
22
21
|
|
|
23
22
|
const ANTHROPIC_PROVIDER_ID = 'anthropic';
|
|
24
23
|
|
|
@@ -47,8 +46,7 @@ export class AnthropicFrontendApplicationContribution implements FrontendApplica
|
|
|
47
46
|
this.manager.setApiKey(apiKey);
|
|
48
47
|
|
|
49
48
|
const models = this.preferenceService.get<string[]>(MODELS_PREF, []);
|
|
50
|
-
|
|
51
|
-
this.manager.createOrUpdateLanguageModels(...models.map(modelId => this.createAnthropicModelDescription(modelId, requestSettings)));
|
|
49
|
+
this.manager.createOrUpdateLanguageModels(...models.map(modelId => this.createAnthropicModelDescription(modelId)));
|
|
52
50
|
this.prevModels = [...models];
|
|
53
51
|
|
|
54
52
|
this.preferenceService.onPreferenceChanged(event => {
|
|
@@ -56,8 +54,6 @@ export class AnthropicFrontendApplicationContribution implements FrontendApplica
|
|
|
56
54
|
this.manager.setApiKey(event.newValue);
|
|
57
55
|
} else if (event.preferenceName === MODELS_PREF) {
|
|
58
56
|
this.handleModelChanges(event.newValue as string[]);
|
|
59
|
-
} else if (event.preferenceName === PREFERENCE_NAME_REQUEST_SETTINGS) {
|
|
60
|
-
this.handleRequestSettingsChanges(event.newValue as RequestSetting[]);
|
|
61
57
|
}
|
|
62
58
|
});
|
|
63
59
|
});
|
|
@@ -71,31 +67,19 @@ export class AnthropicFrontendApplicationContribution implements FrontendApplica
|
|
|
71
67
|
const modelsToAdd = [...updatedModels].filter(model => !oldModels.has(model));
|
|
72
68
|
|
|
73
69
|
this.manager.removeLanguageModels(...modelsToRemove.map(model => `${ANTHROPIC_PROVIDER_ID}/${model}`));
|
|
74
|
-
|
|
75
|
-
this.manager.createOrUpdateLanguageModels(...modelsToAdd.map(modelId => this.createAnthropicModelDescription(modelId, requestSettings)));
|
|
70
|
+
this.manager.createOrUpdateLanguageModels(...modelsToAdd.map(modelId => this.createAnthropicModelDescription(modelId)));
|
|
76
71
|
this.prevModels = newModels;
|
|
77
72
|
}
|
|
78
73
|
|
|
79
|
-
|
|
80
|
-
return this.preferenceService.get<RequestSetting[]>(PREFERENCE_NAME_REQUEST_SETTINGS, []);
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
protected handleRequestSettingsChanges(newSettings: RequestSetting[]): void {
|
|
84
|
-
const models = this.preferenceService.get<string[]>(MODELS_PREF, []);
|
|
85
|
-
this.manager.createOrUpdateLanguageModels(...models.map(modelId => this.createAnthropicModelDescription(modelId, newSettings)));
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
protected createAnthropicModelDescription(modelId: string, requestSettings: RequestSetting[]): AnthropicModelDescription {
|
|
74
|
+
protected createAnthropicModelDescription(modelId: string): AnthropicModelDescription {
|
|
89
75
|
const id = `${ANTHROPIC_PROVIDER_ID}/${modelId}`;
|
|
90
|
-
const modelRequestSetting = this.getMatchingRequestSetting(modelId, ANTHROPIC_PROVIDER_ID, requestSettings);
|
|
91
76
|
const maxTokens = DEFAULT_MODEL_MAX_TOKENS[modelId];
|
|
92
77
|
|
|
93
78
|
const description: AnthropicModelDescription = {
|
|
94
79
|
id: id,
|
|
95
80
|
model: modelId,
|
|
96
81
|
apiKey: true,
|
|
97
|
-
enableStreaming: true
|
|
98
|
-
defaultRequestSettings: modelRequestSetting?.requestSettings
|
|
82
|
+
enableStreaming: true
|
|
99
83
|
};
|
|
100
84
|
|
|
101
85
|
if (maxTokens !== undefined) {
|
|
@@ -104,20 +88,4 @@ export class AnthropicFrontendApplicationContribution implements FrontendApplica
|
|
|
104
88
|
|
|
105
89
|
return description;
|
|
106
90
|
}
|
|
107
|
-
|
|
108
|
-
protected getMatchingRequestSetting(
|
|
109
|
-
modelId: string,
|
|
110
|
-
providerId: string,
|
|
111
|
-
requestSettings: RequestSetting[]
|
|
112
|
-
): RequestSetting | undefined {
|
|
113
|
-
const matchingSettings = requestSettings.filter(
|
|
114
|
-
setting => (!setting.providerId || setting.providerId === providerId) && setting.modelId === modelId
|
|
115
|
-
);
|
|
116
|
-
if (matchingSettings.length > 1) {
|
|
117
|
-
console.warn(
|
|
118
|
-
`Multiple entries found for provider "${providerId}" and model "${modelId}". Using the first match.`
|
|
119
|
-
);
|
|
120
|
-
}
|
|
121
|
-
return matchingSettings[0];
|
|
122
|
-
}
|
|
123
91
|
}
|
|
@@ -36,10 +36,7 @@ export interface AnthropicModelDescription {
|
|
|
36
36
|
* Maximum number of tokens to generate. Default is 4096.
|
|
37
37
|
*/
|
|
38
38
|
maxTokens?: number;
|
|
39
|
-
|
|
40
|
-
* Default request settings for the Anthropic model.
|
|
41
|
-
*/
|
|
42
|
-
defaultRequestSettings?: { [key: string]: unknown };
|
|
39
|
+
|
|
43
40
|
}
|
|
44
41
|
export interface AnthropicLanguageModelsManager {
|
|
45
42
|
apiKey: string | undefined;
|
|
@@ -17,22 +17,20 @@
|
|
|
17
17
|
import {
|
|
18
18
|
LanguageModel,
|
|
19
19
|
LanguageModelRequest,
|
|
20
|
-
|
|
20
|
+
LanguageModelMessage,
|
|
21
21
|
LanguageModelResponse,
|
|
22
22
|
LanguageModelStreamResponse,
|
|
23
23
|
LanguageModelStreamResponsePart,
|
|
24
|
-
LanguageModelTextResponse
|
|
24
|
+
LanguageModelTextResponse,
|
|
25
|
+
TokenUsageService,
|
|
26
|
+
TokenUsageParams,
|
|
27
|
+
UserRequest
|
|
25
28
|
} from '@theia/ai-core';
|
|
26
29
|
import { CancellationToken, isArray } from '@theia/core';
|
|
27
30
|
import { Anthropic } from '@anthropic-ai/sdk';
|
|
28
|
-
import { MessageParam } from '@anthropic-ai/sdk/resources';
|
|
31
|
+
import { Message, MessageParam } from '@anthropic-ai/sdk/resources';
|
|
29
32
|
|
|
30
33
|
export const DEFAULT_MAX_TOKENS = 4096;
|
|
31
|
-
const EMPTY_INPUT_SCHEMA = {
|
|
32
|
-
type: 'object',
|
|
33
|
-
properties: {},
|
|
34
|
-
required: []
|
|
35
|
-
} as const;
|
|
36
34
|
|
|
37
35
|
interface ToolCallback {
|
|
38
36
|
readonly name: string;
|
|
@@ -41,23 +39,36 @@ interface ToolCallback {
|
|
|
41
39
|
args: string;
|
|
42
40
|
}
|
|
43
41
|
|
|
42
|
+
const createMessageContent = (message: LanguageModelMessage): MessageParam['content'] => {
|
|
43
|
+
if (LanguageModelMessage.isTextMessage(message)) {
|
|
44
|
+
return message.text;
|
|
45
|
+
} else if (LanguageModelMessage.isThinkingMessage(message)) {
|
|
46
|
+
return [{ signature: message.signature, thinking: message.thinking, type: 'thinking' }];
|
|
47
|
+
} else if (LanguageModelMessage.isToolUseMessage(message)) {
|
|
48
|
+
return [{ id: message.id, input: message.input, name: message.name, type: 'tool_use' }];
|
|
49
|
+
} else if (LanguageModelMessage.isToolResultMessage(message)) {
|
|
50
|
+
return [{ type: 'tool_result', tool_use_id: message.tool_use_id }];
|
|
51
|
+
}
|
|
52
|
+
throw new Error(`Unknown message type:'${JSON.stringify(message)}'`);
|
|
53
|
+
};
|
|
54
|
+
|
|
44
55
|
/**
|
|
45
56
|
* Transforms Theia language model messages to Anthropic API format
|
|
46
57
|
* @param messages Array of LanguageModelRequestMessage to transform
|
|
47
58
|
* @returns Object containing transformed messages and optional system message
|
|
48
59
|
*/
|
|
49
60
|
function transformToAnthropicParams(
|
|
50
|
-
messages: readonly
|
|
61
|
+
messages: readonly LanguageModelMessage[]
|
|
51
62
|
): { messages: MessageParam[]; systemMessage?: string } {
|
|
52
63
|
// Extract the system message (if any), as it is a separate parameter in the Anthropic API.
|
|
53
64
|
const systemMessageObj = messages.find(message => message.actor === 'system');
|
|
54
|
-
const systemMessage = systemMessageObj
|
|
65
|
+
const systemMessage = systemMessageObj && LanguageModelMessage.isTextMessage(systemMessageObj) && systemMessageObj.text || undefined;
|
|
55
66
|
|
|
56
67
|
const convertedMessages = messages
|
|
57
68
|
.filter(message => message.actor !== 'system')
|
|
58
69
|
.map(message => ({
|
|
59
70
|
role: toAnthropicRole(message),
|
|
60
|
-
content: message
|
|
71
|
+
content: createMessageContent(message)
|
|
61
72
|
}));
|
|
62
73
|
|
|
63
74
|
return {
|
|
@@ -73,7 +84,7 @@ export const AnthropicModelIdentifier = Symbol('AnthropicModelIdentifier');
|
|
|
73
84
|
* @param message The message to convert
|
|
74
85
|
* @returns Anthropic role ('user' or 'assistant')
|
|
75
86
|
*/
|
|
76
|
-
function toAnthropicRole(message:
|
|
87
|
+
function toAnthropicRole(message: LanguageModelMessage): 'user' | 'assistant' {
|
|
77
88
|
switch (message.actor) {
|
|
78
89
|
case 'ai':
|
|
79
90
|
return 'assistant';
|
|
@@ -92,15 +103,15 @@ export class AnthropicModel implements LanguageModel {
|
|
|
92
103
|
public model: string,
|
|
93
104
|
public enableStreaming: boolean,
|
|
94
105
|
public apiKey: () => string | undefined,
|
|
95
|
-
public
|
|
96
|
-
|
|
106
|
+
public maxTokens: number = DEFAULT_MAX_TOKENS,
|
|
107
|
+
protected readonly tokenUsageService?: TokenUsageService
|
|
97
108
|
) { }
|
|
98
109
|
|
|
99
110
|
protected getSettings(request: LanguageModelRequest): Readonly<Record<string, unknown>> {
|
|
100
|
-
return request.settings ??
|
|
111
|
+
return request.settings ?? {};
|
|
101
112
|
}
|
|
102
113
|
|
|
103
|
-
async request(request:
|
|
114
|
+
async request(request: UserRequest, cancellationToken?: CancellationToken): Promise<LanguageModelResponse> {
|
|
104
115
|
if (!request.messages?.length) {
|
|
105
116
|
throw new Error('Request must contain at least one message');
|
|
106
117
|
}
|
|
@@ -137,7 +148,7 @@ export class AnthropicModel implements LanguageModel {
|
|
|
137
148
|
|
|
138
149
|
protected async handleStreamingRequest(
|
|
139
150
|
anthropic: Anthropic,
|
|
140
|
-
request:
|
|
151
|
+
request: UserRequest,
|
|
141
152
|
cancellationToken?: CancellationToken,
|
|
142
153
|
toolMessages?: readonly Anthropic.Messages.MessageParam[]
|
|
143
154
|
): Promise<LanguageModelStreamResponse> {
|
|
@@ -148,11 +159,11 @@ export class AnthropicModel implements LanguageModel {
|
|
|
148
159
|
max_tokens: this.maxTokens,
|
|
149
160
|
messages: [...messages, ...(toolMessages ?? [])],
|
|
150
161
|
tools,
|
|
162
|
+
tool_choice: tools ? { type: 'auto' } : undefined,
|
|
151
163
|
model: this.model,
|
|
152
164
|
...(systemMessage && { system: systemMessage }),
|
|
153
165
|
...settings
|
|
154
166
|
};
|
|
155
|
-
|
|
156
167
|
const stream = anthropic.messages.stream(params);
|
|
157
168
|
|
|
158
169
|
cancellationToken?.onCancellationRequested(() => {
|
|
@@ -165,11 +176,16 @@ export class AnthropicModel implements LanguageModel {
|
|
|
165
176
|
|
|
166
177
|
const toolCalls: ToolCallback[] = [];
|
|
167
178
|
let toolCall: ToolCallback | undefined;
|
|
179
|
+
const currentMessages: Message[] = [];
|
|
180
|
+
let currentMessage: Message | undefined = undefined;
|
|
168
181
|
|
|
169
182
|
for await (const event of stream) {
|
|
170
183
|
if (event.type === 'content_block_start') {
|
|
171
184
|
const contentBlock = event.content_block;
|
|
172
185
|
|
|
186
|
+
if (contentBlock.type === 'thinking') {
|
|
187
|
+
yield { thought: contentBlock.thinking, signature: contentBlock.signature ?? '' };
|
|
188
|
+
}
|
|
173
189
|
if (contentBlock.type === 'text') {
|
|
174
190
|
yield { content: contentBlock.text };
|
|
175
191
|
}
|
|
@@ -179,7 +195,12 @@ export class AnthropicModel implements LanguageModel {
|
|
|
179
195
|
}
|
|
180
196
|
} else if (event.type === 'content_block_delta') {
|
|
181
197
|
const delta = event.delta;
|
|
182
|
-
|
|
198
|
+
if (delta.type === 'thinking_delta') {
|
|
199
|
+
yield { thought: delta.thinking, signature: '' };
|
|
200
|
+
}
|
|
201
|
+
if (delta.type === 'signature_delta') {
|
|
202
|
+
yield { thought: '', signature: delta.signature };
|
|
203
|
+
}
|
|
183
204
|
if (delta.type === 'text_delta') {
|
|
184
205
|
yield { content: delta.text };
|
|
185
206
|
}
|
|
@@ -199,6 +220,23 @@ export class AnthropicModel implements LanguageModel {
|
|
|
199
220
|
}
|
|
200
221
|
throw new Error(`The response was stopped because it exceeded the max token limit of ${event.usage.output_tokens}.`);
|
|
201
222
|
}
|
|
223
|
+
} else if (event.type === 'message_start') {
|
|
224
|
+
currentMessages.push(event.message);
|
|
225
|
+
currentMessage = event.message;
|
|
226
|
+
} else if (event.type === 'message_stop') {
|
|
227
|
+
if (currentMessage) {
|
|
228
|
+
yield { input_tokens: currentMessage.usage.input_tokens, output_tokens: currentMessage.usage.output_tokens };
|
|
229
|
+
// Record token usage if token usage service is available
|
|
230
|
+
if (that.tokenUsageService && currentMessage.usage) {
|
|
231
|
+
const tokenUsageParams: TokenUsageParams = {
|
|
232
|
+
inputTokens: currentMessage.usage.input_tokens,
|
|
233
|
+
outputTokens: currentMessage.usage.output_tokens,
|
|
234
|
+
requestId: request.requestId
|
|
235
|
+
};
|
|
236
|
+
await that.tokenUsageService.recordTokenUsage(that.id, tokenUsageParams);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
|
|
202
240
|
}
|
|
203
241
|
}
|
|
204
242
|
if (toolCalls.length > 0) {
|
|
@@ -216,17 +254,6 @@ export class AnthropicModel implements LanguageModel {
|
|
|
216
254
|
});
|
|
217
255
|
yield { tool_calls: calls };
|
|
218
256
|
|
|
219
|
-
const toolRequestMessage: Anthropic.Messages.MessageParam = {
|
|
220
|
-
role: 'assistant',
|
|
221
|
-
content: toolResult.map(call => ({
|
|
222
|
-
|
|
223
|
-
type: 'tool_use',
|
|
224
|
-
id: call.id,
|
|
225
|
-
name: call.name,
|
|
226
|
-
input: JSON.parse(call.arguments)
|
|
227
|
-
}))
|
|
228
|
-
};
|
|
229
|
-
|
|
230
257
|
const toolResponseMessage: Anthropic.Messages.MessageParam = {
|
|
231
258
|
role: 'user',
|
|
232
259
|
content: toolResult.map(call => ({
|
|
@@ -235,7 +262,15 @@ export class AnthropicModel implements LanguageModel {
|
|
|
235
262
|
content: that.formatToolCallResult(call.result)
|
|
236
263
|
}))
|
|
237
264
|
};
|
|
238
|
-
const result = await that.handleStreamingRequest(
|
|
265
|
+
const result = await that.handleStreamingRequest(
|
|
266
|
+
anthropic,
|
|
267
|
+
request,
|
|
268
|
+
cancellationToken,
|
|
269
|
+
[
|
|
270
|
+
...(toolMessages ?? []),
|
|
271
|
+
...currentMessages.map(m => ({ role: m.role, content: m.content })),
|
|
272
|
+
toolResponseMessage
|
|
273
|
+
]);
|
|
239
274
|
for await (const nestedEvent of result.stream) {
|
|
240
275
|
yield nestedEvent;
|
|
241
276
|
}
|
|
@@ -251,19 +286,21 @@ export class AnthropicModel implements LanguageModel {
|
|
|
251
286
|
}
|
|
252
287
|
|
|
253
288
|
private createTools(request: LanguageModelRequest): Anthropic.Messages.Tool[] | undefined {
|
|
289
|
+
if (request.tools?.length === 0) {
|
|
290
|
+
return undefined;
|
|
291
|
+
}
|
|
254
292
|
return request.tools?.map(tool => ({
|
|
255
293
|
name: tool.name,
|
|
256
294
|
description: tool.description,
|
|
257
|
-
input_schema: tool.parameters
|
|
295
|
+
input_schema: tool.parameters
|
|
258
296
|
} as Anthropic.Messages.Tool));
|
|
259
297
|
}
|
|
260
298
|
|
|
261
299
|
protected async handleNonStreamingRequest(
|
|
262
300
|
anthropic: Anthropic,
|
|
263
|
-
request:
|
|
301
|
+
request: UserRequest
|
|
264
302
|
): Promise<LanguageModelTextResponse> {
|
|
265
303
|
const settings = this.getSettings(request);
|
|
266
|
-
|
|
267
304
|
const { messages, systemMessage } = transformToAnthropicParams(request.messages);
|
|
268
305
|
|
|
269
306
|
const params: Anthropic.MessageCreateParams = {
|
|
@@ -278,6 +315,16 @@ export class AnthropicModel implements LanguageModel {
|
|
|
278
315
|
const response = await anthropic.messages.create(params);
|
|
279
316
|
const textContent = response.content[0];
|
|
280
317
|
|
|
318
|
+
// Record token usage if token usage service is available
|
|
319
|
+
if (this.tokenUsageService && response.usage) {
|
|
320
|
+
const tokenUsageParams: TokenUsageParams = {
|
|
321
|
+
inputTokens: response.usage.input_tokens,
|
|
322
|
+
outputTokens: response.usage.output_tokens,
|
|
323
|
+
requestId: request.requestId
|
|
324
|
+
};
|
|
325
|
+
await this.tokenUsageService.recordTokenUsage(this.id, tokenUsageParams);
|
|
326
|
+
}
|
|
327
|
+
|
|
281
328
|
if (textContent?.type === 'text') {
|
|
282
329
|
return { text: textContent.text };
|
|
283
330
|
}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
|
-
import { LanguageModelRegistry } from '@theia/ai-core';
|
|
17
|
+
import { LanguageModelRegistry, TokenUsageService } from '@theia/ai-core';
|
|
18
18
|
import { inject, injectable } from '@theia/core/shared/inversify';
|
|
19
19
|
import { AnthropicModel, DEFAULT_MAX_TOKENS } from './anthropic-language-model';
|
|
20
20
|
import { AnthropicLanguageModelsManager, AnthropicModelDescription } from '../common';
|
|
@@ -27,6 +27,9 @@ export class AnthropicLanguageModelsManagerImpl implements AnthropicLanguageMode
|
|
|
27
27
|
@inject(LanguageModelRegistry)
|
|
28
28
|
protected readonly languageModelRegistry: LanguageModelRegistry;
|
|
29
29
|
|
|
30
|
+
@inject(TokenUsageService)
|
|
31
|
+
protected readonly tokenUsageService: TokenUsageService;
|
|
32
|
+
|
|
30
33
|
get apiKey(): string | undefined {
|
|
31
34
|
return this._apiKey ?? process.env.ANTHROPIC_API_KEY;
|
|
32
35
|
}
|
|
@@ -52,7 +55,6 @@ export class AnthropicLanguageModelsManagerImpl implements AnthropicLanguageMode
|
|
|
52
55
|
model.model = modelDescription.model;
|
|
53
56
|
model.enableStreaming = modelDescription.enableStreaming;
|
|
54
57
|
model.apiKey = apiKeyProvider;
|
|
55
|
-
model.defaultRequestSettings = modelDescription.defaultRequestSettings;
|
|
56
58
|
if (modelDescription.maxTokens !== undefined) {
|
|
57
59
|
model.maxTokens = modelDescription.maxTokens;
|
|
58
60
|
} else {
|
|
@@ -65,8 +67,8 @@ export class AnthropicLanguageModelsManagerImpl implements AnthropicLanguageMode
|
|
|
65
67
|
modelDescription.model,
|
|
66
68
|
modelDescription.enableStreaming,
|
|
67
69
|
apiKeyProvider,
|
|
68
|
-
modelDescription.
|
|
69
|
-
|
|
70
|
+
modelDescription.maxTokens,
|
|
71
|
+
this.tokenUsageService
|
|
70
72
|
)
|
|
71
73
|
]);
|
|
72
74
|
}
|