Files
tfm_ainventory/config/ai_prompt.md

5.7 KiB

Technical Inventory Hardware Extraction Protocol

Extract ALL relevant hardware items from the image with precise, standardized formatting.

Filtering Rules

  • INCLUDE: Physical hardware, modules, cables, servers, storage, transceivers
  • EXCLUDE: Generic mounting hardware (screws, brackets, rails), paper licenses, empty packaging
  • Multi-item labels: Treat each SKU/variant as a separate item (e.g., "5m cable" and "7m cable" = 2 items)

Item Field Format (CRITICAL)

[]

Component Rules:

  • <size_or_length>:

    • STORAGE CAPACITY - HUMAN READABLE: Convert to largest unit (TB/MB).
      • Examples: "1600GB" → "1.6TB", "256GB" → "256GB", "512MB" → "512MB"
      • Rule: If ≥1000GB, use TB. If ≥1000MB, use GB. Otherwise use MB.
    • CABLE/WIRE LENGTH: Meters only. Examples: "5m", "10m", "50m"
    • RAM DIMM: Capacity in GB. Examples: "128GB", "32GB", "8GB"
  • <type>: Asset class. One of: DDR3/DDR4/DDR5, SSD/HDD/NVMe, SATA/SAS, Patchcord/Fiber/Cable, SFP/Transceiver, DIMM, etc.

  • <vendor>: Manufacturer (HP, HPE, Dell, Samsung, Cisco, Hynix, Intel, Broadcom)

  • <connector>: Physical interface (RJ45, LC-LC, MPO, U.3, SATA, SAS, ST, SC). Omit if N/A.

  • <part_number>: Part number ONLY if visible. Omit serial numbers.

Item Examples (WITH HUMAN-READABLE SIZES):

  • 1.6TB NVMe HPE U.3 P66093-002 (not 1600GB)
  • 256GB SSD Dell SATA SK-8765 (already human-readable)
  • 5m Patchcord LC-LC
  • 128GB DDR4 Hynix
  • 512MB Cache Samsung SATA (stays MB if under 1GB)

Size Conversion Examples:

  • 1600GB → 1.6TB
  • 2048GB → 2TB
  • 512GB → 512GB (under 1TB threshold)
  • 256MB → 256MB
  • 1024MB → 1GB

Restrictions:

  • No comments in parenthesis
  • No measurement units in Item field (e.g., "1.6TB" not "1.6TB Storage")
  • No secondary vendors
  • No diameter/mm in Item field
  • ONE vendor only (primary manufacturer)

Other Fields

  • Type: Repeat the asset class (DDR4, SSD, NVMe, Patchcord, etc.)
  • Description: Technical summary, max 5 words. Examples: "High-speed fiber optic", "Enterprise Gen4 storage"
  • Category: Memory, Storage, Network, Cabling, Compute, Optical, Transceiver
  • Connector: Interface type from Item field. Examples: "LC-LC", "RJ45", "U.3"
  • Size: HUMAN-READABLE capacity or length. Examples: "1.6TB", "256GB", "5m" (NOT "1600GB")
  • Color: Physical color if distinguishing
  • PartNr: Part number only (no serial numbers)
  • OCR: Robust matching key for OCR tolerance

OCR Field Rules (CRITICAL)

Generate a SHORT, clean matching key:

  • Format: UPPERCASE space-separated, NO special chars, NO duplicates
  • Include ONLY: Type + Size + Primary Vendor + Connector + Part Number
  • EXCLUDE: Serial numbers, secondary vendors, duplicate tokens, EMC/SK labels
  • USE HUMAN-READABLE SIZE: Use TB/GB from Item field, not original notation

OCR Format: TYPE SIZE VENDOR CONNECTOR PARTNUMBER

OCR Examples (WITH HUMAN-READABLE SIZES):

  • Item: 1.6TB NVMe HPE U.3 P66093-002 → OCR: NVME 1.6TB HPE U3 P66093002
  • Item: 5m Patchcord LC-LC → OCR: PATCHCORD 5M LC LC
  • Item: 256GB SSD Samsung SAS SK-8765 → OCR: SSD 256GB SAMSUNG SAS SK8765
  • Item: 128GB DDR4 Hynix → OCR: DDR4 128GB HYNIX

OCR Constraints:

  • NO duplicate part numbers
  • NO secondary vendor names
  • NO extraneous labels
  • Each token appears ONE time only
  • Remove hyphens/special chars for fuzzy matching
  • Use HUMAN-READABLE sizes (1.6TB not 1600GB)

Spare-Parts vs Consumables Classification

CLASSIFICATION GUIDE - SPARE PARTS vs CONSUMABLES:

Spare Parts (replaceable components that plug into or interface with devices):

  • RAM, DDR memory modules (DDR3, DDR4, DDR5, SODIMM, DIMM)
  • SSDs, NVMe drives, M.2 modules, SATA drives, hard drives
  • CPUs, GPUs, processors, discrete graphics cards
  • Power supply units (PSU), power modules (NOT generic power cords)
  • Expansion cards (PCIe, PCI, RAID controllers, network cards/NIC)
  • Cooling solutions (heatsinks, CPU coolers, thermal solutions)
  • Motherboards, chipsets, BIOS modules

NOT Spare Parts (consumables, generic items):

  • Cables (power, SATA, USB, Ethernet, proprietary cords)
  • Fasteners (screws, washers, bolts, standoffs)
  • Thermal paste, thermal pads, adhesive tapes
  • Connectors, plugs, sockets, generic adapters
  • Generic cords and utility items

Decision Tree:

  1. Does the item have a replaceable function in a larger system?
  2. Does it have a manufacturer part number and technical specifications?
  3. Is it described with model/revision information? If YES to 2+ questions: Mark as SPARE PART If item matches consumable examples exactly: Mark as CONSUMABLE Otherwise: Mark as "uncertain" in the Category field for human review.

Examples: ✓ "Kingston Fury 16GB DDR4-3200" → Spare Part (RAM module) ✓ "Samsung 970 EVO 1TB NVMe" → Spare Part (SSD) ✓ "Intel Core i7-12700K" → Spare Part (CPU) ✓ "Corsair RM850x 850W Power Supply" → Spare Part (PSU) ✗ "6ft SATA Cable" → Consumable (cable) ✗ "CPU Mounting Hardware Kit" → Consumable (fasteners) ✗ "Thermal Paste Tube" → Consumable (adhesive material)

Output Format

{
  "items": [
    {
      "Item": "[size] type vendor connector partnumber",
      "Type": "type",
      "Description": "technical details (max 5 words)",
      "Category": "category",
      "Connector": "connector_type",
      "Size": "human_readable_size",
      "Color": "color",
      "PartNr": "part_number",
      "OCR": "TYPE SIZE VENDOR CONNECTOR PARTNUMBER"
    }
  ]
}

Return ONLY JSON. No markdown. No text.