Всем доброго утра!
Написал статью на vc.ru по оборудованию для звука. Если не интересно оборудование, можно зайти и просто послушать как я спел, эксклюзивочка😁
https://vc.ru/life/1767114-domashnyaya-karaoke-sistema-dlya-onlain-striminga-chast-1
Часть 2 - выйдет очень скоро, до конца этой недели😊
Написал статью на vc.ru по оборудованию для звука. Если не интересно оборудование, можно зайти и просто послушать как я спел, эксклюзивочка😁
https://vc.ru/life/1767114-domashnyaya-karaoke-sistema-dlya-onlain-striminga-chast-1
Часть 2 - выйдет очень скоро, до конца этой недели😊
vc.ru
Домашняя караоке система для онлайн-стриминга (Часть 1) — Личный опыт на vc.ru
Кирилл Пахтусов Личный опыт 22 янв
🔥11⚡3👏2
Media is too big
VIEW IN TELEGRAM
В субботу выходил на работу, а после работы отправился на кватирник Школы вокала.
Work life balance нужно соблюдать😂
Work life balance нужно соблюдать😂
🔥15⚡5🤯2👏1
Приглашение на мастер-класс Jmix: аутентификация через Telegram
📅 Дата и время: сегодня, 20:00
📍 Место: онлайн-встреча по ссылке: https://salutejazz.ru/calls/qgtjje?psw=OBsOXQcABBUZCwlLWBQTBhYBFA
На мастер-классе я расскажу, как интегрировать систему аутентификации через Telegram в платформу Jmix. Это будет полезно как для тех, кто уже знаком с Jmix, так и для тех, кто только начинает работать с этой платформой.
🔍 Что вы узнаете:
- Как настроить интеграцию с Telegram;
- Как реализовать аутентификацию по JWT токену используя Spring Security;
- Как интегрировать Jmix с внешними сервисами.
📢 Бонус: по итогу встречи я поделюсь проектом с готовой реализацией авторизации через Telegram.
🚀 Мастер-класс предназначен для студентов-практикантов из колледжа, но открыт для всех желающих!
Если вы хотите узнать больше о Jmix и его возможностях, загляните на официальный сайт: https://www.jmix.ru/
Присоединяйтесь, будет интересно!
📅 Дата и время: сегодня, 20:00
📍 Место: онлайн-встреча по ссылке: https://salutejazz.ru/calls/qgtjje?psw=OBsOXQcABBUZCwlLWBQTBhYBFA
На мастер-классе я расскажу, как интегрировать систему аутентификации через Telegram в платформу Jmix. Это будет полезно как для тех, кто уже знаком с Jmix, так и для тех, кто только начинает работать с этой платформой.
🔍 Что вы узнаете:
- Как настроить интеграцию с Telegram;
- Как реализовать аутентификацию по JWT токену используя Spring Security;
- Как интегрировать Jmix с внешними сервисами.
📢 Бонус: по итогу встречи я поделюсь проектом с готовой реализацией авторизации через Telegram.
🚀 Мастер-класс предназначен для студентов-практикантов из колледжа, но открыт для всех желающих!
Если вы хотите узнать больше о Jmix и его возможностях, загляните на официальный сайт: https://www.jmix.ru/
Присоединяйтесь, будет интересно!
salutejazz.ru
SaluteJazz – бесплатные видеоконференции
Создавайте и планируйте видеовстречи с SaluteJazz. Присоединяйтесь к видеоконференции по ссылке прямо в браузере
🔥5👍2
Привет, друзья! 🌟
Недавно сделал интересное открытие — теперь интеграция GigaChat в проекты на Java и Kotlin стала проще благодаря новым инструментам: langchain4j-gigachat и spring-ai-gigachat. Я подробно изучил оба варианта и выбрал первый вариант, потому что он оказался удобнее всего.
Почему именно langchain4j-gigachat?
Я активно использую LLM-модели в своих проектах, и недавно возникла задача подключить чат-модель для проверки пользовательского ввода на предмет спама, нецензурных выражений и нежелательного контента. Задача была простая: нужно было убедиться, что введённый текст подходит для детской сказки.
Вот небольшой код-пример, демонстрирующий всю простоту реализации:
Шаг 1: Добавляем зависимость
Подключаем нужную библиотеку в Gradle-файл:
Шаг 2: Создаём помощника
Описываем интерфейс помощника и добавляем аннотацию, чтобы сделать работу удобной и понятной:
Теперь данные приходят сразу в нужном формате, никаких проблем с JSON-парсингом.
Шаг 3: Настраиваем конфигурацию
Создаём конфиг для соединения с моделью GigaChat и настраиваем бины:
Шаг 4: Используем помощник
Создаём простой сервис для удобного обращения к помощнику:
Всё готово! Теперь можно легко интегрировать проверку текста в любые сервисы вашего приложения.
Я уже проверил этот подход на практике — всё отлично работает!
Надеюсь, мой опыт окажется полезным и вам захочется попробовать эту замечательную библиотеку самостоятельно. Репозиторий доступен здесь:
https://github.com/ai-forever/langchain4j-gigachat
Делитесь своими успехами и вопросами в комментариях, буду рад обсудить! 😊
Недавно сделал интересное открытие — теперь интеграция GigaChat в проекты на Java и Kotlin стала проще благодаря новым инструментам: langchain4j-gigachat и spring-ai-gigachat. Я подробно изучил оба варианта и выбрал первый вариант, потому что он оказался удобнее всего.
Почему именно langchain4j-gigachat?
Я активно использую LLM-модели в своих проектах, и недавно возникла задача подключить чат-модель для проверки пользовательского ввода на предмет спама, нецензурных выражений и нежелательного контента. Задача была простая: нужно было убедиться, что введённый текст подходит для детской сказки.
Вот небольшой код-пример, демонстрирующий всю простоту реализации:
Шаг 1: Добавляем зависимость
Подключаем нужную библиотеку в Gradle-файл:
dependencies {
implementation("chat.giga:langchain4j-gigachat:0.1.6")
}
Шаг 2: Создаём помощника
Описываем интерфейс помощника и добавляем аннотацию, чтобы сделать работу удобной и понятной:
data class ValidateRs(val isValid: Boolean?, val description: String?)
interface ValidateAssistant {
@UserMessage("""
Проверяй, подходит ли указанный ниже текст для детской сказки:
Текст: {{text}}
""")
fun validate(@V("text") text: String): ValidateRs
}
Теперь данные приходят сразу в нужном формате, никаких проблем с JSON-парсингом.
Шаг 3: Настраиваем конфигурацию
Создаём конфиг для соединения с моделью GigaChat и настраиваем бины:
@Configuration
open class AIConfig(private val clientSecret: String) {
@Bean
open fun gigaChatChatModel(): GigaChatChatModel {
return GigaChatChatModel.builder()
// Здесь прописаны настройки модели и авторизации
...
.build()
}
@Bean
open fun assistant(chat: GigaChatChatModel): ValidateAssistant {
val chatMemory = MessageWindowChatMemory.withMaxMessages(20)
return AiServices.builder(ValidateAssistant::class.java)
.chatLanguageModel(chat)
.chatMemory(chatMemory)
.build()
}
}
Шаг 4: Используем помощник
Создаём простой сервис для удобного обращения к помощнику:
@Service
open class AIService(private val validateAssistant: ValidateAssistant) {
fun validateText(text: String): ValidateRs {
return validateAssistant.validate(text)
}
}
Всё готово! Теперь можно легко интегрировать проверку текста в любые сервисы вашего приложения.
Я уже проверил этот подход на практике — всё отлично работает!
Надеюсь, мой опыт окажется полезным и вам захочется попробовать эту замечательную библиотеку самостоятельно. Репозиторий доступен здесь:
https://github.com/ai-forever/langchain4j-gigachat
Делитесь своими успехами и вопросами в комментариях, буду рад обсудить! 😊
GitHub
GitHub - ai-forever/langchain4j-gigachat
Contribute to ai-forever/langchain4j-gigachat development by creating an account on GitHub.
❤🔥5🔥5❤3
🚀 Как перенести Docker-образ между серверами без Docker Artifact Registry?
Недавно столкнулся с такой ситуацией: мой виртуальный выделенный сервер внезапно потерял связь с моим приватным Docker Artifact Registry. При попытке обновить образы возникала следующая ошибка:
Эти выходные выдались непростыми: не хотелось отвлекаться на написание в техподдержку, поэтому решил попробовать разобраться сам. Пробовал добавить дополнительные DNS-серверы вручную, однако ничего не изменилось. Тогда пришло понимание, что единственный выход — временно обойти систему хранения образов и перенести нужный образ вручную. К счастью, Docker позволяет сделать это достаточно легко...
✅ Решение проблемы:
Шаг 1: Экспортируем образ локально на исходном сервере:
Шаг 2: Передаем архив (my_image.tar) на целевой сервер удобным методом передачи файлов (SSH, FTP)
Шаг 3: Импортируем образ на новом сервере:
Позже выяснилось, что проблема была временной, и Artifact Registry заработал нормально спустя некоторое время. Этот случай наглядно продемонстрировал гибкость Docker и подчеркнул важность наличия альтернативных решений для непредвиденных ситуаций.
Недавно столкнулся с такой ситуацией: мой виртуальный выделенный сервер внезапно потерял связь с моим приватным Docker Artifact Registry. При попытке обновить образы возникала следующая ошибка:
Error response from daemon: Get "https://kronx.cr.cloud.ru/v2/": dial tcp: lookup kronx.cr.cloud.ru on 127.0.0.53:53: server misbehaving
Эти выходные выдались непростыми: не хотелось отвлекаться на написание в техподдержку, поэтому решил попробовать разобраться сам. Пробовал добавить дополнительные DNS-серверы вручную, однако ничего не изменилось. Тогда пришло понимание, что единственный выход — временно обойти систему хранения образов и перенести нужный образ вручную. К счастью, Docker позволяет сделать это достаточно легко...
✅ Решение проблемы:
Шаг 1: Экспортируем образ локально на исходном сервере:
docker save -o my_image.tar my_image_name:tag
Шаг 2: Передаем архив (my_image.tar) на целевой сервер удобным методом передачи файлов (SSH, FTP)
Шаг 3: Импортируем образ на новом сервере:
docker load -i my_image.tar
Позже выяснилось, что проблема была временной, и Artifact Registry заработал нормально спустя некоторое время. Этот случай наглядно продемонстрировал гибкость Docker и подчеркнул важность наличия альтернативных решений для непредвиденных ситуаций.
👍6❤5
▌ Социальный IT-проект: создай сказку и помоги ребенку!
Мы запустили проект совместно с @BugrovExperience и благотворительным фондом Время Детства — социальную платформу, позволяющую каждому почувствовать себя писателем, добавив пару строк в коллективную детскую сказку и внести вклад в будущее детей! 🎈📚
▌ Концепция проекта
Проект представляет собой веб-платформу, где каждый желающий может написать пару предложений в сказку после совершения небольшого благотворительного пожертвования. Все собранные средства поступают на счет Благотворительного фонда Время Детства.
▌ Что было сделано?
- UI/UX: продуманная структура, удобная навигация и привлекательный интерфейс, созданный в Figma @BugrovExperience
- Реализация:
- Фронтенд: Vue
- Бэкенд: Kotlin, Spring Boot 3, Jmix, PostgreSQL, AI Агент для валидации текста и создания краткого пересказа, админка.
- Интеграция с платежным сервисом: возможность безопасного подтверждения транзакций.
@kyrillP
🌐 Посмотреть проект онлайн:
story.vremyadetstva.ru
Сейчас проект на стадии тестирования на фокус группе...
P.S Да простит меня дизайнер, он сделал потрясающий макет, но я не до конца доделал вёрстку, мне нужно поправить все padding и margin в соответствии с макетом, но для MVP, думаю, это не критично 😅
Мы запустили проект совместно с @BugrovExperience и благотворительным фондом Время Детства — социальную платформу, позволяющую каждому почувствовать себя писателем, добавив пару строк в коллективную детскую сказку и внести вклад в будущее детей! 🎈📚
▌ Концепция проекта
Проект представляет собой веб-платформу, где каждый желающий может написать пару предложений в сказку после совершения небольшого благотворительного пожертвования. Все собранные средства поступают на счет Благотворительного фонда Время Детства.
▌ Что было сделано?
- UI/UX: продуманная структура, удобная навигация и привлекательный интерфейс, созданный в Figma @BugrovExperience
- Реализация:
- Фронтенд: Vue
- Бэкенд: Kotlin, Spring Boot 3, Jmix, PostgreSQL, AI Агент для валидации текста и создания краткого пересказа, админка.
- Интеграция с платежным сервисом: возможность безопасного подтверждения транзакций.
@kyrillP
🌐 Посмотреть проект онлайн:
story.vremyadetstva.ru
Сейчас проект на стадии тестирования на фокус группе...
P.S Да простит меня дизайнер, он сделал потрясающий макет, но я не до конца доделал вёрстку, мне нужно поправить все padding и margin в соответствии с макетом, но для MVP, думаю, это не критично 😅
❤8❤🔥2
Forwarded from Время детства - благотворительный фонд
Друзья, совсем скоро нашему фонду исполнится пять лет
С нами часто случаются чудеса (самим не верится!). Вот и в этот раз не обошлось без чуда
Друзья! Мы предлагаем вам стать соавторами сказки для детей!
Сюжет сказки зависит только от вашей фантазии: главное – помнить, что она должна быть доброй!
Переходите по ссылке или на нашем сайте по кнопке «Стань автором сказки!» и участвуйте! Мы вместе напишем КНИГУ! Неужели не здорово?
Огромное спасибо волонтерам Сбера: Людмиле Романовой, Денису Бугрову, Кириллу Пахтусову. Вы – настоящие волшебники!
#жизньфонда
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7
В сентябре я планирую поехать на конференцию по Data Science — AI Conf X.
Очень понравились темы докладов, есть разные треки😍
Я уже забронировал отель, так как не мог упустить одно выгодное предложение.
Мой выбор пал на ibis Москва Динамо. Стоимость проживания — всего 12 тысяч рублей за три дня! Это просто замечательно!
Кстати, если вы будете бронировать отель через сервис Отелло, то сможете получить хорошую скидку по промокоду.
Подробнее в комментарии или на фото⤵️
Очень понравились темы докладов, есть разные треки😍
Я уже забронировал отель, так как не мог упустить одно выгодное предложение.
Мой выбор пал на ibis Москва Динамо. Стоимость проживания — всего 12 тысяч рублей за три дня! Это просто замечательно!
Кстати, если вы будете бронировать отель через сервис Отелло, то сможете получить хорошую скидку по промокоду.
Подробнее в комментарии или на фото⤵️
❤4🔥1
Сбербанк представил практический гайд по созданию ИИ-агентов — автономных систем, которые самостоятельно выполняют различные задачи с помощью генеративного искусственного интеллекта.
Я был в восторге от чтения гайда, очень подробная теория и есть классные практические примеры.
Знаю, что сейчас этот гайд популяризируется благодаря таргетированной рекламе, но если вдруг его пропустили, то рекомендую 👍
Например в книге есть код для AI агента который на основе описания идеи стартапа делает "канва бизнес-модель". Проверил и потестил его, работает хорошо 👍
Могу поделиться репозиторием с исходным кодом, если интересно и нет желания искать его самостоятельно)
Ознакомиться с гайдом можно тут
https://giga.chat/b2b/multi-agent-system
Я был в восторге от чтения гайда, очень подробная теория и есть классные практические примеры.
Знаю, что сейчас этот гайд популяризируется благодаря таргетированной рекламе, но если вдруг его пропустили, то рекомендую 👍
Например в книге есть код для AI агента который на основе описания идеи стартапа делает "канва бизнес-модель". Проверил и потестил его, работает хорошо 👍
Могу поделиться репозиторием с исходным кодом, если интересно и нет желания искать его самостоятельно)
Ознакомиться с гайдом можно тут
https://giga.chat/b2b/multi-agent-system
4🔥3❤1
🔥 Нужен ваш совет: собственный компонент комментариев или готовое решение? 🚀
Описание проблемы
Друзья, столкнулся с интересным вопросом. В свой pet-проект хочу добавить систему комментирования.
Проект:
frontend: React + TypeScript
backend: Kotlin + Spring Boot .
Вариант №1: Написать самостоятельно
✅ Преимущества:
- Полный контроль над функционалом и дизайном.
- Возможность кастомизации под нужды проекта.
- Хорошая практика программирования.
❌ Недостатки:
- Требует значительных временных затрат.
- Возможны дополнительные затраты на тестирование и отладку.
Вариант №2: Использовать готовое решение
✅ Преимущества:
- Быстрое внедрение.
- Уже проверенное и оптимизированное решение.
- Минимальные временные затраты.
❌ Недостатки:
- Ограниченная кастомизация.
- Риск зависимости от стороннего сервиса.
Вариант №3: Комбинация 1 и 2 варианта
Пока я пошел по первому варианту. То что у меня получилось на фронте на текущий момент добавил к посту, см. картинки). Думаю, буду небольшими итерациями добавлять и расширять функциональность этого модуля.
Какой путь выбрали бы вы и почему? Жду ваших мнений и рекомендаций! 😊
Описание проблемы
Друзья, столкнулся с интересным вопросом. В свой pet-проект хочу добавить систему комментирования.
Проект:
frontend: React + TypeScript
backend: Kotlin + Spring Boot .
Вариант №1: Написать самостоятельно
✅ Преимущества:
- Полный контроль над функционалом и дизайном.
- Возможность кастомизации под нужды проекта.
- Хорошая практика программирования.
❌ Недостатки:
- Требует значительных временных затрат.
- Возможны дополнительные затраты на тестирование и отладку.
Вариант №2: Использовать готовое решение
✅ Преимущества:
- Быстрое внедрение.
- Уже проверенное и оптимизированное решение.
- Минимальные временные затраты.
❌ Недостатки:
- Ограниченная кастомизация.
- Риск зависимости от стороннего сервиса.
Вариант №3: Комбинация 1 и 2 варианта
Пока я пошел по первому варианту. То что у меня получилось на фронте на текущий момент добавил к посту, см. картинки). Думаю, буду небольшими итерациями добавлять и расширять функциональность этого модуля.
Какой путь выбрали бы вы и почему? Жду ваших мнений и рекомендаций! 😊
🔥3