reload_flag=""
if [[ -n "${DEBUG}" ]]; then
reload_flag="--reload"
fi
if [[ -n "${WORKER_COUNT}" ]]; then
workers=${WORKER_COUNT}
else
workers=2
fi
gunicorn --workers ${workers} \
--bind 0.0.0.0:8000 \
${reload_flag} main.wsgi
Писали такие конструкции чтобы проверить наличие флага и сформировать команду правильно?
На самом деле можно сделать тоже самое проще. Для этого используются операторы условной подстановки, доступные в оболочках семейства POSIX.
:- для установки значений по умолчанию
${WORKER_COUNT:-2}
Если переменная не объявлена, то будет дефолтное значение 2.
:+ подставляет указанный текст, если переменная не пуста
${DEBUG:+--reload}
Если что-то есть в переменной то распечатается текст после символа +, в противном случае - ничего. Удобно для опциональных флагов, как в нашем примере.
Итого наш скрипт может выглядеть так:
gunicorn --workers ${WORKER_COUNT:-2} \
--bind 0.0.0.0:8000 \
${DEBUG:+--reload} main.wsgi
Есть еще два оператора.
:= не только подставить дефолтное значение, но и присвоить его переменной, если она пуста
# никаких переменных еще нет
VAL1=${VAL2:=hello}
# теперь доступны обе
echo $VAL1 $VAL2
# hello hello
:? остановить выполнение с ошибкой, если переменной нет.
echo ${MISS:?is required}
bash: MISS: is required
Код выхода будет 1.
#tricks#linux
11-ый стал агрегатором
Интересно, как все топовые компании, выпускающие свои модели, потихоньку переходят на агрегаторский вид бизнеса.
На мой взгляд, это замечательная новость.
Почему так думаю:
Сколько компаний — столько и UX-приколов: ниша молодая, интерфейсы разные, и это со временем рождает всё более удобный опыт. Рано или поздно придумают действительно удобный формат.
Это цена: когда все придут к одинаковым интерфейсам и набору моделей, начнётся демпинг за привлечение клиента — что тоже нам на руку.
😂 Что думаешь? Найс или не найс?
#11labs | AcidCrunch
#11labs релизнули speech-to-speech можно менять свой голос на любого другого персонажа. Пока мне не очень понятны юзкейсы помимо продакшена рекламы/кино.
🔵#11Labs выпустили тестовую AI для генерации звуковых эффектов из текста (видимо готовятся к озвучке видео из #Sora). Теперь, если вы можете что-то представить, то вы можете это “озвучить”.
🎤#AI активно врывается в музыкальную индустрию. За последние месяцы протестировал множество продуктов, и уже текущие возможности поражают. 🎙
Конечно, для большинства людей, которые слушают музыку и смотрят фильмы, эта индустрия далекая и не понятная. Однако #AI сегодня может сделать из вас музыканта и исполнителя на уровне мировых звезд. Как только вы прикоснетесь к этой индустрии, вы поймете о каких возможностях я говорю. А пока перечислю все фичи, которые уже возможны в том или ином качестве в #musicAI:
- Драматическое улучшение качества аудио. Даже самое зашумленное аудио со звуком отбойного молотка и стройки выводится на уровень записи в студии с микрофоном. (голос уже не чистится как раньше, а генерируется заново)
- Разделение любого звука (музыка/лайв запись) на звуковые дорожки (музыка, голос, шум) и отдельное управление каждой
- Замена вашего голоса в музыкальном произведении (вы даете ссылку на youtube клип и вот этот клип уже исполняете вы, не шучу, так и работает)
- Напойте мотив, типа та-та-та и AI напишет вам музыкальный трек с нужным набором муз.инструментов
- По промпту пишется полностью музыка и исполнение в запрошенном стиле
- По видео #AI понимает, какое музыкальное сопровождение или спецэффекты нужно вставить
- Прям в аудио интервью можно заменять текст или отдельные слова, который произносит спикер (почему-то китайцы в этом направлении самые сильные)
- Voice-to-text и text-to-voice (этим уже все наигрались с апишками #11labs и #openAI)
В целом все движется к большому буму индивидуальных исполнителей в музыке, когда каждый из вас сможет записать промтом свой собственный музыкальный альбом и выйти в #itunes и на муз-тв.
Представьте, как изменится музыкальная индустрия, когда твои треки будут в топ музыкальных чартов, только потому, что ты читаешь мой канал и правильно написал промпт 😏
🆒А теперь, ожидаемый дроп главных сервисов: Suno, Musicfy, Kits.
🌐Like and Share🌐