Skip to content

Commit

Permalink
chore: correct output logs (#940)
Browse files Browse the repository at this point in the history
  • Loading branch information
louis-jan committed Jul 29, 2024
1 parent 271ca14 commit 3a731ec
Show file tree
Hide file tree
Showing 9 changed files with 56 additions and 16 deletions.
2 changes: 1 addition & 1 deletion cortex-js/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
"preuninstall": "node ./uninstall.js"
},
"dependencies": {
"@cortexso/cortex.js": "^0.1.4",
"@cortexso/cortex.js": "^0.1.5",
"@huggingface/gguf": "^0.1.5",
"@huggingface/hub": "^0.15.1",
"@nestjs/axios": "^3.0.2",
Expand Down
20 changes: 11 additions & 9 deletions cortex-js/src/infrastructure/commanders/run.command.ts
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,10 @@ export class RunCommand extends BaseCommand {
// Check model compatibility on this machine
await checkModelCompatibility(modelId, checkingSpinner);

let existingModel = await this.cortex.models.retrieve(modelId);
// If not exist
// Try Pull
if (!(await this.cortex.models.retrieve(modelId))) {
if (!existingModel) {
checkingSpinner.succeed();

console.log('Downloading model...');
Expand All @@ -68,16 +69,17 @@ export class RunCommand extends BaseCommand {
exit(1);
});
await downloadProgress(this.cortex, modelId);
}
ora().succeed('Model downloaded');
checkingSpinner.succeed('Model downloaded');

// Second check if model is available
const existingModel = await this.cortex.models.retrieve(modelId);
if (!existingModel) {
checkingSpinner.fail(`Model is not available`);
process.exit(1);
// Second check if model is available
existingModel = await this.cortex.models.retrieve(modelId);
if (!existingModel) {
checkingSpinner.fail(`Model is not available`);
process.exit(1);
}
} else {
checkingSpinner.succeed('Model found');
}
checkingSpinner.succeed('Model found');

const engine = existingModel.engine || Engines.llamaCPP;
// Pull engine if not exist
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import { TestingModule } from '@nestjs/testing';
import { stubMethod } from 'hanbi';
import { CommandTestFactory } from 'nest-commander-testing';
import { CommandModule } from '@/command.module';
import { join } from 'path';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import { EventEmitterModule } from '@nestjs/event-emitter';
import { TelemetryModule } from '@/usecases/telemetry/telemetry.module';
import { FileManagerModule } from '../services/file-manager/file-manager.module';
import { ModelsModule } from '@/usecases/models/models.module';
import { CortexModule } from '@/usecases/cortex/cortex.module';

describe('EmbeddingsController', () => {
let controller: EmbeddingsController;
Expand All @@ -27,6 +28,7 @@ describe('EmbeddingsController', () => {
TelemetryModule,
FileManagerModule,
ModelsModule,
CortexModule,
],
controllers: [EmbeddingsController],
providers: [ChatUsecases],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ import { DeleteModelResponseDto } from '@/infrastructure/dtos/models/delete-mode
import { ApiOperation, ApiParam, ApiTags, ApiResponse } from '@nestjs/swagger';
import { StartModelSuccessDto } from '@/infrastructure/dtos/models/start-model-success.dto';
import { TransformInterceptor } from '../interceptors/transform.interceptor';
import { CortexUsecases } from '@/usecases/cortex/cortex.usecases';
import { ModelSettingsDto } from '../dtos/models/model-settings.dto';
import { EventName } from '@/domain/telemetry/telemetry.interface';
import { TelemetryUsecases } from '@/usecases/telemetry/telemetry.usecases';
Expand All @@ -32,7 +31,6 @@ import { HuggingFaceRepoSibling } from '@/domain/models/huggingface.interface';
export class ModelsController {
constructor(
private readonly modelsUsecases: ModelsUsecases,
private readonly cortexUsecases: CortexUsecases,
private readonly telemetryUsecases: TelemetryUsecases,
) {}

Expand Down Expand Up @@ -71,9 +69,7 @@ export class ModelsController {
@Param('modelId') modelId: string,
@Body() params: ModelSettingsDto,
) {
return this.cortexUsecases
.startCortex()
.then(() => this.modelsUsecases.startModel(modelId, params));
return this.modelsUsecases.startModel(modelId, params);
}

@HttpCode(200)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,19 +28,46 @@ export class ExtensionRepositoryImpl implements ExtensionRepository {
this.loadCoreExtensions();
this.loadExternalExtensions();
}
/**
* Persist extension to the extensions map
* @param object
* @returns
*/
create(object: Extension): Promise<Extension> {
this.extensions.set(object.name ?? '', object);
return Promise.resolve(object);
}

/**
* Find all extensions
* @returns
*/
findAll(): Promise<Extension[]> {
return Promise.resolve(Array.from(this.extensions.values()));
}

/**
* Find one extension by id
* @param id
* @returns
*/
findOne(id: string): Promise<Extension | null> {
return Promise.resolve(this.extensions.get(id) ?? null);
}

/**
* Update extension
* It is not applicable
*/
update(): Promise<void> {
throw new Error('Method not implemented.');
}

/**
* Remove extension from the extensions map
* @param id
* @returns
*/
remove(id: string): Promise<void> {
this.extensions.delete(id);
return Promise.resolve();
Expand Down
6 changes: 6 additions & 0 deletions cortex-js/src/usecases/cortex/cortex.usecases.ts
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,12 @@ export class CortexUsecases implements BeforeApplicationShutdown {
});
this.cortexProcess.unref();

// Handle process exit
this.cortexProcess.on('close', (code) => {
this.cortexProcess = undefined
console.log(`child process exited with code ${code}`);
});

// Await for the /healthz status ok
return new Promise<CortexOperationSuccessfullyDto>((resolve, reject) => {
const interval = setInterval(() => {
Expand Down
2 changes: 2 additions & 0 deletions cortex-js/src/usecases/models/models.usecases.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import { DownloadManagerModule } from '@/infrastructure/services/download-manage
import { EventEmitterModule } from '@nestjs/event-emitter';
import { TelemetryModule } from '../telemetry/telemetry.module';
import { ContextModule } from '@/infrastructure/services/context/context.module';
import { CortexModule } from '../cortex/cortex.module';

describe('ModelsService', () => {
let service: ModelsUsecases;
Expand All @@ -30,6 +31,7 @@ describe('ModelsService', () => {
TelemetryModule,
TelemetryModule,
ContextModule,
CortexModule,
],
providers: [ModelsUsecases],
exports: [ModelsUsecases],
Expand Down
6 changes: 6 additions & 0 deletions cortex-js/src/usecases/models/models.usecases.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,13 @@ import { ContextService } from '@/infrastructure/services/context/context.servic
import { Engines } from '@/infrastructure/commanders/types/engine.interface';
import { load } from 'js-yaml';
import { llamaModelFile } from '@/utils/app-path';
import { CortexUsecases } from '../cortex/cortex.usecases';

@Injectable()
export class ModelsUsecases {
constructor(
private readonly modelRepository: ModelRepository,
private readonly cortexUsecases: CortexUsecases,
private readonly extensionRepository: ExtensionRepository,
private readonly fileManagerService: FileManagerService,
private readonly downloadManagerService: DownloadManagerService,
Expand Down Expand Up @@ -170,6 +172,10 @@ export class ModelsUsecases {
modelId,
};
}

// Attempt to start cortex
await this.cortexUsecases.startCortex()

const loadingModelSpinner = ora('Loading model...').start();
// update states and emitting event
this.activeModelStatuses[modelId] = {
Expand Down

0 comments on commit 3a731ec

Please sign in to comment.