in ultravox/tools/ds_tool/ds_tool.py [0:0]
def _map_sample(self, sample, exclude_fields):
# using a Jinja template for some added flexibility, template can include variables and functions
# e.g., {{ text }} or {{ text_proc.format_asr_text(text) }}
try:
rendered = apply_jinja_template(self.template, sample, exclude_fields)
except text_proc.FormatASRError as e:
print(f"Format ASR Error {e}. Filtering out sample.")
sample[self.new_column_name] = None
return sample
if self.json_mode:
turns = yaml.safe_load(rendered)
assert isinstance(turns, list)
assert all(isinstance(turn, dict) for turn in turns)
assert len(turns) > 0
assert turns[-1].get("role", None) == "user"
else:
turns = [{"role": "user", "content": rendered}]
sample[self.new_column_name] = chat_client.chat_completion(
model=self.language_model,
messages=turns,
max_tokens=self.max_tokens,
temperature=self.temperature,
)
return sample