iToverDose/Yazılım· 22 MAYIS 2026 · 00:04

AI Uygulamanızın Kullanıcı Maliyetlerini Gerçek Zamanlı Takip Etmenin 3 Yolu

Yapay zeka uygulamalarınızda kullanıcı başına maliyetleri izlemek, faturalarınızı kontrol altında tutmanın yanı sıra iş stratejilerinizi de şekillendirir. Bu pratik yöntemlerle AI harcamalarınızı kolayca yönetin.

DEV Community3 dk okuma0 Yorumlar

Yapay zeka özelliğinizi hayata geçirdiniz. Her şey çalışıyor. Bir hafta sonra OpenAI faturanız 400 dolar olarak karşınıza çıktığında, hangi kullanıcının hangi 5 sentlik harcamanın sorumlusu olduğunu bilemiyorsunuz.

Üretimdeki LLM uygulamalarında kullanıcı başına maliyet adı verilen bu ölçüt, çoğu geliştirici tarafından göz ardı edilse de aslında hayati önem taşıyor. Neyse ki doğru araçlarla bu metriği kolayca uygulamak mümkün. Üç farklı yaklaşımı inceleyerek hangisinin projenize en uygun olduğunu belirleyebilirsiniz.

Yaklaşım 1: Sağlayıcı İstemcisini Sarma (5 Dakika)

Express, Next.js Rota İşleyicileri, Fastify gibi tek bir OpenAI veya Anthropic istemci örneği kullanan tüm uygulamalar için bu yöntem ideal. Temel fikir, istemciyi bir sarıcıyla sarmak ve her kullanıcı talebini otomatik olarak etiketlemek.

import OpenAI from 'openai'
import { wrapOpenAI, withTrace } from '@voightxyz/openai'

const openai = wrapOpenAI(new OpenAI(), {
  agent: 'production-chat-api',
})

app.post('/api/chat', async (req, res) => {
  await withTrace(
    async () => {
      const response = await openai.chat.completions.create({
        model: 'gpt-4o-mini',
        messages: req.body.messages,
      })
      res.json({ reply: response.choices[0].message })
    },
    {
      routeTag: 'POST /api/chat',
      tags: {
        userId: req.user.id,
        plan: req.user.plan,
      },
    }
  )
})

Buradaki sihir, withTrace fonksiyonunun kullanıcı kimliğini ve plan bilgilerini otomatik olarak tüm LLM çağrılarına aktarmasıdır. Böylece her fonksiyon çağrısında userId parametresini manuel olarak geçirmenize gerek kalmaz. Bu yaklaşım hem OpenAI hem de Anthropic ile uyumlu çalışır.

  • Artıları: En basit kurulum, hızlı uygulama
  • Eksileri: Özel sarıcı SDK'larına bağımlılık gerektirir

Yaklaşım 2: OpenTelemetry Telemetri Metadatası (Vercel AI SDK)

Vercel AI SDK kullanıyorsanız, experimental_telemetry.metadata özelliği aynı işlevi görür. Bu yöntem, OpenTelemetry uyumlu tüm izleme araçlarıyla (Langfuse, Phoenix, Voight, Braintrust, Datadog) sorunsuz şekilde entegre olur.

import { openai } from '@ai-sdk/openai'
import { streamText } from 'ai'

export async function POST(req: Request) {
  const result = streamText({
    model: openai('gpt-4o-mini'),
    prompt: (await req.json()).prompt,
    experimental_telemetry: {
      isEnabled: true,
      metadata: {
        userId: session.user.id,
        plan: session.user.plan,
      },
    },
  })
  return result.toAIStreamResponse()
}

Bu yaklaşımın en büyük avantajı, SDK ve izleme aracı arasında herhangi bir bağlılık olmamasıdır. Sadece OpenTelemetry uyumlu bir izleyiciye ihtiyaç duyarsınız.

  • Artıları: Tamamen bağımsız, izleyiciyi değiştirme esnekliği
  • Eksileri: Sadece OpenTelemetry span'ları yayınlayan SDK'larda çalışır

Yaklaşım 3: Ham Olay Yayımı (Bağımsız Botlar / HTTP Dışı)

Arka plan çalışanları, LLM çağrıları yapan ajanlar veya HTTP taleplerinde bulunmayan uygulamalar için bu yöntem daha uygundur. Kullanıcı bilgilerini manuel olarak olaylara ekleyerek maliyetleri takip edebilirsiniz.

import { Voight } from '@voightxyz/sdk'

const voight = new Voight({
  agentId: 'my-bot'
})

const startTime = Date.now()
const response = await fetch(' {
  method: 'POST',
  headers: {
    authorization: `Bearer ${process.env.OPENAI_API_KEY}`
  },
  body: JSON.stringify({
    model: 'gpt-4o-mini',
    messages: [...],
  }),
}).then((r) => r.json())

voight.log({
  type: 'reasoning',
  model: 'gpt-4o-mini',
  durationMs: Date.now() - startTime,
  outcome: 'success',
  metadata: {
    tokens: {
      input: response.usage.prompt_tokens,
      output: response.usage.completion_tokens,
    },
    tags: {
      userId: job.userId,
      tenantId: job.tenantId,
    },
  },
})

Bu yöntem daha fazla kod gerektirse de tam kontrol sahibi olmanızı sağlar. LLM çağrılarının rota sınırları içinde yer almadığı durumlarda özellikle kullanışlıdır.

  • Artıları: Tam kontrol, her şeyi kendiniz yönetebilirsiniz
  • Eksileri: Daha fazla boilerplate kod, token sayımını kendiniz yönetmelisiniz

Kullanıcı Etiketleriyle Yanıtlanabilecek Kritik Sorular

Kullanıcı kimliğinin (tags.userId) her olayda yer almasıyla, yanıtlayabileceğiniz soruların kapsamı genişliyor:

  • Bu ay en fazla harcama yapan kullanıcı kim?

tags.userId grubuna göre maliyetleri topla

  • Ücretsiz planımız süper kullanıcıları mı sübvanse ediyor?

tags.plan: 'free' filtresi uygula ve maliyetlere göre sırala

  • Son yayınladığımız özellik kimin faturasını patlattı?

tags.userId ve tarih aralığına göre filtrele

  • Müşteri başına maliyet-getiri oranımız nedir?

Stripe verileriyle userId üzerinden birleştir

Bu sistemi kurmak için özel bir istemci tarafı analiz SDK'sına veya kullanıcı kimliğini LLM mesajlarına kopyalamaya ihtiyacınız yok. Talebin başlangıcındaki etiketler otomatik olarak tüm alt çağrılara yayılıyor.

GDPR ve Çok Kiracılı Güvenlik Notu

Buradaki userId terimi, kullanıcının e-posta adresi veya cüzdan adresi gibi kişisel verilerini değil, sistemdeki stabil tanımlayıcısını ifade eder. Hiçbir zaman telemetri metadatalarına PII bilgileri eklemeyin. İyi izleme araçları zaten PII temizleme özelliğine sahiptir, ancak kötü girişler her zaman sorun yaratır.

Çok kiracılı SaaS uygulamaları için ikinci bir etiket ekleyin: tags: { userId, tenantId }. Böylece hem "Bu hangi müşteriye ait?" hem de "Bu müşterinin hangi kullanıcısına ait?" sorularını yanıtlayabilirsiniz.

Tüm bu yaklaşımların ortak noktası, kullanıcı kimliğini talebin başlangıcında etiketlemek ve bu etiketin tüm LLM çağrılarına otomatik olarak yayılmasını sağlamak. Bu sayede hem maliyetlerinizi kontrol altında tutabilir hem de kullanıcı deneyiminizi optimize edebilirsiniz. Gelecekteki AI projelerinizde bu yöntemleri uygulayarak hem faturalarınızı hem de kullanıcı memnuniyetinizi yönetim altına alabilirsiniz.

Yapay zeka özeti

Yapay zeka uygulamalarınızda kullanıcı başına maliyetleri nasıl izlersiniz? Üç pratik yöntemle OpenAI harcamalarınızı kontrol altında tutun ve faturalarınızı optimize edin.

Yorumlar

00
YORUM BIRAK
ID #G1K4ET

0 / 1200 KARAKTER

İnsan doğrulaması

9 + 8 = ?

Editör onayı sonrası yayına girer

Moderasyon · Spam koruması aktif

Henüz onaylı yorum yok. İlk yorumu sen bırak.