diff --git a/AppImage/components/hardware.tsx b/AppImage/components/hardware.tsx index e4c3e509..631a616f 100644 --- a/AppImage/components/hardware.tsx +++ b/AppImage/components/hardware.tsx @@ -1583,6 +1583,13 @@ export default function Hardware() { {selectedPCIDevice.device} + {selectedPCIDevice.sdevice && ( +
+ Product Name + {selectedPCIDevice.sdevice} +
+ )} +
Vendor {selectedPCIDevice.vendor} diff --git a/AppImage/scripts/ai_providers/ollama_provider.py b/AppImage/scripts/ai_providers/ollama_provider.py index 34f79d0e..e17bcb08 100644 --- a/AppImage/scripts/ai_providers/ollama_provider.py +++ b/AppImage/scripts/ai_providers/ollama_provider.py @@ -63,8 +63,10 @@ class OllamaProvider(AIProvider): # Cloud models (e.g., kimi-k2.5:cloud, minimax-m2.7:cloud) need longer timeout # because requests go through: ProxMenux -> Ollama -> Cloud Provider -> back + # Local models also need generous timeout for slower hardware (e.g., low-end CPUs, + # no GPU acceleration, larger models like 8B parameters) is_cloud_model = ':cloud' in self.model.lower() - timeout = 120 if is_cloud_model else 30 # 2 minutes for cloud, 30s for local + timeout = 120 if is_cloud_model else 90 # 2 minutes for cloud, 90s for local try: result = self._make_request(url, payload, headers, timeout=timeout) diff --git a/AppImage/scripts/flask_server.py b/AppImage/scripts/flask_server.py index 6c753a04..8178ce0a 100644 --- a/AppImage/scripts/flask_server.py +++ b/AppImage/scripts/flask_server.py @@ -5644,6 +5644,10 @@ def get_hardware_info(): 'device': device_name, 'class': device_class } + # Add subsystem device name if available (e.g., "HBA 9400-16i" for SAS controllers) + sdevice = current_device.get('SDevice', '') + if sdevice: + pci_device['sdevice'] = sdevice if network_subtype: pci_device['network_subtype'] = network_subtype hardware_data['pci_devices'].append(pci_device)