utils.pyโข2.01 kB
def parse_email(email_input: dict) -> dict:
"""Parse an email input dictionary.
Args:
email_input (dict): Dictionary containing email fields:
- author: Sender's name and email
- to: Recipient's name and email
- subject: Email subject line
- email_thread: Full email content
Returns:
tuple[str, str, str, str]: Tuple containing:
- author: Sender's name and email
- to: Recipient's name and email
- subject: Email subject line
- email_thread: Full email content
"""
return (
email_input["author"],
email_input["to"],
email_input["subject"],
email_input["email_thread"],
)
def format_few_shot_examples(examples):
"""Format examples into a readable string representation.
Args:
examples (List[Item]): List of example items from the vector store, where each item
contains a value string with the format:
'Email: {...} Original routing: {...} Correct routing: {...}'
Returns:
str: A formatted string containing all examples, with each example formatted as:
Example:
Email: {email_details}
Original Classification: {original_routing}
Correct Classification: {correct_routing}
---
"""
formatted = []
for example in examples:
# Parse the example value string into components
email_part = example.value.split('Original routing:')[0].strip()
original_routing = example.value.split('Original routing:')[1].split('Correct routing:')[0].strip()
correct_routing = example.value.split('Correct routing:')[1].strip()
# Format into clean string
formatted_example = f"""Example:
Email: {email_part}
Original Classification: {original_routing}
Correct Classification: {correct_routing}
---"""
formatted.append(formatted_example)
return "\n".join(formatted)