Module: Legion::Extensions::MicrosoftTeams::Helpers::TraceRetriever

Included in:
Runners::Bot
Defined in:
lib/legion/extensions/microsoft_teams/helpers/trace_retriever.rb

Constant Summary collapse

MAX_TRACE_TOKENS =
2000
MAX_TRACES =
20

Instance Method Summary collapse

Instance Method Details

#retrieve_context(message:, owner_id:, chat_id: nil, channel_id: nil) ⇒ Object

rubocop:disable Lint/UnusedMethodArgument



11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/legion/extensions/microsoft_teams/helpers/trace_retriever.rb', line 11

def retrieve_context(message:, owner_id:, chat_id: nil, channel_id: nil) # rubocop:disable Lint/UnusedMethodArgument
  return nil unless memory_trace_available?

  traces = []
  traces.concat(retrieve_sender_traces(owner_id: owner_id))
  traces.concat(retrieve_teams_traces)
  traces.concat(retrieve_chat_traces(chat_id: chat_id)) if chat_id

  ranked = rank_traces(traces: traces, query: message)
  format_trace_context(traces: ranked.first(MAX_TRACES))
rescue StandardError => e
  log_trace_error('retrieve_context', e)
  nil
end