Class: Langfuse::TextPromptClient

Inherits:
Object
  • Object
show all
Defined in:
lib/langfuse/text_prompt_client.rb

Overview

Text prompt client for compiling text prompts with variable substitution

Handles text-based prompts from Langfuse, providing Mustache templating for variable substitution.

Examples:

Basic usage

prompt_data = api_client.get_prompt("greeting")
text_prompt = Langfuse::TextPromptClient.new(prompt_data)
text_prompt.compile(variables: { name: "Alice" })
# => "Hello Alice!"

Accessing metadata

text_prompt.name      # => "greeting"
text_prompt.version   # => 1
text_prompt.labels    # => ["production"]

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(prompt_data) ⇒ TextPromptClient

Initialize a new text prompt client

Parameters:

  • prompt_data (Hash)

    The prompt data from the API

Raises:

  • (ArgumentError)

    if prompt data is invalid



29
30
31
32
33
34
35
36
37
38
# File 'lib/langfuse/text_prompt_client.rb', line 29

def initialize(prompt_data)
  validate_prompt_data!(prompt_data)

  @name = prompt_data["name"]
  @version = prompt_data["version"]
  @prompt = prompt_data["prompt"]
  @labels = prompt_data["labels"] || []
  @tags = prompt_data["tags"] || []
  @config = prompt_data["config"] || {}
end

Instance Attribute Details

#configObject (readonly)

Returns the value of attribute config.



23
24
25
# File 'lib/langfuse/text_prompt_client.rb', line 23

def config
  @config
end

#labelsObject (readonly)

Returns the value of attribute labels.



23
24
25
# File 'lib/langfuse/text_prompt_client.rb', line 23

def labels
  @labels
end

#nameObject (readonly)

Returns the value of attribute name.



23
24
25
# File 'lib/langfuse/text_prompt_client.rb', line 23

def name
  @name
end

#promptObject (readonly)

Returns the value of attribute prompt.



23
24
25
# File 'lib/langfuse/text_prompt_client.rb', line 23

def prompt
  @prompt
end

#tagsObject (readonly)

Returns the value of attribute tags.



23
24
25
# File 'lib/langfuse/text_prompt_client.rb', line 23

def tags
  @tags
end

#versionObject (readonly)

Returns the value of attribute version.



23
24
25
# File 'lib/langfuse/text_prompt_client.rb', line 23

def version
  @version
end

Instance Method Details

#compile(**kwargs) ⇒ String

Compile the prompt with variable substitution

Examples:

text_prompt.compile(name: "Alice", greeting: "Hi")
# => "Hi Alice! Welcome."

Parameters:

  • kwargs (Hash)

    Variables to substitute in the template (as keyword arguments)

Returns:

  • (String)

    The compiled prompt text



48
49
50
51
52
# File 'lib/langfuse/text_prompt_client.rb', line 48

def compile(**kwargs)
  return prompt if kwargs.empty?

  Mustache.render(prompt, kwargs)
end