PHPackages                             imrandevbd/laravel-ai-hub - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. imrandevbd/laravel-ai-hub

ActiveLibrary

imrandevbd/laravel-ai-hub
=========================

Premium multi-provider Laravel AI SDK — OpenAI, Gemini, Claude, Grok, DeepSeek, Mistral, Groq, Ollama &amp; OpenRouter with failover, cost tracking, JSON recovery, and a visual studio UI.

v1.1.0(today)00MITPHP ^8.2

Since Jul 23Compare

[ Source](https://github.com/imranbru99/laravel-ai-hub)[ Packagist](https://packagist.org/packages/imrandevbd/laravel-ai-hub)[ Docs](https://github.com/imranbru99/laravel-ai-hub)[ RSS](/packages/imrandevbd-laravel-ai-hub/feed)WikiDiscussions Synced today

READMEChangelogDependencies (6)Versions (2)Used By (0)

Laravel AI Hub
==============

[](#laravel-ai-hub)

 [![Latest Version](https://camo.githubusercontent.com/65ace12b39ed7c73dba57551e36e4b242f63a45e19533f198894f9b7cef7ce36/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f696d72616e64657662642f6c61726176656c2d61692d6875622e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/imrandevbd/laravel-ai-hub) [![Total Downloads](https://camo.githubusercontent.com/1499ccec4360b632ece3b1c8767a2afed7ec5b2a625999c36bacc1322fbea217/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f696d72616e64657662642f6c61726176656c2d61692d6875622e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/imrandevbd/laravel-ai-hub) [![PHP](https://camo.githubusercontent.com/f08105121ee6a362c5b21165f75c3a4842585f316b875a2c1d89113f181893c4/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f696d72616e64657662642f6c61726176656c2d61692d6875622e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/imrandevbd/laravel-ai-hub) [![License](https://camo.githubusercontent.com/68f627d4020429c11808ecadc36e27d3a91bce3b4137df600f5ea71180c0b1c1/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d7465616c2e7376673f7374796c653d666c61742d737175617265)](LICENSE) [![Imran Dev BD](https://camo.githubusercontent.com/9d7703b0b71a7052efddd94c2ca5b927818e96fd741dbe3e1b7e32e300799617/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f62792d496d72616e25323044657625323042442d3134623861362e7376673f7374796c653d666c61742d737175617265)](https://imrandev.bd)

**One interface. Nine AI providers. Full cost &amp; failure observability.**

Swap **OpenAI**, **Gemini**, **Claude**, **Grok**, **DeepSeek**, **Mistral**, **Groq**, **Ollama**, or **OpenRouter** via config or a premium visual UI — every call is logged, costed, retried, and (optionally) JSON-repaired automatically. Set provider **priority** so `#1` runs first and failover continues down the chain.

Built by **[Imran Dev BD](https://imrandev.bd/)** · Laravel **10–13** · PHP **8.2+**

```
composer require imrandevbd/laravel-ai-hub
```

**Packagist:** [`imrandevbd/laravel-ai-hub`](https://packagist.org/packages/imrandevbd/laravel-ai-hub)
**GitHub:** [github.com/imranbru99/laravel-ai-hub](https://github.com/imranbru99/laravel-ai-hub)

---

Why this package?
-----------------

[](#why-this-package)

**One API**Same fluent chain for every provider**Studio UI**`/ai-hub` — keys, models, priority, analytics**Failover**`#1 → #2 → #3…` when a provider fails**Money &amp; health**USD cost, failure %, JSON recovery %, latency p50/p95/p99**Local + cloud**Ollama locally · OpenRouter for 100s of models---

Features
--------

[](#features)

FeatureWhat you getMulti-providerOpenAI · Gemini · Claude · Grok · DeepSeek · Mistral · Groq · Ollama · OpenRouterVisual studio`/ai-hub` — keys, models, priority, analyticsPriority failover`#1 → #2 → #3` on failureJSON recoveryBrace-depth parser for malformed LLM JSONRetriesExponential backoff + jitterCost trackingUSD from per-model pricing tablesAnalyticsFailure rate, JSON recovery rate, latency p50/p95/p99, top jobsFluent API`AIHub::gemini()->prompt()->recoverJson()->send()`Async logging`AiRequestLog` + queue job (non-blocking)---

Install
-------

[](#install)

```
composer require imrandevbd/laravel-ai-hub
php artisan vendor:publish --tag=ai-hub-config
php artisan migrate
```

### `.env` (optional — you can also set keys in the UI)

[](#env-optional--you-can-also-set-keys-in-the-ui)

```
AI_HUB_PROVIDER=openai
AI_HUB_FAILOVER=true
AI_HUB_MIDDLEWARE=auth   # protect /ai-hub in production

OPENAI_API_KEY=sk-...
GEMINI_API_KEY=...
ANTHROPIC_API_KEY=...
GROK_API_KEY=...
DEEPSEEK_API_KEY=...
MISTRAL_API_KEY=...
GROQ_API_KEY=...
OPENROUTER_API_KEY=...
# OLLAMA_BASE_URL=http://127.0.0.1:11434/v1
```

---

Visual studio (`/ai-hub`)
-------------------------

[](#visual-studio-ai-hub)

Open **`/ai-hub`** after install.

### Tabs

[](#tabs)

1. **Keys &amp; Models** — paste API keys, pick models, enable/disable providers, **Test** connection
2. **Priority** — reorder who runs first (`↑` `↓` / **First**). Failover walks the list on errors
3. **Analytics** — 30-day cost, failure %, JSON recovery %, latency p95, cost by provider, top jobs, daily chart

Built with **Tailwind CSS** + **Alpine.js** (CDN) — modern dark premium UI.

### CLI alternative

[](#cli-alternative)

```
php artisan ai-hub:configure
php artisan ai-hub:configure gemini --key=YOUR_KEY --model=gemini-2.0-flash --default
php artisan ai-hub:configure deepseek --key=YOUR_KEY --model=deepseek-chat
php artisan ai-hub:configure --show
```

---

Usage
-----

[](#usage)

```
use ImranDevBd\AiHub\Facades\AIHub;

// Shortcuts
$response = AIHub::gemini('gemini-2.0-flash')
    ->prompt('Summarize Laravel queues in 3 bullets')
    ->send();

echo $response->content;
echo $response->costUsd;
echo $response->latencyMs;

// JSON + recovery (great for Gemini)
$data = AIHub::provider('gemini')
    ->prompt('Return JSON: {"title":"","tags":[]}')
    ->recoverJson()
    ->send()
    ->json();

// Uses priority chain (#1 first, then failover)
AIHub::prompt('Hello')->send();

// Lock to one provider
AIHub::provider('openai')->withoutFailover()->prompt('Hello')->send();

// Persist settings for the whole app
AIHub::configure('openai', 'sk-...', 'gpt-4o-mini', makeDefault: true);

// Job tracing (shows in Analytics → Top jobs)
AIHub::gemini()->forJob(MyJob::class)->prompt($prompt)->send();
```

### Streaming &amp; embeddings

[](#streaming--embeddings)

```
foreach (AIHub::openai()->prompt('Write a haiku')->stream() as $chunk) {
    echo $chunk;
}

$vector = AIHub::openai()
    ->model('text-embedding-3-small')
    ->embed('Laravel AI Hub')
    ->first();
```

### Analytics API

[](#analytics-api)

```
AIHub::analytics()->summary(now()->subDays(30));
AIHub::analytics()->costByProvider();
AIHub::analytics()->latencyPercentiles('gemini');
AIHub::analytics()->topJobs(10);
AIHub::analytics()->dailyCost(30);
```

---

Priority / failover
-------------------

[](#priority--failover)

Set order in **`/ai-hub` → Priority** or config:

```
// config/ai-hub.php
'priority' => ['gemini', 'openai', 'claude', 'grok', 'deepseek', 'mistral', 'groq', 'ollama', 'openrouter'],
'failover_enabled' => true,
```

Runtime:

```
#1 Gemini fails → #2 OpenAI → #3 Claude → …

```

---

Providers
---------

[](#providers)

KeyEnvCapabilities`openai``OPENAI_API_KEY`Chat · stream · embeddings`gemini``GEMINI_API_KEY`Chat · stream · embeddings`claude``ANTHROPIC_API_KEY`Chat · stream`grok``GROK_API_KEY` / `XAI_API_KEY`Chat · stream · embeddings`deepseek``DEEPSEEK_API_KEY`Chat · stream · embeddings`mistral``MISTRAL_API_KEY`Chat · stream · embeddings`groq``GROQ_API_KEY`Chat · stream · embeddings (fast)`ollama``OLLAMA_BASE_URL` (key optional)Local OpenAI-compatible`openrouter``OPENROUTER_API_KEY`Chat · stream · embeddings (router)```
AIHub::deepseek()->prompt('Explain recursion')->send();
AIHub::mistral('mistral-large-latest')->prompt($prompt)->send();
AIHub::groq()->prompt('Fast answer')->send();
AIHub::ollama('llama3.2')->prompt('Hi from local')->send();
AIHub::openrouter('anthropic/claude-3.5-sonnet')->prompt($prompt)->send();
```

Extend later via custom `base_url`: Azure OpenAI, Cohere, Perplexity, Bedrock proxies, etc.

---

Package layout
--------------

[](#package-layout)

```
src/
  AIHubManager.php · PendingRequest.php
  Facades/AIHub.php
  Providers/   OpenAI · Gemini · Claude · OpenAICompatible (Grok, DeepSeek, Mistral, Groq, Ollama, OpenRouter)
  Support/     JsonRecovery · RetryHandler · CostCalculator · Analytics · SettingsStore · ProviderCatalog
  Http/Controllers/StudioController.php
  Models/      AiRequestLog · AiHubSetting
  Jobs/        TrackAiUsageJob
  Filament/    AiHubDashboardWidget (optional)
  Console/     ConfigureAiHubCommand
config/ai-hub.php
resources/views/studio.blade.php
database/migrations/

```

---

Security
--------

[](#security)

Protect `/ai-hub` in production:

```
AI_HUB_MIDDLEWARE=auth
```

Prefer the visual UI for keys on shared hosts; keep `.env` out of git.

---

Changelog
---------

[](#changelog)

See [CHANGELOG.md](CHANGELOG.md).

---

License
-------

[](#license)

MIT © [Imran Dev BD](https://imrandev.bd/)

---

Developed by Imran Dev BD
-------------------------

[](#developed-by-imran-dev-bd)

Portfolio[imrandev.bd](https://imrandev.bd/)LinkedIn[linkedin.com/in/imranbru99](https://linkedin.com/in/imranbru99)GitHub[github.com/imranbru99](https://github.com/imranbru99)X / Twitter[@imrandev\_bd](https://x.com/imrandev_bd)YouTube[@ImranDevBD](https://youtube.com/@ImranDevBD)Instagram[@imranbru99](https://instagram.com/imranbru99)Facebook[ExpertImranDev](https://facebook.com/ExpertImranDev)TikTok[@imrandev\_bd](https://tiktok.com/@imrandev_bd)Threads[@imranbru99](https://www.threads.net/@imranbru99)Pinterest[@imrandev\_bd](https://pinterest.com/imrandev_bd)WhatsApp[+880 1576-918420](https://wa.me/8801576918420)EmailAll Links[linktr.ee/ExpertImranDev](https://linktr.ee/ExpertImranDev)**Any issue? Contact → [imrandev.bd/contact](https://imrandev.bd/contact)**

###  Health Score

39

—

LowBetter than 84% of packages

Maintenance100

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity45

Maturing project, gaining track record

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

0d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/79129226?v=4)[IMRAN Dev BD](/maintainers/imranbru99)[@imranbru99](https://github.com/imranbru99)

---

Tags

laravelaiopenaiGeminiclaudeobservabilityllmanthropiccost-trackingdeepseekOpenRoutermistralollamaembeddingsfailovergrokx.aigroq

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/imrandevbd-laravel-ai-hub/health.svg)

```
[![Health](https://phpackages.com/badges/imrandevbd-laravel-ai-hub/health.svg)](https://phpackages.com/packages/imrandevbd-laravel-ai-hub)
```

###  Alternatives

[psalm/plugin-laravel

Psalm plugin for Laravel

3345.3M347](/packages/psalm-plugin-laravel)[api-platform/laravel

API Platform support for Laravel

58174.6k17](/packages/api-platform-laravel)[spectra-php/laravel-spectra

Comprehensive observability for AI/LLM operations in Laravel applications

182.9k](/packages/spectra-php-laravel-spectra)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
