Skip to content

Production-ready Laravel package for AI usage metering, token tracking, quota management, and Stripe billing integration. Supports OpenAI, Anthropic, and custom providers.

License

Notifications You must be signed in to change notification settings

ajooda/laravel-ai-metering

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Laravel AI Metering

Latest Version Total Downloads License PHP Version Laravel Stability Documentation

Usage metering, quotas, and billing for AI applications.

A production-ready Laravel package that automatically tracks AI usage, enforces quotas, and integrates with Stripe for billing. Perfect for SaaS applications that need to meter and bill AI usage.

Table of Contents

Features

  • 🎯 Simple Developer Experience - Fluent API for metering AI usage
  • πŸ“Š Usage Tracking - Automatic token and cost tracking
  • 🚦 Quota Management - Configurable limits (tokens, cost, per-plan, per-tenant)
  • πŸ’³ Billing Integration - Stripe/Cashier support with credit-based and subscription modes
  • 🏒 Multi-Tenancy - Works with or without tenancy packages
  • πŸ”Œ Provider Agnostic - Support for OpenAI, Anthropic, and custom providers
  • ⚑ Performance - Caching, queue support, and optimized queries

Why Choose This Package?

  • Zero Configuration Required - Start tracking usage immediately, no plans or subscriptions needed
  • Production Ready - Battle-tested with comprehensive test coverage and security features
  • Automatic Processing - Automatic usage extraction, cost calculation, and billing integration
  • Flexible Billing - Support for both subscription-based and credit-based billing models
  • Multi-Tenant Ready - Built-in support for multi-tenant applications without coupling to specific packages
  • Extensible - Easy to add custom providers, billing drivers, and tenant resolvers
  • Well Documented - Comprehensive documentation with examples and troubleshooting guides

Requirements

  • PHP >= 8.1 (PHP >= 8.2 for Laravel 11.x and 12.x)
  • Laravel 10.x, 11.x, or 12.x
  • Database (MySQL, PostgreSQL, SQLite, or SQL Server)

Version Compatibility

Laravel Version PHP Version Package Version Status
10.x >= 8.1 ^1.0 βœ… Supported
11.x >= 8.2 ^1.0 βœ… Supported
12.x >= 8.2 ^1.0 βœ… Supported

Optional Dependencies

  • OpenAI: openai-php/laravel (for OpenAI provider)
  • Anthropic: anthropic-php/sdk (for Anthropic provider)
  • Stripe/Cashier: laravel/cashier (for Stripe billing integration)

Quick Start

Note: This package supports Laravel Package Auto-Discovery, so you do not need to manually register the service provider.

Installation

# 1. Install the package
composer require ajooda/laravel-ai-metering

# 2. Publish and run migrations
php artisan vendor:publish --tag=ai-metering-migrations
php artisan migrate

# 3. Verify installation
php artisan ai-metering:validate

Usage Example

Full Example - Complete usage with all options:

use Ajooda\AiMetering\Facades\AiMeter;
use OpenAI\Laravel\Facades\OpenAI;

$response = AiMeter::forUser(auth()->user())
    ->billable(auth()->user())
    ->usingProvider('openai', 'gpt-4o-mini')
    ->feature('chat')
    ->call(function () {
        return OpenAI::chat()->create([
            'model' => 'gpt-4o-mini',
            'messages' => [
                ['role' => 'user', 'content' => 'Hello!'],
            ],
        ]);
    });

// Access the AI response
$aiResponse = $response->getResponse();

// Check usage
$usage = $response->getUsage();
echo "Tokens: {$usage->totalTokens}, Cost: \${$usage->totalCost}";

Minimal Example - Just track usage:

use Ajooda\AiMetering\Facades\AiMeter;

$response = AiMeter::forUser(auth()->user())
    ->billable(auth()->user())
    ->usingProvider('openai', 'gpt-4o-mini')
    ->call(fn() => OpenAI::chat()->create([...]));

$usage = $response->getUsage();

That's it! Usage is automatically tracked. No plans or subscriptions required for basic tracking.

Documentation

Comprehensive documentation is available in the docs/ directory:

Quick Links

Common Tasks

Artisan Commands

# Generate usage report
php artisan ai-metering:report

# Cleanup old usage records
php artisan ai-metering:cleanup

# Sync Stripe overages
php artisan ai-metering:sync-stripe-overages

# Validate configuration
php artisan ai-metering:validate

# Migrate plan
php artisan ai-metering:migrate-plan "App\Models\User" 1 "pro-plan"

# List plans
php artisan ai-metering:sync-plans

See API Reference for complete command documentation.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Quick Start for Contributors

  1. Fork and clone the repository:

    git clone https://github.com/ajooda/laravel-ai-metering.git
    cd laravel-ai-metering
  2. Install dependencies:

    composer install
  3. Run tests:

    composer test
  4. Run tests with coverage:

    composer test-coverage

See CONTRIBUTING.md for detailed guidelines.

License

The MIT License (MIT). Please see LICENSE for more information.

Support

Getting Help

Maintainers

Primary Maintainer: AbdAlhadi Jouda ([email protected])

Response Times:

  • Security vulnerabilities: 48 hours initial response
  • Bug reports: 3-5 business days
  • Questions: 5-7 business days
  • Feature requests: As time permits

About

Production-ready Laravel package for AI usage metering, token tracking, quota management, and Stripe billing integration. Supports OpenAI, Anthropic, and custom providers.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages