Skip to content

Commit

Permalink
fix: wrong monitoring system information type (#2679)
Browse files Browse the repository at this point in the history
  • Loading branch information
louis-jan committed Apr 11, 2024
1 parent ddb73d8 commit 065ed03
Show file tree
Hide file tree
Showing 9 changed files with 25 additions and 31 deletions.
2 changes: 1 addition & 1 deletion core/src/browser/extensions/monitoring.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ export abstract class MonitoringExtension extends BaseExtension implements Monit
return ExtensionTypeEnum.SystemMonitoring
}

abstract getGpuSetting(): Promise<GpuSetting>
abstract getGpuSetting(): Promise<GpuSetting | undefined>
abstract getResourcesInfo(): Promise<any>
abstract getCurrentLoad(): Promise<any>
abstract getOsInfo(): Promise<OperatingSystemInfo>
Expand Down
2 changes: 1 addition & 1 deletion core/src/types/miscellaneous/systemResourceInfo.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ export type GpuSettingInfo = {
}

export type SystemInformation = {
gpuSetting: GpuSetting
gpuSetting?: GpuSetting
osInfo?: OperatingSystemInfo
}

Expand Down
2 changes: 1 addition & 1 deletion core/src/types/monitoring/monitoringInterface.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ export interface MonitoringInterface {
/**
* Returns the GPU configuration.
*/
getGpuSetting(): Promise<GpuSetting>
getGpuSetting(): Promise<GpuSetting | undefined>

/**
* Returns information about the operating system.
Expand Down
8 changes: 4 additions & 4 deletions extensions/inference-nitro-extension/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ export default class JanInferenceNitroExtension extends LocalOAIEngine {
const downloadUrl = CUDA_DOWNLOAD_URL

const url = downloadUrl
.replace('<version>', info.gpuSetting.cuda?.version ?? '12.4')
.replace('<version>', info.gpuSetting?.cuda?.version ?? '12.4')
.replace('<platform>', platform)

console.debug('Downloading Cuda Toolkit Dependency: ', url)
Expand Down Expand Up @@ -168,11 +168,11 @@ export default class JanInferenceNitroExtension extends LocalOAIEngine {
override async installationState(): Promise<InstallationState> {
const info = await systemInformation()
if (
info.gpuSetting.run_mode === 'gpu' &&
!info.gpuSetting.vulkan &&
info.gpuSetting?.run_mode === 'gpu' &&
!info.gpuSetting?.vulkan &&
info.osInfo &&
info.osInfo.platform !== 'darwin' &&
!info.gpuSetting.cuda?.exist
!info.gpuSetting?.cuda?.exist
) {
const janDataFolderPath = await getJanDataFolderPath()

Expand Down
5 changes: 1 addition & 4 deletions extensions/monitoring-extension/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,7 @@ enum Settings {
* JanMonitoringExtension is a extension that provides system monitoring functionality.
* It implements the MonitoringExtension interface from the @janhq/core package.
*/
export default class JanMonitoringExtension
extends MonitoringExtension
implements MonitoringInterface
{
export default class JanMonitoringExtension extends MonitoringExtension {
/**
* Called when the extension is loaded.
*/
Expand Down
11 changes: 6 additions & 5 deletions extensions/tensorrt-llm-extension/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ export default class TensorRTLLMExtension extends LocalOAIEngine {
'engines',
this.provider,
engineVersion,
info.gpuSetting.gpus[0].arch,
info.gpuSetting?.gpus[0].arch,
])

if (!(await fs.existsSync(executableFolderPath))) {
Expand Down Expand Up @@ -148,7 +148,7 @@ export default class TensorRTLLMExtension extends LocalOAIEngine {
const info = await systemInformation()

if (!this.isCompatible(info)) return 'NotCompatible'
const firstGpu = info.gpuSetting.gpus[0]
const firstGpu = info.gpuSetting?.gpus[0]
const janDataFolderPath = await getJanDataFolderPath()
const engineVersion = TENSORRT_VERSION

Expand Down Expand Up @@ -184,12 +184,13 @@ export default class TensorRTLLMExtension extends LocalOAIEngine {
isCompatible(info: SystemInformation): info is Required<SystemInformation> & {
gpuSetting: { gpus: { arch: string }[] }
} {
const firstGpu = info.gpuSetting.gpus[0]
const firstGpu = info.gpuSetting?.gpus[0]
return (
!!info.osInfo &&
info.gpuSetting?.gpus?.length > 0 &&
this.supportedPlatform.includes(info.osInfo.platform) &&
!!info.gpuSetting &&
!!firstGpu &&
info.gpuSetting.gpus.length > 0 &&
this.supportedPlatform.includes(info.osInfo.platform) &&
!!firstGpu.arch &&
firstGpu.name.toLowerCase().includes('nvidia') &&
this.supportedGpuArch.includes(firstGpu.arch)
Expand Down
4 changes: 2 additions & 2 deletions extensions/tensorrt-llm-extension/src/node/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ async function runEngine(systemInfo: SystemInformation): Promise<void> {
)
}

if (systemInfo.gpuSetting.gpus.length === 0) {
if (systemInfo.gpuSetting?.gpus.length === 0) {
return Promise.reject('No GPU found. Please check your GPU setting.')
}

Expand All @@ -164,7 +164,7 @@ async function runEngine(systemInfo: SystemInformation): Promise<void> {
)
}

const gpu = systemInfo.gpuSetting.gpus[0]
const gpu = systemInfo.gpuSetting?.gpus[0]
if (gpu.name.toLowerCase().includes('nvidia') === false) {
return Promise.reject('No Nvidia GPU found. Please check your GPU setting.')
}
Expand Down
20 changes: 9 additions & 11 deletions web/screens/Settings/CoreExtensions/ExtensionItem.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -94,17 +94,15 @@ const ExtensionItem: React.FC<Props> = ({ item }) => {
}
</div>

{(!compatibility || compatibility['platform']?.includes(PLATFORM)) && (
<div className="flex min-w-[150px] flex-row justify-end">
<InstallStateIndicator
installProgress={progress}
installState={installState}
compatibility={compatibility}
onInstallClick={onInstallClick}
onCancelClick={onCancelInstallingClick}
/>
</div>
)}
<div className="flex min-w-[150px] flex-row justify-end">
<InstallStateIndicator
installProgress={progress}
installState={installState}
compatibility={compatibility}
onInstallClick={onInstallClick}
onCancelClick={onCancelInstallingClick}
/>
</div>
</div>
)
}
Expand Down
2 changes: 0 additions & 2 deletions web/screens/Settings/CoreExtensions/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@ import Loader from '@/containers/Loader'

import { formatExtensionsName } from '@/utils/converter'

import ExtensionItem from './ExtensionItem'

import { extensionManager } from '@/extension'
import Extension from '@/extension/Extension'

Expand Down

0 comments on commit 065ed03

Please sign in to comment.