Skip to main content
LLM Blueprint आपके LLM client को इस तरह wrap करता है कि प्रत्येक पूर्ण call अपने input, output और total token counts के साथ usage event Dodo Payments को भेजती है। एक meter इन counts का योग करता है, जिससे आप प्रत्येक ग्राहक द्वारा उपयोग किए गए tokens के लिए बिल बना सकते हैं। Blueprint @dodopayments/ingestion-blueprints npm package में उपलब्ध है, जैसे createLLMTracker()।

Quick Start

SDK install करें, meter बनाएँ और अपने LLM client को wrap करें।

API Reference - Events Ingestion

वह API endpoint जो usage events प्राप्त करता है।

API Reference - Meters

Billing के लिए meters बनाएँ और configure करें।

Usage-Based Billing Guide

Meters के साथ usage-based billing को शुरू से अंत तक set up करें।
इसे SaaS apps, AI chatbots, content generation tools और usage के आधार पर बिल करने वाले किसी भी अन्य LLM-powered application में उपयोग करें।

त्वरित शुरुआत

Token usage ट्रैक करने के लिए package install करें, meter बनाएँ और अपने LLM client को wrap करें।
1

Install the SDK

Dodo Payments Ingestion Blueprints package install करें:
अपने LLM provider के लिए SDK भी install करें, जैसे openai, @anthropic-ai/sdk, groq-sdk, @google/genai, या ai को @ai-sdk/google के साथ।
2

Get Your API Keys

आपको दो API keys चाहिए:
  • Dodo Payments API key: Dodo Payments dashboard में Developer → API Keys के अंतर्गत एक बनाएँ और इसे DODO_PAYMENTS_API_KEY में store करें। Build करते समय test mode key का उपयोग करें। Test mode key केवल test_mode के साथ काम करती है।
  • LLM provider API key: जिस provider को आप call करते हैं उसकी key, जैसे OpenAI, Anthropic, Groq, OpenRouter या Google। Examples इसे OPENAI_API_KEY जैसे variables से पढ़ते हैं।
अपनी API keys को environment variables में store करें। उन्हें version control में commit न करें।
3

Create a Meter in Dodo Payments

Usage ट्रैक करने से पहले meter बनाएँ:
  1. Dodo Payments dashboard में Products → Meters पर जाएँ।
  2. Create Meter पर click करें।
  3. Meter configure करें:
    • Meter Name: एक वर्णनात्मक नाम, जैसे LLM Token Usage।
    • Event Name: एक unique event identifier, जैसे llm.chat_completion।
    • Aggregation Type: Sum, token counts को जोड़ने के लिए।
    • Over Property: जिस token count के लिए बिल बनाना है:
      • inputTokens: input (prompt) tokens।
      • outputTokens: output (completion) tokens, जिसमें model द्वारा report किए जाने पर reasoning tokens भी शामिल हैं।
      • totalTokens: संयुक्त input और output tokens।
    • Measurement Unit: invoices पर दिखाई जाने वाली unit, जैसे tokens।
  4. Create Meter पर click करें।
यहाँ set किया गया Event Name, SDK को pass किए गए eventName से बिल्कुल match होना चाहिए (case-sensitive)।
विस्तृत instructions के लिए Usage-Based Billing Guide देखें।
4

Track Token Usage

Tracker बनाएँ, अपने LLM client को wrap करें और client को सामान्य रूप से call करें:
अब wrapped client के माध्यम से की गई प्रत्येक पूर्ण call अपने token counts के साथ billing के लिए Dodo Payments को usage event भेजती है।

Configuration

Tracker Configuration

Application startup पर एक बार tracker बनाएँ और प्रत्येक customer के लिए उसका पुनः उपयोग करें। createLLMTracker() ये options लेता है और यदि apiKey या eventName missing या empty हो तो error throw करता है:
string
आवश्यक
आपकी Dodo Payments API key। इसे API Keys page से प्राप्त करें।
string
Tracker के लिए environment mode:
  • test_mode: development और testing के लिए। यह default है।
  • live_mode: production के लिए।
Dodo Payments SDKs इसके बजाय default रूप से live_mode पर सेट होते हैं, इसलिए production में live_mode को स्पष्ट रूप से set करें।
Development के दौरान test_mode का उपयोग करें, ताकि test traffic live usage events न बनाए।
string
आवश्यक
वह event name जो आपके meter को trigger करता है। इसे आपके Dodo Payments meter के Event Name से बिल्कुल match होना चाहिए (case-sensitive)।
यह event name आपके tracked usage को billing calculations के लिए सही meter से link करता है।
wrap() के अलावा, tracker में track(response, customerId, metadata) भी है, जो आपके पास पहले से मौजूद response से usage record करता है, और healthCheck() भी है, जो Dodo Payments API reachable होने पर true return करता है।

Wrapper Configuration

wrap() को ये parameters pass करें:
object
आवश्यक
आपका LLM client instance, जैसे OpenAI, Anthropic, Groq या Google GenAI client, या AI SDK functions रखने वाला object, जैसे { generateText }।
string
आवश्यक
बिल किए जाने वाले customer की Dodo Payments customer ID। यह cus_ से शुरू होती है।
प्रत्येक user की Dodo Payments customer ID को अपने user record के साथ store करें और इसे यहाँ pass करें। आपके application की अपनी user ID, Dodo Payments customer से match नहीं करती।
object
प्रत्येक tracking event से attach करने के लिए optional additional data, filtering और analysis हेतु। प्रत्येक value string, number या boolean होनी चाहिए। inputTokens, outputTokens, totalTokens या model नाम की key tracked value को replace करती है।

पूर्ण Configuration Example

यह example एक AI SDK call को track करता है और event में provider metadata attach करता है:
Automatic Tracking: Wrapper provider का response unchanged return करता है, इसलिए आपका code original provider SDK की तरह ही रहता है। यह response return करने से पहले usage event भेजता है, इसलिए प्रत्येक call ingestion request का इंतज़ार करती है, और failed ingestion request wrapped call को throw करा देती है, भले ही provider call सफल रही हो। Streaming responses returned object पर final token counts नहीं रखतीं, इसलिए wrapper उन्हें track नहीं करता।

Supported Providers

Tracker इन providers और SDKs के response formats से token counts पढ़ता है:
Vercel AI SDK के साथ usage track करें, जो कई LLM providers के लिए एक interface देता है।
Tracked Metrics:
  • inputTokens → inputTokens
  • outputTokens + reasoningTokens → outputTokens
  • totalTokens → totalTokens
  • Model name: AI SDK results में top-level model field नहीं होता, इसलिए tracker unknown record करता है। Model record करने के लिए इसे wrapper के metadata में model के रूप में pass करें, जैसा इस example में किया गया है।
जब आप AI SDK के माध्यम से reasoning-capable model का उपयोग करते हैं, जैसे thinking mode वाला Google’s Gemini 2.5 Flash, tracker reported reasoning tokens को outputTokens में जोड़ता है।
OpenRouter के unified API के माध्यम से 200+ models में token usage track करें।
Tracked Metrics:
  • prompt_tokens → inputTokens
  • completion_tokens → outputTokens
  • total_tokens → totalTokens
  • Model name
OpenRouter एक single API के माध्यम से OpenAI, Anthropic, Google, Meta और अन्य providers के models तक access देता है।
OpenAI के GPT models से token usage track करें।
Tracked Metrics:
  • prompt_tokens → inputTokens
  • completion_tokens → outputTokens
  • total_tokens → totalTokens
  • Model name
Anthropic के Claude models से token usage track करें।
Tracked Metrics:
  • input_tokens → inputTokens
  • output_tokens → outputTokens
  • totalTokens, जिसकी गणना input_tokens + output_tokens के रूप में की जाती है
  • Model name
Groq द्वारा serve किए गए models से token usage track करें।
Tracked Metrics:
  • prompt_tokens → inputTokens
  • completion_tokens → outputTokens
  • total_tokens → totalTokens
  • Model name
Google GenAI SDK के माध्यम से Google’s Gemini models से token usage track करें।
Tracked Metrics:
  • promptTokenCount → inputTokens
  • candidatesTokenCount + thoughtsTokenCount → outputTokens
  • totalTokenCount → totalTokens
  • Model version, modelVersion से
Gemini Thinking Mode: ऐसे Gemini models के लिए जो उत्तर देने से पहले सोचते हैं, जैसे Gemini 2.5 Pro, tracker thoughtsTokenCount (reasoning tokens) को outputTokens में जोड़ता है, ताकि event model द्वारा बनाए गए पूर्ण output को दर्शाए।

उन्नत उपयोग

Multiple Providers

LLM providers के बीच usage को अलग-अलग track करने के लिए प्रत्येक provider के लिए एक tracker बनाएँ:
प्रत्येक provider के लिए अलग event name और अलग meter का उपयोग करें, ताकि usage को अलग-अलग track किया जा सके।

Express.js API Integration

यह Express.js API request करने वाले customer के लिए प्रत्येक chat completion को track करती है। संक्षिप्तता के लिए, यह request body से userId पढ़ती है। userId user की Dodo Payments customer ID होनी चाहिए। Production में request body पर भरोसा करने के बजाय इसे authenticated session से पढ़ें।

क्या Track होता है

प्रत्येक tracked call इस structure के साथ Dodo Payments को एक usage event भेजती है:

Event Fields

string
इस event के लिए unique identifier। SDK इसे generate करता है।Format: llm_[timestamp]_[random], जहाँ timestamp milliseconds में समय है और random छह random characters हैं।
string
Client को wrap करते समय pass की गई customer ID। Dodo Payments इस customer को बिल करता है।
string
वह event name जो आपके meter को trigger करता है। यह आपके tracker configuration से आता है।
string
ISO 8601 timestamp, जिसे provider के response देने के बाद tracker द्वारा event भेजे जाने पर set किया जाता है।
object
Token usage और additional tracking data:
  • inputTokens: उपयोग किए गए input (prompt) tokens की संख्या।
  • outputTokens: उपयोग किए गए output (completion) tokens की संख्या, जहाँ लागू हो वहाँ reasoning tokens सहित।
  • totalTokens: कुल tokens (input + output)।
  • model: उपयोग किया गया LLM model, जैसे gpt-4, या यदि response में model का नाम न हो तो unknown।
  • provider: LLM provider, यदि आपने इसे wrapper metadata में शामिल किया हो।
  • Client को wrap करते समय आपके द्वारा दिया गया कोई भी custom metadata।
Reasoning Tokens: Reasoning capabilities वाले models के लिए outputTokens में completion tokens और reasoning tokens दोनों शामिल होते हैं।
आपका Dodo Payments meter usage और billing की गणना करने के लिए metadata fields, सामान्यतः inputTokens, outputTokens या totalTokens का उपयोग करता है।
अंतिम संशोधन 26 सितंबर 2026