Context items are attachments that supplement a prompt:
Files - Documents, images, data files uploaded to Claro
URLs - Web pages or external resources
Copy
from baytos.claro import BaytClientclient = BaytClient(api_key="your_api_key")prompt = client.get_prompt("@workspace/research-assistant:v1")# Check if prompt has contextif prompt.has_context(): print(f"This prompt has {len(prompt.context)} context items")
prompt = client.get_prompt("@workspace/my-prompt:v1")# Check if any context existsif prompt.has_context(): print("Prompt has attachments")# Get all context itemscontext_items = prompt.contextfor item in context_items: print(f"- {item.type}: {item}")
prompt = client.get_prompt("@workspace/data-analysis:v1")files = prompt.get_file_contexts()if files: file = files[0] # Download file content content = client.download_context_file(file.id) # Content is returned as bytes print(f"Downloaded {len(content):,} bytes") # Save to disk with open(file.file_name, 'wb') as f: f.write(content) print(f"Saved to: {file.file_name}")
For large files or delegating downloads, get a signed URL:
Copy
file = files[0]# Get signed download URLurl_info = client.get_context_download_url(file.id)download_url = url_info['url']expires_in = url_info['expiresIn'] # Seconds until expiryprint(f"Download URL: {download_url}")print(f"Expires in: {expires_in} seconds")# URL is pre-signed, no authentication needed# Can be passed to browser, other services, etc.
Download URLs expire after 1 hour by default. Generate a new URL if needed.
prompt = client.get_prompt("@workspace/web-research:v1")# Get only URL-type contextsurls = prompt.get_url_contexts()for url_item in urls: print(f"URL: {url_item.url}") if url_item.label: print(f"Label: {url_item.label}") if url_item.url_fetched_at: print(f"Fetched: {url_item.url_fetched_at}") print()
for item in prompt.context: # Method 1: Use helper methods if item.is_file(): print(f"This is a file: {item.file_name}") if item.is_url(): print(f"This is a URL: {item.url}") # Method 2: Check type property if item.type == "file": print("File type") elif item.type == "url": print("URL type")
files = prompt.get_file_contexts()# Process only imagesimage_files = [f for f in files if f.mime_type.startswith('image/')]# Process only PDFspdf_files = [f for f in files if f.mime_type == 'application/pdf']# Process text filestext_files = [f for f in files if f.mime_type.startswith('text/')]for pdf in pdf_files: content = client.download_context_file(pdf.id) # Process PDF...