Plutonic Rainbows

Plutonic Rainbows

Evaluation Updates

I have implemented a fine-tuning system that collects and utilises user feedback to improve prompt refinements. The system stores feedback data (including prompts, ratings, and comments) in a SQLite database, and once I have collected 50 or more high-quality samples (rated 4 or 5 stars), I can initiate a fine-tuning process with OpenAI. This creates a custom model that's specifically tuned to my use cases and feedback.

When users interact with the /refine endpoint, the system now intelligently checks for the availability of a fine-tuned model and uses it if one exists, falling back to the standard GPT-4 model if necessary. I've added new endpoints to manage the fine-tuning process for the processes (/train and /training-status), while maintaining all existing API functionality. However, it's worth noting that the actual fine-tuning occurs on OpenAI's servers and requires OpenAI credits, so the system's effectiveness depends on both the quality of collected feedback and available resources.

Local React

I kept encountering persistent errors from the CDN hosting the React assets, which significantly disrupted my workflow. Instead of relying on an unpredictable external service, I took the initiative and dedicated most of yesterday to setting up the assets locally. Although it required substantial effort initially, this proactive step has made my development environment much more reliable and responsive. Not only have I eliminated the dependency on external CDN performance, but I also gained more control over asset management, leading to smoother, faster builds and an improved development experience overall.

EXIF and IPTC

I've improved my image generation app to ensure that prompt information is consistently saved with each image. Previously, sometimes the prompt text wasn't being properly written to the image files, which made it difficult to remember what prompts created which images. I've added better error handling around the metadata writing process, with specific fallback options if something goes wrong. Now, even if there's a problem with one method of saving the information, the app will try another approach and clearly log what happened. This makes the whole process more reliable and helps me track exactly what prompts were used to create each image, which is essential for my workflow.

Signed URL

I modified my templates to use a signed URL from cloudfront. Serving signed URLs from CloudFront offers a robust solution for securely delivering private content while enhancing performance. By embedding expiration times, IP restrictions, and custom policies directly into the URL, you can tightly control access and ensure that only authorised users view your content. At the same time, leveraging CloudFront’s global CDN means that content is cached at edge locations, reducing latency and speeding up delivery — protecting your origin resources from direct access and heavy load. This approach not only boosts security but also provides the flexibility and scalability needed for modern, forward-thinking applications.

Cursor

A day later and I now find that I have settled on Cursor for advanced editing. Cursor is an AI-powered integrated development environment (IDE) developed by Anysphere Inc., designed to enhance developer productivity across Windows, macOS, and Linux platforms. Forked from Visual Studio Code, it incorporates advanced AI features such as intelligent code generation, smart rewrites, and natural language codebase queries. These capabilities enable developers to generate or update entire classes or functions using simple prompts, predict subsequent code edits for efficient navigation, and query the codebase in natural language to retrieve information or refer to specific files and documentation. Cursor also supports the integration of existing extensions, themes, and keybindings, ensuring a seamless transition for users familiar with Visual Studio Code.