fuzzy_matcher) takes two inputs — an
uncertain string (typically STT output) and a source of truth
(a single string or an array of strings) — and returns the source-of-truth
entry that best matches the uncertain input. It uses
RapidFuzz composite scoring so
imperfect transcriptions still map to the right label.
This mirrors the two-input shape of the Conditional node, but instead
of an exact comparison it returns a similarity score plus the matched
string.
Palette category: Transform & Routing. Runs on cloud workflows and
edge workers (same matching logic in both paths).
Typical chain
result. Wire
candidates (source of truth) from Twin node control_actuations —
either an array, or a single string from any upstream node. Branch on
match and pass match_string into actuation.
Inputs
Inspector (node parameters):
- Score Threshold — minimum similarity (0–100) to count as a match. Higher = stricter. Default
80. - Uncertain String (optional) — static fallback when
queryis not wired from upstream. - Source of Truth (optional) — one option per line, or a single string. Used when
candidatesis not wired from upstream.
80 for threshold).
Outputs
Deprecated aliases (kept for older workflows):
Advanced echo (debugging):
query, candidates, score_threshold.
How matching works
- Normalize query and each candidate: lowercase, collapse whitespace,
treat
_and-as spaces, strip punctuation (move_forward→move forward). - Score each candidate with the max of:
token_set_ratio— extra words, shuffled ordertoken_sort_ratio— similar order with typospartial_ratio(both directions) — label inside a long phrase, or short utterance inside a labelWRatio— general typo tolerance
- Pick the highest-scoring source-of-truth entry as
match_string. - Set
matchtotrueonly if that score ≥score_threshold.
100 = perfect after normalization).
Examples (threshold 80)
Tuning score_threshold
Use the score output to calibrate: if good phrases often score 75–79, lower the threshold slightly; if unrelated text still passes, raise it.
Execution targets
Dependencies
Error if compile server lacks the package:
This workflow uses Fuzzy Matcher but rapidfuzz is not installed on the compile server. Install rapidfuzz (or cyberwave[fuzzy-match]) on Django before compiling for edge.See Edge workflow dependencies.
Related nodes
- Twin —
control_actuationsorcontrol_labels→candidates - Call Model STT on edge — STT
result→query - Conditional — branch on
match - Virtual Controller —
match_string→command→ MQTT actuation - Edge workflow dependencies — full package matrix