Обновить
45
0
Иван Плесских@Amareis

Пользователь

Отправить сообщение

Лучше тогда на расте и писать, он в wasm замечательно компилируется и в браузере запускается. Десктопная версия с максимальной оптимизацией в таком случае прилагается в подарок.

Silero модели не пробовали? У них и STT и TTS есть, ну и русский один из целевых языков.

Кстати, а насчет gonka.ai - их протокол в основе кокона лежит - не смотрели? Там гораздо больше карт и моделей вроде должно быть? @raiym

Мне вот прям интересно как там своего воркера развернуть и можно ли кастомные модели делать... Жаль что для этого надо найти впс где можно TDX включить и в целом должна быть возможность сбора машинки с нужным процем и GPU, что сейчас не слишком просто сделать.

Кажется вы переизобрели durable execution, в частности restate.dev

Как бы это глупо не звучало... Но лучше у ИИ спросить - https://share.google/aimode/UjLUzlP0jJyOYAIYQ
Он за вас со всеми знающими людьми в интернете пообщается и ссылки вам предоставит, как в примере.

Так запретите ту же индексацию через клиппи, правило нужное я привел. Панику при overflow тоже можно устранить двумя способами - либо на уровне компиляции разрешить его чтобы не паниковал никогда, либо для клиппи настроить:

#![warn(
clippy::cast_sign_loss,
clippy::cast_possible_truncation,
clippy::cast_possible_wrap,
clippy::cast_lossless
)]

Надо просто через clippy запрещать indexing_slicing - в clippy.toml положить сразу. Там же можно и expect/unwrap запретить, а также разрешить это все в тестах.

strip_prefix clippy тоже умеет предлагать кажется.

Посмотрите https://learn.golem.cloud/fundamentals - просто весь процесс в васме замораживают и продолжают с той же точки.

А можно хоть какие-то подробности добавить? Хотя бы ссылку на бенчмарки или еще что-то

@Boomburum жесть конечно ваши коллеги ущербно себя ведут.

Так, подождите, про письмо от ПОДДЕРЖКИ ХАБРА - это вы серьезно? ЧИВО БЛИН?!

https://share.google/aimode/H3WGmYMQ8sRJjKfq2
Считайте это вместо LMGTFY, вопрос просто действительно странный.

Во-первых это не стд а внешняя либа.

Во-вторых у него есть Send+Sync - то есть он (как минимум - предполагается что) потокобезопасный.

Замечу, кстати, что в расте можно сделать себе заморочку с получением элемента по индексу — буквально через clippy запретить обычную [] индексацию и использовать .get метод, который возвращает Option, просто это уже opt-in поведение, если надоело паники ловить на пустом массиве, например.

Там же в конце статьи про них два раза написано, или автор потом уже добавил?

Я говорю про то, чтобы автоматически валидировать переделки ИИ вместо того чтобы смотреть изменения структуры кода глазами каждый раз

Ну я скорее про то что после изменений генерить этот ямл заново и валидировать какие-то общие правила, как описывал автор статьи?

О, как раз то о чем я говорилил выше. А тесты через этот инструмент потом не пытались делать?

Но ведь вопрос что делать с исключением/паникой в коллбэке - это исключительно вопрос логики библиотеки? Как здесь язык может помочь, любой?

Где-то приемлемо пропустить панику и завалить библиотеку, где-то можно заставить коллбэки быть fallible - то есть они могут вернуть Result::Err с разными причинами и либа как-то их обрабатывает - в таком случае паника просто преобразуется в тот же Err и дальше вы делаете всю стандартную логику.

Тут может возникнуть вопрос с тем что коллбэк может успеть до паники поменять ваш стейт и в итоге состояние будет в каком-то виде на который внешний код не рассчитывает - но, опять же, тут нет хорошего пути решения.

То, что в эрланге это решается тем что рантайм/стд в таком случае перезапускают воркеры - это только один из возможных способов обработки, на уровне языка конкретного такое может решаться только через общие соглашения или через явное требование указать способ обработки таких ситуаций при инициализации библиотеки, чтобы внешнему пользователю пришлось посмотреть какие вообще доступны варианты и их плюсы/минусы. И вот тут кстати раст как раз позволит сделать так, чтобы не указав этот параметр ты вообще не смог библиотеку использовать.

Понимаю что такой подход добавляет когнитивную нагрузку на вызывающего, но других решений просто нет - только разумные дефолты с возможностью их изменения.

Про десериализацию/анбоксинг я вообще не понимаю примера - в расте принято по умолчанию что такие операции возвращают Result, который панику может инициировать только при unwrap - и тут компилятор как раз и поможет, вынуждая явно обрабатывать ошибку. И это как раз и есть общее соглашение на уровне языка. Конкретный код/либа может его игнорить, разумеется, но тут уж точно ничего на уровне языка/компилятора не поделаешь.

1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Челябинск, Челябинская обл., Россия
Зарегистрирован
Активность