class_docstr: PromptBuilder is a component that renders a prompt from a template string using Jinja2 engine.
  The template variables found in the template string are used as input types for the component and are all required.
  
  Usage:
  ```python
  template = "Translate the following context to {{ target_language }}. Context: {{ snippet }}; Translation:"
  builder = PromptBuilder(template=template)
  builder.run(target_language="spanish", snippet="I can't speak spanish.")
  ```
docstr: Initialize the component with a template string.
  
  :param template: Jinja2 template string, e.g. "Summarize this document: {documents}\nSummary:"
  :type template: str
docstr_tok: ["Initialize","the","component","with","a","template","string",".",":","param","template",":","Jinja2","template","string",",","e.g",".","``","Summarize","this","document",":","{","documents","}","\\nSummary",":","''",":","type","template",":","str"]
code: def __init__(self, template: str):
      """
      Initialize the component with a template string.
  
      :param template: Jinja2 template string, e.g. "Summarize this document: {documents}\\nSummary:"
      :type template: str
      """
      self._template_string = template
      self.template = Template(template)
      ast = self.template.environment.parse(template)
      template_variables = meta.find_undeclared_variables(ast)
      component.set_input_types(
          self, **{var: Any for var in template_variables}
      )
  
imports: from typing import Dict, Any
  from jinja2 import Template, meta
  from haystack import component
  from haystack import default_to_dict
label_desc: Use image node_id 1 to create a new PromptBuilder object  with example: obj = PromptBuilder(template)