Class: Insika::Context::Providers::Request
- Inherits:
-
Insika::ContextProvider
- Object
- Insika::ContextProvider
- Insika::Context::Providers::Request
- Defined in:
- lib/insika/context/providers/request.rb
Overview
:system fragment with turn metadata (tenant, relevant vars). Nothing if there is no metadata. priority 40. Not required? (metadata may degrade).
Instance Method Summary collapse
Methods inherited from Insika::ContextProvider
#enabled_for?, #id, #required?
Instance Method Details
#call(request) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/insika/context/providers/request.rb', line 10 def call(request) lines = [] lines << "tenant: #{request.tenant}" if request.tenant # "history" is transcript (consumed by the Session provider), not turn # metadata — it does not leak into the system's request_context. Keys # prefixed with "__" are INTERNAL slots (e.g. the per-chat model pin # "__llm__") — reserved, never rendered to the model. request.vars.to_h.each do |k, v| next if k.to_s == "history" || k.to_s.start_with?("__") lines << "#{k}: #{v}" end return [] if lines.empty? [ContextFragment.build( content: "<request_context>\n#{lines.join("\n")}\n</request_context>", placement: :system, priority: Context::Priority::REQUEST, source: id )] end |