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.