Interestingly, 4o could never get the words correct, so I did that part in Photoshop.
Everything else is perfect.
Interestingly, 4o could never get the words correct, so I did that part in Photoshop.
Everything else is perfect.
Hehehehe… - Excellent Image
A few more steps to get a TTF file, but I think it could be done?
Might be a cool SaaS for the Hackathon thread ahah
As having done some vector font cleartype hinting and kerning long ago and the tools not really improving in 25 years, and that Unicode has about 150000 glyphs, this would be a path I wouldn’t encourage just for the fun of it!
Obligatory:
Console-based - basically stops being useful on production orgs with >100 assistants
files.
━━━━━━━━━━━━━━━━━━━━━━━━━━━◣
OpenAI File Storage Utility ▮▮▶ Select New File 'Purpose'
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬◤
[1] assistants - Docs for search or code interpreter (upload)
[2] assistants_output - Files produced by assistant or code (download)
[3] user_data - User-provided data (upload)
[4] fine-tune - JSONL training file (upload)
[5] fine-tune-results - Learning metrics report (download)
[6] batch - JSONL of API calls to batch (download, upload)
[7] batch_output - Fulfilled batch API calls (download)
[8] vision - Images for Assistants message attachment (upload)
[9] Cancel (keep current: assistants)
◄ current purpose ► assistants
Enter your choice: 7
Purpose changed to: 'batch_output'
━━━━━━━━━━━━━━━━━━━━━━━━━━━◣
OpenAI File Storage Utility ▮▮▶ Main Menu
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬◤
[1] Change purpose (to access different type of API files)
[2] List remote files only (for purpose selected)
[3] List remote files, and download one of your choice
[4] List remote files, and delete one of your choice
[5] Delete all files with current purpose (confirmation required)
[6] Change local directory (the upload source)
[7] Upload file
[9] Exit
◄ current purpose ► batch_output
Enter your choice: 3
━━━━━━━━━━━━━━━━━━━━━━━━━━━◣
OpenAI File Storage Utility ▮▮▶ Download from File List
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬◤
◄ current purpose ► batch_output
[1] batch_6810a..._output.jsonl [file-4pX...6n], Created: 2025-04-29 11:15:12 UTC
Enter a file number to download, or any other input to return to menu:
Maybe this one won’t be a “what on Earth??” 6 month later…
class Capability(Enum):
UPLOAD = "upload"
DOWNLOAD = "download"
@dataclass(frozen=True)
class Purpose:
name: str
description: str
capabilities: Set[Capability]
def __str__(self):
return self.name
def can(self, capability: Capability) -> bool:
return capability in self.capabilities
@property
def summary(self):
caps = ', '.join(cap.name.lower() for cap in sorted(
self.capabilities,
key=lambda c: c.name)
)
return f"{self.name} - {self.description} ({caps})"
class PurposeRegistry:
_purposes = {
"assistants": Purpose(
name="assistants",
description="Docs for search or code interpreter",
capabilities={Capability.UPLOAD}
),
"assistants_output": Purpose(
name="assistants_output",
description="Files produced by assistant or code",
capabilities={Capability.DOWNLOAD}
), ...