ChatGPT Chunker

conturata.com/ai/chunker →

I completely forgot to put this on the site. Which is a bit ridiculous, because this was the first tool I ever coded and probably one of the things more people have actually used.

It's called ChatGPT Chunker. Early ChatGPT days, when pasting a long piece of text into the chat was still a whole ordeal. You'd hit the message limit, then have to break everything into pieces and send them separately.

That was the problem. I made a page to do the splitting.

ChatGPT Chunker form with fields for context, token amount, and input text
Context, chunk size, the text you want to send. There really isn't much more to the interface than this.
ChatGPT Chunker form with fields for context, token amount, and input text

A small, annoying problem

The distinction that mattered at the time was between what you could send in one message and the amount of context a conversation could hold. My memory is that we were running into a roughly 4,000-token message limit. Whatever the exact limit was on a particular day, a long transcript wasn't getting through in one paste.

If you're doing content work, that's a pain in the ass. A transcript is useful precisely because you can work with the whole conversation. Cutting it into arbitrary pieces by hand adds a boring job before you can even start the job you wanted to do.

The chunker takes the text, splits it according to a size you choose, and wraps the pieces in instructions. You give it some context about what you're sending. The resulting prompts tell the model to wait until it has received the pieces before doing the actual task.

Then you copy them over in order. Still manual, but considerably less annoying than working out the cuts and writing the same instructions yourself.

Under the hood it's small. It counts tokens with the tokenizer the GPT-3 models used, defaults to 3,000 tokens a chunk, leaves room for the wrapper text, and cuts the text into equal slices. The first prompt is your context plus "wait for me to start". Every other one is wrapped in a header like === SCRIPT CHUNK 3/7 ===, with instructions to confirm receipt and not write anything yet, so the model doesn't start answering halfway through your transcript. An advanced mode lets you rewrite that wrapper, and each prompt has its own copy button.

The first version was a single page in the original Conturata site. In August 2024 I rewrote it in TypeScript as "chunker v2", and later added the video and an FAQ.

It doesn't give a model unlimited memory. If the total material doesn't fit its context, splitting the messages doesn't fix that. This was a workaround for getting text into the conversation, not a way to change what the model could hold.

And then people found it

I put it on Conturata, where I already had a site. There is still a video walkthrough of the tool and the problem it was meant to solve.

Over the years it picked up a lot of organic traffic from Google. In my memory, somewhere between half a million and a million people. I haven't checked the lifetime Analytics report, so treat that as my recollection rather than a verified user count. I genuinely forgot about the thing until I was going through what I'd built.

Other chunkers appeared afterwards too. It's a very copyable idea. Once you see the problem and the solution, there isn't some secret technology hiding in the middle.

I think that's part of what makes it interesting. The thing people needed was small enough that my first attempt at building software could actually help them. It didn't need an elaborate interface. It needed to take their text and give them pieces they could use.

Why it's still here

The page is still up, although the reason to use it depends on the limits of whatever tool you're working with. Those changed, and the chunker stopped being as relevant as it had been.

I'm keeping it here because it belongs in the history of all this. Before the caption editor, before the medical dashboard, there was this little form on an agency website.

I built something useful, people found it, and then I went off and built other things. Apparently enough other things that I forgot the first one.