Fm
Constants
DEFAULT_CONTEXT_TOKENS = 4096
Default context window size for Apple's on-device Foundation Models.
TRANSCRIPT_SKIP_KEYS = {"role", "content", "text", "prompt", "response", "instructions"}
TRANSCRIPT_TEXT_KEYS = {"content", "text", "prompt", "response", "instructions"}
VERSION = "0.1.0"
Class methods
compact_session_if_needed(model : SystemLanguageModel, session : Session, limit : ContextLimit, config : CompactionConfig = CompactionConfig.new, base_instructions : String | Nil = nil) : CompactedSession | Nil
Compacts a session if context usage exceeds the limit. Returns nil if still within budget.
compact_transcript(model : SystemLanguageModel, transcript_json : String, config : CompactionConfig = CompactionConfig.new) : String
Compacts a transcript into a summary using the on-device model.
Builds instructions text for a compacted session.
Estimates token usage from transcript JSON and a context limit.
Estimates tokens based on a characters-per-token heuristic.
Nested types
- Fm::Adapter
- Fm::AppleIntelligenceNotEnabledError
- Fm::AssetsUnavailableError
- Fm::CompactedSession
- Fm::CompactionConfig
- Fm::ConcurrentRequestsError
- Fm::ContextLimit
- Fm::ContextUsage
- Fm::DecodingFailureError
- Fm::DeviceNotEligibleError
- Fm::Error
- Fm::ExceededContextWindowSizeError
- Fm::Generable
- Fm::GenerationError
- Fm::GenerationOptions
- Fm::GuardrailViolationError
- Fm::Guardrails
- Fm::Guide
- Fm::InternalError
- Fm::InvalidGenerationSchemaError
- Fm::InvalidInputError
- Fm::ModelAvailability
- Fm::ModelNotAvailableError
- Fm::ModelNotReadyError
- Fm::RateLimitedError
- Fm::RefusalError
- Fm::Response
- Fm::Sampling
- Fm::SamplingMode
- Fm::Session
- Fm::SystemLanguageModel
- Fm::TimeoutError
- Fm::Tool
- Fm::ToolCallError
- Fm::ToolOutput
- Fm::UnsupportedGuideError
- Fm::UnsupportedLanguageOrLocaleError
- Fm::UseCase