Correcting Tag Errors with Context - Fixing What OCR Missed
By Anand George
Challenge
The client’s workflow involved processing scanned vendor P&IDs, many of which contained:
- Low-contrast tag numbers
- Inconsistent formatting (e.g.,
A1-FT-1O3
instead ofA1-FT-103
) - Minor OCR distortions that made automated post-processing difficult
These small errors broke tag associations in downstream MTOs and created costly rework. Manual correction was slow, and internal teams lacked a structured way to decide:
“Is this tag
1O3
,103
, or1D3
— and how sure are we?”
Solution
Storm Consulting enabled the OpenAI-enhanced reasoning layer in eAI, allowing:
- Automated suggestions for corrected tag numbers
- Use of surrounding context (nearby tags, loop numbers) to infer likely values
- Human review of suggestions before committing changes
The prompt logic used only anonymized, cleaned text, and no actual drawings or vendor-specific data were sent to OpenAI.
Implementation Highlights
- Applied a “tag correction prompt” with 2–3 nearby tag samples
- Limited outputs to tag format rules (e.g.,
XX-FT-123
,41-PT-255
) - Suggestions integrated directly into the annotation UI
- Engineers could accept, reject, or edit the correction
- Every change was logged with before/after states for traceability
Results
Metric | Pre-AI Workflow | With OpenAI Correction |
---|---|---|
Tag OCR accuracy (raw) | ~85% | ~95% (with OpenAI prompt) |
Human correction effort | 100% of tags reviewed | ~20% required manual review |
Engineer-hours saved (per 100 P&IDs) | ~12–15 | ~5 |
False suggestions | < 5% (flagged and skipped) | < 5% |
Data export format | Manual | Structured, corrected CSV |
“I didn’t expect a language model to understand P&ID tags — but it consistently suggested the right corrections. That changed everything.” — QA Engineer, Client Team
💡 Why It Worked
- Engineers trusted the prompt-driven suggestions, since they could see the logic behind each correction
- Tag formatting rules and nearby references anchored OpenAI’s responses
- The system never auto-applied changes — validation stayed in the loop
- Suggestions were contextual, not just spelling corrections