Не лише чат-боти: як LLM вбудовуються в інженерний workflow (CAD, електрика, АСУ ТП, проєкти, hardware)
Розширена версія вихідної статті «Не лише чат-боти: LLM у робочому процесі інженера-механіка» (2 грудня 2025). Мета: фокус на практичній автоматизації, а не «магічному проєктуванні» — насамперед там, де інженери втрачають час на повторюваних кроках, пошуку по документації, конвертації форматів і типових розрахунках.
:::tip Ключова ідея Використовуйте LLM як швидкий інтерфейсний шар для інженерних систем. Підсумкові результати тримайте детермінованими та валідуйте тестами, правилами й простежуваними джерелами. :::
1) Короткий розбір вихідної статті: що сильно, а що варто розширити
Сильні ідеї (збережені та посилені):
- LLM як інтерфейс до інструментів, а не «генератор деталей».
- Zero-shot генерація макросів і скриптів для скорочення часу освоєння API.
- Вилучення даних із PDF і таблиць у формати, готові для JSON/ERP/PDM.
- RAG за стандартами для точного пошуку у великих документах.
- Дисципліна структури промпта (контекст -> завдання -> обмеження).
Чого часто бракує (додано в цій розширеній версії):
- Валідація та відповідальність: вивід LLM зобов'язаний проходити тести й критерії приймання.
- Стратегія системної інтеграції: як LLM вписується в IDE, Git, CI, PDM/PLM, SCADA, ERP.
- Приклади для різних ролей: електрика, КВПіА/АСУ ТП, проєктна інженерія, hardware/PCB, якість, експлуатація.
- Непряме застосування з високим ROI: LLM пише утиліти, парсери, перевірки та невеликі повсякденні вебзастосунки.
- Workflow якості даних: parse -> normalize -> validate -> load, включно з обробкою шуму OCR.
- Безпека та конфіденційність: запобігання витокам креслень, BOM і комерційних даних.
2) Основна ідея: LLM — інженерний «клей» між системами
Ставтеся до LLM як до:
- помічника з мови та структури (описав задачу -> отримав код/шаблон/план),
- генератора чернеток (скрипт, макрос, SQL, Python, ST/IEC 61131-3, C#, PowerShell),
- нормалізатора даних (таблиці, PDF, BOM, специфікації),
- компаньйона зі стандартів (RAG, вилучення вимог, матриці простежуваності).
Не ставтеся до LLM як до:
- заміни інженерного судження,
- джерела істини за стандартами без верифікації,
- рушія для автономних критично важливих рішень.
Де LLM об'єктивно сильні
- Перетворення текстових інструкцій у структурований вивід.
- Переклад вимог в алгоритми та каркаси скриптів.
- Робота з патернами API/SDK (обхід дерева, фільтрація, пакетний експорт/імпорт).
- Генерація документації, чек-листів, тест-кейсів та обробки помилок.
Де вони слабші (і як це компенсувати)
- Просторове та геометричне мислення.
- Високоточна математика «на довірі».
- Впевнені галюцинації з невірними деталями.
Патерн компенсації: суворий ввід/вивід, тести, еталонні приклади, детерміноване виконання та приймальні перевірки.
3) Універсальний патерн впровадження: LLM + детермінований інструмент + валідація
Найкращі результати в інженерії зазвичай дає такий стек:
Engineer task -> prompt -> LLM (code/template/plan)
|
v
deterministic executor
(CAD API / Python / solver / simulator / parser / CI)
|
v
validation (unit tests, rules, baseline comparisons)
|
v
result (file, report, export, DB write)
Ключовий момент: LLM не «видає» фінальний інженерний результат напряму. Вона генерує інструкції та код. Фінальний результат — підсумок детермінованого виконання плюс верифікація.
4) Приклади за ролями: де реально швидкий ефект
Це сценарії з високою ймовірністю успіху: вони повторювані, насичені текстом і таблицями, дружні до API та тестовані.
4.1 Машинобудування / CAD / конструкторські бюро
Задачі, які добре автоматизуються:
- Пакетний експорт (DXF/DWG/PDF/STEP), потоки друку, генерація листів.
- Оновлення властивостей (матеріал, маса, позначення, ревізія), іменування файлів.
- Перевірки моделей (порожні властивості, невірні одиниці, нестандартні імена конфігурацій).
- Генерація звітів (BOM, зведення за масою, переліки змін).
- Пре/постобробка для розрахункових workflow (CSV у графіки та звіти).
Непрямо, але дуже ефективно:
- повсякденні утиліти для посадок, підбору різьби, перерахунку одиниць, перевірки правил іменування.
Приклад: валідатор позначень деталей (Python)
import re
RULE = re.compile(r"^[A-Z]{2}-\d{4}-[A-Z]{2}\d{2}$") # Приклад: AB-1024-XY05
def validate_part_number(pn: str) -> bool:
return bool(RULE.match(pn))
candidates = ["AB-1024-XY05", "ab-1024-XY05", "AB-102-XY05"]
for pn in candidates:
print(pn, "OK" if validate_part_number(pn) else "FAIL")
Користь LLM: швидка генерація логіки валідації, CLI-інструментів, міні-застосунків на PyQt і каркасів плагінів, при цьому інженер контролює правила та приклади.
4.2 Інженери-електрики (схеми, щити, кабельні журнали, розрахунки)
Сильні сценарії:
- Генерація та перевірка кабельних журналів, переліків сигналів, I/O-списків.
- Автоматизація ланцюжків даних: навантаження -> групи -> автомати -> кабелі.
- Чернетки технічних вимог, пояснювальних записок, переліків обладнання.
- Нормалізація проєктних даних: чистка імен, приведення одиниць, пошук дублікатів.
Приклад: каркас швидкої утиліти розрахунку падіння напруги
from dataclasses import dataclass
@dataclass
class Line:
length_m: float
current_a: float
voltage_v: float
r_ohm_per_km: float # Опір провідника за заданої температури
def voltage_drop_percent(line: Line) -> float:
# Спрощена однофазна модель: dU = I * R
# R = r_ohm_per_km * (L / 1000)
r_total = line.r_ohm_per_km * (line.length_m / 1000.0)
du = line.current_a * r_total
return du / line.voltage_v * 100.0
l = Line(length_m=80, current_a=32, voltage_v=230, r_ohm_per_km=1.15)
print(f"Voltage drop: {voltage_drop_percent(l):.2f}%")
LLM можна попросити додати:
- імпорт таблиці кабелів із CSV/Excel і обмеження вибору,
- CLI + експорт звіту в PDF,
- unit-тести за еталонними випадками,
- пакування в командну утиліту.
Важливо: формули та поправочні коефіцієнти мають перевірятися за застосовними для вас стандартами (IEC/NEC/внутрішні правила). LLM прискорює реалізацію, а не узгодження відповідності.
4.3 Інженери АСУ ТП / КВПіА (PLC, SCADA, DCS)
Автоматизація з високим ефектом:
- Каркаси коду PLC (IEC 61131-3: ST/FBD) з функціональних описів.
- Нормалізація імен тегів і пошук дублікатів.
- Генерація текстів аварійних повідомлень і структур пріоритизації.
- Конвертація legacy: PDF-даташит -> структурований набір параметрів -> імпорт в інженерний інструмент.
- Перевірки узгодженості між I/O-списком, контурними схемами, тегами SCADA і переліками аварій.
Приклад: каркас функціонального блоку пуску двигуна на Structured Text
FUNCTION_BLOCK FB_MotorStart
VAR_INPUT
StartCmd : BOOL;
StopCmd : BOOL;
EStopOk : BOOL;
InterlockOk : BOOL;
FeedbackOn : BOOL;
END_VAR
VAR_OUTPUT
RunOut : BOOL;
Fault : BOOL;
END_VAR
VAR
latchedRun : BOOL;
tFeedback : TON;
END_VAR
// Фіксація команди пуску
IF StopCmd OR NOT EStopOk THEN
latchedRun := FALSE;
ELSIF StartCmd AND InterlockOk THEN
latchedRun := TRUE;
END_IF;
RunOut := latchedRun AND EStopOk AND InterlockOk;
// Контроль зворотного зв'язку (спрощено)
tFeedback(IN := RunOut AND NOT FeedbackOn, PT := T#3S);
IF tFeedback.Q THEN
Fault := TRUE;
latchedRun := FALSE;
END_IF;
LLM допомагає згенерувати початковий каркас, діагностику, обробку станів, таймери, документацію та чернетки тест-кейсів для симуляції.
Відповідальність інженера залишається непорушною: логіка безпеки, умови зупинки, поведінка fail-safe, сценарії відмови датчиків і стандарти майданчика.
4.4 Проєктні інженери та міждисциплінарні команди (вимоги та координація)
Зони негайної користі:
- Перетворення розрізнених вимог у структуровані специфікації.
- Автогенерація матриць простежуваності вимог.
- Чернетки пакетів RFI/RFQ і шаблонів відповідей зацікавленим сторонам.
- Вилучення ризиків і доручень із протоколів зустрічей (з контролем конфіденційності).
Приклад потоку: вилучення вимог у JSON
Ідея промпта: «Перетвори цей вихідний текст у JSON зі схемою id, requirement, rationale, verification_method, priority.»
Далі:
- валідація за JSON Schema,
- імпорт у Jira/Polarion/DOORS/Confluence,
- генерація планів верифікації.
4.5 Інженери hardware і PCB (BOM, автоматизація тестів, каркаси прошивок)
Цілі з високою віддачею:
- Нормалізація BOM: виробник, MPN, аналоги, одиниці, описи.
- Генерація скриптів стендових випробувань (Python + SCPI/PyVISA, serial, CAN).
- Каркаси прошивок (драйвери, скінченні автомати, обробники протоколів) із суворим ревʼю.
- Чек-листи bring-up і чернетки планів виробничих тестів.
Приклад: мінімальна обгортка ідентифікації за SCPI
import pyvisa
def read_idn(resource: str) -> str:
rm = pyvisa.ResourceManager()
inst = rm.open_resource(resource)
inst.timeout = 5000
return inst.query("*IDN?").strip()
print(read_idn("USB0::0x0000::0x0000::INSTR"))
LLM швидко додасть повторні спроби, діагностику з'єднання, структуровані логи, експорт CSV/JSON, зручний CLI і зведення прогонів тестів.
5) Детальні кейси з рецептами впровадження
Кейс A: zero-shot CAD-скрипти з контролем якості
Задача: пакетний експорт усіх листових деталей зі складання в DXF, з папками та логами.
Чому LLM допомагає швидко:
- обхід складання,
- фільтрація листових деталей,
- параметри експорту,
- правила іменування,
- обробка помилок і логування.
Безпечна послідовність впровадження:
- Визначте явні входи та виходи.
- Згенеруйте каркас на CAD API (VBA/C#/Python).
- Додайте приймальні перевірки:
- очікувана кількість файлів,
- відповідність шаблону іменування,
- відхилення дублікатів/порожніх імен,
- повний статусний лог.
- Спочатку прогін на тестовому складанні, потім на робочому.
- Ведіть версіонування в Git із фіксованими версіями CAD/плагінів.
Шаблон промпта для генерації CAD-скрипта
Context:
- CAD: SolidWorks 2023
- Language: VBA (or C#)
- Object: active assembly (.sldasm)
Task:
- Find all sheet-metal parts, including nested subassemblies
- Export each to ./ExportDXF/<PartNumber>/
- File naming: <PartNumber>_<ConfigName>.dxf
Constraints:
- Skip suppressed components
- Never overwrite files (append suffix instead)
- Write log.csv with part, config, status, message
Acceptance criteria:
- For a 10-part sheet-metal test assembly, produce 10+ DXFs (depending on configs)
- Log must have no empty fields and include error codes
Кейс B: PDF -> JSON -> PDM/ERP для даташитів
Задача: вилучити параметри з даташитів (наприклад, датчиків тиску) і створити структуровані записи.
Типова складність: PDF бувають як текстовими, так і сканованими зображеннями.
Рекомендований pipeline:
- Текстовий PDF: парсинг таблиць Python-інструментами (
pdfplumber,camelot,tabula) і нормалізація. - Сканований PDF: захоплення ключових сторінок і мультимодальне вилучення в JSON.
- Валідація всього:
- відповідність схемі,
- узгодженість одиниць,
- простежуваність джерела (файл, сторінка, рядок таблиці).
Приклад мінімальної JSON-схеми
{
"tag": "PT-101",
"device_type": "Pressure Transmitter",
"manufacturer": "ACME",
"model": "X200",
"range": {"min": 0, "max": 10, "unit": "bar"},
"output": "4-20 mA + HART",
"supply": {"min": 12, "max": 30, "unit": "VDC"},
"process_connection": "G1/2",
"materials": {"wetted": "316L"},
"ip_rating": "IP67",
"source": {"file": "datasheet_x200.pdf", "page": 3}
}
Ключова тактика: вимагайте від моделі строго JSON-only вивід.
Шаблон промпта для вилучення таблиць
You are given a table image (page 3). Return JSON only with this schema:
- manufacturer (string)
- model (string)
- range.min (number), range.max (number), range.unit (string)
- supply.min (number), supply.max (number), supply.unit (string)
- output (string)
- ip_rating (string)
Use null when a value is missing.
Кейс C: RAG за стандартами та внутрішніми регламентами
Задача: відповідати на питання на кшталт моментів затягування, допусків і правил маркування з посиланнями на джерела.
Потік RAG:
- індексація PDF і внутрішніх документів,
- вилучення релевантних фрагментів,
- відповідь на основі знайденого,
- збереження посилань на документ/сторінку.
PDF/docs -> chunking -> embeddings -> vector DB
|
v
user query
|
v
top-k retrieved fragments
|
v
LLM answer + source citations
Практичне правило: зберігайте версію стандарту, дату набуття чинності та внутрішні винятки поруч із кожним індексованим джерелом.
Кейс D: LLM як генератор мікрозастосунків для повсякденних інженерних задач
Іноді найвищий ROI дає невеликий сервіс, а не повноцінний «агент».
Приклади:
- вебформа для вхідних параметрів -> валідований звіт,
- бот для Slack/Teams з чек-листами та посиланнями на стандарти,
- надбудова Excel для потоків нормалізації даних.
Приклад каркаса на FastAPI
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class Input(BaseModel):
length_m: float
current_a: float
voltage_v: float
r_ohm_per_km: float
@app.post("/voltage-drop")
def voltage_drop(inp: Input):
r_total = inp.r_ohm_per_km * (inp.length_m / 1000.0)
du = inp.current_a * r_total
return {"drop_percent": du / inp.voltage_v * 100.0}
LLM швидко додасть OpenAPI-документацію, валідацію, логи, Dockerfile і покриття тестами.
6) Практика промптингу для інженерів: шаблони, які справді працюють
6.1 Універсальний промпт для інженерного коду
1) Context
- Tool/version: (SolidWorks 2023 / EPLAN / TIA Portal / KiCad / Python 3.11)
- Language: (VBA/C#/Python/ST)
- Environment constraints: (offline, stdlib-only, access limits)
2) Inputs
- What comes in? (file, folder, CSV, parameters)
- At least one sample input
3) Outputs
- What should be produced? (files, report, JSON, model changes)
- Strict output format
4) Rules
- Naming, units, standards, exceptions
- Error definitions
5) Acceptance criteria
- 3-5 verifiable checks
- Preferably test cases (input -> expected output)
6.2 Завжди просіть тести
Доповнення до промпта, що підвищують надійність:
- «Згенеруй 5 unit-тестів
pytestдля граничних випадків формули.» - «Додай конфігурацію статичної типізації (
mypy) і лінтингу (ruff).»
Це помітно знижує кількість «тихих» логічних помилок.
7) Контроль якості: як уникнути хаосу через LLM
Мінімальний набір практик, що працює в продакшені:
- Використовуйте Git для всіх скриптів/макросів.
- Вимагайте code review людиною.
- Ведіть логи та звіти про виконання.
- Підтримуйте еталонні набори даних (тестові складання, тестові PDF, тестові теги).
- Застосовуйте JSON Schema і строгі формати виводу.
- Блокуйте автоматичний запис без попереднього dry-run + звіту.
Практичне правило: LLM прискорює створення артефактів (код, документація, таблиці), але відповідальність за інженерні рішення залишається за кваліфікованими інженерами та перевіреними детермінованими інструментами.
8) Реалістичний план впровадження на 2-4 тижні
Тиждень 1: виберіть 1-2 больові точки
- Приклади: експорт DXF, чистка BOM, генерація I/O-списків, розрахунок падіння напруги.
Тиждень 2: прототип
- Скрипт + один тестовий набір даних + лог виконання.
- Внутрішній README з інструкцією із запуску.
Тиждень 3: обв'язка якості
- Unit-тести, валідація форматів, обробка помилок.
- Git-репозиторій і дисципліна версій.
Тиждень 4: пілот у роботі
- Інструктаж команди.
- Пілот на реальних даних.
- Цикл зворотного зв'язку та ітерації.
9) Головний висновок
LLM — це не про «нехай ШІ спроєктує за мене». Це про:
- автоматизацію рутини (експорт, властивості, звіти, таблиці),
- пришвидшену розробку внутрішніх інструментів (скрипти, калькулятори, валідатори),
- структуроване вилучення знань (PDF -> JSON, RAG за стандартами),
- зростання якості за рахунок прозорих pipeline і тестів.
Роль інженера зміщується від оператора інтерфейсів до архітектора автоматизації: визначати правила, перевіряти результати та будувати відтворювані workflow.
Навігація за тегами до інших опублікованих статей
Використовуйте теги для переходу між пов'язаними матеріалами:
Опубліковані статті, пов'язані цими тегами:
