Nothing
## ----setup, include = FALSE---------------------------------------------------
fixture_dir <- "getting-started"
recording <- nzchar(Sys.getenv("FOUNDRY_RECORD_DOCS"))
have_fixtures <- dir.exists(fixture_dir) && length(list.files(fixture_dir)) > 0
run_api <- requireNamespace("httptest2", quietly = TRUE) &&
(recording || have_fixtures)
# Attach foundryR before start_vignette(): httptest2 only sources the package's
# inst/httptest2/start-vignette.R (which sets replay placeholders) from attached
# packages.
library(foundryR)
if (run_api) {
httptest2::start_vignette(fixture_dir)
}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
eval = run_api
)
## ----install, eval = FALSE----------------------------------------------------
# install.packages("pak")
# pak::pak("farach/foundryR")
## ----config-session, eval = FALSE---------------------------------------------
# library(foundryR)
#
# foundry_set_endpoint(Sys.getenv("AZURE_FOUNDRY_ENDPOINT"))
# foundry_set_key("your-api-key")
## ----config-persistent, eval = FALSE------------------------------------------
# local({
# config_file <- tempfile("foundryR-config-", fileext = ".json")
# old_options <- options(foundryR.config_file = config_file)
# old_env <- Sys.getenv(
# c("AZURE_FOUNDRY_ENDPOINT", "AZURE_FOUNDRY_KEY"),
# unset = NA_character_
# )
# on.exit({
# options(old_options)
# Sys.unsetenv(names(old_env)[is.na(old_env)])
# keep <- !is.na(old_env)
# if (any(keep)) {
# do.call(Sys.setenv, as.list(old_env[keep]))
# }
# unlink(config_file)
# }, add = TRUE)
#
# foundry_set_endpoint("https://example.openai.azure.com", store = TRUE)
# foundry_set_key("example-key-not-a-secret", store = TRUE)
# })
## ----entra-token, eval = FALSE------------------------------------------------
# foundry_set_token("your-entra-token")
## ----check-setup, eval = FALSE------------------------------------------------
# foundry_check_setup()
## ----check-setup-model, eval = FALSE------------------------------------------
# foundry_check_setup(model = "gpt-5-nano")
## ----models, eval = FALSE-----------------------------------------------------
# models <- foundry_models()
# models[, c("id", "owned_by")]
## ----first-response-----------------------------------------------------------
library(foundryR)
response <- foundry_response("Answer in one sentence: what is R?")
response$output_text
## ----response-chain-----------------------------------------------------------
follow_up <- foundry_response(
"Explain why that matters for data analysis in one sentence.",
previous_response_id = response$response_id
)
follow_up$output_text
## ----first-extract------------------------------------------------------------
schema <- list(
type = "object",
properties = list(
sentiment = list(type = "string", enum = c("positive", "negative", "neutral")),
topic = list(type = "string")
),
required = c("sentiment", "topic"),
additionalProperties = FALSE
)
foundry_extract(
c("The tutorial was clear.", "I needed more examples."),
schema = schema
)
## ----first-embed--------------------------------------------------------------
texts <- c(
"The tutorial was clear.",
"The lecture needed more examples.",
"The assignment instructions were easy to follow."
)
embeddings <- foundry_embed(texts, model = "text-embedding-3-small")
foundry_similarity(embeddings)
## ----content-safety-config, eval = FALSE--------------------------------------
# foundry_set_content_safety_endpoint(Sys.getenv("AZURE_CONTENT_SAFETY_ENDPOINT"))
# foundry_set_content_safety_key("your-content-safety-key")
## ----safety-gate--------------------------------------------------------------
source <- "The program enrolled 82 students in 2026."
answer <- "The program enrolled 82 students in 2026."
grounded <- foundry_groundedness(
text = answer,
grounding_sources = source,
query = "How many students enrolled?",
task = "QnA"
)
shield <- foundry_shield(user_prompt = "Summarize this document.")
grounded
shield
## ----first-chat---------------------------------------------------------------
foundry_chat("Answer in one sentence: what is the tidyverse?")
## ----cleanup, include = FALSE-------------------------------------------------
if (run_api) {
httptest2::end_vignette()
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.