Что такое OpenRouter API?

OpenRouter - это инструмент, который помогает интегрировать несколько API для обработки естественного языка (NLP) в вашем приложении. Он предоставляет единую точку доступа к API, через которую вы можете вызывать несколько API для обработки естественного языка. Вы можете ознакомиться с их документацией здесь: https://openrouter.ai/docs#quick-start.

Функция для работы с API определенной LLM

```{r}
library(httr)

api_key <- "YOUR_OPENROUTER_API_KEY"

send_requests <- function(question, api_key) {
  url <- "https://openrouter.ai/api/v1/chat/completions"
  headers <- c(
    "Content-Type" = "application/json",
    "Authorization" = paste("Bearer", api_key)
  )
  body <- list(
    "model" = "meta-llama/llama-3-8b-instruct:free",
    # "model" = "openchat/openchat-7b:free",
    "messages" = list(
      list(
        "role" = "user",
        "content" = question
      )
    )
  )
  
  response <- POST(url, body = body, encode = "json", 
                   add_headers(.headers = headers))
  
  if (http_status(response)$category == "Success") {
    result <- content(response, "parsed")
    return(result)
  } else {
    stop("Request failed with status code: ", http_status(response)$status_code)
  }
}
```

Пример использования функции:

question <- '
Как сделать линейный график в R используя ggplot2? Пример данных: изменение температуры по дням недели. Напиши подробный ответ с пояснениями каждого шага и комментариями к коду.
'

response <- send_requests(question, api_key)

Ответ

Создадим линейный график температуры в R с помощью библиотеки ggplot2. Мы будем использовать примерные данные о изменении температуры по дням недели.

Шаг 1: Создание данных

Давайте создадим примерные данные о температуре по дням недели. Мы будем использовать слово “дата” для количества дней недели, где 1 - понедельник, 2 - вторник и т.д.

# Создаем данные
data <- data.frame(day = 1:7, temperature = c(25, 26, 28, 30, 28, 25, 22))

Комментарий: мы создаем данные в виде.data.frame с двумя переменными: “day” (число дня недели) и “temperature” (температура).

Шаг 2: Пакет ggplot2

Вам может потребоваться установка пакета ggplot2, если вы не сделали этого до сих пор.

# Установка пакета ggplot2
install.packages("ggplot2")

Комментарий: с использованием команды install.packages("ggplot2") мы любовно установим пакет ggplot2, если он не установлен.

Шаг 3: Создание графика

Теперь мы готовы создать график. Мы будем использовать функцию ggplot() иgeom_line() для создания линейного графика.

# Создаем график
library(ggplot2)
ggplot(data, aes(x = day, y = temperature)) + 
  geom_line()

Комментарий: мы создаем график с использованием функции ggplot(). В функции ggplot() мы указываем данные (data), а также задаем аргументы x и y для координат. В этом случае, мы указываем, что “day” будет использоваться как координата x и “temperature” как координата y. Затем мы добавляем функцию geom_line() для создания линейного графика.

Шаг 4: Дополнительные настройки

Мы можем улучшить визуальную привлекательность графика, добавив заголовок, ось запада и刻ки.

# Дополнительные настройки
ggplot(data, aes(x = day, y = temperature)) + 
  geom_line() + 
  labs(x = "День недели", y = "Температура, °C") + 
  theme_classic() + 
  scale_y_continuous(breaks = seq(20, 30, by = 2))

Комментарий: мы добавляем несколько функций:

  • labs() для задания заголовков координат x и y.
  • theme_classic() для стандартной темы для графика.
  • scale_y_continuous() для изменения масштабаоси y и добавления указанных значений для刻ки.

Шаг 5: Вывод графика

Наконец, мы можем вывести график.

# Вывод графика
ggplot(data, aes(x = day, y = temperature)) + 
  geom_line() + 
  labs(x = "День недели", y = "Температура, °C") + 
  theme_classic() + 
  scale_y_continuous(breaks = seq(20, 30, by = 2)) +
  plot()

Комментарий: мы добавляем функцию plot() для вывода графика.

Итоговый код:

# Создаем данные
data <- data.frame(day = 1:7, temperature = c(25, 26, 28, 30, 28, 25, 22))

# Установка пакета ggplot2
install.packages("ggplot2")

# Создаем график
library(ggplot2)
ggplot(data, aes(x = day, y = temperature)) + 
  geom_line() + 
  labs(x = "День недели", y = "Температура, °C") + 
  theme_classic() + 
  scale_y_continuous(breaks = seq(20, 30, by = 2)) +
  plot()

Вы можете заменить данные на свои, а также изменить настройки графика по вашему вкусу.