% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/vlm-extract.R
\name{extract_munsell_from_photo}
\alias{extract_munsell_from_photo}
\title{Extract Munsell color from a profile photo}
\usage{
extract_munsell_from_photo(
  pedon,
  image_path,
  provider,
  max_retries = 3L,
  overwrite = FALSE,
  prompt_name = "extract_munsell_from_photo",
  schema_name = "horizon"
)
}
\arguments{
\item{pedon}{A \code{\link{PedonRecord}}.}

\item{image_path}{Path to the image file (JPG / PNG).}

\item{provider}{A chat provider from \code{\link{vlm_provider}} (or
a \code{MockVLMProvider} for testing).}

\item{max_retries}{Integer; how many times to re-prompt on
validation failure. Default 3.}

\item{overwrite}{If \code{TRUE}, lower-authority values are allowed
to clobber higher-authority ones. Default \code{FALSE}.}

\item{prompt_name}{Override the default prompt template
(\code{"extract_horizons"}).}

\item{schema_name}{Override the default schema (\code{"horizon"}).}
}
\value{
Invisibly, the mutated \code{pedon}, with the photo added
        to \code{pedon$images}.
}
\description{
Sends the photo to a multimodal VLM with a prompt that asks the
model to estimate Munsell hue / value / chroma per visible horizon
(when a Munsell reference card is in frame). Recorded as
\code{extracted_vlm} with the model's self-reported confidence;
photos without a reference card should yield confidence below 0.5
per the prompt specification.
}
\details{
Quantitative non-color attributes (clay \%, CEC, pH, etc.) are
\strong{never} extracted from photos, by prompt-level instruction.
If the model returns one anyway, it is silently dropped.
}
