⚒️ Automate GPT-4o fine-tuning with Google Sheets or Airtable data

389 views · ⚒️ Engineering

Description

Who is this for?

Anyone curating before/after text examples in a spreadsheet and wanting a push-button path to a fine-tuned GPT model—without touching curl. Works with Google Sheets or Airtable.


What problem does it solve?

Manually downloading CSVs, converting to JSONL, uploading, and polling OpenAI is a slog.
This flow automates the whole loop: grab examples flagged Ready, build the JSONL file, start the fine-tune, then log the resulting model ID back to a registry sheet/table for reuse.


How it works

#NodePurpose
1Schedule TriggerRuns weekly by default (change as needed).
2aGet Examples from SheetPulls rows where Ready = TRUE from your Google Sheet. Uses the JSONL-Template Sheet as the expected column layout.
2bGet Examples from Airtable (disabled)Alternate source for Airtable users.
3Create JSONL File (Code)Converts each example to chat-format JSONL and splits into train.jsonl / val.jsonl (80/20).
4Upload JSONLUploads the training file to OpenAI (purpose: fine-tune).
5Begin Fine-TuneStarts a fine-tune job on gpt-4o (editable).
6Wait → Check Job → IFPolls every minute until status = succeeded.
7aWrite Model to SheetAppends the new model ID + meta to your Model Registry sheet.
7bWrite Model to Airtable (disabled)Equivalent logging step for Airtable.

Setup steps

  1. Import & connect credentials

    • Import the JSON flow into n8n.
    • Add your OpenAI API key.
    • Google Sheets: create an OAuth2 credential and link it to both Sheets nodes.
    • Airtable (optional): create a Personal Access Token and attach it to the Airtable nodes.
  2. Copy the template sheet

    • Duplicate the JSONL-Template Sheet linked above into your own Drive.
    • Required columns (exact names):
      | systemPrompt | userPrompt | assistantResponse | Ready |
    • Tick Ready = TRUE for rows you want to include.
  3. Create the registry sheet/table

    • Google Sheet (or Airtable table) named Model Registry with columns:
      Model ID, Training Examples, Epochs, Batch Size, Learning Rate, Finished At.
  4. Tweak model & schedule

    • Change the base model in Begin Fine-Tune if desired.
    • Adjust the Schedule Trigger for daily / on-demand runs.
  5. Test it

    • Mark a few examples Ready = TRUE.
    • Run the flow manually.
    • Check OpenAI for the new fine-tune job and confirm the model ID is logged in your registry.

Resources


Extending the flow

🔗 Nodes Used

Airtable, Google Sheets, HTTP Request, Stop and Error, Schedule Trigger, OpenAI

📥 Import

Download workflow.json and import into n8n: Workflow menu → Import from File

📖 Importing guide · 🔑 Credential setup