From 46ca83e8a369b855467f16f9d8891a9a49a6226d Mon Sep 17 00:00:00 2001 From: Pierre Date: Thu, 6 Feb 2025 15:23:01 +0100 Subject: [PATCH 1/2] add example of extracting calendar event - from email - from image --- examples/10_calendar_event_extraction.py | 256 +++++++++++++++++++++++ examples/assets/poster.jpg | Bin 0 -> 69161 bytes 2 files changed, 256 insertions(+) create mode 100644 examples/10_calendar_event_extraction.py create mode 100644 examples/assets/poster.jpg diff --git a/examples/10_calendar_event_extraction.py b/examples/10_calendar_event_extraction.py new file mode 100644 index 0000000..cb3f169 --- /dev/null +++ b/examples/10_calendar_event_extraction.py @@ -0,0 +1,256 @@ +""" +This example demonstrates how to create an agent that extracts calendar event information +from email content or images. It shows how to: +1. Parse email content to identify event details +2. Extract structured calendar information (date, time, location) +3. Handle different email formats and writing styles +4. Process event information from images (posters, flyers) +5. Return a well-structured calendar event object +""" + +import asyncio +import base64 +import os +from datetime import datetime +from typing import Optional + +from pydantic import BaseModel, Field + +import workflowai +from workflowai import Model, Run +from workflowai.fields import File + + +class EmailInput(BaseModel): + """Input model containing the email content to analyze.""" + subject: str = Field( + description="The subject line of the email", + examples=[ + "Team Meeting - Tuesday 3pm", + "Invitation: Product Review (Apr 15)", + ], + ) + body: str = Field( + description="The main content/body of the email", + examples=[ + "Let's meet to discuss the Q2 roadmap. Tuesday at 3pm in Conference Room A.", + "Please join us for the monthly product review meeting on April 15th at 2pm PST.", + ], + ) + + +class ImageInput(BaseModel): + """Input model containing an event poster or flyer image to analyze.""" + image: File = Field( + description="An image of an event poster or flyer to analyze", + ) + + +class CalendarEvent(BaseModel): + """Model containing the details of a calendar event.""" + title: Optional[str] = Field( + default=None, + description="The title/subject of the event", + examples=["Team Meeting", "Product Review"], + ) + start_time: Optional[datetime] = Field( + default=None, + description="The start time of the event in ISO format", + examples=["2024-04-15T14:00:00-07:00"], + ) + end_time: Optional[datetime] = Field( + default=None, + description="The end time of the event if specified", + examples=["2024-04-15T15:00:00-07:00"], + ) + location: Optional[str] = Field( + default=None, + description="The location or meeting room for the event", + examples=["Conference Room A", "https://zoom.us/j/123456789"], + ) + description: Optional[str] = Field( + default=None, + description="Additional details or description of the event", + examples=["Monthly product review meeting to discuss Q2 progress"], + ) + + +class CalendarEventOutput(BaseModel): + """Output model containing the extracted calendar event details if found.""" + calendar_event: Optional[CalendarEvent] = Field( + default=None, + description="The extracted calendar event details, or null if no event was found", + ) + + +@workflowai.agent( + id="calendar-event-extractor", + model=Model.GPT_4O_MINI_LATEST, +) +async def extract_calendar_event_from_email(email_input: EmailInput) -> Run[CalendarEventOutput]: + """ + Extract calendar event details from email content. + + Guidelines: + 1. Analyze both subject and body to identify event information: + - Look for date and time information in both fields + - Extract location and description if available + - Combine information from both fields when needed + - Return null for calendar_event if no event information is found + + 2. Handle different date/time formats: + - Explicit dates ("April 15th, 2024") + - Relative dates ("next Tuesday") + - Various time formats ("3pm", "15:00", "3:00 PM PST") + + 3. Make reasonable assumptions when information is ambiguous: + - Default to 1 hour duration if end time not specified + - Use UTC if timezone not specified + - Extract location if mentioned + + 4. Maintain accuracy and completeness: + - Include all clearly stated information + - Mark information as optional if not explicitly mentioned + - Preserve timezone information when available + """ + ... + + +@workflowai.agent( + id="calendar-event-extractor", + model=Model.GPT_4O_MINI_LATEST, +) +async def extract_calendar_event_from_image(image_input: ImageInput) -> Run[CalendarEventOutput]: + """ + Extract calendar event details from an event poster or flyer image. + + Guidelines: + 1. Analyze the image content to identify event details: + - Look for prominent text showing date and time + - Identify event title and location + - Extract any additional description or details + - Return null for calendar_event if no event information is found + + 2. Handle different date/time formats: + - Explicit dates ("April 15th, 2024") + - Various time formats ("3pm", "15:00", "3:00 PM PST") + - Date ranges for multi-day events + + 3. Make reasonable assumptions when information is ambiguous: + - Default to 1 hour duration if end time not specified + - Use UTC if timezone not specified + - Extract location if mentioned + + 4. Maintain accuracy and completeness: + - Include all clearly visible information + - Mark information as optional if not clearly visible + - Preserve timezone information when available + """ + ... + + +async def main(): + # Example 1: Basic meeting invitation + print("\nExample 1: Basic meeting invitation") + print("-" * 50) + + email1 = EmailInput( + subject="Team Sync - Tomorrow at 2pm", + body=""" + Hi team, + + Let's sync up tomorrow at 2pm in Conference Room A to discuss our Q2 roadmap. + + Please come prepared with your project updates. + + Best, + Sarah + """, + ) + + run = await extract_calendar_event_from_email(email1) + print(run) + + # Example 2: Virtual meeting with more details + print("\nExample 2: Virtual meeting with more details") + print("-" * 50) + + email2 = EmailInput( + subject="Invitation: Product Review Meeting (Apr 15, 2024)", + body=""" + You are invited to our monthly product review meeting. + + Date: April 15th, 2024 + Time: 2:00 PM - 3:30 PM PST + Location: https://zoom.us/j/123456789 + + Agenda: + 1. Q1 metrics review + 2. Feature roadmap updates + 3. Customer feedback discussion + """, + ) + + run = await extract_calendar_event_from_email(email2) + print(run) + + # Example 3: Event poster image + print("\nExample 3: Event poster image") + print("-" * 50) + + # Load the image file + current_dir = os.path.dirname(os.path.abspath(__file__)) + image_path = os.path.join(current_dir, "assets", "poster.jpg") + + # Verify the file exists + if not os.path.exists(image_path): + print(f"Image file not found at {image_path}") + return + + # Read and encode the image + # Note: Using sync file read in example code is acceptable. + # We avoid adding aiofiles dependency just for this example. + with open(image_path, "rb") as f: # noqa: ASYNC230 + image_data = f.read() + + # Create input with image + image_input = ImageInput( + image=File( + content_type="image/jpeg", + data=base64.b64encode(image_data).decode(), + ), + ) + + run = await extract_calendar_event_from_image(image_input) + print(run) + + # Example 4: Email without calendar event + print("\nExample 4: Email without calendar event") + print("-" * 50) + + email4 = EmailInput( + subject="Weekly project status update", + body=""" + Hi everyone, + + Here's a quick update on our project progress: + - Frontend team completed the new dashboard UI + - Backend API documentation is now up to date + - QA team found 3 minor bugs that are being fixed + + Great work everyone! + + Regards, + Alex + """, + ) + + try: + run = await extract_calendar_event_from_email(email4) + print(run) + except workflowai.WorkflowAIError as e: + print(f"As expected, no calendar event found: {e!s}") + + +if __name__ == "__main__": + asyncio.run(main()) diff --git a/examples/assets/poster.jpg b/examples/assets/poster.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4be4f8e1d26d4c91c07d154e43bbd102984e5b85 GIT binary patch literal 69161 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 B8!i9< literal 0 HcmV?d00001 From d5749f0c44df85978df8bfd80992edc29d0c4687 Mon Sep 17 00:00:00 2001 From: Pierre Date: Thu, 6 Feb 2025 16:23:39 +0100 Subject: [PATCH 2/2] remove examples for input fields --- examples/10_calendar_event_extraction.py | 8 -------- 1 file changed, 8 deletions(-) diff --git a/examples/10_calendar_event_extraction.py b/examples/10_calendar_event_extraction.py index cb3f169..be1c3fe 100644 --- a/examples/10_calendar_event_extraction.py +++ b/examples/10_calendar_event_extraction.py @@ -25,17 +25,9 @@ class EmailInput(BaseModel): """Input model containing the email content to analyze.""" subject: str = Field( description="The subject line of the email", - examples=[ - "Team Meeting - Tuesday 3pm", - "Invitation: Product Review (Apr 15)", - ], ) body: str = Field( description="The main content/body of the email", - examples=[ - "Let's meet to discuss the Q2 roadmap. Tuesday at 3pm in Conference Room A.", - "Please join us for the monthly product review meeting on April 15th at 2pm PST.", - ], )