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



45
46
47
48
49
50
51
52
53
54
# File 'lib/langfuse/text_prompt_client.rb', line 45

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

#configHash (readonly)

Returns Prompt configuration.

Returns:

  • (Hash)

    Prompt configuration



36
37
38
# File 'lib/langfuse/text_prompt_client.rb', line 36

def config
  @config
end

#labelsArray<String> (readonly)

Returns Labels assigned to this prompt.

Returns:

  • (Array<String>)

    Labels assigned to this prompt



30
31
32
# File 'lib/langfuse/text_prompt_client.rb', line 30

def labels
  @labels
end

#nameString (readonly)

Returns Prompt name.

Returns:

  • (String)

    Prompt name



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

def name
  @name
end

#promptString (readonly)

Returns Raw prompt template string.

Returns:

  • (String)

    Raw prompt template string



39
40
41
# File 'lib/langfuse/text_prompt_client.rb', line 39

def prompt
  @prompt
end

#tagsArray<String> (readonly)

Returns Tags assigned to this prompt.

Returns:

  • (Array<String>)

    Tags assigned to this prompt



33
34
35
# File 'lib/langfuse/text_prompt_client.rb', line 33

def tags
  @tags
end

#versionInteger (readonly)

Returns Prompt version number.

Returns:

  • (Integer)

    Prompt version number



27
28
29
# File 'lib/langfuse/text_prompt_client.rb', line 27

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



64
65
66
67
68
# File 'lib/langfuse/text_prompt_client.rb', line 64

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

  Mustache.render(prompt, kwargs)
end