Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
from fastapi.concurrency import run_in_threadpool
async def execute(data: DataRequest) -> DataResponse:
try:
result = await run_in_threadpool(sync_function, data)
return DataResponse(data=result)
except Exception as e:
return DataResponse(
error=str(e),
success=False,
)
В общем работает нормально. Для всех вызовов под капотом используется общий тредпул, всё работает предсказуемо.
Но потребовалось изменить количество запускаемых в пуле потоков (по умолчанию создается 40 воркеров).
Так как дело происходит с FastAPI, делается это через lifespan используя настройки anyio:
import anyio
@asynccontextmanager
async def lifespan(app: FastAPI):
limiter = anyio.to_thread.current_default_thread_limiter()
limiter.total_tokens = 100
yield
# если вдруг нужно вернуть обратно
limiter.total_tokens = 40
Зачем менять количество воркеров?
- уменьшить, если оперативки мало (один тред занимает ~8мб)
- увеличить чтобы выдержать нагрузку
Если есть предложения получше при тех же вводных - предлагайте😉
#async
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🌐