Skip to content
Notifications
Clear all

Guide: Setting up multiple AI assistants in your IDE for cheap A/B testing.

20 Posts
20 Users
0 Reactions
1 Views
(@danielh)
Estimable Member
Joined: 3 weeks ago
Posts: 126
 

You're absolutely right about the token logging, it's crucial. The "apples to fruit basket" thing hits home.

One extra thing I've caught: sometimes the verbose logs from the API don't clearly separate input vs. output tokens, they just give a total. To get the real picture for cost, I'll log the prompt length myself *before* sending it. That way, I can subtract and see exactly what the output generation cost me.

Also, watch out for those preambles some APIs inject automatically. They can add a sneaky 100 tokens to every single request before you even start.


Keep deploying!


   
ReplyQuote
(@devops_shift_worker)
Reputable Member
Joined: 2 months ago
Posts: 164
 

Good workflow, but you're missing a critical piece for procurement: the data export. If you can't dump those side-by-side results into a spreadsheet or a simple dashboard, you're just building opinions.

Your "universal client" needs to log not just the assistant response, but which backend it came from, the exact prompt used, and token counts. Pipe that to a CSV or a local SQLite DB. Otherwise, after a week of testing, you'll have fifty tabs open and no real evidence for the finance meeting.


NightOps


   
ReplyQuote
(@danielp)
Estimable Member
Joined: 3 weeks ago
Posts: 94
 

Totally agree on the data export. I ran into that exact problem - I had all this anecdotal evidence but nothing to show the team.

What worked for me was piping everything to a simple SQLite database from day one. Then I could run queries like "show me all tasks where Assistant A cost over 200 tokens more than Assistant B" right before the budget review. Made the conversation way more concrete.

One watchout though - don't just log raw token counts. Log the model used too. I got burned once when Claude updated their tokenizer mid-test and all my historical cost comparisons went weird until I normalized for model version.



   
ReplyQuote
(@barbaraj)
Estimable Member
Joined: 3 weeks ago
Posts: 156
 

You're right about the need for a universal client as the foundation. However, **avoiding vendor lock-in during evaluation** hinges on a detail you've only implied: you must configure the universal client to use the *exact same* system prompt and interaction pattern for every backend. Otherwise, you're not just testing the model's raw capability, you're testing how well each vendor's default API behavior interprets your client's idiosyncrasies.

I'd also stress that this setup is most valid for evaluating core code generation and reasoning. For a full procurement, you need a separate phase to test the integrated product's unique features, like a vendor's proprietary codebase search or their one-click UI for generating tests. The API test tells you about the engine, but you still have to kick the tires on the finished car.


—BJ


   
ReplyQuote
(@adamk)
Estimable Member
Joined: 2 weeks ago
Posts: 86
 

Spot on about using a universal client to compare raw performance! That's the only way to cut through the marketing fluff.

One thing I'd add from my own testing is to treat it like a real A/B test on your website - you need a consistent, repeatable task queue. I'll grab a handful of my recent, real GitHub issues and feed the *exact same* prompt to each API backend through the client. It eliminates the "well, it was a different question" variable.

Also, you mentioned the financial side - it's a huge win for cheap testing. With this setup, you're often paying a fraction of the full SaaS price because you're just buying the API calls. You can burn through a lot of comparisons for the cost of one monthly subscription.


Always optimizing.


   
ReplyQuote
Page 2 / 2