SKU ഘടന: ഹൈഫൻ വേർതിരിച്ച ഘടക ആർക്കിടെക്ചർ

ഈ ലേഖനം എങ്ങനെയാണ് ഞങ്ങളുടെ SKU (സ്റ്റോക്ക് കീപ്പിംഗ് യൂണിറ്റ്) സിസ്റ്റം ഓരോ ഉൽപ്പന്ന കോൺഫിഗറേഷനും അദ്വിതീയമായി തിരിച്ചറിയുന്നതിനും ശക്തമായ ഫീച്ചർ എക്സ്ട്രാക്ഷനും ഫിൽട്ടറിംഗും പ്രാപ്തമാക്കുന്നതിനും ഒരു ഹൈഫൻ വേർതിരിച്ച ഘടന ഉപയോഗിക്കുന്നത് എന്ന് വിശദീകരിക്കുന്നു.

പ്രശ്നം: ഉൽപ്പന്ന കോൺഫിഗറേഷനുകൾ തിരിച്ചറിയൽ

ഒരു മിനി പിസിക്ക് ആയിരക്കണക്കിന് കോൺഫിഗറേഷനുകൾ ഉണ്ടാകാം:

  • ചാസിസ്: ട്രിയോ, എസ്, എച്ച് (വ്യത്യസ്ത ഫോം ഫാക്ടറുകൾ)

  • ബോർഡ്: N100, i5-1335U, i7-1355U (വ്യത്യസ്ത പ്രോസസ്സറുകൾ)

  • റാം: 4GB, 8GB, 16GB, 32GB, 64GB

  • ഫ്ലാഷ്: 128GB, 256GB, 512GB, 1TB, 2TB

  • അഡാപ്റ്റർ: 2H (2 HDMI), 2D (2 DisplayPort), 1H1D (1 HDMI + 1 DisplayPort)

  • WiFi: W6 (WiFi 6), W6E (WiFi 6E), ഇല്ല

  • OS: 11P (Windows 11 Pro), U (Ubuntu), DOS (FreeDOS)

  • ആകസ്സറികൾ: കീബോർഡ്, മൗസ്, VESA മൗണ്ട്, മറ്റുള്ളവ.

3 ചാസിസ് × 10 ബോർഡുകൾ × 5 റാം × 5 ഫ്ലാഷ് × 5 അഡാപ്റ്ററുകൾ × 3 WiFi × 3 OS = 33,750 സാധ്യമായ കോൺഫിഗറേഷനുകൾ ഉള്ളപ്പോൾ, ഓരോന്നും തിരിച്ചറിയാൻ ഞങ്ങൾക്ക് ഒരു സിസ്റ്റമാറ്റിക് മാർഗം ആവശ്യമാണ്.

പരിഹാരം: ഹൈഫൻ വേർതിരിച്ച SKU

ഓരോ സ്ഥാനവും ഒരു ഘടക വിഭാഗത്തെ പ്രതിനിധീകരിക്കുന്ന ഒരു ഹൈഫൻ വേർതിരിച്ച ഘടന ഞങ്ങൾ ഉപയോഗിക്കുന്നു:

Treo-N100-8-256-2H-W6-11P

ഇത് എല്ലാ കോൺഫിഗറേഷനുകൾക്കും ഒരു അദ്വിതീയ ഐഡന്റിഫയർ സൃഷ്ടിക്കുന്നു.

SKU വിഭജനം

graph LR
    SKU[Treo-N100-8-256-2H-W6-11P]
    SKU --> C[Treo
Chassis] SKU --> B[N100
Board/CPU] SKU --> R[8
RAM GB] SKU --> F[256
Flash GB] SKU --> A[2H
Adapter] SKU --> W[W6
WiFi 6] SKU --> O[11P
Windows 11 Pro]

ഭാഗ ക്രമം

SKU കോഡിൽ നിർവചിച്ചിരിക്കുന്ന ഒരു നിശ്ചിത ക്രമം പിന്തുടരുന്നു:

part_sequence = [
    Categories.CHASSIS,      # Position 0
    Categories.BOARD,        # Position 1
# ... (implementation details omitted)

എല്ലാ SKU-കൾക്കും കുറഞ്ഞത് ആദ്യത്തെ 7 ഘടകങ്ങളെങ്കിലും (ചാസിസ് മുതൽ OS വരെ) ഉണ്ടായിരിക്കണം. ആകസ്സറികൾ ഓപ്ഷണൽ ആണ്.

ഘടക വിഭാഗങ്ങൾ

1. ചാസിസ്

ഫിസിക്കൽ എൻക്ലോഷർ, ഫോം ഫാക്ടർ:

  • ട്രിയോ: ഏറ്റവും പുതിയ മിനി പിസി ചാസിസ് (കോംപാക്റ്റ്, ആധുനിക ഡിസൈൻ)

  • എസ്: ചെറിയ ഫോം ഫാക്ടർ (കോംപാക്റ്റ് ഡെസ്ക്ടോപ്പ്)

  • എച്ച്: സ്റ്റാൻഡേർഡ് ഫോം ഫാക്ടർ (പരമ്പരാഗത ഡെസ്ക്ടോപ്പ്)

ചാസിസ് തീരുമാനിക്കുന്നത്:

  • ഫിസിക്കൽ അളവുകൾ

  • മൗണ്ടിംഗ് ഓപ്ഷനുകൾ (VESA, ഡെസ്ക്ടോപ്പ്)

  • തെർമൽ ഡിസൈൻ (ഫാൻലെസ് vs ഫാൻ-കൂൾഡ്)

  • പോർട്ട് ലേഔട്ട്

2. ബോർഡ്

പ്രോസസ്സർ ഉള്ള മദർബോർഡ്:

  • N100: ഇന്റൽ N100 (4 കോർ, 3.4GHz, 6W TDP)

  • N150: ഇന്റൽ N150 (4 കോർ, 3.6GHz, 6W TDP)

  • i5-1335U: ഇന്റൽ കോർ i5 13th Gen (10 കോർ, 4.6GHz, 15W TDP)

  • i7-1355U: ഇന്റൽ കോർ i7 13th Gen (10 കോർ, 5.0GHz, 15W TDP)

ബോർഡ് തീരുമാനിക്കുന്നത്:

  • പ്രോസസ്സർ ജനറേഷൻ, സീരീസ്, മോഡൽ

  • കോർ എണ്ണം

  • പരമാവധി ഫ്രീക്വൻസി

  • കാഷെ സൈസ്

  • ഇന്റഗ്രേറ്റഡ് ഗ്രാഫിക്സ്

3. റാം

മെയിൻ മെമ്മറി കപ്പാസിറ്റി:

  • 4: 4GB DDR4

  • 8: 8GB DDR4

  • 16: 16GB DDR4

  • 32: 32GB DDR4

  • 64: 64GB DDR4

യൂണിറ്റ് ഇല്ലാതെ GB-ൽ റാം വ്യക്തമാക്കുന്നു.

4. ഫ്ലാഷ്

SSD സ്റ്റോറേജ് കപ്പാസിറ്റി:

  • 128: 128GB SSD

  • 256: 256GB SSD

  • 512: 512GB SSD

  • 1024: 1TB SSD (1024GB)

  • 2048: 2TB SSD (2048GB)

യൂണിറ്റ് ഇല്ലാതെ GB-ൽ ഫ്ലാഷ് വ്യക്തമാക്കുന്നു.

5. അഡാപ്റ്റർ

ഡിസ്പ്ലേ ഔട്ട്പുട്ട് കോൺഫിഗറേഷൻ:

  • 2H: 2× HDMI പോർട്ടുകൾ

  • 2D: 2× DisplayPort

  • 1H1D: 1× HDMI + 1× DisplayPort

  • 1H1V: 1× HDMI + 1× VGA

  • 3H: 3× HDMI പോർട്ടുകൾ

അഡാപ്റ്റർ ലഭ്യമായ ഡിസ്പ്ലേ ഔട്ട്പുട്ടുകൾ തീരുമാനിക്കുന്നു.

6. WiFi

വയർലെസ് കണക്റ്റിവിറ്റി:

  • W6: WiFi 6 (802.11ax) + ബ്ലൂടൂത്ത് 5.2

  • W6E: WiFi 6E (802.11ax 6GHz) + ബ്ലൂടൂത്ത് 5.2

  • ഇല്ല: വയർലെസ് ഇല്ല (ഈതർനെറ്റ് മാത്രം)

7. OS

ഓപ്പറേറ്റിംഗ് സിസ്റ്റം:

  • 11P: മൈക്രോസോഫ്റ്റ് വിൻഡോസ് 11 പ്രോ

  • U: ഉബുണ്ടു ലിനക്സ് 24.04 LTS

  • DOS: FreeDOS (OS ഇല്ല)

  • Thinux: തിൻവെന്റ്® തിനക്സ്™ എംബെഡഡ് ലിനക്സ്

8. ആകസ്സറികൾ (ഓപ്ഷണൽ)

അധിക ഘടകങ്ങൾ:

  • KM: കീബോർഡ് + മൗസ് കോമ്പോ

  • MK: മെക്കാനിക്കൽ കീബോർഡ്

  • VESA: VESA മൗണ്ട് ബ്രാക്കറ്റ്

  • Stand: ക്രമീകരിക്കാവുന്ന സ്റ്റാൻഡ്

ഒന്നിലധികം ആകസ്സറികൾ കൂട്ടിച്ചേർക്കാം: KM-VESA

SKU സാധുതാ പരിശോധന

എല്ലാ കോമ്പിനേഷനുകളും സാധുവല്ല. കംപാറ്റിബിലിറ്റി നിയമങ്ങൾ ഉപയോഗിച്ച് ഞങ്ങൾ SKU-കൾ സാധൂകരിക്കുന്നു:

SKU ഫംഗ്ഷൻ പരിശോധിക്കുക

def check_sku(sku: str) -> bool:
    partids = sku.split("-")
    if len(partids) < len(part_sequence):
# ... (implementation details omitted)

കംപാറ്റിബിലിറ്റി നിയന്ത്രണങ്ങൾ

ഘടകങ്ങൾക്ക് അവ മറ്റേത് ഘടകങ്ങളുമായി കംപാറ്റിബിൾ ആണെന്ന് വ്യക്തമാക്കാം:

ഉദാഹരണം: ട്രിയോ ചാസിസ് പ്രത്യേക ബോർഡുകൾ അനുവദിക്കുന്നു

{
  "Treo": {
    "allows": {
      "Board": ["N100", "N150", "i5-1335U"],
      "RAM": ["4", "8", "16", "32"],
      "Adapter": ["2H", "1H1D"]
    }
  }
}

ഇത് "ട്രിയോ-i7-64-2048-3H" പോലുള്ള അസാധുവായ കോമ്പിനേഷനുകൾ തടയുന്നു (ട്രിയോ i7 അല്ലെങ്കിൽ 3H അഡാപ്റ്റർ പിന്തുണയ്ക്കുന്നില്ല).

SKU വികസനം

SKU-കളെ മനുഷ്യർക്ക് വായിക്കാവുന്ന പേരുകളാക്കി മാറ്റുന്നു:

def expand_sku(sku: str) -> str:
    part_ids = sku.split("-")
    part_names = [
        productdb[part_sequence[i].value][part_id]["external"] 
# ... (implementation details omitted)        
    ]

ഉദാഹരണം:

ഇൻപുട്ട്:  Treo-N100-8-256-2H-W6-11P
ഔട്ട്പുട്ട്: ട്രിയോ മിനി പിസി, ഇന്റൽ N100, 8GB DDR4, 256GB SSD, 2× HDMI, WiFi 6, വിൻഡോസ് 11 പ്രോ

ഓരോ ഘടകത്തിനും external ഫീൽഡിൽ ഉപഭോക്താവിനെ അഭിമുഖീകരിക്കുന്ന പേര് അടങ്ങിയിരിക്കുന്നു.

ഫീച്ചർ എക്സ്ട്രാക്ഷൻ

SKU ഘടന സ്വയംചാലിതമായ ഫീച്ചർ എക്സ്ട്രാക്ഷൻ പ്രാപ്തമാക്കുന്നു:

ഫീച്ചർ ക്രമം

എക്സ്ട്രാക്റ്റ് ചെയ്യേണ്ട ഫീച്ചറുകളുടെ ഒരു ക്രമം ഞങ്ങൾ നിർവചിക്കുന്നു:

feature_sequence = {
    "Generation": {"Unit": "", "Heading": "Processing"},
    "Series": {"Unit": "", "Heading": "Processing"},
# ... (implementation details omitted)

ഓരോ ഫീച്ചറിനും ഇവയുണ്ട്:

  • യൂണിറ്റ്: അളക്കൽ യൂണിറ്റ് (GB, GHz, Mbps)

  • ഹെഡിംഗ്: ഗ്രൂപ്പിംഗിനുള്ള വിഭാഗം (പ്രോസസ്സിംഗ്, ഡിസ്പ്ലേ, കണക്റ്റിവിറ്റി)

ഫീച്ചറുകൾ എക്സ്ട്രാക്റ്റ് ചെയ്യൽ

SKU-യിലെ ഓരോ ഘടകത്തിനും, അതിന്റെ ഫീച്ചറുകൾ ഞങ്ങൾ എക്സ്ട്രാക്റ്റ് ചെയ്യുന്നു:

# Board: N100
{
    "Generation": "12th",
# ... (implementation details omitted)

ഈ ഫീച്ചറുകൾ എല്ലാ ഘടകങ്ങളിലുടനീളം ഒരുമിച്ച് ചേർത്ത് ഉൽപ്പന്നത്തിന്റെ പൂർണ്ണമായ ഫീച്ചർ സെറ്റ് സൃഷ്ടിക്കുന്നു