Nothing
## ----setup, include = FALSE---------------------------------------------------
fixture_dir <- "responses-api"
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
)
## ----basic-response-----------------------------------------------------------
library(foundryR)
foundry_response(
"Answer in one sentence: what is retrieval-augmented generation?"
)
## ----stateful-turns-----------------------------------------------------------
first <- foundry_response(
"Define catastrophic forgetting in one sentence."
)
second <- foundry_response(
"Explain it for a college freshman in one sentence.",
previous_response_id = first$response_id
)
second$output_text
## ----structured-extraction----------------------------------------------------
schema <- list(
type = "object",
properties = list(
sentiment = list(
type = "string",
enum = c("positive", "negative", "neutral")
),
entities = list(
type = "array",
items = list(type = "string")
),
summary = list(type = "string")
),
required = c("sentiment", "entities", "summary"),
additionalProperties = FALSE
)
texts <- c(
"The new data pipeline reduced manual coding time by half.",
"Participants reported confusion about the consent form."
)
foundry_extract(
texts,
schema = schema
)
## ----function-tools, eval = FALSE---------------------------------------------
# get_weather <- function(location) {
# list(location = location, temperature = "70 F")
# }
#
# weather_tool <- foundry_tool(
# get_weather,
# description = "Get weather for a location",
# parameters = list(
# type = "object",
# properties = list(location = list(type = "string")),
# required = "location"
# )
# )
#
# turns <- foundry_agent(
# "What is the weather in San Francisco?",
# tools = list(weather_tool),
# max_iterations = 4
# )
#
# turns[, c("iteration", "final", "output_text")]
# turns$tool_results[[1]]
## ----mcp-tool, eval = FALSE---------------------------------------------------
# mcp_tool <- list(
# type = "mcp",
# server_label = "my_mcp_server",
# server_url = Sys.getenv("MY_MCP_SERVER_URL"),
# require_approval = "never"
# )
#
# foundry_response(
# "Use the MCP server if it helps answer the question.",
# tools = list(mcp_tool)
# )
## ----web-search, eval = FALSE-------------------------------------------------
# answer <- foundry_web_search(
# "What changed recently in Azure AI Foundry Responses API?",
# search_context_size = "high"
# )
#
# answer$output_text
# answer$citations[[1]]
# answer$tool_calls[[1]]
## ----web-search-location, eval = FALSE----------------------------------------
# foundry_web_search(
# "Find a recent AI research event near me.",
# country = "US",
# region = "Washington",
# city = "Seattle",
# timezone = "America/Los_Angeles"
# )
## ----reasoning, eval = FALSE--------------------------------------------------
# foundry_response(
# "Compare the two arguments and identify the weaker premise.",
# model = "my-reasoning-deployment",
# reasoning_effort = "medium"
# )
## ----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.