Greet Users

library(querychat)
library(palmerpenguins)

Provide a greeting

When the querychat UI first appears, you will usually want it to greet the user with some basic instructions. By default, these instructions are auto-generated every time a user arrives. In a production setting with multiple users/visitors, this approach has some downsides: it’s slower, uses more API tokens, and produces different results each time. Instead, you should create a greeting file and pass it when creating your QueryChat object:

qc <- querychat(
  penguins,
  greeting = "greeting.md"
)
qc$app()  # Launch the app

You can provide suggestions to the user by using the <span class="suggestion"> </span> tag:

* **Filter and sort the data:**
  * <span class="suggestion">Show only Adelie penguins</span>
  * <span class="suggestion">Filter to penguins with body mass over 4000g</span>
  * <span class="suggestion">Sort by flipper length from longest to shortest</span>

* **Answer questions about the data:**
  * <span class="suggestion">What is the average bill length by species?</span>
  * <span class="suggestion">How many penguins are in each island?</span>
  * <span class="suggestion">Which species has the largest average body mass?</span>

These suggestions appear in the greeting and automatically populate the chat text box when clicked.

Generate a greeting

If you need help coming up with a greeting, you can use the $generate_greeting() method:

library(querychat)

# Create QueryChat object with your dataset
qc <- querychat(penguins)

# Generate a greeting (this calls the LLM)
greeting_text <- qc$generate_greeting(echo = "text")
#> Hello! I'm here to help you explore and analyze the penguins dataset.
#> Here are some example prompts you can try:
#> ...

# Save it for reuse
writeLines(greeting_text, "penguins_greeting.md")

This approach generates a greeting once and saves it for reuse, avoiding the latency and cost of generating it for every user.

# Then use the saved greeting in your app
querychat_app(
  penguins,
  greeting = "penguins_greeting.md"
)