Skip to content
This repository was archived by the owner on Jul 4, 2025. It is now read-only.

Commit 4a09e8c

Browse files
fix: add custom model id (#882)
1 parent 13a5230 commit 4a09e8c

File tree

2 files changed

+9
-9
lines changed

2 files changed

+9
-9
lines changed

cortex-js/src/infrastructure/controllers/models.controller.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ export class ModelsController {
120120
})
121121

122122
@Get('download/:modelId(*)')
123-
downloadModel(@Param('modelId') modelId: string, @Query('fileName') fileName: string) {
123+
downloadModel(@Param('modelId') modelId: string, @Query('fileName') fileName: string, @Query('persistedModelId') persistedModelId?: string) {
124124
this.modelsUsecases.pullModel(modelId, false, (files) => {
125125
return new Promise<HuggingFaceRepoSibling>(async (resolve, reject) => {
126126
const file = files
@@ -130,7 +130,7 @@ export class ModelsController {
130130
}
131131
return resolve(file);
132132
});
133-
}).then(() => this.telemetryUsecases.addEventToQueue({
133+
}, persistedModelId).then(() => this.telemetryUsecases.addEventToQueue({
134134
name: EventName.DOWNLOAD_MODEL,
135135
modelId,
136136
})
@@ -174,7 +174,7 @@ export class ModelsController {
174174
description: 'The unique identifier of the model.',
175175
})
176176
@Get('pull/:modelId(*)')
177-
pullModel(@Param('modelId') modelId: string, @Query('fileName') fileName: string) {
177+
pullModel(@Param('modelId') modelId: string, @Query('fileName') fileName: string, @Query('persistedModelId') persistedModelId?: string) {
178178
this.modelsUsecases.pullModel(modelId, false, (files) => {
179179
return new Promise<HuggingFaceRepoSibling>(async (resolve, reject) => {
180180
const file = files
@@ -184,7 +184,7 @@ export class ModelsController {
184184
}
185185
return resolve(file);
186186
});
187-
}).then(() => this.telemetryUsecases.addEventToQueue({
187+
}, persistedModelId).then(() => this.telemetryUsecases.addEventToQueue({
188188
name: EventName.DOWNLOAD_MODEL,
189189
modelId,
190190
})

cortex-js/src/usecases/models/models.usecases.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -321,12 +321,14 @@ export class ModelsUsecases {
321321
* @param modelId
322322
*/
323323
async pullModel(
324-
modelId: string,
324+
originModelId: string,
325325
inSequence: boolean = true,
326326
selection?: (
327327
siblings: HuggingFaceRepoSibling[],
328328
) => Promise<HuggingFaceRepoSibling>,
329+
persistedModelId?: string,
329330
) {
331+
const modelId = persistedModelId ?? originModelId;
330332
const existingModel = await this.findOne(modelId);
331333
if (isLocalModel(existingModel?.files)) {
332334
throw new BadRequestException('Model already exists');
@@ -341,10 +343,10 @@ export class ModelsUsecases {
341343
const modelFolder = join(modelsContainerDir, normalizeModelId(modelId));
342344
await promises.mkdir(modelFolder, { recursive: true }).catch(() => {});
343345

344-
let files = (await fetchJanRepoData(modelId)).siblings;
346+
let files = (await fetchJanRepoData(originModelId)).siblings;
345347

346348
// HuggingFace GGUF Repo - Only one file is downloaded
347-
if (modelId.includes('/') && selection && files.length) {
349+
if (originModelId.includes('/') && selection && files.length) {
348350
try {
349351
files = [await selection(files)];
350352
} catch (e) {
@@ -409,8 +411,6 @@ export class ModelsUsecases {
409411
model.model = modelId;
410412
if (!(await this.findOne(modelId))) await this.create(model);
411413
} else {
412-
// Fallback if model.yml is not found & is a GGUF file
413-
const data = await this.fetchModelMetadata(modelId);
414414
await this.populateHuggingFaceModel(modelId, files[0]);
415415
const model = await this.findOne(modelId);
416416
if (model) {

0 commit comments

Comments
 (0)