@theia/ai-huggingface 1.60.0-next.47 → 1.60.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/huggingface-frontend-application-contribution.d.ts +1 -3
- package/lib/browser/huggingface-frontend-application-contribution.d.ts.map +1 -1
- package/lib/browser/huggingface-frontend-application-contribution.js +4 -20
- package/lib/browser/huggingface-frontend-application-contribution.js.map +1 -1
- package/lib/common/huggingface-language-models-manager.d.ts +0 -6
- package/lib/common/huggingface-language-models-manager.d.ts.map +1 -1
- package/lib/node/huggingface-language-model.d.ts +1 -2
- package/lib/node/huggingface-language-model.d.ts.map +1 -1
- package/lib/node/huggingface-language-model.js +19 -9
- package/lib/node/huggingface-language-model.js.map +1 -1
- package/lib/node/huggingface-language-models-manager-impl.d.ts.map +1 -1
- package/lib/node/huggingface-language-models-manager-impl.js +1 -2
- package/lib/node/huggingface-language-models-manager-impl.js.map +1 -1
- package/package.json +5 -5
- package/src/browser/huggingface-frontend-application-contribution.ts +4 -25
- package/src/common/huggingface-language-models-manager.ts +0 -4
- package/src/node/huggingface-language-model.ts +19 -12
- package/src/node/huggingface-language-models-manager-impl.ts +0 -2
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import { FrontendApplicationContribution, PreferenceService } from '@theia/core/lib/browser';
|
|
2
2
|
import { HuggingFaceLanguageModelsManager, HuggingFaceModelDescription } from '../common';
|
|
3
|
-
import { RequestSetting } from '@theia/ai-core/lib/browser/ai-core-preferences';
|
|
4
3
|
export declare class HuggingFaceFrontendApplicationContribution implements FrontendApplicationContribution {
|
|
5
4
|
protected preferenceService: PreferenceService;
|
|
6
5
|
protected manager: HuggingFaceLanguageModelsManager;
|
|
7
6
|
protected prevModels: string[];
|
|
8
7
|
onStart(): void;
|
|
9
8
|
protected handleModelChanges(newModels: string[]): void;
|
|
10
|
-
protected
|
|
11
|
-
protected createHuggingFaceModelDescription(modelId: string, requestSettings: RequestSetting[]): HuggingFaceModelDescription;
|
|
9
|
+
protected createHuggingFaceModelDescription(modelId: string): HuggingFaceModelDescription;
|
|
12
10
|
}
|
|
13
11
|
//# sourceMappingURL=huggingface-frontend-application-contribution.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"huggingface-frontend-application-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/huggingface-frontend-application-contribution.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,+BAA+B,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE7F,OAAO,EAAE,gCAAgC,EAAE,2BAA2B,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"huggingface-frontend-application-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/huggingface-frontend-application-contribution.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,+BAA+B,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE7F,OAAO,EAAE,gCAAgC,EAAE,2BAA2B,EAAE,MAAM,WAAW,CAAC;AAI1F,qBACa,0CAA2C,YAAW,+BAA+B;IAG9F,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAG/C,SAAS,CAAC,OAAO,EAAE,gCAAgC,CAAC;IAEpD,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,iCAAiC,CACvC,OAAO,EAAE,MAAM,GAChB,2BAA2B;CAOjC"}
|
|
@@ -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 huggingface_preferences_1 = require("./huggingface-preferences");
|
|
24
|
-
const ai_core_preferences_1 = require("@theia/ai-core/lib/browser/ai-core-preferences");
|
|
25
24
|
const HUGGINGFACE_PROVIDER_ID = 'huggingface';
|
|
26
25
|
let HuggingFaceFrontendApplicationContribution = class HuggingFaceFrontendApplicationContribution {
|
|
27
26
|
constructor() {
|
|
@@ -32,8 +31,7 @@ let HuggingFaceFrontendApplicationContribution = class HuggingFaceFrontendApplic
|
|
|
32
31
|
const apiKey = this.preferenceService.get(huggingface_preferences_1.API_KEY_PREF, undefined);
|
|
33
32
|
this.manager.setApiKey(apiKey);
|
|
34
33
|
const models = this.preferenceService.get(huggingface_preferences_1.MODELS_PREF, []);
|
|
35
|
-
|
|
36
|
-
this.manager.createOrUpdateLanguageModels(...models.map(modelId => this.createHuggingFaceModelDescription(modelId, requestSettings)));
|
|
34
|
+
this.manager.createOrUpdateLanguageModels(...models.map(modelId => this.createHuggingFaceModelDescription(modelId)));
|
|
37
35
|
this.prevModels = [...models];
|
|
38
36
|
this.preferenceService.onPreferenceChanged(event => {
|
|
39
37
|
if (event.preferenceName === huggingface_preferences_1.API_KEY_PREF) {
|
|
@@ -42,9 +40,6 @@ let HuggingFaceFrontendApplicationContribution = class HuggingFaceFrontendApplic
|
|
|
42
40
|
else if (event.preferenceName === huggingface_preferences_1.MODELS_PREF) {
|
|
43
41
|
this.handleModelChanges(event.newValue);
|
|
44
42
|
}
|
|
45
|
-
else if (event.preferenceName === ai_core_preferences_1.PREFERENCE_NAME_REQUEST_SETTINGS) {
|
|
46
|
-
this.handleRequestSettingsChanges(event.newValue);
|
|
47
|
-
}
|
|
48
43
|
});
|
|
49
44
|
});
|
|
50
45
|
}
|
|
@@ -54,25 +49,14 @@ let HuggingFaceFrontendApplicationContribution = class HuggingFaceFrontendApplic
|
|
|
54
49
|
const modelsToRemove = [...oldModels].filter(model => !updatedModels.has(model));
|
|
55
50
|
const modelsToAdd = [...updatedModels].filter(model => !oldModels.has(model));
|
|
56
51
|
this.manager.removeLanguageModels(...modelsToRemove.map(model => `${HUGGINGFACE_PROVIDER_ID}/${model}`));
|
|
57
|
-
|
|
58
|
-
this.manager.createOrUpdateLanguageModels(...modelsToAdd.map(modelId => this.createHuggingFaceModelDescription(modelId, requestSettings)));
|
|
52
|
+
this.manager.createOrUpdateLanguageModels(...modelsToAdd.map(modelId => this.createHuggingFaceModelDescription(modelId)));
|
|
59
53
|
this.prevModels = newModels;
|
|
60
54
|
}
|
|
61
|
-
|
|
62
|
-
const models = this.preferenceService.get(huggingface_preferences_1.MODELS_PREF, []);
|
|
63
|
-
this.manager.createOrUpdateLanguageModels(...models.map(modelId => this.createHuggingFaceModelDescription(modelId, newSettings)));
|
|
64
|
-
}
|
|
65
|
-
createHuggingFaceModelDescription(modelId, requestSettings) {
|
|
55
|
+
createHuggingFaceModelDescription(modelId) {
|
|
66
56
|
const id = `${HUGGINGFACE_PROVIDER_ID}/${modelId}`;
|
|
67
|
-
const matchingSettings = requestSettings.filter(setting => (!setting.providerId || setting.providerId === HUGGINGFACE_PROVIDER_ID) && setting.modelId === modelId);
|
|
68
|
-
if (matchingSettings.length > 1) {
|
|
69
|
-
console.warn(`Multiple entries found for modelId "${modelId}". Using the first match and ignoring the rest.`);
|
|
70
|
-
}
|
|
71
|
-
const modelRequestSetting = matchingSettings[0];
|
|
72
57
|
return {
|
|
73
58
|
id: id,
|
|
74
|
-
model: modelId
|
|
75
|
-
defaultRequestSettings: modelRequestSetting === null || modelRequestSetting === void 0 ? void 0 : modelRequestSetting.requestSettings
|
|
59
|
+
model: modelId
|
|
76
60
|
};
|
|
77
61
|
}
|
|
78
62
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"huggingface-frontend-application-contribution.js","sourceRoot":"","sources":["../../src/browser/huggingface-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,sCAA0F;AAC1F,uEAAsE;
|
|
1
|
+
{"version":3,"file":"huggingface-frontend-application-contribution.js","sourceRoot":"","sources":["../../src/browser/huggingface-frontend-application-contribution.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,12 +9,6 @@ export interface HuggingFaceModelDescription {
|
|
|
9
9
|
* The model ID as used by the Hugging Face API.
|
|
10
10
|
*/
|
|
11
11
|
model: string;
|
|
12
|
-
/**
|
|
13
|
-
* Default request settings for the Hugging Face model.
|
|
14
|
-
*/
|
|
15
|
-
defaultRequestSettings?: {
|
|
16
|
-
[key: string]: unknown;
|
|
17
|
-
};
|
|
18
12
|
}
|
|
19
13
|
export interface HuggingFaceLanguageModelsManager {
|
|
20
14
|
apiKey: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"huggingface-language-models-manager.d.ts","sourceRoot":"","sources":["../../src/common/huggingface-language-models-manager.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,wCAAwC,iDAAiD,CAAC;AACvG,eAAO,MAAM,gCAAgC,eAA6C,CAAC;AAE3F,MAAM,WAAW,2BAA2B;IACxC;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"huggingface-language-models-manager.d.ts","sourceRoot":"","sources":["../../src/common/huggingface-language-models-manager.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,wCAAwC,iDAAiD,CAAC;AACvG,eAAO,MAAM,gCAAgC,eAA6C,CAAC;AAE3F,MAAM,WAAW,2BAA2B;IACxC;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gCAAgC;IAC7C,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACzC,4BAA4B,CAAC,GAAG,MAAM,EAAE,2BAA2B,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtF,oBAAoB,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CACrD"}
|
|
@@ -12,13 +12,12 @@ export declare class HuggingFaceModel implements LanguageModel {
|
|
|
12
12
|
readonly family?: string | undefined;
|
|
13
13
|
readonly maxInputTokens?: number | undefined;
|
|
14
14
|
readonly maxOutputTokens?: number | undefined;
|
|
15
|
-
defaultRequestSettings?: Record<string, unknown> | undefined;
|
|
16
15
|
/**
|
|
17
16
|
* @param id the unique id for this language model. It will be used to identify the model in the UI.
|
|
18
17
|
* @param model the model id as it is used by the Hugging Face API
|
|
19
18
|
* @param apiKey function to retrieve the API key for Hugging Face
|
|
20
19
|
*/
|
|
21
|
-
constructor(id: string, model: string, apiKey: () => string | undefined, name?: string | undefined, vendor?: string | undefined, version?: string | undefined, family?: string | undefined, maxInputTokens?: number | undefined, maxOutputTokens?: number | undefined
|
|
20
|
+
constructor(id: string, model: string, apiKey: () => string | undefined, name?: string | undefined, vendor?: string | undefined, version?: string | undefined, family?: string | undefined, maxInputTokens?: number | undefined, maxOutputTokens?: number | undefined);
|
|
22
21
|
request(request: LanguageModelRequest, cancellationToken?: CancellationToken): Promise<LanguageModelResponse>;
|
|
23
22
|
protected getSettings(request: LanguageModelRequest): Record<string, unknown>;
|
|
24
23
|
protected handleNonStreamingRequest(hfInference: HfInference, request: LanguageModelRequest): Promise<LanguageModelTextResponse>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"huggingface-language-model.d.ts","sourceRoot":"","sources":["../../src/node/huggingface-language-model.ts"],"names":[],"mappings":"AAgBA,OAAO,EACH,aAAa,EACb,oBAAoB,EAEpB,qBAAqB,EAErB,yBAAyB,EAE5B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,eAAO,MAAM,0BAA0B,eAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"huggingface-language-model.d.ts","sourceRoot":"","sources":["../../src/node/huggingface-language-model.ts"],"names":[],"mappings":"AAgBA,OAAO,EACH,aAAa,EACb,oBAAoB,EAEpB,qBAAqB,EAErB,yBAAyB,EAE5B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,eAAO,MAAM,0BAA0B,eAAuC,CAAC;AAkC/E,qBAAa,gBAAiB,YAAW,aAAa;aAQ9B,EAAE,EAAE,MAAM;IACnB,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,MAAM,MAAM,GAAG,SAAS;aACvB,IAAI,CAAC;aACL,MAAM,CAAC;aACP,OAAO,CAAC;aACR,MAAM,CAAC;aACP,cAAc,CAAC;aACf,eAAe,CAAC;IAdpC;;;;OAIG;gBAEiB,EAAE,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,MAAM,GAAG,SAAS,EACvB,IAAI,CAAC,oBAAQ,EACb,MAAM,CAAC,oBAAQ,EACf,OAAO,CAAC,oBAAQ,EAChB,MAAM,CAAC,oBAAQ,EACf,cAAc,CAAC,oBAAQ,EACvB,eAAe,CAAC,oBAAQ;IAGtC,OAAO,CAAC,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IASnH,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;cAI7D,yBAAyB,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,yBAAyB,CAAC;cAyBtH,sBAAsB,CAClC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,oBAAoB,EAC7B,iBAAiB,CAAC,EAAE,iBAAiB,GACtC,OAAO,CAAC,qBAAqB,CAAC;IAqCjC,SAAS,CAAC,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAKtD,OAAO,CAAC,qBAAqB;CAOhC"}
|
|
@@ -16,13 +16,27 @@
|
|
|
16
16
|
// *****************************************************************************
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
18
|
exports.HuggingFaceModel = exports.HuggingFaceModelIdentifier = void 0;
|
|
19
|
+
const ai_core_1 = require("@theia/ai-core");
|
|
19
20
|
const inference_1 = require("@huggingface/inference");
|
|
20
21
|
exports.HuggingFaceModelIdentifier = Symbol('HuggingFaceModelIdentifier');
|
|
22
|
+
const createMessageContent = (message) => {
|
|
23
|
+
if (ai_core_1.LanguageModelMessage.isTextMessage(message)) {
|
|
24
|
+
return message.text;
|
|
25
|
+
}
|
|
26
|
+
return undefined;
|
|
27
|
+
};
|
|
21
28
|
function toHuggingFacePrompt(messages) {
|
|
22
29
|
if (messages.length === 1) {
|
|
23
|
-
|
|
30
|
+
const message = messages[0];
|
|
31
|
+
return (ai_core_1.LanguageModelMessage.isTextMessage(message) && message.text) || '';
|
|
24
32
|
}
|
|
25
|
-
return messages.map(message =>
|
|
33
|
+
return messages.map(message => {
|
|
34
|
+
const messageContent = createMessageContent(message);
|
|
35
|
+
if (messageContent === undefined) {
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
38
|
+
return `${toRoleLabel(message.actor)}: ${messageContent}`;
|
|
39
|
+
}).filter(m => m !== undefined).join('\n');
|
|
26
40
|
}
|
|
27
41
|
function toRoleLabel(actor) {
|
|
28
42
|
switch (actor) {
|
|
@@ -42,7 +56,7 @@ class HuggingFaceModel {
|
|
|
42
56
|
* @param model the model id as it is used by the Hugging Face API
|
|
43
57
|
* @param apiKey function to retrieve the API key for Hugging Face
|
|
44
58
|
*/
|
|
45
|
-
constructor(id, model, apiKey, name, vendor, version, family, maxInputTokens, maxOutputTokens
|
|
59
|
+
constructor(id, model, apiKey, name, vendor, version, family, maxInputTokens, maxOutputTokens) {
|
|
46
60
|
this.id = id;
|
|
47
61
|
this.model = model;
|
|
48
62
|
this.apiKey = apiKey;
|
|
@@ -52,7 +66,6 @@ class HuggingFaceModel {
|
|
|
52
66
|
this.family = family;
|
|
53
67
|
this.maxInputTokens = maxInputTokens;
|
|
54
68
|
this.maxOutputTokens = maxOutputTokens;
|
|
55
|
-
this.defaultRequestSettings = defaultRequestSettings;
|
|
56
69
|
}
|
|
57
70
|
async request(request, cancellationToken) {
|
|
58
71
|
const hfInference = this.initializeHfInference();
|
|
@@ -64,11 +77,8 @@ class HuggingFaceModel {
|
|
|
64
77
|
}
|
|
65
78
|
}
|
|
66
79
|
getSettings(request) {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
return {};
|
|
70
|
-
}
|
|
71
|
-
return settings;
|
|
80
|
+
var _a;
|
|
81
|
+
return (_a = request.settings) !== null && _a !== void 0 ? _a : {};
|
|
72
82
|
}
|
|
73
83
|
async handleNonStreamingRequest(hfInference, request) {
|
|
74
84
|
const settings = this.getSettings(request);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"huggingface-language-model.js","sourceRoot":"","sources":["../../src/node/huggingface-language-model.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;
|
|
1
|
+
{"version":3,"file":"huggingface-language-model.js","sourceRoot":"","sources":["../../src/node/huggingface-language-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"huggingface-language-models-manager-impl.d.ts","sourceRoot":"","sources":["../../src/node/huggingface-language-models-manager-impl.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAGvD,OAAO,EAAE,gCAAgC,EAAE,2BAA2B,EAAE,MAAM,WAAW,CAAC;AAE1F,qBACa,oCAAqC,YAAW,gCAAgC;IAEzF,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAGtC,SAAS,CAAC,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;IAEhE,IAAI,MAAM,IAAI,MAAM,GAAG,SAAS,CAE/B;IAEK,4BAA4B,CAAC,GAAG,iBAAiB,EAAE,2BAA2B,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"huggingface-language-models-manager-impl.d.ts","sourceRoot":"","sources":["../../src/node/huggingface-language-models-manager-impl.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAGvD,OAAO,EAAE,gCAAgC,EAAE,2BAA2B,EAAE,MAAM,WAAW,CAAC;AAE1F,qBACa,oCAAqC,YAAW,gCAAgC;IAEzF,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAGtC,SAAS,CAAC,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;IAEhE,IAAI,MAAM,IAAI,MAAM,GAAG,SAAS,CAE/B;IAEK,4BAA4B,CAAC,GAAG,iBAAiB,EAAE,2BAA2B,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BtG,oBAAoB,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAIjD,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;CAG9C"}
|
|
@@ -36,11 +36,10 @@ let HuggingFaceLanguageModelsManagerImpl = class HuggingFaceLanguageModelsManage
|
|
|
36
36
|
}
|
|
37
37
|
model.model = modelDescription.model;
|
|
38
38
|
model.apiKey = apiKeyProvider;
|
|
39
|
-
model.defaultRequestSettings = modelDescription.defaultRequestSettings;
|
|
40
39
|
}
|
|
41
40
|
else {
|
|
42
41
|
this.languageModelRegistry.addLanguageModels([
|
|
43
|
-
new huggingface_language_model_1.HuggingFaceModel(modelDescription.id, modelDescription.model, apiKeyProvider, undefined, undefined, undefined, undefined, undefined, undefined
|
|
42
|
+
new huggingface_language_model_1.HuggingFaceModel(modelDescription.id, modelDescription.model, apiKeyProvider, undefined, undefined, undefined, undefined, undefined, undefined)
|
|
44
43
|
]);
|
|
45
44
|
}
|
|
46
45
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"huggingface-language-models-manager-impl.js","sourceRoot":"","sources":["../../src/node/huggingface-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,4CAAuD;AACvD,4DAAkE;AAClE,6EAAgE;AAIzD,IAAM,oCAAoC,GAA1C,MAAM,oCAAoC;IAO7C,IAAI,MAAM;;QACN,OAAO,MAAA,IAAI,CAAC,OAAO,mCAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,4BAA4B,CAAC,GAAG,iBAAgD;QAClF,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,CAAC,IAAI,CAAC,MAAM,CAAC;YAEzC,IAAI,KAAK,EAAE,CAAC;gBACR,IAAI,CAAC,CAAC,KAAK,YAAY,6CAAgB,CAAC,EAAE,CAAC;oBACvC,OAAO,CAAC,IAAI,CAAC,uBAAuB,gBAAgB,CAAC,EAAE,8BAA8B,CAAC,CAAC;oBACvF,SAAS;gBACb,CAAC;gBACD,KAAK,CAAC,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC;gBACrC,KAAK,CAAC,MAAM,GAAG,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"huggingface-language-models-manager-impl.js","sourceRoot":"","sources":["../../src/node/huggingface-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,4CAAuD;AACvD,4DAAkE;AAClE,6EAAgE;AAIzD,IAAM,oCAAoC,GAA1C,MAAM,oCAAoC;IAO7C,IAAI,MAAM;;QACN,OAAO,MAAA,IAAI,CAAC,OAAO,mCAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,4BAA4B,CAAC,GAAG,iBAAgD;QAClF,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,CAAC,IAAI,CAAC,MAAM,CAAC;YAEzC,IAAI,KAAK,EAAE,CAAC;gBACR,IAAI,CAAC,CAAC,KAAK,YAAY,6CAAgB,CAAC,EAAE,CAAC;oBACvC,OAAO,CAAC,IAAI,CAAC,uBAAuB,gBAAgB,CAAC,EAAE,8BAA8B,CAAC,CAAC;oBACvF,SAAS;gBACb,CAAC;gBACD,KAAK,CAAC,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC;gBACrC,KAAK,CAAC,MAAM,GAAG,cAAc,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC;oBACzC,IAAI,6CAAgB,CAChB,gBAAgB,CAAC,EAAE,EACnB,gBAAgB,CAAC,KAAK,EACtB,cAAc,EACd,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACZ;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,CAAC,OAAO,GAAG,MAAM,IAAI,SAAS,CAAC;IACvC,CAAC;CACJ,CAAA;AAhDY,oFAAoC;AAK1B;IADlB,IAAA,kBAAM,EAAC,+BAAqB,CAAC;;mFACkC;+CALvD,oCAAoC;IADhD,IAAA,sBAAU,GAAE;GACA,oCAAoC,CAgDhD"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/ai-huggingface",
|
|
3
|
-
"version": "1.60.0
|
|
3
|
+
"version": "1.60.0",
|
|
4
4
|
"description": "Theia - Hugging Face Integration",
|
|
5
5
|
"dependencies": {
|
|
6
6
|
"@huggingface/inference": "^2.0.0",
|
|
7
|
-
"@theia/ai-core": "1.60.0
|
|
8
|
-
"@theia/core": "1.60.0
|
|
7
|
+
"@theia/ai-core": "1.60.0",
|
|
8
|
+
"@theia/core": "1.60.0"
|
|
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": "193fa55d7e26aa9dc8acba3ae3b99b0182f3603f"
|
|
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 { HuggingFaceLanguageModelsManager, HuggingFaceModelDescription } from '../common';
|
|
20
20
|
import { API_KEY_PREF, MODELS_PREF } from './huggingface-preferences';
|
|
21
|
-
import { PREFERENCE_NAME_REQUEST_SETTINGS, RequestSetting } from '@theia/ai-core/lib/browser/ai-core-preferences';
|
|
22
21
|
|
|
23
22
|
const HUGGINGFACE_PROVIDER_ID = 'huggingface';
|
|
24
23
|
@injectable()
|
|
@@ -38,8 +37,7 @@ export class HuggingFaceFrontendApplicationContribution implements FrontendAppli
|
|
|
38
37
|
this.manager.setApiKey(apiKey);
|
|
39
38
|
|
|
40
39
|
const models = this.preferenceService.get<string[]>(MODELS_PREF, []);
|
|
41
|
-
|
|
42
|
-
this.manager.createOrUpdateLanguageModels(...models.map(modelId => this.createHuggingFaceModelDescription(modelId, requestSettings)));
|
|
40
|
+
this.manager.createOrUpdateLanguageModels(...models.map(modelId => this.createHuggingFaceModelDescription(modelId)));
|
|
43
41
|
this.prevModels = [...models];
|
|
44
42
|
|
|
45
43
|
this.preferenceService.onPreferenceChanged(event => {
|
|
@@ -47,8 +45,6 @@ export class HuggingFaceFrontendApplicationContribution implements FrontendAppli
|
|
|
47
45
|
this.manager.setApiKey(event.newValue);
|
|
48
46
|
} else if (event.preferenceName === MODELS_PREF) {
|
|
49
47
|
this.handleModelChanges(event.newValue as string[]);
|
|
50
|
-
} else if (event.preferenceName === PREFERENCE_NAME_REQUEST_SETTINGS) {
|
|
51
|
-
this.handleRequestSettingsChanges(event.newValue as RequestSetting[]);
|
|
52
48
|
}
|
|
53
49
|
});
|
|
54
50
|
});
|
|
@@ -62,34 +58,17 @@ export class HuggingFaceFrontendApplicationContribution implements FrontendAppli
|
|
|
62
58
|
const modelsToAdd = [...updatedModels].filter(model => !oldModels.has(model));
|
|
63
59
|
|
|
64
60
|
this.manager.removeLanguageModels(...modelsToRemove.map(model => `${HUGGINGFACE_PROVIDER_ID}/${model}`));
|
|
65
|
-
|
|
66
|
-
this.manager.createOrUpdateLanguageModels(...modelsToAdd.map(modelId => this.createHuggingFaceModelDescription(modelId, requestSettings)));
|
|
61
|
+
this.manager.createOrUpdateLanguageModels(...modelsToAdd.map(modelId => this.createHuggingFaceModelDescription(modelId)));
|
|
67
62
|
this.prevModels = newModels;
|
|
68
63
|
}
|
|
69
64
|
|
|
70
|
-
protected handleRequestSettingsChanges(newSettings: RequestSetting[]): void {
|
|
71
|
-
const models = this.preferenceService.get<string[]>(MODELS_PREF, []);
|
|
72
|
-
this.manager.createOrUpdateLanguageModels(...models.map(modelId => this.createHuggingFaceModelDescription(modelId, newSettings)));
|
|
73
|
-
}
|
|
74
|
-
|
|
75
65
|
protected createHuggingFaceModelDescription(
|
|
76
|
-
modelId: string
|
|
77
|
-
requestSettings: RequestSetting[]
|
|
66
|
+
modelId: string
|
|
78
67
|
): HuggingFaceModelDescription {
|
|
79
68
|
const id = `${HUGGINGFACE_PROVIDER_ID}/${modelId}`;
|
|
80
|
-
const matchingSettings = requestSettings.filter(
|
|
81
|
-
setting => (!setting.providerId || setting.providerId === HUGGINGFACE_PROVIDER_ID) && setting.modelId === modelId
|
|
82
|
-
);
|
|
83
|
-
if (matchingSettings.length > 1) {
|
|
84
|
-
console.warn(
|
|
85
|
-
`Multiple entries found for modelId "${modelId}". Using the first match and ignoring the rest.`
|
|
86
|
-
);
|
|
87
|
-
}
|
|
88
|
-
const modelRequestSetting = matchingSettings[0];
|
|
89
69
|
return {
|
|
90
70
|
id: id,
|
|
91
|
-
model: modelId
|
|
92
|
-
defaultRequestSettings: modelRequestSetting?.requestSettings
|
|
71
|
+
model: modelId
|
|
93
72
|
};
|
|
94
73
|
}
|
|
95
74
|
}
|
|
@@ -26,10 +26,6 @@ export interface HuggingFaceModelDescription {
|
|
|
26
26
|
* The model ID as used by the Hugging Face API.
|
|
27
27
|
*/
|
|
28
28
|
model: string;
|
|
29
|
-
/**
|
|
30
|
-
* Default request settings for the Hugging Face model.
|
|
31
|
-
*/
|
|
32
|
-
defaultRequestSettings?: { [key: string]: unknown };
|
|
33
29
|
}
|
|
34
30
|
|
|
35
31
|
export interface HuggingFaceLanguageModelsManager {
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
import {
|
|
18
18
|
LanguageModel,
|
|
19
19
|
LanguageModelRequest,
|
|
20
|
-
|
|
20
|
+
LanguageModelMessage,
|
|
21
21
|
LanguageModelResponse,
|
|
22
22
|
LanguageModelStreamResponsePart,
|
|
23
23
|
LanguageModelTextResponse,
|
|
@@ -27,12 +27,24 @@ import { CancellationToken } from '@theia/core';
|
|
|
27
27
|
import { HfInference } from '@huggingface/inference';
|
|
28
28
|
|
|
29
29
|
export const HuggingFaceModelIdentifier = Symbol('HuggingFaceModelIdentifier');
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
const createMessageContent = (message: LanguageModelMessage): string | undefined => {
|
|
31
|
+
if (LanguageModelMessage.isTextMessage(message)) {
|
|
32
|
+
return message.text;
|
|
33
|
+
}
|
|
34
|
+
return undefined;
|
|
35
|
+
};
|
|
36
|
+
function toHuggingFacePrompt(messages: LanguageModelMessage[]): string {
|
|
32
37
|
if (messages.length === 1) {
|
|
33
|
-
|
|
38
|
+
const message = messages[0];
|
|
39
|
+
return (LanguageModelMessage.isTextMessage(message) && message.text) || '';
|
|
34
40
|
}
|
|
35
|
-
return messages.map(message =>
|
|
41
|
+
return messages.map(message => {
|
|
42
|
+
const messageContent = createMessageContent(message);
|
|
43
|
+
if (messageContent === undefined) {
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
46
|
+
return `${toRoleLabel(message.actor)}: ${messageContent}`;
|
|
47
|
+
}).filter(m => m !== undefined).join('\n');
|
|
36
48
|
}
|
|
37
49
|
|
|
38
50
|
function toRoleLabel(actor: MessageActor): string {
|
|
@@ -64,8 +76,7 @@ export class HuggingFaceModel implements LanguageModel {
|
|
|
64
76
|
public readonly version?: string,
|
|
65
77
|
public readonly family?: string,
|
|
66
78
|
public readonly maxInputTokens?: number,
|
|
67
|
-
public readonly maxOutputTokens?: number
|
|
68
|
-
public defaultRequestSettings?: Record<string, unknown>
|
|
79
|
+
public readonly maxOutputTokens?: number
|
|
69
80
|
) { }
|
|
70
81
|
|
|
71
82
|
async request(request: LanguageModelRequest, cancellationToken?: CancellationToken): Promise<LanguageModelResponse> {
|
|
@@ -78,11 +89,7 @@ export class HuggingFaceModel implements LanguageModel {
|
|
|
78
89
|
}
|
|
79
90
|
|
|
80
91
|
protected getSettings(request: LanguageModelRequest): Record<string, unknown> {
|
|
81
|
-
|
|
82
|
-
if (!settings) {
|
|
83
|
-
return {};
|
|
84
|
-
}
|
|
85
|
-
return settings;
|
|
92
|
+
return request.settings ?? {};
|
|
86
93
|
}
|
|
87
94
|
|
|
88
95
|
protected async handleNonStreamingRequest(hfInference: HfInference, request: LanguageModelRequest): Promise<LanguageModelTextResponse> {
|
|
@@ -43,7 +43,6 @@ export class HuggingFaceLanguageModelsManagerImpl implements HuggingFaceLanguage
|
|
|
43
43
|
}
|
|
44
44
|
model.model = modelDescription.model;
|
|
45
45
|
model.apiKey = apiKeyProvider;
|
|
46
|
-
model.defaultRequestSettings = modelDescription.defaultRequestSettings;
|
|
47
46
|
} else {
|
|
48
47
|
this.languageModelRegistry.addLanguageModels([
|
|
49
48
|
new HuggingFaceModel(
|
|
@@ -56,7 +55,6 @@ export class HuggingFaceLanguageModelsManagerImpl implements HuggingFaceLanguage
|
|
|
56
55
|
undefined,
|
|
57
56
|
undefined,
|
|
58
57
|
undefined,
|
|
59
|
-
modelDescription.defaultRequestSettings
|
|
60
58
|
)
|
|
61
59
|
]);
|
|
62
60
|
}
|