namespace AIStudio.Tools.ERIClient.DataModel;
///
/// The retrieval request sent by AI Studio.
///
///
/// Images and other media are base64 encoded.
///
/// The latest user prompt that AI Studio received.
/// The type of the latest user prompt, e.g., text, image, etc.
/// The chat thread that the user is currently in.
/// Optional. The ID of the retrieval process that the data source should use.
/// When null, the data source chooses an appropriate retrieval process. Selecting a retrieval process is optional
/// for AI Studio users. Most users do not specify a retrieval process.
/// A dictionary of parameters that the data source should use for the retrieval process.
/// Although each parameter will be sent as a string, the retrieval process specifies the expected type and range.
/// The maximum number of matches that the data source should return. AI Studio uses
/// any value below 1 to indicate that the data source should return as many matches as appropriate.
public readonly record struct RetrievalRequest(
string LatestUserPrompt,
ContentType LatestUserPromptType,
ChatThread Thread,
string? RetrievalProcessId,
Dictionary? Parameters,
int MaxMatches);