src.dackar.RCA.equipment_similarity.equipment_spec_builder ========================================================== .. py:module:: src.dackar.RCA.equipment_similarity.equipment_spec_builder .. autoapi-nested-parse:: equipment_spec_builder — EquipmentSpecBuilder. Converts KG element_definition properties + failure mode data into a natural-language spec string suitable for embedding. No NLP, no LLM — pure deterministic string assembly. Missing properties are silently omitted. Attributes ---------- .. autoapisummary:: src.dackar.RCA.equipment_similarity.equipment_spec_builder.JsonDict src.dackar.RCA.equipment_similarity.equipment_spec_builder._DEFINITION_PROPS Classes ------- .. autoapisummary:: src.dackar.RCA.equipment_similarity.equipment_spec_builder.EquipmentSpecBuilder Module Contents --------------- .. py:data:: JsonDict .. py:data:: _DEFINITION_PROPS :value: [('domain_category', 'Type'), ('structural_kind', 'Structural kind'), ('nominal_size', 'Nominal... .. py:class:: EquipmentSpecBuilder Builds a natural-language equipment spec string for embedding. The output is intentionally verbose — more context helps the embedding model place the component accurately in semantic space. Downstream similarity is purely cosine distance between these representations. Example output:: Equipment: Main coolant pump (MCP-A) Type: centrifugal pump Structural kind: horizontal split-case, 4-stage Nominal size: 500 GPM Design pressure: 150 psig Design temperature: 300°F Material: 316 stainless steel Manufacturer: Flowserve Model: VPC-4-150 Failure modes: bearing wear, seal degradation, impeller erosion Failure mechanisms: fatigue, abrasion, corrosion .. py:method:: build_spec_text(component_id, component_name, definition_props, failure_mode_names = None, failure_mechanisms = None) Build and return the spec text for one component. :param component_id: KG element_usage node ID. :param component_name: Human-readable name of the component instance. :param definition_props: Dict of element_definition node properties. Keys expected: ``domain_category``, ``structural_kind``, ``nominal_size``, ``design_pressure``, ``design_temperature``, ``material_spec``, ``manufacturer``, ``model_number``. Missing keys are skipped. :param failure_mode_names: List of failure mode names linked to this component. :param failure_mechanisms: List of failure mechanism labels (e.g. "fatigue", "corrosion").