Class: NitroIntelligence::Observability::PromptStore

Inherits:
Object
  • Object
show all
Defined in:
lib/nitro_intelligence/observability/prompt_store.rb

Defined Under Namespace

Classes: ObservabilityPromptError, ObservabilityPromptNotFoundError

Constant Summary collapse

OBSERVABILITY_PROMPTS_CACHE_KEY_PREFIX =
"nitro_intelligence_observability_prompts_".freeze

Instance Method Summary collapse

Constructor Details

#initialize(observability_project_slug:, observability_public_key:, observability_secret_key:) ⇒ PromptStore

Returns a new instance of PromptStore.



15
16
17
18
19
20
# File 'lib/nitro_intelligence/observability/prompt_store.rb', line 15

def initialize(observability_project_slug:, observability_public_key:, observability_secret_key:)
  @observability_project_slug = observability_project_slug
  @observability_public_key = observability_public_key
  @observability_secret_key = observability_secret_key
  @observability_host = NitroIntelligence.config.observability_base_url
end

Instance Method Details

#get_prompt(prompt_name:, prompt_label: nil, prompt_version: nil) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/nitro_intelligence/observability/prompt_store.rb', line 22

def get_prompt(prompt_name:, prompt_label: nil, prompt_version: nil)
  safe_prompt_name = CGI.escapeURIComponent(prompt_name)
  prompt = nil

  if prompt_version.present?
    prompt = get_prompt_by_version(safe_prompt_name:, prompt_version:)
  else
    prompt_label = "production" if prompt_label.nil?
    prompt = get_prompt_by_label(safe_prompt_name:, prompt_label:)
  end

  prompt = Prompt.new(**prompt) if prompt.present?

  prompt
end