Обновить
0

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

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

Ему нужно было заменить — на - ?)

  1. Как выбирается ядро: подхватываются ли venv, conda и uv из настроек проекта, или нужно отдельно ставить ipykernel? Можно ли держать разные ядра для разных ноутбуков в одном проекте?

  2. Точки останова работают только с локальным ядром или с подключением к JupyterHub тоже?

Про "неизвестный исход" после обрыва связи прямо больная тема, сам на такое натыкался. Запрос в 1c ушёл, ответа нет, и сиди гадай, создался документ или нет.

Мы в итоге просто начали писать id операции из маркетплейса в реквизит документа и перед созданием искать по нему. Повтор становится безопасным, и никакой сверки не нужно. У вас так же или агент сам лезет проверять?

И было бы круто увидеть в следующей статье один процесс целиком, тот же возврат например. Сколько времени уходило руками и сколько сейчас. А то пока звучит разумно, но очень уж в общих словах)

Спасибо за честный разбор с цифрами, особенно ценно, что вы проверяли дубли программно, а не на глаз. Пара идей по проблемам, которые вы описали:

  1. "Mister" против "Mr." - лечится нормализацией текста перед сравнением. В пакете openai-whisper есть EnglishTextNormalizer, который приводит сокращения, числа и пунктуацию к единой форме, после него подобные расхождения обычно исчезают и метрика перестаёт ложно ронять хорошие дубли.

  2. "5M" на знаке в плане 5. Можно сделать проверку текста относительной: прогонять OCR по мастер-кадру и считать браком только текст, которого на мастере не было. Тогда знак, нарисованный ещё на мастер-кадре, не будет бесконечно заваливать генерацию.

  3. Поиск начала речи по порогу −42 дБ работает, пока в клипе тихо, но на дыхании, шорохах или музыке может сработать раньше времени. Как более надёжный вариант можно попробовать VAD, например Silero VAD: он ищет именно речь, а не громкость.

  4. Плавающий голос. Как компромисс между вашими двумя вариантами: оставить видео и тайминг реплик от Kandinsky, а голос прогнать через voice conversion в один закреплённый тембр на персонажа. Синхронизация губ сохранится, а голос перестанет меняться от плана к плану.

И вопрос: какая часть из четырёх оплаченных часов ушла на чистую генерацию, а какая на отладку и повторные дубли? Если 19 планов по ~144 секунды - это около 45 минут, то следующий пилот на готовом конвейере, видимо, выйдет заметно дешевле.

где можно взять эту модель? Она в открытом доступе?

Как бизнесу сэкономить ресурсы? Сократить расходы в том числе персонал)

Хороший разбор, круто, что вы честно показали путь к решению, а не только финальный код:)
Пара мыслей:

for mask := 0; mask < 1<<(2*n); mask++ {
    lvl := 0
    for j := 2*n - 1; j >= 0 && lvl >= 0; j-- {
        if mask>>j&1 == 1 { lvl++ } else { lvl-- }
    }
    // lvl == 0 → маска валидна
}

Для n = 8 это 65 536 вариантов, из которых подходят только 1 430 (число Каталана C8), так что перебор с фильтрацией вполне жизнеспособен на этих ограничениях.

if open < n  { backtrack(..., open+1, close) }
if close < open { backtrack(..., open, close+1) }

Тогда ни одна ветка не уходит в тупик, и каждая дошедшая до длины 2n строка - сразу ответ, без проверки в конце.

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

Информация

В рейтинге
4 050-й
Зарегистрирован
Активность

Специализация

Фулстек разработчик, Создатель контента
Средний
От 3 500 ₽
Docker
Английский язык
Java
C#
RabbitMQ
Redis
PostgreSQL
Git
Linux
Python