惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Hacker News: Ask HN
Hacker News: Ask HN
C
Cisco Blogs
The Hacker News
The Hacker News
T
Tor Project blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
The GitHub Blog
The GitHub Blog
A
Arctic Wolf
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
The Register - Security
The Register - Security
云风的 BLOG
云风的 BLOG
Simon Willison's Weblog
Simon Willison's Weblog
P
Palo Alto Networks Blog
Vercel News
Vercel News
C
CERT Recently Published Vulnerability Notes
I
InfoQ
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
M
MIT News - Artificial intelligence
I
Intezer
aimingoo的专栏
aimingoo的专栏
U
Unit 42
C
Cyber Attacks, Cyber Crime and Cyber Security
L
LINUX DO - 热门话题
Microsoft Security Blog
Microsoft Security Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Cyberwarzone
Cyberwarzone
P
Proofpoint News Feed
P
Proofpoint News Feed
B
Blog
T
Threat Research - Cisco Blogs
博客园 - 叶小钗
Recorded Future
Recorded Future
Last Week in AI
Last Week in AI
N
News and Events Feed by Topic
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Know Your Adversary
Know Your Adversary
Engineering at Meta
Engineering at Meta
G
Google Developers Blog
PCI Perspectives
PCI Perspectives
Google DeepMind News
Google DeepMind News
WordPress大学
WordPress大学
Application and Cybersecurity Blog
Application and Cybersecurity Blog
MyScale Blog
MyScale Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
Schneier on Security
Schneier on Security
N
News | PayPal Newsroom
C
Cybersecurity and Infrastructure Security Agency CISA
H
Help Net Security
博客园 - 聂微东
H
Hackread – Cybersecurity News, Data Breaches, AI and More
G
GRAHAM CLULEY

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant Common SOC 2 Failures (Real World) Stop Vibe-Checking Your AI App: A Practical Guide to Evals How to Use SonarQube and SonarScanner Locally to Level Up Your Code Quality Your Next To-Do App Is Dead — I Replaced Mine with an OpenClaw AI Sign a Nostr event in 60 lines of Python using coincurve — no nostr-sdk, no nbxplorer, no rust toolchain ITGC Audit Explained Like You’re in Big 4 Patch Tuesday abril 2026: Microsoft parcha 163 vulnerabilidades y un zero-day en SharePoint Stop scraping everything: a better way to track competitor price changes Listing on MCPize + the Official MCP Registry while routing payments OUTSIDE the marketplace — how I kept 100% of my x402 revenue Building an AI-Powered Risk Intelligence System Using Serverless Architecture Why We Ripped Function Overloading Out of Our AI Toolchain Testing AI-Generated Code: How to Actually Know If It Works SaaS Churn Is Killing Your Business. Here Is What to Do About It (Without a Support Team) The Speed of AI Is No Longer Linear - And Self-Improving Models Are Why How to Implement RBAC for MCP Tools: A Practical Guide for Engineering Teams From Standard Quote to Persuasive Proposal: AI Automation for Arborists I built a CLI that scaffolds complete multi-tenant SaaS apps Axios CVE-2025–62718: The Silent SSRF Bug That Could Be Hiding in Your Node.js App Right Now The dashboard that ended our friendship Data Pipelines Explained Simply (and How to Build Them with Python) The Hidden Cost of AI Systems Nobody Talks About. undefined vs undeclared, and how typeof behaves Switching from file-based jobs to NATS/Kafka in Rust without changing code io_uring Adventures: Rust Servers That Love Syscalls Why Agentic AI is Killing the Traditional Database The POUR principles of web accessibility for developers and designers Quantum Neural Network 3D — A Deep Dive into Interactive WebGL Visualization How To Install Caveman In Codex On macOS And Windows Automation Pipeline Reliability: Why Your Workflow Breaks When Nobody Is Watching I Built an 'Open World' AI Coding Agent — It Works From ANY Folder From Freelancing to Product: A Tech Service Company's SaaS Transformation China's AI Giants: Adding Tencent Hunyuan & ByteDance Doubao to AI University (74 Providers) On the Vibe Coders and Their Lies clerk: Auto-Summarize Your Claude Code Sessions AI Weekly — 2026/04/10–04/17 | The Model Lockdown Is Here, but the Toolchain Is the Real Battleground AI 週報 — 2026/04/10–2026/04/17 模型封鎖潮來了,但工具鏈才是真戰場 Maybe this is how Open-Source apps are born... 🚀 Fine-Tune LLMs with LoRA and QLoRA: 2026 Guide tRPC v11 + Next.js App Router: End-to-End Type Safety Without the Boilerplate ShadCN UI in 2026: Why I Stopped Installing Component Libraries and Started Owning My Components SaaS Billing in React Server Components: Stripe + Supabase Without a Single `useEffect` Join our DEV Weekend Challenge — $1,000 in Prizes Across TEN winners! Submissions Due April 20 at 6:59 AM UTC. Implementing FSRS Spaced Repetition in Flutter + Supabase — Adding Memory Science to an AI Learning App "I Texted My Localhost From the Train — Claude Code Fixed the Bug Before I Got Home" I Built a Sales Prep AI and It Went Deeper Than Expected Design to Code #2: One JSON, Eleven Outputs Solving the 100M-Row Problem: A Summary Table Pattern for High-Volume Push Notification Logs Flutter Web With Wasm: What Actually Changes For Developers I Built 50 Royalty-Free Soundtracks for My Side Project in a Weekend Using AI Music Generation The Vibe Coding Security Checklist: 7 Things to Check Before You Ship Stop Letting Googlebot Guess Fix Your React App's SEO Right Desconstruindo o Streaming do LinkedIn: Como Criar um Engine de Extração de Vídeo de Alta Performance com HLS e FFmpeg (EDA Part-1) EDA (Exploratory Data Analysis) Explained With Real Life — Why Looking at Your Data Is the Most Important Step in Machine Learning Brand Relationship Management at Scale: Our 4-Touch Outreach System for 200+ Brands Why String.fromEnvironment() Might Return an Empty String in Dart JGuardrails 1.0.0 — Hardening Java LLM Apps Against Jailbreaks, Toxicity, and Prompt Injection Plan and Schedule a Full Week of Threads Content From One Claude Conversation Coding Cat Oran Ep3, Five Tables Changed Everything Updated: BFF Pattern I'm done watching freelancers get buried by 200 proposals. So I'm building the alternative. This is my first post BFS Algorithm in Java Step by Step Tutorial with Examples Tracking LLM Pricing Monthly: An Open Dataset for 22 AI Models How We Measure Content ROI on a Comparison Site: Revenue Attribution Without Perfect Data Introducing Nova AI Ops: The AI-Native Operating System for SRE Teams I built a free desktop video downloader for Windows — Grabbit How Talkie OCR Helps Vision-Impaired & Dyslexic Users Read the World Around Them VRCFaceTracking安装和iPhone面捕配置教程,有bug Even CrowdStrike Can't See Your Agents The Automation Gold Rush: What n8n Workflows and Claude Are Opening Up for Developers Right Now
I Wish I Knew AI Recommendation Sooner — Here's the Full Breakdown
swift · 2026-06-16 · via DEV Community

swift

So here's what happened: i Wish I Knew AI Recommendation Sooner — Here's the Full Breakdown

Last quarter I burned through about three billable hours debugging a recommendation pipeline for a Shopify client. The thing was — it shouldn't have taken that long. I had the data. I had the API keys. What I didn't have was a clear-eyed picture of what AI recommendation systems actually cost in 2026 when you're paying the bills yourself.

If you freelance like I do, every line item matters. My "office" is a kitchen table, my "PM" is a Slack ping at 11pm, and my CFO is whatever's left in my checking account after software subscriptions. So when I say I've been digging into the numbers on AI recommendation systems for the last six weeks, I mean I've been doing it the way I do everything: with a calculator open in one tab and a client invoice in the other.

This post is the writeup I wish I'd had before I started. Consider it the field guide for anyone building recommendation features on a budget, on a deadline, or just for fun.

Why I Even Cared About Recommendation Systems

I took on a small retainer back in February for an indie e-commerce shop that sells specialty coffee beans. They wanted "AI-powered product recommendations" on their storefront — you know, the classic "customers who bought this also bought..." thing, but smarter.

The owner had been quoted $15,000 by a "full-service AI agency" to build it. He doesn't have $15,000. He has $15,000 in revenue per month and a wife who is deeply skeptical of his side-hustle energy.

So he came to me. And I said yes, because I'm a sucker and also because I knew it should cost a tiny fraction of that quote. The math was never going to support five figures for a recommendation widget. Not when the underlying API calls are fractions of a cent.

That's when I started really paying attention to the pricing landscape.

The 184-Model Elephant in the Room

Here's the thing nobody tells you when you start shopping for LLMs: there are a lot of them. As of right now, Global API exposes 184 different models. The price spread is wild — inputs range from $0.01 per million tokens all the way up to $3.50 per million. Output tokens? Even wider gap.

For a recommendation system, which is mostly short-burst classification and ranking calls, you don't need the flagship GPT-4o class model. You need something fast, cheap, and decent at pattern matching. That was my first mental shift: stop thinking about model quality in absolute terms, start thinking about it in cost-per-correct-recommendation terms.

Once I reframed it that way, the shortlist of viable options got real narrow, real fast.

What I Actually Spent (Pricing Breakdown)

Let me walk you through the models I tested on real client data. These are the prices I pulled directly from Global API's pricing page — same numbers, same context windows, no rounding. I'm calling out the inputs, outputs, and context because those three numbers determine 90% of your cost structure on a recommendation workload.

Model Input ($/M) Output ($/M) Context
DeepSeek V4 Flash 0.27 1.10 128K
DeepSeek V4 Pro 0.55 2.20 200K
Qwen3-32B 0.30 1.20 32K
GLM-4 Plus 0.20 0.80 128K
GPT-4o 2.50 10.00 128K

Now let me put a billable lens on these. On a recommendation call, you're typically sending maybe 400 input tokens (product description + user history snippet + a short prompt) and getting back 150-300 tokens (ranked list with reasoning). Let's call it 500 tokens total round-trip, weighted maybe 60/40 input/output.

For 1,000 such calls:

  • DeepSeek V4 Flash: $0.27 × 0.6 + $1.10 × 0.4 = $0.162 + $0.44 = $0.602 per 1k calls
  • DeepSeek V4 Pro: $0.55 × 0.6 + $2.20 × 0.4 = $0.33 + $0.88 = $1.21 per 1k calls
  • Qwen3-32B: $0.30 × 0.6 + $1.20 × 0.4 = $0.18 + $0.48 = $0.66 per 1k calls
  • GLM-4 Plus: $0.20 × 0.6 + $0.80 × 0.4 = $0.12 + $0.32 = $0.44 per 1k calls
  • GPT-4o: $2.50 × 0.6 + $10.00 × 0.4 = $1.50 + $4.00 = $5.50 per 1k calls

So GPT-4o is roughly 9-12x more expensive than the budget options for the same workload. For my coffee client, who's getting maybe 10,000 recommendation calls a month across the site, that's the difference between a $55 API bill and a $6 one.

That's not a rounding error. That's me being able to actually mark up the work and still give him a good price.

The Cost-Quality Tradeoff I Almost Missed

Here's where I want to be careful. Cheaper isn't automatically better. A $0.44 per 1k calls model that recommends dog food to a coffee buyer is worse than a $5.50 per 1k calls model that gets it right. Quality matters.

In the 2026 benchmark data, the top recommendation-optimized models on Global API cluster around an 84.6% average benchmark score — meaning on standardized recommendation tasks, the right model gets it right about 85% of the time. That's a high enough floor that you're generally safe picking based on cost within that tier.

The 40-65% cost reduction claim you've probably seen floating around? It's real, but only if you're comparing the right options. If you're comparing a fine-tuned recommendation model to a generic GPT-4o call, the savings land squarely in that range. The trick is making sure you're not so blinded by the per-token price that you pick a model with a 60% benchmark score just because it costs less.

My rule of thumb now: don't go below 80% on the benchmark unless the use case is genuinely throwaway. For real client work, the floor is 80%. Aim for 85%+ when you can.

Latency: The Other Billable Hour Killer

I also care about latency, but maybe not for the reason you think. When a recommendation widget takes 3 seconds to load, the user bounces. When the user bounces, the conversion drops. When conversion drops, my client emails me at 9am asking "why is revenue down." When my client emails me at 9am, that's an unbillable support hour I never budgeted for.

The recommendation-optimized models on Global API clocked around 1.2 seconds average latency and roughly 320 tokens per second throughput in my testing. That's fast enough to stream recommendations in real-time without users noticing the API call. Honestly, I lost an entire debugging session once trying to figure out why a feature felt slow — it turned out to be the database query, not the LLM. The LLM was returning in under a second. I felt dumb, but at least I felt dumb quickly.

If your recommendation feature is causing visible lag, the model probably isn't your bottleneck. Look at your network calls, your caching strategy, and your front-end rendering. The model itself is rarely the slow part anymore.

The Code I Actually Shipped

Let me show you the skeleton. This is the kind of thing I send clients as "here's what I'm building" so they have something concrete to look at, even if they can't read Python.

import openai
import os

client = openai.OpenAI(
    base_url="https://global-apis.com/v1",
    api_key=os.environ["GLOBAL_API_KEY"],
)

def get_recommendations(user_history: list, products: list, k: int = 5) -> list:
    """Return top-k product recommendations for a given user."""
    prompt = f"""
    Based on this user's purchase history: {user_history}
    Recommend the top {k} products from this catalog: {products}
    Return only a JSON list of product IDs in priority order.
    """

    response = client.chat.completions.create(
        model="deepseek-ai/DeepSeek-V4-Flash",
        messages=[{"role": "user", "content": prompt}],
        temperature=0.3,
    )

    return response.choices[0].message.content

recs = get_recommendations(
    user_history=["ethiopia-yirgacheffe", "kenya-aa", "colombia-decaf"],
    products=["brazil-cerrado", "guatemala-antigua", "ethiopia-sidamo", "sumatra-mandheling"],
    k=3,
)

That code probably took me 20 minutes to write. The endpoint is https://global-apis.com/v1, the SDK is the standard OpenAI client (because Global API is OpenAI-compatible, which is chef's kiss for integration time), and the model is DeepSeek V4 Flash because for ranking calls, it's the sweet spot of cost and quality.

For the coffee client, that snippet is doing the actual work right now. The whole recommendation feature, including the front-end widget, took me about 4 billable hours to build. At my rate, that's $400-600 depending on how I'm feeling that week. Compared to the $15,000 agency quote, the client saved about 96% — and the recommendation quality is, by their own admission, better than what they had before (a manual "best sellers" list).

The Streaming Version (For When Latency Matters)

For a different client — a SaaS dashboard that does in-app content recommendations — I needed streaming. Users are staring at a loading spinner, and even 1 second feels long. Here's what that looks like:


python
import openai
import os

client = openai.OpenAI(
    base_url="https://global-apis.com/v1",
    api_key=os.environ["GLOBAL_API_KEY"],
)

def stream_recommendations(user_context: dict):
    """Stream recommendations back to the client for perceived speed."""
    stream = client.chat.completions.create(
        model="deepseek-ai/DeepSeek-V4-Flash",
        messages=[{
            "role": "user",
            "content": f"Recommend 5 articles for user: {user_context}"
        }],
        stream=True,
        temperature=0.4,
    )

    for chunk in stream:
        if chunk.choices[0].delta.content:
            yield chunk.choices[0].delta