Class: DebugAgent::ChatSession

Inherits:
Object
  • Object
show all
Defined in:
lib/debug_agent/chat_session.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(session_id) ⇒ ChatSession

Returns a new instance of ChatSession.



8
9
10
11
12
13
14
15
16
# File 'lib/debug_agent/chat_session.rb', line 8

def initialize(session_id)
  @session_id = session_id
  @messages = []
  @created_at = Time.now
  @last_active_at = @created_at
  @last_token_usage = nil
  @cumulative_prompt_tokens = 0
  @cumulative_completion_tokens = 0
end

Instance Attribute Details

#cumulative_completion_tokensObject

Returns the value of attribute cumulative_completion_tokens.



5
6
7
# File 'lib/debug_agent/chat_session.rb', line 5

def cumulative_completion_tokens
  @cumulative_completion_tokens
end

#cumulative_prompt_tokensObject

Returns the value of attribute cumulative_prompt_tokens.



5
6
7
# File 'lib/debug_agent/chat_session.rb', line 5

def cumulative_prompt_tokens
  @cumulative_prompt_tokens
end

#last_token_usageObject

Returns the value of attribute last_token_usage.



5
6
7
# File 'lib/debug_agent/chat_session.rb', line 5

def last_token_usage
  @last_token_usage
end

#messagesObject

Returns the value of attribute messages.



5
6
7
# File 'lib/debug_agent/chat_session.rb', line 5

def messages
  @messages
end

#session_idObject

Returns the value of attribute session_id.



5
6
7
# File 'lib/debug_agent/chat_session.rb', line 5

def session_id
  @session_id
end

Instance Method Details

#add_message(msg) ⇒ Object



18
19
20
21
# File 'lib/debug_agent/chat_session.rb', line 18

def add_message(msg)
  @messages << msg
  @last_active_at = Time.now
end

#clearObject



39
40
41
42
43
44
45
# File 'lib/debug_agent/chat_session.rb', line 39

def clear
  @messages = []
  @last_token_usage = nil
  @cumulative_prompt_tokens = 0
  @cumulative_completion_tokens = 0
  @last_active_at = Time.now
end

#current_context_tokensObject



35
36
37
# File 'lib/debug_agent/chat_session.rb', line 35

def current_context_tokens
  @cumulative_prompt_tokens
end

#record_token_usage(usage) ⇒ Object



28
29
30
31
32
33
# File 'lib/debug_agent/chat_session.rb', line 28

def record_token_usage(usage)
  return unless usage
  @last_token_usage = usage
  @cumulative_prompt_tokens = usage['prompt_tokens'] || 0
  @cumulative_completion_tokens += usage['completion_tokens'] || 0
end

#replace_messages(msgs) ⇒ Object



23
24
25
26
# File 'lib/debug_agent/chat_session.rb', line 23

def replace_messages(msgs)
  @messages = msgs
  @last_active_at = Time.now
end