Intro Thoughts

Status Quo

library(tidyverse)

Experiment

library(mall)
options(.mall_chat = ellmer::chat_google_gemini())
## Using model = "gemini-2.5-flash".
library(tidyverse)
my_palette <- c("grey9", "violet", "darkgreen", "midnightblue", 
                     "turquoise", "darkorange", "grey", "brown", 
                     "darkred", "burlywood", "goldenrod2", "slateblue") 

my_palette |> 
  tibble(pal_colors = _) |> 
  ggplot() + 
  aes(x = pal_colors, y = "all",
      fill = I(pal_colors)) + 
  geom_tile() 

'tribble(~item,  ~times, 
        "elephant",    25,
        "frog",   30,
        "bear",     22) |> 
  llm_classify(col = item, 
               labels = my_palette, 
               pred_name = "color"
              ) |> 
  ggplot() + 
  aes(x = item, y = times) +
  geom_col() + 
  aes(fill = I(color))' |> 
ggram::ggram(code = _, title = "LLM assisted semantic color encoding using {mall}!🎨🎉", subtitle = "Colors selected with mall::llm_vec_classify() which translated \n from an animal to a specific color among 12 options in a pallet 👀🤯")
## [waiting] (1 + 1) -> 1 -> 1 | â– â– â– â– â– â– â– â– â– â– â–  33%[waiting] (1 + 2) -> 1 -> 1 |
## â– â– â– â– â– â– â– â– â– â– â–  33%[waiting] (1 + 2) -> 0 -> 2 | â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  67%[waiting]
## (1 + 3) -> 0 -> 2 | â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  67%Waiting 8s for rate limit â– â– â– â– â– 
## Waiting 8s for rate limit â– â– â– â– â–  Waiting 8s for rate limit â– â– â– â– â– â–  Waiting 8s for
## rate limit â– â– â– â– â– â– â–  Waiting 8s for rate limit â– â– â– â– â– â– â– â–  Waiting 8s for rate limit
## â– â– â– â– â– â– â– â– â–  Waiting 8s for rate limit â– â– â– â– â– â– â– â– â– â–  Waiting 8s for rate limit
## â– â– â– â– â– â– â– â– â– â–  Waiting 8s for rate limit â– â– â– â– â– â– â– â– â– â– â–  Waiting 8s for rate limit
## â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 8s for rate limit â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 8s for rate limit
## â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 8s for rate limit â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 8s for rate
## limit â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 8s for rate limit â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 8s
## for rate limit â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 8s for rate limit â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– 
## Waiting 8s for rate limit â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 8s for rate limit
## â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 8s for rate limit â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 8s
## for rate limit â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 8s for rate limit
## â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 8s for rate limit â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– 
## Waiting 8s for rate limit â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 8s for rate limit
## â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 8s for rate limit â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– 
## Waiting 8s for rate limit â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 8s for rate limit
## â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 8s for rate limit
## â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 8s for rate limit
## â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 8s for rate limit
## â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 8s for rate limit
## â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  [waiting] (1 + 3) -> 0 -> 2 |
## â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  67%[waiting] (1 + 3) -> 0 -> 2 | â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– 
## 67%[waiting] (1 + 3) -> 0 -> 2 | â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  67%[waiting] (1 + 4) ->
## 0 -> 2 | â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  67%Waiting 6s for rate limit â– â– â– â– â– â–  Waiting 6s
## for rate limit â– â– â– â– â– â– â–  Waiting 6s for rate limit â– â– â– â– â– â– â– â– â–  Waiting 6s for rate
## limit â– â– â– â– â– â– â– â– â– â–  Waiting 6s for rate limit â– â– â– â– â– â– â– â– â– â–  Waiting 6s for rate limit
## â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 6s for rate limit â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 6s for rate limit
## â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 6s for rate limit â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 6s for rate
## limit â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 6s for rate limit â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 6s
## for rate limit â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 6s for rate limit â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– 
## Waiting 6s for rate limit â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 6s for rate limit
## â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 6s for rate limit â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– 
## Waiting 6s for rate limit â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 6s for rate limit
## â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 6s for rate limit â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– 
## Waiting 6s for rate limit â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 6s for rate limit
## â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 6s for rate limit
## â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 6s for rate limit
## â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  [waiting] (1 + 4) -> 0 -> 2 |
## â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  67%[waiting] (1 + 4) -> 0 -> 2 | â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– 
## 67%[waiting] (1 + 5) -> 0 -> 2 | â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  67%Waiting 14s for rate
## limit â– â– â–  Waiting 14s for rate limit â– â– â–  Waiting 14s for rate limit â– â– â– â– 
## Waiting 14s for rate limit â– â– â– â–  Waiting 14s for rate limit â– â– â– â– â–  Waiting 14s
## for rate limit â– â– â– â– â–  Waiting 14s for rate limit â– â– â– â– â– â–  Waiting 14s for rate
## limit â– â– â– â– â– â–  Waiting 14s for rate limit â– â– â– â– â– â– â–  Waiting 14s for rate limit
## â– â– â– â– â– â– â–  Waiting 14s for rate limit â– â– â– â– â– â– â– â–  Waiting 14s for rate limit â– â– â– â– â– â– â– â– 
## Waiting 14s for rate limit â– â– â– â– â– â– â– â–  Waiting 14s for rate limit â– â– â– â– â– â– â– â– â– 
## Waiting 14s for rate limit â– â– â– â– â– â– â– â– â–  Waiting 14s for rate limit â– â– â– â– â– â– â– â– â– â– 
## Waiting 14s for rate limit â– â– â– â– â– â– â– â– â– â–  Waiting 14s for rate limit â– â– â– â– â– â– â– â– â– â– â– 
## Waiting 14s for rate limit â– â– â– â– â– â– â– â– â– â– â–  Waiting 14s for rate limit â– â– â– â– â– â– â– â– â– â– â– â– 
## Waiting 14s for rate limit â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 14s for rate limit
## â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 14s for rate limit â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 14s for rate
## limit â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 14s for rate limit â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 14s for
## rate limit â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 14s for rate limit â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting
## 14s for rate limit â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 14s for rate limit â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– 
## Waiting 14s for rate limit â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 14s for rate limit
## â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 14s for rate limit â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 14s for
## rate limit â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 14s for rate limit â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– 
## Waiting 14s for rate limit â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 14s for rate limit
## â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 14s for rate limit â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 14s
## for rate limit â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 14s for rate limit
## â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 14s for rate limit â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting
## 14s for rate limit â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 14s for rate limit
## â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 14s for rate limit â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– 
## Waiting 14s for rate limit â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 14s for rate limit
## â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 14s for rate limit â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– 
## Waiting 14s for rate limit â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 14s for rate limit
## â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 14s for rate limit â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– 
## Waiting 14s for rate limit â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 14s for rate limit
## â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 14s for rate limit
## â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 14s for rate limit
## â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 14s for rate limit
## â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 14s for rate limit
## â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 14s for rate limit
## â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 14s for rate limit
## â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 14s for rate limit
## â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 14s for rate limit
## â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 14s for rate limit
## â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 14s for rate limit
## â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  Waiting 14s for rate limit
## â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  [waiting] (1 + 5) -> 0 -> 2 |
## â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–  67%[waiting] (1 + 5) -> 0 -> 2 | â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– 
## 67%
## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`geom_tile()`).
## Warning: Removed 1 row containing missing values or values outside the scale range
## (`geom_text()`).
## Warning: Removed 10 rows containing missing values or values outside the scale range
## (`geom_hline()`).

Closing remarks, Other Relevant Work, Caveats