<?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>Forem: Daniel Dong</title>
    <description>The latest articles on Forem by Daniel Dong (@daniel_dong_sdwgw041).</description>
    <link>https://forem.com/daniel_dong_sdwgw041</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3942570%2F5388d5e5-05b2-495b-9180-83a4ffa72138.jpg</url>
      <title>Forem: Daniel Dong</title>
      <link>https://forem.com/daniel_dong_sdwgw041</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/daniel_dong_sdwgw041"/>
    <language>en</language>
    <item>
      <title>How I Unified 14+ AI Models Behind One OpenAI-Compatible API</title>
      <dc:creator>Daniel Dong</dc:creator>
      <pubDate>Sun, 24 May 2026 13:13:52 +0000</pubDate>
      <link>https://forem.com/daniel_dong_sdwgw041/how-i-unified-14-ai-models-behind-one-openai-compatible-api-4k6i</link>
      <guid>https://forem.com/daniel_dong_sdwgw041/how-i-unified-14-ai-models-behind-one-openai-compatible-api-4k6i</guid>
      <description>&lt;p&gt;I got tired of managing 5+ API keys just to let users choose their favorite LLM.&lt;/p&gt;

&lt;p&gt;So I built AIBridge — one API key, 14+ models, OpenAI-compatible format.&lt;/p&gt;

&lt;p&gt;The Problem&lt;br&gt;
If you've built an AI feature, you probably know this pain:&lt;/p&gt;

&lt;p&gt;OpenAI key for GPT-4&lt;br&gt;
Anthropic key for Claude&lt;br&gt;
DeepSeek key for... DeepSeek&lt;br&gt;
Qwen key for Alibaba models&lt;br&gt;
GLM key for Zhipu models&lt;br&gt;
Each has a different API format. Each needs separate error handling. Each has different rate limits.&lt;/p&gt;

&lt;p&gt;The Solution&lt;br&gt;
AIBridge sits in front of all these providers and gives you one unified API:&lt;/p&gt;

&lt;p&gt;from openai import OpenAI&lt;/p&gt;

&lt;p&gt;Same code, different model&lt;br&gt;
client = OpenAI(&lt;br&gt;
    api_key="your_aibridge_key",&lt;br&gt;
    base_url="&lt;a href="https://aibridge-api.com/v1" rel="noopener noreferrer"&gt;https://aibridge-api.com/v1&lt;/a&gt;",&lt;br&gt;
)&lt;/p&gt;

&lt;p&gt;DeepSeek V4 Pro&lt;br&gt;
response = client.chat.completions.create(&lt;br&gt;
    model="deepseek-v4-pro",&lt;br&gt;
    messages=[{"role": "user", "content": "Hello!"}],&lt;br&gt;
)&lt;/p&gt;

&lt;p&gt;Qwen Max (just change the model name!)&lt;br&gt;
response = client.chat.completions.create(&lt;br&gt;
    model="qwen-max",&lt;br&gt;
    messages=[{"role": "user", "content": "Hello!"}],&lt;br&gt;
)&lt;/p&gt;

&lt;p&gt;That's it. No new SDK. No format conversion. Just change the model name.&lt;/p&gt;

&lt;p&gt;Works with LangChain out of the Box&lt;/p&gt;

&lt;p&gt;from langchain_openai import ChatOpenAI&lt;/p&gt;

&lt;p&gt;llm = ChatOpenAI(&lt;br&gt;
    model="deepseek-v4-pro",&lt;br&gt;
    openai_api_key="your_aibridge_key",&lt;br&gt;
    openai_api_base="&lt;a href="https://aibridge-api.com/v1" rel="noopener noreferrer"&gt;https://aibridge-api.com/v1&lt;/a&gt;",&lt;br&gt;
)&lt;/p&gt;

&lt;p&gt;llm.invoke("Explain quantum computing in 3 sentences")&lt;/p&gt;

&lt;p&gt;Supported Models&lt;br&gt;
Provider    Models&lt;br&gt;
DeepSeek    V4 Pro 🔥, V4 Flash, V3, Coder&lt;br&gt;
Qwen    Max, Plus, Qwen3 235B&lt;br&gt;
GLM-4   Plus, Air, Flash&lt;br&gt;
Kimi    8K, 32K, 128K&lt;/p&gt;

&lt;p&gt;And growing — new models added regularly.&lt;/p&gt;

&lt;p&gt;Pricing (Why It Matters)&lt;br&gt;
Free: 500K tokens/month&lt;br&gt;
Pro: $9.90/month for 5M tokens&lt;br&gt;
Top-up: $2.99 for 1M tokens (one-time, never expires)&lt;br&gt;
Compare that to managing separate API keys where you're billed separately for each provider.&lt;/p&gt;

&lt;p&gt;Try It&lt;br&gt;
Sign up: &lt;a href="https://aibridge-api.com/dashboard.html" rel="noopener noreferrer"&gt;https://aibridge-api.com/dashboard.html&lt;/a&gt;&lt;br&gt;
Get your API key (free tier: 500K tokens)&lt;br&gt;
Swap your base_url and api_key&lt;br&gt;
Done.&lt;br&gt;
Full docs: &lt;a href="https://aibridge-api.com/docs.html" rel="noopener noreferrer"&gt;https://aibridge-api.com/docs.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Why I'm Sharing This&lt;br&gt;
I built this because I needed it for my own projects. If it saves you time, great. If you have feedback or feature requests, drop a comment — I read every one.&lt;/p&gt;

&lt;p&gt;Happy building! 🚀&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzu9a8nreuwu686tnftft.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzu9a8nreuwu686tnftft.png" alt="main page" width="800" height="564"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo6wsngw8a73np3z3wjyf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo6wsngw8a73np3z3wjyf.png" alt="quick start" width="799" height="374"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe7o06dzip0mdiqiy1ugl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe7o06dzip0mdiqiy1ugl.png" alt="ai model" width="800" height="567"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyupdc52c3p7h01dhzs7c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyupdc52c3p7h01dhzs7c.png" alt="chat playground" width="800" height="636"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn87lxvkd8mwayy97ds56.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn87lxvkd8mwayy97ds56.png" alt="Transparent Pricing" width="800" height="652"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fatgd5lme3iuuxgtwgl9u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fatgd5lme3iuuxgtwgl9u.png" alt="Token Top-up Packs" width="800" height="435"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>python</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Building an AI API Gateway to Access Multiple LLMs with One Key</title>
      <dc:creator>Daniel Dong</dc:creator>
      <pubDate>Wed, 20 May 2026 15:32:18 +0000</pubDate>
      <link>https://forem.com/daniel_dong_sdwgw041/building-an-ai-api-gateway-to-access-multiple-llms-with-one-key-2i1b</link>
      <guid>https://forem.com/daniel_dong_sdwgw041/building-an-ai-api-gateway-to-access-multiple-llms-with-one-key-2i1b</guid>
      <description>&lt;p&gt;Managing multiple LLM APIs is painful. Different SDKs, different error handling, different billing dashboards.&lt;/p&gt;

&lt;p&gt;So I built AIBridge - an AI API Gateway that gives you one endpoint for all major LLM providers.&lt;/p&gt;

&lt;p&gt;How it works:&lt;br&gt;
Same OpenAI-compatible format. Just change the base URL:&lt;/p&gt;

&lt;p&gt;from openai import OpenAI&lt;/p&gt;

&lt;p&gt;client = OpenAI(&lt;br&gt;
    base_url="&lt;a href="https://aibridge-api.com/v1" rel="noopener noreferrer"&gt;https://aibridge-api.com/v1&lt;/a&gt;",&lt;br&gt;
    api_key="your-aibridge-key"&lt;br&gt;
)&lt;/p&gt;

&lt;h2&gt;
  
  
  Works with GPT-4, Claude, Gemini - same code!
&lt;/h2&gt;

&lt;p&gt;Key features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One API key for all models&lt;/li&gt;
&lt;li&gt;Automatic fallback if a provider fails&lt;/li&gt;
&lt;li&gt;Cost tracking dashboard&lt;/li&gt;
&lt;li&gt;Team key management&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Current status:&lt;br&gt;
Live now, supporting OpenAI, Anthropic, and Google models. More providers being added.&lt;/p&gt;

&lt;p&gt;Try it: &lt;a href="https://aibridge-api.com" rel="noopener noreferrer"&gt;https://aibridge-api.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I'd love feedback - especially what features would make this most useful for your projects.&lt;/p&gt;

&lt;p&gt;Happy to answer any questions in the comments!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6p9r57e86t2y0c70g4b6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6p9r57e86t2y0c70g4b6.png" alt="home page" width="800" height="564"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqyeyf1p4u59khm8fe5hb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqyeyf1p4u59khm8fe5hb.png" alt="API documentation" width="799" height="374"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F99veqdgnbst4bqi3zeq5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F99veqdgnbst4bqi3zeq5.png" alt="ai modol" width="800" height="567"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3mei9wbu2x8jyrwz5mtq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3mei9wbu2x8jyrwz5mtq.png" alt="Chat playground " width="800" height="636"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc57z8m1ub9gt8y1yropl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc57z8m1ub9gt8y1yropl.png" alt="Transparent Pricing" width="800" height="652"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9guos16qmw8406hyoapm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9guos16qmw8406hyoapm.png" alt="Token Top-up Packs" width="800" height="435"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>api</category>
      <category>developers</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
