#[non_exhaustive]pub enum Ability {
Show 14 variants
ToolUse,
Vision,
Audio,
AudioOutput,
Video,
WebSearch,
Pdf,
CodeExecution,
Reasoning,
ImageGeneration,
ComputerUse,
PromptCaching,
AssistantPrefill,
PerMessageEffort,
}Expand description
Represents the capabilities that a language model may support.
This enum defines the various advanced capabilities that modern language models can possess beyond basic text generation. These capabilities can be used to determine which models are suitable for specific use cases.
§Examples
use aither::llm::model::Ability;
// Check if a model supports vision
let abilities = [Ability::Vision, Ability::ToolUse];
let has_vision = abilities.contains(&Ability::Vision);Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
ToolUse
The model can use external tools/functions.
Vision
The model can process and understand images.
Audio
The model can process and understand audio.
AudioOutput
The model can generate audio output.
Video
The model can process and understand video.
WebSearch
The model can perform web searches natively.
The model can directly read and reason over PDF or document attachments.
CodeExecution
The model can execute code.
Reasoning
The model supports extended thinking/reasoning.
ImageGeneration
The model can generate images.
ComputerUse
The model supports computer use / desktop interaction.
PromptCaching
The model supports prompt caching.
AssistantPrefill
The model supports assistant prefill (pre-filling assistant responses).
PerMessageEffort
The model takes a reasoning effort change inside the conversation, as a
Message::Configuration, without
the request-level effort changing — so the prompt cache stays warm.