Class: Legion::CLI::Chat::Tools::QueryKnowledge

Inherits:
RubyLLM::Tool
  • Object
show all
Defined in:
lib/legion/cli/chat/tools/query_knowledge.rb

Constant Summary collapse

DEFAULT_PORT =
4567
DEFAULT_HOST =
'127.0.0.1'

Instance Method Summary collapse

Instance Method Details

#execute(query:, domain: nil, limit: nil) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/legion/cli/chat/tools/query_knowledge.rb', line 28

def execute(query:, domain: nil, limit: nil)
  limit = (limit || 10).clamp(1, 50)
  data = apollo_query(query: query, domain: domain, limit: limit)

  return "Apollo knowledge graph error: #{data[:error]}" if data[:error]

  entries = data[:entries] || []
  return 'No knowledge entries found matching that query.' if entries.empty?

  format_entries(entries)
rescue StandardError => e
  Legion::Logging.warn("QueryKnowledge#execute failed: #{e.message}") if defined?(Legion::Logging)
  "Error querying knowledge graph: #{e.message}"
end