Spaces:
Sleeping
Sleeping
| """Unified prompt formatting and response extraction""" | |
| import re | |
| class PromptFormatter: | |
| """Handles prompt formatting and assistant response extraction""" | |
| def format_prompt(model_name, prompt, partial_response, continuation): | |
| """Format the full prompt for generation""" | |
| if "meta-llama" in model_name: | |
| return f"{prompt}\n\nAssistant: {partial_response}{continuation}" | |
| else: | |
| raise NotImplementedError(f"Prompt formatting not implemented for model: {model_name}") | |
| def extract_assistant_response(model_name, full_response): | |
| """Extract the assistant's response from the full generated text""" | |
| if "meta-llama" in model_name: | |
| # Check if we have multiple assistant tags and get the last one | |
| assistant_tags = re.findall(r"Assistant:\s*", full_response) | |
| if len(assistant_tags) > 1: | |
| print(f"Found multiple assistant tags ({len(assistant_tags)})\nFull response:\n{full_response}\n**") | |
| # Only split on the first assistant tag | |
| return full_response.split("Assistant:", maxsplit=1)[-1].strip() | |
| else: | |
| raise NotImplementedError(f"Response extraction not implemented for model: {model_name}") |