R

R4marketing | канал Алексея Селезнёва | Язык R

@r4marketing

Автор канала Алексей Селезнёв, украинский аналитик, автор ряда курсов по языку R и пакетов расширяющих его возможности.В канале публикуются статьи, доклады, новости, уроки и заметки по языку R.Для связи: @AlexeySeleznevРеклама: http://bit.ly/39MwJCY

4 220 подписчиков
ЕжемесячноКачество: 79%🇷🇺 RUПоследний пост: 06.05.2025
Открыть в TelegramПоделиться в TG

Последние посты

R
R4marketing | канал Алексея Селезнёва | Язык R@r4marketing

Обновление ellmer до версии 0.4.0Вышла новая минорная версия пакета ellmer — 0.4.0. Если вы работаете с LLM прямо из R, это обновление стоит внимания.Основные изменения и новые возможности:1. Стабильность и жизненный цикл функций● parallel_chat() и batch_chat() теперь стабильны — можно безопасно использовать в рабочих скриптах.● Улучшена обработка ошибок: если один из запросов не удался, остальная часть процесса продолжает работу.● Некоторые устаревшие функции удалены: Chat$extract_data(), Chat$extract_data_async(), chat_azure(), chat_bedrock(), chat_cortex(), chat_gemini(), chat_openai(seed) и другие.2. Claude (Anthropic)● Появился параметр кэширования cache (по умолчанию 5 минут), чтобы экономить токены.● Работа с файлами: claude_file_upload(), claude_file_list(), claude_file_delete().● Встроенные веб-инструменты: claude_tool_web_search(), claude_tool_web_fetch(). Модель может самостоятельно искать информацию и читать страницы.3. OpenAI● Используется современный API «responses».● Аргумент service_tier позволяет выбирать между медленным/дешёвым и быстрым/дорогим вариантом.● Для старых провайдеров есть chat_openai_compatible()4. Инструменты и расширенные возможности● tool() может возвращать изображения или PDF документы (см. content_image_file(), content_pdf())● Новая функция schema_df() позволяет передавать модели структуру датафрейма (колонки, типы) без передачи всех данных.● Новые аргументы в params(): reasoning_effort и reasoning_tokens — контроль «умственной нагрузки» модели.● Безопасное хранение API ключей через credentials() вместо передачи напрямую.5. Улучшения по управлению и отслеживанию● batch_chat() и parallel_chat() теперь лучше управляют хешами запросов и обработкой ошибок.● Улучшено отслеживание токенов и стоимости запросов.● Методы печати (print) объектов Chat стали информативнее, полезно для логов и отчётов.Более подробно о релизе можно узнать тут.————————————В общем много полезного Хедли с командой добавили, напомню, что у меня есть видео урок по

19 нояб. 2025 г.1 760В Telegram
R4marketing | канал Алексея Селезнёва | Язык R — пост в ТГ канале
R
R4marketing | канал Алексея Селезнёва | Язык R@r4marketing

Всем привет. Сегодня каналу исполняется 7 лет.В последнее время я стал писать здесь заметно реже — где-то пропала мотивация. Наверное, сказалось то, что уже около трёх лет канал практически не растёт, а в этом году число подписчиков даже немного уменьшилось.Тем не менее я не собираюсь его бросать. Посты будут появляться, просто не так часто, как раньше. Возможно, появятся новые идеи, и получится вернуть регулярность и интерес к публикациям.Спасибо всем, кто остаётся здесь всё это время. Есть несколько планов — как минимум хочу записать пару новых видео.Остаёмся на связи.

1 нояб. 2025 г.1 920В Telegram
R
R4marketing | канал Алексея Селезнёва | Язык R@r4marketing

Друзья, кто работает с Facebook Marketing API или Google Ads API через мои пакеты rfacebookstat и rgoogleads соответственно, рекомендую обновить пакеты т.к. они переведены на наиболее актуальные версии API.rfacebookstat -> Facebook Marketing API v23.0rgoogleads - > Google Ads API v21#новости_и_релизы_по_R

3 сент. 2025 г.2 730В Telegram
R
R4marketing | канал Алексея Селезнёва | Язык R@r4marketing

rappleads - Запрос данных из Apple Ads Campaign Management APIОпубликовал небольшой пакет для запроса данных и отчётов из рекламных кабинетов Apple Ads. Установка:Установить rappleads можно из CRAN или GitHub:pak::pak("rappleads")pak::pak("selesnow/rappleads")Авторизация:Тут придётся немного подзаморочится:1. Получите приглашением с разрешениями API.2. Сгенерируйте пару закрытый-открытый ключ.3. Извлеките открытый ключ из сохраненного закрытого ключа.4. Загрузите открытый ключ.5. Создайте секрет клиента.6. Запросите токен доступа.но в README я всё подробно описал.Запрос списка доступных аккаунтов:● apl_get_me_details() - Id пользователя и основной организации● apl_get_user_acl() - Получает роли и организации, к которым есть доступ.Запрос объектов рекламных кабинетов: ● apl_get_campaigns() - Список рекламных кампаний● apl_get_ad_groups() - Список групп объявллений● apl_get_ads() - Список объявлений● apl_get_creatives() - Список креативовЗапрос отчётов:● apl_get_campaign_report() - Отчёт с группировкой по рекламным кампаниям● apl_get_ad_group_report() - Отчёт с группировкой по группам объявлений● apl_get_keyword_report() - Отчёт с группировкой по ключевым словам● apl_get_search_term_report() - Отчёт с группировкой по поисковым условиямПользуйтесь!#новости_и_релизы_по_R

28 авг. 2025 г.2 710В Telegram
R
R4marketing | канал Алексея Селезнёва | Язык R@r4marketing

ellmer 0.3.0Продолжаю следить за развитием ellmer. В новом релизе частично нарушена обратная совместимость — но только в части функционала, связанного с добавлением инструментов в чат. Ниже подробнее.Что нового в версии 0.3.0Унифицированный конструктор чатовРаньше под каждого провайдера была своя функция-конструктор:- chat_openai()- chat_anthropic()- chat_google_gemini()Теперь используется единый конструктор chat(), в который можно сразу передать нужный провайдер или модель:openai_chat <- chat("openai/gpt-4.1")openai_chat$chat("Tell me a joke about an R programmer")anthropic_chat <- chat("anthropic")#> Using model = "claude-sonnet-4-20250514".anthropic_chat$chat("Write an acrostic for tidyr")Улучшенная спецификация инструментовХедли поработал над интерфейсом инициализации инструментов, добавляемых в модель.Новый интефейс выглядит так:get_weather <- tool( function(location, unit = "celsius") { # Function implementation here paste0("Weather in ", location, " is 22 ", unit) }, name = "get_weather", description = "Get current weather for a location", arguments = list( location = type_string("The city and state, e.g. San Francisco, CA"), unit = type_enum(c("C", "F"), "Temperature unit: celsius/fahrenheit") ))Что изменилось:1. Аргументы функций теперь передаются в виде списка в arguments;2. У остальных аргументов убрали префикс в виде точки.Что бы максимально легко перевести свой код определения инструментов модели с предыдущих версий используйте любую LLM, и следующий промпт:Help the user convert an ellmer 0.2.0 and earlier tool definition into aellmer 0.3.0 tool definition. Here's what changed:* All arguments, apart from the first, should be named, and the argument names no longer use `.` prefixes. The argument order should be function, name (as a string), description, then arguments, then anything* Previously `arguments` was passed as `...`, so all type specifications should now be moved into a named list and passed to the `arguments` argument. It

11 авг. 2025 г.2 240В Telegram
R
R4marketing | канал Алексея Селезнёва | Язык R@r4marketing

rtiktokads: Пакет для работы с TikTok Marketing APIНаписал небольшой пакет для работы с TikTok Marketing API, он покрывает далеко не все доступные возможности, но основная часть функционала по запросу данных из рекламных аккаунтов в TikTok доступна.Установка:pak::pak("selesnow/rtiktokads")Авторизация:● tik_set_username() - задать имя пользователя● tik_auth() - авторизоваться в TikTok Bussines APIЗапрос данных:● tik_get_business_centers() - запросить список бизнес центров● tik_get_advertiser_accounts() - запросить список рекламных аккаунтов● tik_get_advertiser_info() - запросить информацию по рекламным аккаунтам● tik_get_advertiser_balance() - запросить информацию о балансе рекламных аккаунтов● tik_get_campaigns() - Запрос рекламных кампаний● tik_get_ad_groups() - Запрос групп объявлений● tik_get_ads() - Запрос объявленийОтчёты:● tik_get_report() - запрос отчётов из TikTok Marketing APIПользуйтесь.#новости_и_релизы_по_R

23 июл. 2025 г.2 270В Telegram
R
R4marketing | канал Алексея Селезнёва | Язык R@r4marketing

Анализ GitHub репозиториев с помощью AIПопался на глаза ещё один интересный проект Хедли - GitAI. Это свежий инструмент в экосистеме R, предназначенный для извлечения знаний из Git-репозиториев с помощью больших языковых моделей (LLM). GitAI — это R-пакет, который позволяет:● Сканировать один или несколько Git-репозиториев (GitHub или GitLab).● Извлекать содержимое определённых файлов, например, README.md.● Обрабатывать это содержимое с помощью LLM, чтобы получить краткие описания или ответы на конкретные вопросы.● Сохранять результаты в векторную базу данных для последующего семантического поиска или использования в Retrieval Augmented Generation (RAG) сценариях.Пример использованияВот пошаговый пример того, как использовать GitAI для анализа нескольких репозиториев:Для работы кода необходимо указать через переменные среды API токены для работы с GitHub и Gemini (или другой LLM моделью).Sys.setenv('GOOGLE_API_KEY' = 'ваш токен для GEMINI API')Sys.setenv("GITHUB_PAT" = 'ваш персональный GITHUB токен')library(GitAI)# Устанавливаем таймаут и отключаем подробный выводoptions(ellmer_timeout_s = 120)verbose_off()# Инициализируем проектmy_project <- initialize_project("fascinating_project") |> set_github_repos( repos = c( "r-world-devs/GitStats", "r-world-devs/GitAI", "openpharma/DataFakeR" ) ) |> add_files(files = "README.md") |> set_llm('gemini') |> set_prompt("Напиши краткое изложение проекта в одном предложении на основе предоставленных данных.")# Обрабатываем репозиторииresults <- process_repos(my_project)# Выводим результатыpurrr::walk(results, function(result) { cat(stringr::str_wrap(result$text, width = 80), "\n\n")})РезультатПроект `GitStats` предоставляет унифицированный способ получения данныхиз GitHub и GitLab, таких как организации, репозитории, коммиты, задачи,пользователи, журналы выпусков, структура файлов, содержимое текстовых файлов ииспользование R-пакетов, а также предоставляет базовую статистику по коммитам изадачам. Проек

28 мая 2025 г.2 730В Telegram
R
R4marketing | канал Алексея Селезнёва | Язык R@r4marketing

ellmer 0.2.03 предыдущие поста в канале так или иначе были связаны с пакетом ellmer, и вот 17 мая на CRAN вышла его новая версия. Разбираю всё по порядку:Breaking changes● Изменения в преобразовании JSON → RТеперь входы в tool() всегда автоматически преобразуются в стандартные структуры R (list, data.frame и т.д.). Если нужно сохранить оригинальные объекты, можно явно отключить это поведение с convert = FALSE.● NULL → NAФункции типов (type_boolean(), type_integer() и т.д.) теперь преобразуют NULL в NA, что делает работу с необязательными параметрами более предсказуемой.● chat_ функции теперь без turnАргумент turn удалён. Заменой служит Chat$set_turns(). Также Chat$tokens() переименован в Chat$get_tokens() и теперь возвращает корректно выровненные токены в виде data.frame.Новые фичи● Пакет теперь умеет в многопоточность и батчинг: ● batch_chat() и batch_chat_structured() — отправка батчей в OpenAI и Anthropic. Ответ может прийти в течение 24 часов, но стоит в 2 раза дешевле. ● parallel_chat() и parallel_chat_structured() — параллельные запросы, быстрее, но без экономии в цене.Эти функции пока экспериментальные — возможно, интерфейс будет дорабатываться.Работа с файлами:● google_upload() — загрузка PDF, видео и других файлов для Gemini или Vertex AI.Работа с моделями:Теперь можно получить список доступных моделей у разных провайдеров:● models_google_gemini()● models_openai()● models_anthropic()● models_aws_bedrock()● models_ollama()● models_vllm()Возвращается data.frame с id и ценой за токены.Генерация промптов:● interpolate() теперь векторизован: можно генерировать много промптов сразу.● interpolate_package() — генерация из шаблонов внутри inst/prompts/.Унифицированные параметры моделей:● chat_anthropic(), chat_openai(), chat_gemini(), chat_azure() теперь принимают аргумент params, в который можно передать temperature, seed и пр. через params().Учёт стоимости:● Chat$get_cost(), tokens_usage(), и сам принт объекта Chat теперь показывают оценку стоимости (в токен

22 мая 2025 г.2 210В Telegram
R
R4marketing | канал Алексея Селезнёва | Язык R@r4marketing

Добавил главу про интеграцию LLM моделей в telegram ботов в учебник "Разработка Telegram ботов на языке R"Содержание главы:1. Как мы используем LLM в рабочих процессах2. Генерация API ключа3. Работа с LLM в R 3.1. Создание чата и отправка запроса 3.2. Извлечение структурированных данных из текста 3.3. Добавление в чат инструментов4. Интеграция LLM модели в бот 4.1. Дообучение бота на своих данных5. ЗаключениеЕсли вдруг кто впервые об этом учебнике слышит, то ниже его полное содержание:1. Создаём бота и отправляем с его помощью сообщения в telegram2. Добавляем боту поддержку команд и фильтры сообщений, класс Updater3. Как добавить боту поддержку клавиатуры4. Построение последовательного, логического диалога с ботом5. Интегрируем в бота искусственный интеллект6. Управление правами пользователей бота7. Повышаем стабильность работы бота8. Добавляем боту асинхронность9. Упаковываем бота в Docker контейнер10. Разворачиваем бота в облачных сервисахТ.е. по этому учебнику вы с нуля научитесь писать telegram ботов любой сложности, и разворачивать их в некоторых облачных платформах или на своём сервере.#учебники_по_R

13 мая 2025 г.3 140В Telegram
R
R4marketing | канал Алексея Селезнёва | Язык R@r4marketing

Новый видеоурок: Интеграция LLM моделей в Telegram-ботов на RВ этом видео я расскажу, как интегрировать искусственный интеллект в Telegram-бота, используя язык R и пакеты telegram.bot и ellmer.В видео вы увидите:● Как сгенерировать API-ключ для работы с LLM● Как использовать пакет ellmer для общения с LLM моделями● Как извлекать данные из текста и классифицировать сообщения● Как интегрировать внешние API через LLM● Как подключить LLM модель к вашему боту● Как сохранить состояние чата между сессиями● Как дообучить бота своими даннымиМатериал частично дублирует урок по ellmer + shiny, кто его видел можете начинать просмотр этого видео сразу с 18 минуты.Тайм коды:00:00 О чём это видео00:46 Генерация API ключа02:20 Введение в пакет ellmer03:20 Создаём объект чата06:44 Извлечение структурированных данных их текста с помощью LLM моделей10:35 Классификация текста с помощью LLM моделей13:53 Интеграция LLM моделей со сторонними API18:33 Как интегрировать LLM модель в telegram бота23:27 Как сохранять состояние чатов между разными сессиями бота26:24 Как дообучить telegram бота своими данными28:58 ЗаключениеСсылки:- Код продемонстрированный в видео#видео_уроки_по_R

6 мая 2025 г.2 310В Telegram

Похожие каналы