الانتقال إلى المحتوى الرئيسي
محبوب (lovable.dev) هو منشئ تطبيقات ويب بالذكاء الاصطناعي يستخدم نموذج اشتراك قائم على الائتمان. على عكس الأنظمة المعتمدة على الرموز، يبسط محبوب تجربة المستخدم بتكلفة ائتمان واحد لكل رسالة. يجمع هذا النموذج بين رصيد شهري من الائتمان وقطرات مكافآت يومية لتشجيع المشاركة المستمرة مع السماح بالاستخدام المتزايد.

نموذج الفوترة لمحبوك

تم بناء تسعير محبوب حول أرصدة الرسائل والفوترة المحسوبة بشكل منفصل للبنية التحتية السحابية.
الخطةالسعرأرصدة شهريةمكافأة يوميةالميزات الرئيسية
مجانية$0/شهر05/يوم (حتى 30/شهر)مشاريع عامة فقط
احترافية$25/شهر1005/يوم (حتى 150/شهر)شحن فوري، سحابة + ذكاء اصطناعي معتمد على الاستخدام، نطاقات مخصصة
عمل$50/شهر1005/يومSSO، مساحة عمل الفريق، قوالب تصميم، مركز الأمان
مؤسساتيمخصصمخصصمخصصSCIM، دعم مخصص، سجلات تدقيق
  • اشتراك قائم على الائتمان: 1 ائتمان = 1 رسالة/طلب إلى الذكاء الاصطناعي.
  • الأرصدة مشتركة بين عدد لا محدود من المستخدمين: حوض فريق غير مقيد بعدد المقاعد.
  • الأرصدة تعيد تعيين نفسها كل دورة فوترة: تتجدد الأرصدة الشهرية عند التجديد.
  • شحن ائتماني عند الطلب: يمكن للمستخدمين شراء مزيد من الأرصدة إذا نفدت.
  • فوترة سحابة + ذكاء اصطناعي بمعايير استخدام منفصلة: فوترة محسوبة للاستضافة والحساب.
  • تنتهي مكافآت الائتمان اليومية كل يوم: تنقيط يومي قابله للاستخدام أو الفقدان بمقدار 5 أرصدة.

ما يجعله فريدًا

  • بساطة تعتمد على الرسائل: 1 ائتمان = 1 رسالة بغض النظر عن التعقيد. لا يوجد حساب للرموز أو ترجيح للنموذج.
  • تنقيط يومي + حوض شهري هجين: 5 أرصدة مكافآت يومية تخلق حافزًا للمشاركة اليومية، بينما 100 ائتمان شهري تسمح بالاستخدام المتزايد.
  • حوض مشترك لفريق بالكامل: أرصدة مشتركة بين عدد غير محدود من المستخدمين بسعر فريق ثابت، وليس لكل مقعد.
  • فوترة بطبقتين: أرصدة لتفاعلات الذكاء الاصطناعي + فوترة محسوبة بشكل منفصل للبنية التحتية السحابية.

بناء هذا باستخدام دفعات دودو

يمكنك تكرار النموذج الهجين لمحبوب باستخدام امتيازات الائتمان ومقاييس استخدام دودو.
1

Create a Custom Unit Credit Entitlement

حدد نظام ائتمان الرسائل في لوحة معلومات دفعات دودو. يتعامل هذا الامتياز مع حوض الائتمان الشهري.
  • نوع الائتمان: وحدة مخصصة
  • اسم الوحدة: “الرسائل”
  • الدقة: 0
  • انتهاء الائتمان: 30 يومًا
  • تجاوز: معطل (حد أقصى عندما تصل الأرصدة إلى 0)
2

Create Subscription Products

أنشئ خططك وارفق امتياز الائتمان. بالنسبة للخطة المجانية، ستتعامل مع المكافأة اليومية عبر منطق التطبيق.
  • مجانية: $0/شهر، 0 أرصدة (تُدار المكافأة اليومية بمنطق التطبيق)
  • احترافية: $25/شهر، 100 ائتمانات/دورة، ارفق امتياز الائتمان
  • عمل: $50/شهر، 100 ائتمانات/دورة، ارفق امتياز الائتمان
import DodoPayments from 'dodopayments';

const client = new DodoPayments({
  bearerToken: process.env.DODO_PAYMENTS_API_KEY,
});

const session = await client.checkoutSessions.create({
  product_cart: [
    { product_id: 'prod_lovable_pro', quantity: 1 }
  ],
  customer: { email: 'user@example.com' },
  return_url: 'https://lovable.dev/dashboard'
});
3

Create a Usage Meter for Cloud + AI

تتم فوترة محبوب بشكل منفصل للبنية التحتية السحابية. أنشئ مقياسًا لتتبع هذه التكاليف.
  • اسم المقياس: cloud.compute_seconds
  • التجميع: مجموع على الخاصية compute_seconds
ارفق هذا المقياس بمنتجات اشتراكك مع تسعير لكل وحدة. عند إدخال الاستخدام، تقوم دودو بحساب التكلفة بناءً على أسعارك.
await client.usageEvents.ingest({
  events: [{
    event_id: `compute_${Date.now()}`,
    customer_id: 'cust_123',
    event_name: 'cloud.compute_seconds',
    timestamp: new Date().toISOString(),
    metadata: {
      compute_seconds: 3600,
      project_id: 'proj_abc'
    }
  }]
});
4

Implement Daily Bonus Credits (Application Logic)

تتم إدارة تنقيط المكافأة اليومية على مستوى التطبيق. يمكنك استخدام مهمة cron لتقديم هذه الأرصدة أو تتبعها بشكل منفصل في قاعدة البيانات الخاصة بك.لتتبع استخدام هذه الأرصدة المكافأة في دودو دون استنزاف رصيد الامتياز الرئيسي على الفور، يمكنك استخدام اسم حدث منفصل أو التعامل مع المنطق في تطبيقك للتحقق من الحوض المكافأة أولاً.
// Example cron job logic (pseudo-code)
// Every day at midnight UTC:
// 1. Reset 'daily_bonus_used' to 0 for all users in your DB

// When a user sends a message:
async function handleMessage(userId: string) {
  const user = await db.users.findUnique({ where: { id: userId } });
  
  if (user.daily_bonus_used < 5) {
    // Use daily bonus
    await db.users.update({
      where: { id: userId },
      data: { daily_bonus_used: { increment: 1 } }
    });
    // Track for analytics but don't deduct from Dodo credits yet
    await client.usageEvents.ingest({
      events: [{
        event_id: `msg_bonus_${Date.now()}`,
        customer_id: userId,
        event_name: 'ai.message.bonus',
        timestamp: new Date().toISOString(),
        metadata: { type: 'daily_bonus' }
      }]
    });
  } else {
    // Deduct from Dodo credit entitlement
    await client.usageEvents.ingest({
      events: [{
        event_id: `msg_${Date.now()}`,
        customer_id: userId,
        event_name: 'ai.message',
        timestamp: new Date().toISOString(),
        metadata: { type: 'subscription_credit' }
      }]
    });
  }
}
5

Send Usage Events for Messages

تتبع كل رسالة ذكاء اصطناعي كحدث استخدام. رابط الحدث ai.message إلى امتياز ائتمان “الرسائل” في لوحة معلومات دودو.
await client.usageEvents.ingest({
  events: [{
    event_id: `msg_${Date.now()}`,
    customer_id: 'cust_123',
    event_name: 'ai.message',
    timestamp: new Date().toISOString(),
    metadata: {
      content_length: 450,
      project_id: 'proj_abc',
      feature_type: 'editor'
    }
  }]
});
6

Handle Webhooks for Low Balance

إعلام المستخدمين عندما يكونون قريبين من نفاد الأرصدة حتى يتمكنوا من الشحن أو الترقية.
import DodoPayments from 'dodopayments';
import express from 'express';

const app = express();
app.use(express.raw({ type: 'application/json' }));

const client = new DodoPayments({
  bearerToken: process.env.DODO_PAYMENTS_API_KEY,
  webhookKey: process.env.DODO_PAYMENTS_WEBHOOK_KEY,
});

app.post('/webhooks/dodo', async (req, res) => {
  try {
    const event = client.webhooks.unwrap(req.body.toString(), {
      headers: {
        'webhook-id': req.headers['webhook-id'] as string,
        'webhook-signature': req.headers['webhook-signature'] as string,
        'webhook-timestamp': req.headers['webhook-timestamp'] as string,
      },
    });

    if (event.type === 'credit.balance_low') {
      const { customer_id, available_balance } = event.data;
      await notifyUser(customer_id, `Your balance is low: ${available_balance} messages left.`);
    }

    res.json({ received: true });
  } catch (error) {
    res.status(401).json({ error: 'Invalid signature' });
  }
});

تسريع باستخدام مخطط التجميع LLM

يبسط مخطط التجميع LLM التتبع من خلال تغليف عميل الذكاء الاصطناعي الخاص بك.
import { createLLMTracker } from '@dodopayments/ingestion-blueprints';
import OpenAI from 'openai';

const tracker = createLLMTracker({
  apiKey: process.env.DODO_PAYMENTS_API_KEY,
  environment: 'live_mode',
  eventName: 'ai.message',
});

const trackedClient = tracker.wrap({
  client: new OpenAI(),
  customerId: 'cust_123',
});

// Automatically tracks the message and deducts 1 credit (if configured)
await trackedClient.chat.completions.create({
  model: 'gpt-4o',
  messages: [{ role: 'user', content: 'Build a landing page' }],
});
تحقق من الوثائق الكاملة للمخطط لمزيد من التفاصيل حول التتبع التلقائي.

نظرة عامة على الهندسة المعمارية

الميزات الرئيسية لدودو المستخدمة

استكشف الميزات التي تجعل هذا التنفيذ ممكنًا.

Credit-Based Billing

إدارة أرصدة الرسائل وحوض الفريق المشترك.

Subscriptions

إعداد خطط متكررة للمستويات الاحترافية والعملية.

Usage-Based Billing

قياس استخدام البنية التحتية السحابية بشكل منفصل عن أرصدة الذكاء الاصطناعي.

Event Ingestion

إرسال رسائل وحسابات كبيرة الحجم إلى دودو.

Webhooks

أتمتة الإخطارات للرصيد المنخفض للأرصدة.

LLM Ingestion Blueprint

تبسيط تتبع استخدام الذكاء الاصطناعي باستخدام التكاملات المسبقة الإنشاء.