group-telegram.com/People_Analytics/623
Last Update:
🤖📊 Анализ тональности с помощью OpenRouter и пакета tidyprompt в R
Пакет tidyprompt
в R упрощает создание промптов и взаимодействие с большими языковыми моделями (LLM). Его можно сравнить с удобством и простотой создания графиков в ggplot2
, но для работы с промптами: он вводит "обертки промптов" -- модули, превращающие простые запросы в сложные. Эти обертки не только изменяют текст, но и добавляют функции извлечения и валидации ответов LLM, а также могут отправлять обратную связь модели. С tidyprompt
вы можете:
- получать структурированные ответы в нужном формате,
- автоматически отправлять обратную связь LLM для исправления ошибок,
- задавать режимы рассуждений (например, цепочка мыслей или ReAct),
- позволять LLM вызывать функции R или генерировать и выполнять R-код для получения данных или действий.
Оцените краткость кода и удобство работы с LLM. В качестве дополнения к посту:
# install.packages("tidyprompt")
library(tidyprompt)
library(purrr)
library(ggplot2)
# Настройка OpenRouter как LLM провайдера
openrouter <- llm_provider_openrouter(
parameters = list(
model = "google/gemini-2.0-flash-lite-preview-02-05:free",
stream = FALSE
),
verbose = TRUE,
api_key = Sys.getenv("OPENROUTER_API_KEY")
)
# Создание данных с отзывами сотрудников
reviews_df <- data.frame(
sentence = c(
'Работа — как полет на драконе, захватывает дух!',
'Офис словно темница, где время ползет черепахой.',
'Коллектив — это банда супергероев, спасающих мой день!',
'Начальство — как злой волшебник, гасит все идеи.',
'Начальство — тиран, выжимает все соки.',
'Техника тут — мечта гиков, хочется обнять сервер!',
'Рабочий график — это хаос в стиле цирка шапито.',
'График — как карусель, голова кружится.',
'Коллектив — как старый свитер, уютно, но не идеал.',
'Кофе в комнате отдыха спасает, как оазис в пустыне.',
'Зарплата приходит, как редкий гость, и быстро уходит.',
'Задачи сыплются, будто камни с горы, без передышки.',
'Атмосфера тут — как в фильме ужасов, только без попкорна.'
)
)
# Анализ тональности с помощью gemini-2.0-flash-lite через провайдера OpenRouter
reviews_df$sentiment_score <- map_int(
reviews_df$sentence,
function(sentence) {
paste0(
'Пожалуйста, оцените по шкале тональность отзыва сотрудника:\n',
sentence
) |>
answer_as_integer(min = 1, max = 100) |>
send_prompt(openrouter)
}
)
ggplot(reviews_df, aes(x = sentiment_score, y = reorder(sentence, sentiment_score))) +
geom_col(aes(fill = sentiment_score)) +
scale_fill_viridis_c(option = "plasma", direction = -1) +
theme_light() +
labs(
title = 'Оценки тональности отзывов сотрудников',
x = 'Оценка тональности',
y = 'Отзыв'
)
#R #ggplot2 #LLM #AIinHR #sentiment_analysis #AI
BY People Analytics
Warning: Undefined variable $i in /var/www/group-telegram/post.php on line 260
Share with your friend now:
group-telegram.com/People_Analytics/623