Model Fine Tuning - Documentation
How to create and use custom-trained ChatGPT models on the platform.
Fine tuning requires your own OpenAI API key, configured in your account settings.
What is Fine Tuning?
Overview of custom model training and when to use it
Fine-tuning creates a custom version of a ChatGPT model that has been trained on your own examples. You write conversations showing the model what a user would say and what the correct response should be, and the training process teaches the model to follow those patterns every time. The result is a model that behaves the way you want without needing long system prompts or detailed instructions in every request.
When to use fine-tuning:
Fine-tuning works best for repeatable, non-complex tasks where you want consistent behavior. Good use cases include customer support chatbots that should always respond in a specific style, assistants that need to use domain-specific terminology correctly, content generators that should follow a particular format, or any situation where the model should handle common scenarios in a predictable way.
Think of it as training an employee: you show them how to handle the situations they will encounter, and they learn to respond the same way every time.
Fine-tuning works best for repeatable, non-complex tasks where you want consistent behavior. Good use cases include customer support chatbots that should always respond in a specific style, assistants that need to use domain-specific terminology correctly, content generators that should follow a particular format, or any situation where the model should handle common scenarios in a predictable way.
Think of it as training an employee: you show them how to handle the situations they will encounter, and they learn to respond the same way every time.
Important limitations: Only OpenAI supports fine-tuning, and the strongest model available for custom training is GPT-4o-mini. This is not a replacement for powerful reasoning or thinking models. Fine-tuned models are best suited for conversational tasks, formatting, and pattern-following -- not for complex logic, math, or multi-step reasoning problems.
How it connects to other apps:
Once your custom model is trained, it automatically appears as a model option in the AI Chatbot and AI Bots apps. Any chatbot or AI bot you build can select your custom model, and the global rules you defined during training are loaded into the system prompt so the model operates under the same guidelines it was trained on. You can also call the custom model directly through the AI Bots API.
Once your custom model is trained, it automatically appears as a model option in the AI Chatbot and AI Bots apps. Any chatbot or AI bot you build can select your custom model, and the global rules you defined during training are loaded into the system prompt so the model operates under the same guidelines it was trained on. You can also call the custom model directly through the AI Bots API.
How to Write Training Messages
Building effective training conversations
Training messages are example conversations that teach the model how to respond. Each training block is a conversation between a user and an assistant. You write both sides: the prompt (what the user says) and the correct response (what the model should say back). The model learns from these examples and applies the same patterns to new, similar inputs.
Structure of a training block:
Each block can contain up to 3 exchanges (user prompt followed by assistant response). A single exchange teaches the model one question-and-answer pair. Multi-turn blocks teach the model how to handle follow-up questions in context. Keep blocks focused -- 1 to 3 exchanges is the recommended maximum. Longer conversations dilute the training signal and make it harder for the model to learn clear patterns.
Example single-turn block:
User: "What are your return policy hours?"
Assistant: "Our return window is 30 days from the date of purchase. Items must be in original packaging with the receipt. Would you like me to start a return for you?"
Example multi-turn block:
User: "I need to cancel my subscription."
Assistant: "I can help with that. Can you confirm the email address on your account?"
User: "It is john@example.com."
Assistant: "Thank you. I have located your account. Your subscription has been cancelled and you will not be charged again. You will have access until the end of your current billing period."
Each block can contain up to 3 exchanges (user prompt followed by assistant response). A single exchange teaches the model one question-and-answer pair. Multi-turn blocks teach the model how to handle follow-up questions in context. Keep blocks focused -- 1 to 3 exchanges is the recommended maximum. Longer conversations dilute the training signal and make it harder for the model to learn clear patterns.
Example single-turn block:
User: "What are your return policy hours?"
Assistant: "Our return window is 30 days from the date of purchase. Items must be in original packaging with the receipt. Would you like me to start a return for you?"
Example multi-turn block:
User: "I need to cancel my subscription."
Assistant: "I can help with that. Can you confirm the email address on your account?"
User: "It is john@example.com."
Assistant: "Thank you. I have located your account. Your subscription has been cancelled and you will not be charged again. You will have access until the end of your current billing period."
Tips for good training data: Write responses exactly how you want the model to talk. If you want short answers, write short answers. If you want the model to ask clarifying questions, include examples where it does that. Cover common scenarios and edge cases. The more varied and realistic your examples, the better the model will generalize to real conversations. Aim for at least 10-20 training blocks to give the model enough patterns to learn from.
Global Rules
Setting consistent behavior across all training messages
Global rules are instructions that get injected into every training message as the system prompt. They define the baseline personality, tone, and constraints that the model should follow in every response. Set your rules before writing training messages so the model learns to follow them from the start.
What to put in global rules:
Write rules the same way you would write instructions for a human agent. Examples: "Always respond in a friendly, professional tone." "Never promise refunds without manager approval." "Keep responses under 3 sentences unless the user asks for more detail." "Use the customer's name when available."
Why global rules matter for deployment:
When your custom model is used in the AI Chatbot or AI Bots apps, these same rules are loaded into the system prompt automatically. This means the model operates under the same guidelines it was trained on, producing consistent behavior between training and production.
Write rules the same way you would write instructions for a human agent. Examples: "Always respond in a friendly, professional tone." "Never promise refunds without manager approval." "Keep responses under 3 sentences unless the user asks for more detail." "Use the customer's name when available."
Why global rules matter for deployment:
When your custom model is used in the AI Chatbot or AI Bots apps, these same rules are loaded into the system prompt automatically. This means the model operates under the same guidelines it was trained on, producing consistent behavior between training and production.
Each rule is one line in the admin panel. Add as many as you need, but keep them clear and specific. Vague rules like "be helpful" do not teach the model anything useful. Specific rules like "if the user asks about pricing, direct them to the pricing page at example.com/pricing" give the model clear instructions to follow.
Running a Training Job
How the training process works
When you run a training job from the admin panel, the system collects all untrained conversation blocks, combines them with your global rules, and uploads them to OpenAI as a fine-tuning dataset. OpenAI processes the training and creates your custom model. The job typically takes a few minutes to a few hours depending on the amount of training data.
What happens step by step:
1. The system reads all training messages with a status of "Not Trained."
2. Each conversation block is formatted with your global rules as the system message, followed by the user/assistant exchanges.
3. The formatted data is uploaded to OpenAI as a training file.
4. A fine-tuning job is created on the base model (GPT-4o-mini).
5. Each submitted conversation is marked as "Trained" so it will not be submitted again.
6. The job ID and status are saved to your model record for tracking.
1. The system reads all training messages with a status of "Not Trained."
2. Each conversation block is formatted with your global rules as the system message, followed by the user/assistant exchanges.
3. The formatted data is uploaded to OpenAI as a training file.
4. A fine-tuning job is created on the base model (GPT-4o-mini).
5. Each submitted conversation is marked as "Trained" so it will not be submitted again.
6. The job ID and status are saved to your model record for tracking.
Costs: There is a 1 dollar platform fee per training session plus 1 credit per message trained. OpenAI also charges their own fine-tuning fees against your API key. After training, using your custom model costs the same as using the base model per message.
Incremental training: You do not have to train everything at once. After the first training run, you can add more conversation blocks, set their status to "Not Trained," and run another training job. Only the new messages will be submitted. This lets you improve your model over time as you identify gaps or new scenarios to cover.
Admin: Training Messages
Managing your training conversation library
The Training Messages page lists all conversation blocks you have created. Each block shows its training status, tag, and the conversation exchanges inside it. Use the list to track which messages have been trained, filter by tag, or bulk-delete messages you no longer need.
Training Message Fields
| Field | Description |
|---|---|
| Status | Current training state: Not Trained (ready for next job), Trained (already submitted), or Saved Draft (not ready). Change a trained message back to "Not Trained" to include it in the next training run. |
| Tag | Optional label for organizing messages by category (e.g. "returns", "billing", "greetings"). |
| Additional Rules | Optional extra rules for this specific message only. Global rules are always included -- this field adds rules on top of them. |
| Notes | Optional internal notes about this training block. Not included in training data. |
| Training Conversation | The actual exchanges. Each entry is a prompt (what the user says) paired with the correct response (what the model should say). Add up to 3 exchanges per block. |
Admin: Global Rules
Defining the system prompt for all training
The Global Rules page is a simple list of one-line rules. All rules are combined and injected as the system message in every training conversation. These same rules are loaded when your custom model is used in a chatbot or AI bot, so the model always operates under the guidelines it was trained with.
Set your global rules before writing training messages. The model learns the relationship between the rules and the example responses, so changing rules after training may create a mismatch between what the model learned and what it is told in production.
Admin: Custom Models
Tracking trained model status and deployment
The Custom Models page shows all models you have created. Each model record stores the OpenAI job ID, training status, and the resulting custom model name after training completes. You can create multiple models for different purposes -- for example, one trained for customer support and another trained for sales conversations.
Using your custom model:
After training completes, the custom model name (assigned by OpenAI) is stored in your model record. This model automatically appears in the model selection dropdowns in the AI Chatbot and AI Bots apps. Select it as the model for any chatbot or AI bot, and all messages will be processed by your custom-trained model with your global rules loaded as the system prompt.
After training completes, the custom model name (assigned by OpenAI) is stored in your model record. This model automatically appears in the model selection dropdowns in the AI Chatbot and AI Bots apps. Select it as the model for any chatbot or AI bot, and all messages will be processed by your custom-trained model with your global rules loaded as the system prompt.