<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: trelayai</title>
    <description>The latest articles on DEV Community by trelayai (@trelayai).</description>
    <link>https://dev.to/trelayai</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4129219%2F5bf66683-2395-422f-8f21-1894682828a5.png</url>
      <title>DEV Community: trelayai</title>
      <link>https://dev.to/trelayai</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/trelayai"/>
    <language>en</language>
    <item>
      <title>I Sent 500 Requests to Auto-Routing. It Saved Me 47% and I Never Picked a Model.</title>
      <dc:creator>trelayai</dc:creator>
      <pubDate>Sun, 20 Sep 2026 05:36:35 +0000</pubDate>
      <link>https://dev.to/trelayai/i-sent-500-requests-to-auto-routing-it-saved-me-47-and-i-never-picked-a-model-15p4</link>
      <guid>https://dev.to/trelayai/i-sent-500-requests-to-auto-routing-it-saved-me-47-and-i-never-picked-a-model-15p4</guid>
      <description>&lt;p&gt;I Sent 500 Requests to Auto-Routing. It Saved Me 47% and I Never Picked a Model.&lt;/p&gt;

&lt;p&gt;Last month I looked at my API bill and noticed something. Almost 60% of my requests were simple. Summarization, translation, factual Q&amp;amp;A. But I was sending all of them to the same expensive model, because I had set it as the default months ago and never thought about it again.&lt;/p&gt;

&lt;p&gt;I was paying sports-car prices for grocery-store trips.&lt;/p&gt;

&lt;p&gt;So I ran an experiment. 500 real prompts. Manual model selection vs auto-routing. The results changed how I think about AI API design.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Old Workflow: "Set It and Forget It"
&lt;/h2&gt;

&lt;p&gt;I picked DeepSeek-V4 Pro because it's strong, and it is. The problem is that I used it for tasks a 20x cheaper model could handle identically. When a user asks "What's the capital of France?", both models give the same answer. But one costs $8 per million output tokens and the other costs $0.90.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Experiment
&lt;/h2&gt;

&lt;p&gt;I collected 500 prompts and categorized them:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Category&lt;/th&gt;
&lt;th&gt;Count&lt;/th&gt;
&lt;th&gt;Example&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Simple (summarization, translation, facts)&lt;/td&gt;
&lt;td&gt;300&lt;/td&gt;
&lt;td&gt;"Summarize this article in 3 bullet points"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Medium (content writing, explanation)&lt;/td&gt;
&lt;td&gt;150&lt;/td&gt;
&lt;td&gt;"Write a product announcement email"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Complex (code review, reasoning, logic)&lt;/td&gt;
&lt;td&gt;50&lt;/td&gt;
&lt;td&gt;"Find the bug in this 200-line function"&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Manual: All 500 to deepseek-v4-pro&lt;br&gt;
Auto-routing: model="auto", the API decides&lt;/p&gt;

&lt;h2&gt;
  
  
  The Results
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Manual&lt;/th&gt;
&lt;th&gt;Auto-routing&lt;/th&gt;
&lt;th&gt;Difference&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Total input tokens&lt;/td&gt;
&lt;td&gt;300,000&lt;/td&gt;
&lt;td&gt;300,000&lt;/td&gt;
&lt;td&gt;Same&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Total output tokens&lt;/td&gt;
&lt;td&gt;200,000&lt;/td&gt;
&lt;td&gt;180,000&lt;/td&gt;
&lt;td&gt;Shorter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Total cost&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$2.80&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$1.48&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;-47.1%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Avg latency&lt;/td&gt;
&lt;td&gt;~1.2s&lt;/td&gt;
&lt;td&gt;~0.8s&lt;/td&gt;
&lt;td&gt;Faster&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The auto-router sent:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;300 simple to qwen3.8-flash ($0.12)&lt;/li&gt;
&lt;li&gt;150 medium to qwen3.8-max ($0.96)&lt;/li&gt;
&lt;li&gt;50 complex to deepseek-v4-pro ($0.40)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Complex tasks still got the powerful model. Everything else got the cheapest model that could handle it. I changed 12 characters in my code.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Surprised Me
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Quality didn't drop on simple tasks.&lt;/strong&gt;. Output was indistinguishable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Output got shorter in a good way.&lt;/strong&gt; The cheaper models gave more direct answers with less fluff. I was paying for verbosity I didn't need.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. The biggest win wasn't money.&lt;/strong&gt; It was time. I stopped thinking "which model?" for every feature. I write model="auto" and move on.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Code
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;openai&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;OpenAI&lt;/span&gt;

&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;OpenAI&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;base_url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://trelayai.com/v1&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;sk-your-key&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;ask&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;force_complex&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;deepseek-v4-pro&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;force_complex&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;auto&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
    &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;completions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;}],&lt;/span&gt;
        &lt;span class="n"&gt;temperature&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.7&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;choices&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;force_complex=True only when you know the task needs top-tier reasoning. Everything else gets auto. No model registry. No routing logic. No maintenance.&lt;/p&gt;

&lt;h2&gt;
  
  
  When Auto-Routing Works:
&lt;/h2&gt;

&lt;p&gt;Mixed workloads, user-facing chatbots, batch processing, internal tools.&lt;/p&gt;

&lt;h2&gt;
  
  
  When It Doesn't:
&lt;/h2&gt;

&lt;p&gt;Predictable specialized workloads, latency-critical paths, model-specific features.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Sign up at &lt;a href="https://trelayai.com" rel="noopener noreferrer"&gt;trelayai.com&lt;/a&gt; (email + password, under a minute)&lt;/li&gt;
&lt;li&gt;Get your API key from the dashboard&lt;/li&gt;
&lt;li&gt;Point your OpenAI client to &lt;a href="https://trelayai.com/v1" rel="noopener noreferrer"&gt;https://trelayai.com/v1&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Set model="auto" where you normally hardcode a model name&lt;/li&gt;
&lt;li&gt;Check your usage dashboard after a week&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;No credit card required. Models: Qwen, DeepSeek, Kimi, GLM.&lt;/p&gt;

&lt;p&gt;I've been running this in production for three weeks. If you've tried something similar or think this is a terrible idea, drop a comment.&lt;br&gt;
&lt;a href="https://trelayai.com" rel="noopener noreferrer"&gt;Sign up at trelayai.com&lt;/a&gt; — no credit card required.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>api</category>
      <category>tutorial</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
