Module: RubyCoded::Chat::State::ContextWindow
- Included in:
- RubyCoded::Chat::State
- Defined in:
- lib/ruby_coded/chat/state/context_window.rb
Overview
Resolves current model context window and computes live context usage
based on the last turn's server-reported usage block. This reflects
the size of the prompt actually sent to the model on the most recent
request, not the total tokens spent in the session.
Instance Method Summary collapse
- #current_model_context_window ⇒ Object
- #session_context_tokens_used ⇒ Object
- #session_context_usage_percentage ⇒ Object
Instance Method Details
#current_model_context_window ⇒ Object
14 15 16 17 18 19 20 21 22 |
# File 'lib/ruby_coded/chat/state/context_window.rb', line 14 def current_model_context_window model_name = @model return unless model_name codex_model = CodexModels.find(model_name) return codex_model.context_window if codex_model.respond_to?(:context_window) resolve_ruby_llm_context_window(model_name) end |
#session_context_tokens_used ⇒ Object
24 25 26 |
# File 'lib/ruby_coded/chat/state/context_window.rb', line 24 def session_context_tokens_used last_turn_context_tokens end |
#session_context_usage_percentage ⇒ Object
28 29 30 31 32 33 34 |
# File 'lib/ruby_coded/chat/state/context_window.rb', line 28 def session_context_usage_percentage context_window = current_model_context_window return nil unless context_window.to_i.positive? percentage = ((session_context_tokens_used.to_f / context_window) * 100).round percentage.clamp(0, 100) end |