Согласен, формулировка об «устаревании» stdio была – слишком. Скорее «устаревание» – это имелось ввиду для самого проекта. Для локального использования это действительно самый эффективный стандарт MCP, а проблемы буферизации ввода в Delphi решаются отказом от Readln в пользу WinAPI (ReadFile/WriteFile поверх STD_INPUT_HANDLE). Мусор от DLL в stdout также лечится перехватом колбеков логирования OpenCV и FFmpeg. Схема с локальным stdio-прокси и удалённым TCP-мостом со сжатием должна работать прекрасно. Что-то наподобие этого: [ИИ-Клиент] <--- (stdio / JSON-RPC) ---> [Локальный прокси (Delphi)] <--- (TCP / Сжатие) ---> [Удаленный медиа-сервер (Delphi + GPU)] Кроме этого, решает проблему передачи файлов без Base64-оверхеда.
Но там были еще аргументы для SSE:
Позволяет держать один медиа-сервер с GPU и камерами на мощном ПК, а подключаться к нему с разных устройств (например, с ноутбука или из контейнеров в локальной сети). stdio – физически заперт на одной машине.
Позволяет ИИ-агенту из WSL-окружения подключаться к Windows-хосту напрямую по сети без написания и поддержки прокси-прослоек или SSH-туннелей.
При перезапуске IDE или падении ИИ-клиента HTTP-сервер продолжает работать, изолируя сессии по HTTP-заголовкам. В случае со stdio – падение клиента часто оставляет дочерний процесс сервера висеть в памяти Windows.
Использование официального транспорта SSE (Server-Sent Events) позволяет серверу самому присылать агенту события (например, о сработке детектора движения) без постоянного опроса со стороны клиента.
В Delphi порог вхождения определяется наличием или отсутствием компонент.
А замена универсальной функции набором функций с разными типами параметров – это тоже, только в профиль. Алгоритм один, на вход принимает данные в жестко заданном виде. Даже если определена функция, принимающая на вход данные в необычной форме, все равно их нужно будет преобразовать под формат алгоритма. А как это делается – неважно. Скрыто, как это делает OpenCV, или вызовом одной из специфических функций, которая все равно делает скрыто такие преобразования. Для пользователя проще скрытое преобразование.
Согласен, формулировка об «устаревании» stdio была – слишком. Скорее «устаревание» – это имелось ввиду для самого проекта.
Для локального использования это действительно самый эффективный стандарт MCP, а проблемы буферизации ввода в Delphi решаются отказом от
Readlnв пользу WinAPI (ReadFile/WriteFileповерхSTD_INPUT_HANDLE). Мусор от DLL вstdoutтакже лечится перехватом колбеков логирования OpenCV и FFmpeg. Схема с локальным stdio-прокси и удалённым TCP-мостом со сжатием должна работать прекрасно.Что-то наподобие этого:
[ИИ-Клиент] <--- (stdio / JSON-RPC) ---> [Локальный прокси (Delphi)] <--- (TCP / Сжатие) ---> [Удаленный медиа-сервер (Delphi + GPU)]Кроме этого, решает проблему передачи файлов без Base64-оверхеда.
Но там были еще аргументы для SSE:
Позволяет держать один медиа-сервер с GPU и камерами на мощном ПК, а подключаться к нему с разных устройств (например, с ноутбука или из контейнеров в локальной сети). stdio – физически заперт на одной машине.
Позволяет ИИ-агенту из WSL-окружения подключаться к Windows-хосту напрямую по сети без написания и поддержки прокси-прослоек или SSH-туннелей.
При перезапуске IDE или падении ИИ-клиента HTTP-сервер продолжает работать, изолируя сессии по HTTP-заголовкам. В случае со stdio – падение клиента часто оставляет дочерний процесс сервера висеть в памяти Windows.
Использование официального транспорта SSE (Server-Sent Events) позволяет серверу самому присылать агенту события (например, о сработке детектора движения) без постоянного опроса со стороны клиента.
В Delphi порог вхождения определяется наличием или отсутствием компонент.
А замена универсальной функции набором функций с разными типами параметров – это тоже, только в профиль. Алгоритм один, на вход принимает данные в жестко заданном виде. Даже если определена функция, принимающая на вход данные в необычной форме, все равно их нужно будет преобразовать под формат алгоритма. А как это делается – неважно. Скрыто, как это делает OpenCV, или вызовом одной из специфических функций, которая все равно делает скрыто такие преобразования. Для пользователя проще скрытое преобразование.
Тогда уж
Надеюсь на советы знатоков...
А так - у каждого своя мечта и путь свой...
Тайна третьей планеты ©