Константин Доронин
3.89K subscribers
622 photos
317 videos
1 file
338 links
По любым вопросам, которые не хотите задавать в комментариях, можете писать напрямую – @kdoronin
Download Telegram
В Kling 2.1 наконец-то добавили последний кадр для генерации AI-видео.

Что приятно – видео по-прежнему стоит 70 кредитов и наличие последнего кадра никак не влияет на стоимость 10-секундной генерации. В пересчёте на деньги, 70 кредитов – это примерно $1 за видео.

В связи с этим, я решил вспомнить небольшой сюжет, который я генерировал в ноябре прошлого года. Создавал я то видео по случаю того, что "Kling добавил генерацию по первому и последнему кадру". Даже и не помню, что там была за модель. Скорее всего, Kling1.6.

Повторил схожий нарратив, используя Kling2.1.

Качество выросло значительно, добавился звук и ушли многие проблемы, которые существовали чуть больше полугода назад.

p.s.: правда, звук получился нарезанным на 10-секундные отрезки. Потому что отдельный инструмент для озвучивания видео, который есть у Kling, нагло врёт. Утверждает, что может озвучить видео продолжительностью до 3 минут, но на деле не даёт обработать отрезки длиннее 20 секунд. Ну, либо я не справился с интерфейсом 🙃
1👍63🔥1
Генерация видео в Google Veo3 всего за 8 рублей. Без сложных манипуляций с "Я студент! Честное слово!".

Более того – скорее всего, у вас уже всё для этого есть.

Оказывается, в Perplexity добавили генерацию видео. Под капотом – Veo3.

Как это работает:

1. Заходим на сайт Perplexity. Из приложения пока не работает.

2. Выбираем обыкновенный "Поиск" и модель "Лучший".

3. Вбиваем в строку поиска, что мы хотим сгенерировать (активируем генерацию через "сгенерируй видео"). Image-to-video также работает, поэтому можно подгрузить первый кадр.

4. Для генерации, конечно же, потребуется pro-аккаунт, который всё ещё можно взять тут в среднем за 500 рублей.

Лимиты достаточно жёсткие. На одном pro-аккаунте можно сгенерировать всего лишь 5 видео в месяц. То есть 60 видео в год. Получается, что при цене pro-подписки в 500 рублей за год, одна генерация видео стоит примерно 8 рублей и 35 копеек.

Получается, закупаем сотню аккаунтов по 188 рублей/штука и идём пилить Veo3-полнометражку? 🙂

UPD: в комментариях также подсказали, что для массовой генерации Veo3-видео, можно там же взять сразу аккаунт Google. Правда, из РФ он напрямую работать не будет.

Спасибо Андрею, который рассказал в чате Hegai о наличии Veo3-генераций в Perplexity.
2🔥9👍63
Какие плюсы есть от того, что карту слили кардерам и её пришлось заблокировать?

Для себя отметил следующие:

1. Ещё в одной сфере жизни появилась "душная" схема. Теперь из моих карточек в интернете есть только одна. На ней всегда стоит жёсткий лимит и физически не бывает много средств.

2. Список подписок на AI-сервисы очистился круче, чем каналы в Венеции во время коронавируса. Фактически, остались только те, отключение которых из-за не удавшейся оплаты тут же влияет на ежедневные сценарии использования AI.

В общем, даже неприятные события в жизни можно обратить в плюс.

А как вы отслеживаете свои AI-подписки?
1🔥96👍4
"Сделай рефакторинг кода моего проекта", как способ добить навайбкоженный проект.

Если проект делался "на вайбе" и с минимумом контроля, то в какой-то момент внесение новых функций обязательно начнёт буксовать.

Далее – истинный вайбкодер обязательно узнает слова "качество кода" и "рефакторинг" и попробует применить магию рефакторинга в деле.

Тот самый запрос из заголовка поста: "Сделай рефакторинг кода моего проекта". Далее – согласие со всеми изменениями и, как итог, проект с очень красивым переделанным кодом.

Жаль только не работает.

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

На этом этапе проект пора закапывать. И это – лучшее решение.

Если не закопать, то можно просадить все лимиты, потратить все токены и нервы.

Вопрос "Как сделать так, чтобы работало?" мы обсудим совсем скоро на эфире. Вся информация о нём в этом посте.

Регистрируйтесь, если ещё не успели! 🔥
2👍9🔥52
Константин Доронин
Заметили, как стремительно развивается AI-Coding? Новые подходы и возможности появляются буквально каждую неделю. Начиналось всё с безобидного общения в веб-интерфейсе OpenAI, а сейчас рой AI-агентов автономно пылесосит репозитории и создаёт пулреквесты…
Уже через 30 минут начинаем наш эфир про эффективные практики AI-Coding!

Для того, чтобы получить ссылку на эфир, активируйте бота.

Ровно в 16:30 в бота придёт ссылка на прямой эфир.

Если по каким-то причинам не успеваете – всё равно добавляйтесь в бота. Позже именно в него придёт запись эфира.

До встречи на эфире! 🙂
26🔥5👍1
Dify – AI-комбайн для работы с LLM-приложениями.

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

У меня так произошло с Dify. Не знаю, как я не наткнулся на эту громадину раньше. Хотя, учитывая 113 тысяч звёзд на Github, решение очень популярное.

Разворачивается self-hosted в docker буквально двумя командами. Даже никакие переменные окружения не надо прописывать заранее.

После установки мы получаем полноценное локальное веб-приложение. Проходим процедуру "инициации админа" (вводим почту, логин и пароль) и попадаем в рабочее окружение.

Что есть из коробки:

1. No-code-редактор для создания различных AI-систем. От простого AI-пайплайна до роя AI-агентов. Для облегчения освоения, можно изучать готовые шаблоны (ставятся также через интерфейс, скриншот в медиа поста – это шаблоны). Я сразу добавил себе шаблон для DeepResearch и пошёл изучать, как он устроен.

2. API-сервер для доступа к системе извне. Что логично. Вы же не из интерфейса Dify планируете за результатом наблюдать?

3. Также можно опубликовать систему в виде сайта с чатом или MCP-сервера (в зависимости от типа AI-приложения).

4. Система логирования.

5. Мониторинг. Который можно "углубить" за счёт Langfuse, например.

6. Встроенная база знаний, построенная на текстовых эмбеддингах. Можно как приготовить эмбеддинги правильно, так и подключиться к внешней базе знаний через API.

7. Инструменты. Встроенные – работа с кодом, поиск, скраппинг, tts. А также собственный маркетплейс с различными интеграциями, расширениями и "Agent Strategies".

8. Само собой, интеграция с большинством доступных на рынке нейросетей. Если готовой интеграции по какой-то причине нет, то Dify позволяет добавить кастомную (что-то "кастомное", в целом, можно прикрутить почти в любое место внутри Dify).

Итого: Dify – отличная песочница для разработки собственных AI-решений. Более того – они называют себя "масштабируемым production-ready решением". Доверять ли этому заявлению – личный выбор каждого 🙂

Важно: если после установки Dify выставит русский язык, его нужно тут же сменить на английский. Потому что локализация на русский язык у них, судя по всему, сделана через автоматический перевод с китайского языка. Пользоваться интерфейсом на русском решительно невозможно.
3👍188🔥5
Про то, как разные AI-сервисы с одной и той же задачей справляются (или не справляются?).

Сегодня в рамках рубрики "Кейс от подписчика" (про сам кейс расскажу позже) у меня возникла достаточно простая задача:

"Получить все отзывы по всем товарам конкретного магазина на Wildberries, обработать их и преобразовать в JSON-файл."


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

Введение.

Фронтенд Wildberries написан на React. Отзывы для товара подгружаются асинхронно по мере скролла пользователя по странице. Это важный нюанс для дальнейшего повествования.

Глава первая. Comet.

Как он старался! Зашёл на каждый товар. Заботливо дошёл до конца каждой страницы, загрузив все необходимые отзывы. Как будто бы даже все их спарсил...

Вот только JSON-файлы он в итоге не создал. Отчитался так, будто они есть, но создавать документы Comet, к сожалению, не умеет.

Итог: Comet не смог выполнить задачу.

Итог №2: упростил задачу. Достаточно спарсить все отзывы с одного, самого популярного, товара.

Глава вторая. Manus.

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

Manus написал скрипт на JS для парсинга из отзывов напрямую в браузере. Подход интересный. Но по какой-то причине он не учёл подгрузку отзывов при скролле и спарсил только первые 32 отзыва (всего их более 250).

Я ему, конечно же, сказал, в чём он ошибся и он даже начал доделывать задачу... Добрал количество отзывов до 87, отчитался о завершении работы и благополучно доел кредиты 🙂

Итог: Manus, скорее всего, мог справиться, но затребовал, в конечном итоге, более 600 кредитов на эту задачу. А могло получиться прекрасное видео через Veo3...

Глава третья. Заключительная. Cursor.

Зашёл на страницу с отзывами, проскроллил руками до конца, через инспектор скопировал HTML родительского блока отзывов.

Закинул файлом в проект и попросил Cursor сделать парсер, который из HTML создаст корректный JSON-файл со всеми необходимыми полями. 3-4 этапа правок по формату и – готово! Нужный мне JSON готов к следующему этапу работы.

Итог: совместно с Cursor задача была выполнена.

Вывод: более "автономные" AI-агенты общего назначения, в конечном итоге, хорошо решают только небольшой спектр узкоспециализированных задач. Которые приходится выискивать через эксперименты. Для гарантировано хорошего результата, нужно самостоятельно обеспечивать качественный контекст и необходимый контроль за действиями AI.
11👍167🔥5
Про работу с Pydantic при построении графов в Graphiti.

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

Однако, используя Pydantic, мы можем заранее погрузить Graphiti в предметную область нашего графа знаний.

Для этого требуется:

1. Определить кастомные типы сущностей (узлов) для графа.

2. Определить кастомные типы связей в графе.

3. Определить, между какими узлами возможны те или иные связи.

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

Всё вместе это позволяет сделать работу с Graphiti более устойчивой и предсказуемой.

Для определения того, использовать ли заранее описанные узлы и связи, можно использовать дополнительный слой взаимодействия с LLM. Которая определит, насколько поступившее сообщение является "типовым" для нашей системы.

Для наглядности взаимодействия с Graphiti с использованием Pydantic, сделал небольшую демо-программу. Её код закину архивом в комментарии. С помощью программы можно подключиться к вашему экземпляру Graphiti+Neo4j и "пощупать" предустановленные типы самостоятельно. У меня там компании, взаимоотношения между сотрудниками, а также отношения компаний с клиентами.

В медиа поста можно посмотреть на пример графа, созданного с помощью демо-программы.

Предыдущие материалы по теме:

1. База про Graphiti

2. Про MCP-сервер для Graphiti

3. Результаты эксперимента по записи комментариев с этого канала в Graphiti

4. Анализ Graphiti-графа по комментариям

5. База про Pydantic
3🔥8👍54🙏1
Оказывается, Cursor до сих пор не может самостоятельно взять изображение из папки проекта и отправить его на обработку в LLM.

При том, что пользователь может отправить картинку и получить ответ с учётом её содержимого.

Отсюда вопрос: а кто-то вообще может самостоятельно забрать изображение и обработать его?

Все CLI AI-Coding инструменты от крупных вендоров это умеют. Поэтому я решил протестировать, насколько хорошо они справятся с вёрсткой несложного макета по скриншоту?

Исходная инструкция была максимально-простой:

В текущей папке проекта находится изображение. Твоя задача: найти это изображение, проанализировать, а потом сверстать, используя HTML+CSS готовую страницу по представленному на скриншоте макету.


Все три инструмента вытащили из исходного макета весь текст. Без ошибок!

Идеально с вёрсткой не справилась ни одна из моделей. Но косяки, если честно, совсем небольшие. Понятно, что макет достаточно простой и успех, во многом, связан именно с этим фактом.

Однако считаю, что текущий уровень вёрстки по картинке – это очень хорошо.

Ориентиры для распознавания, кто есть кто:

1. Codex – единственный, кто не использовал на аватарке человека.

2. Claude Code – на аватарке мужчина.

3. Gemini CLI – на аватарке женщина.

Планирую использовать эти результаты в качестве примера того, что пайплайн с Figma MCP должен превзойти.

Кстати, как считаете, какой из инструментов справился с задачей лучше всего? (HTML+CSS с результатами также залью в комментарии)
1👍11🔥85
Дополнение к посту "Как настроить Gemini CLI так, чтобы он не развёл вас на деньги?".

Развёл-таки гад…

По итогам вчерашнего мини-сравнения, Google решил снять с меня 8 центов через мой "любимый" Google Cloud.

Поэтому пункт №16 (для тех, у кого есть billing account):

1. https://console.cloud.google.com/billing – переходим на страницу "Billing"

2. Выбирае Billing Account (если их несколько, пункты 3-4 надо будет для них также повторить).

3. В боковом меню переходим в Account management.

4. На том проекте, для которого выпускали API Key для Gemini CLI, отключаем биллинг (Actions => Disable billing).

Отличная демонстрация того, почему опции "для страховки" при работе с Google Cloud необходимы. Благодаря лимитам, я смог избежать больших трат.

Везде, где внешние системы могут самостоятельно списать с карты деньги, нужно выставлять жёсткие лимиты.
2👍9🔥63😁2🥰1
"Вот сейчас я возьму Langchain и быстро сделаю для вас ту автоматизацию, которую просите" – сказал разработчик за полчаса до того, как утонул в абстракциях.

Я не видел ни одного примера, в котором Langchain решал бы задачи, трудновыполнимые без него.

Если вы только начинаете реализовывать программу с LLM, то, скорее всего, на старте не нужен AI-agent-фреймворк. Так как взаимодействие с API напрямую и использование структурированного качественного промпта закрывает почти все задачи на данном этапе.

С развитием проекта можно добавить какой-то легковесный фреймворк. Например, Pydantic или даже Poket Flow (про каждый из них будут отдельные материалы с разбором). Да даже CrewAI имеет, на мой взгляд, гораздо более эффективные абстракции для взаимодействия с AI, чем Langchain.

Кстати, если вы пишете свою программу с использованием AI-Coding-агента, то его также легко запутать абстракциями Langchain. Если, конечно, вы сами не знаете фреймворк досконально с учётом его актуального состояния.
2👍13🔥86❤‍🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Самая контринтуитивная для меня вещь в новой Nano Banana от Google.

Работа с генерациями изображений и видео приучила меня к следующему порядку:

Сперва идёт что-то базовое, а потом мы добавляем надстройки и уточнения.


Базовый кадр, к которому добавляем движение, чтобы получить видео.

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

Видео без звука, поверх которого мы добавляем звуки или речь.

Это когнитивное искажение не позволяло мне посмотреть над задачу под другим углом. Я закидывал в Nano Banana основное изображение (сцену), потом 2-3 дополнительных (предметы для того, чтобы разместить на сцене), а в результате Banana выдавала мне кроп моего "исходного" изображения с изменениями согласно промпту.

Как я с ним бился... По несколько раз в промпте указывал, что соотношение сторон нужно брать из моего первого изображения. Даже прописывал, что мне нужно именно изображение 16:9. Ничего из этого не помогало.

В итоге оказалось, что для Nano Banana ключевой кадр – последний. И соотношение сторон она в 100% случаев берёт из него.

То есть работа с ним выглядит следующим образом:

1. Сперва накидываем изображения.

2. Потом закидываем "сцену", на которой эти изображения размещаем.

Да, это очень просто. Но для меня было контринтуитивно, что порядок, в котором я загружаю изображения, может иметь настолько большое значение.

Для демонстрации этой особенности записал для вас короткое видео. Два одинаковых изображения, с одинаковым промптом. Отличается только порядок их загрузки, который и влияет на результат.
1🔥17👍136🤯1
Из старых чёрно-белых фотографий родного Омска получил очень атмосферные видео.

Что сделал:

1. На сайте https://pastvu.com/ выбрал период с 1965 по 1985 годы. Там фотографий уже достаточно много и они не сильно плохого качества.

2. Нашёл фотографии узнаваемых мест города.

3. С помощью Nano Banana сделал фотографиям колоризацию и немного подтянул по качеству.

4. Фотографии оживил через image-to-video Veo3 на fal.ai (я не скажу вам, что у меня есть купон на $30, но будут знаки...).

5. Промпт готовил с помощью ChatGPT5.

Минус, который бросается в глаза – на этапе улучшения через Nano Banana плывут многие надписи на русском.

Остальные шероховатости правятся промптом.
🔥2811👍8