Looking to hire Laravel developers? Try LaraJobs

laravel-sdk maintained by rodiumai

Description
Laravel/PHP SDK for the RodiumAI API — multi-model AI with Mobile Money payments
Author
Last update
2026/06/01 20:27 (dev-main)
License
Downloads
1

Comments
comments powered by Disqus

rodiumai/laravel-sdk

SDK PHP / Laravel officiel pour l’API Rodium AI — accès unifié aux modèles IA (OpenAI, Anthropic, Google, DeepSeek, MiniMax…) avec facturation en crédits RODI et recharge Mobile Money.

API REST compatible OpenAI : mêmes endpoints et payloads que rodiumai.io/docs.

Latest Version on Packagist Total Downloads PHP Version License: MIT Tests

Liens

Ressource URL
Packagist (installation Composer) packagist.org/packages/rodiumai/laravel-sdk
Code source github.com/lecodeur228/rodiumai-laravel-sdk
Documentation API rodiumai.io/docs
Dashboard & clés API rodiumai.io/dashboard
Catalogue modèles rodiumai.io/models

Table des matières

Documentation officielle

Sujet Lien Rodium AI
Quickstart rodiumai.io/docs
Vue d’ensemble API docs/api/overview
Chat completions docs/api/chat-completions
Streaming SSE docs/api/streaming
Modèles docs/api/models · Catalogue
Erreurs HTTP docs/api/errors

Alignement détaillé SDK ↔ API : docs/api-alignment.md.

Prérequis

  • PHP 8.1+ avec extension json
  • Laravel 10, 11 ou 12 (optionnel — le client fonctionne en PHP pur)
  • Laravel 12 : PHP 8.2+ → utilisez ^0.1.1 minimum
  • Compte Rodium AI + clé API : dashboard

Installation

Le package est publié sur Packagist — aucune configuration repositories n’est nécessaire.

Laravel 10 / 11

composer require rodiumai/laravel-sdk

Laravel 12 (recommandé)

composer require rodiumai/laravel-sdk:^0.1.1

Après composer require

  1. Publier la config (optionnel mais recommandé) :
php artisan vendor:publish --tag=rodiumai-config
  1. Ajouter ta clé API dans .env (voir Configuration).

  2. Le ServiceProvider et la Facade RodiumAI sont auto-découverts — rien à déclarer dans bootstrap/providers.php.

PHP sans Laravel

composer require rodiumai/laravel-sdk

Puis instancier RodiumAI\RodiumAIClient directement (voir Démarrage rapide).

Installation depuis GitHub (secours)

Uniquement si Packagist est indisponible :

composer config repositories.rodiumai-laravel-sdk vcs https://github.com/lecodeur228/rodiumai-laravel-sdk
composer require rodiumai/laravel-sdk:^0.1.1

Configuration

Fichier .env :

RODIUMAI_API_KEY=rd_sk_votre_cle_secrete
RODIUMAI_BASE_URL=https://api.rodiumai.io/v1
RODIUMAI_DEFAULT_MODEL=openai/gpt-4o
RODIUMAI_TIMEOUT=30

Ne jamais committer .env ni une clé API dans le dépôt.

Démarrage rapide

Laravel (Facade)

use RodiumAI\Enums\RodiumAIModel;
use RodiumAI\Facades\RodiumAI;

$response = RodiumAI::model(RodiumAIModel::OpenAiGpt4o)
    ->temperature(0.7)
    ->maxTokens(300)
    ->chat('Explique Rodium AI en deux phrases.');

echo $response->content;
echo $response->totalTokens(); // tokens facturés

PHP pur

use RodiumAI\Enums\RodiumAIModel;
use RodiumAI\RodiumAIClient;

$client = new RodiumAIClient(
    apiKey: getenv('RODIUMAI_API_KEY'),
);

$response = $client
    ->model(RodiumAIModel::AnthropicClaudeSonnet46)
    ->chat('Bonjour !');

echo $response->content;

Équivalent quickstart cURL / OpenAI SDK : POST https://api.rodiumai.io/v1/chat/completions avec Authorization: Bearer {RODIUMAI_API_KEY}.

Modèles typés (enum)

Les 45+ modèles du catalogue sont exposés via RodiumAIModel — autocomplétion IDE et validation à l’exécution :

use RodiumAI\Enums\RodiumAIModality;
use RodiumAI\Enums\RodiumAIModel;
use RodiumAI\Enums\RodiumAIProvider;

RodiumAI::model(RodiumAIModel::OpenAiGpt4o)->chat('…');

// Filtres
RodiumAIModel::forProvider(RodiumAIProvider::Google);
RodiumAIModel::forModality(RodiumAIModality::Text);

// Chat texte uniquement
RodiumAIModel::OpenAiGpt4o->supportsChatCompletion(); // true

Quand Rodium AI ajoute des modèles :

RODIUMAI_API_KEY="…" php bin/generate-model-enum.php

Paramètres chat

Alignés sur chat-completions :

Paramètre API SDK
model ->model() / RodiumAIModel / $options['model']
messages Tableau {role, content} ou string (→ message user)
max_tokens ->maxTokens() / $options['max_tokens']
temperature (0–2) ->temperature() / $options['temperature']
top_p (0–1) ->topP() / $options['top_p']
stop $options['stop']
stream Automatique avec ->stream()
use RodiumAI\Data\ChatMessage;

$messages = [
    ChatMessage::system('Tu es un assistant Laravel.'),
    ChatMessage::user('C\'est quoi un Service Provider ?'),
];

$response = RodiumAI::model(RodiumAIModel::OpenAiGpt4o)
    ->temperature(0.5)
    ->topP(0.9)
    ->maxTokens(500)
    ->chat($messages);

Streaming (SSE)

Conforme à docs/api/streaming : lignes data: …, fin sur data: [DONE].

foreach (RodiumAI::model(RodiumAIModel::OpenAiGpt4o)->stream('Raconte une histoire courte.') as $delta) {
    echo $delta;
}

Laravel — réponse StreamedResponse

use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\StreamedResponse;
use RodiumAI\Facades\RodiumAI;

public function streamChat(Request $request): StreamedResponse
{
    return response()->stream(function () use ($request) {
        foreach (RodiumAI::stream($request->string('message')) as $delta) {
            echo 'data: ' . json_encode(['delta' => $delta]) . "\n\n";
            ob_flush();
            flush();
        }
        echo "data: [DONE]\n\n";
    }, 200, [
        'Content-Type' => 'text/event-stream',
        'Cache-Control' => 'no-cache',
        'X-Accel-Buffering' => 'no',
    ]);
}

Liste des modèles

GET /v1/models — tarifs RODI et métadonnées :

$models = RodiumAI::models();

foreach ($models->ids() as $id) {
    echo $id . PHP_EOL;
}

$anthropic = $models->byProvider(RodiumAIProvider::Anthropic);

Gestion des erreurs

Voir docs/api/errors.

HTTP Exception SDK Action suggérée
401 UnauthorizedException Vérifier RODIUMAI_API_KEY
402 InsufficientCreditsException Recharger des RODI (dashboard)
429 RateLimitException Backoff exponentiel puis retry
422 ValidationException Corriger model / messages
500+ RodiumAIException Retry une fois, puis support
use RodiumAI\Exceptions\InsufficientCreditsException;
use RodiumAI\Exceptions\RodiumAIException;
use RodiumAI\Facades\RodiumAI;

try {
    $response = RodiumAI::chat('Test');
} catch (InsufficientCreditsException $e) {
    logger()->warning('RODI insuffisant', ['body' => $e->responseBody()]);
} catch (RodiumAIException $e) {
    logger()->error('Rodium AI', ['code' => $e->getCode(), 'body' => $e->responseBody()]);
}

Référence SDK

Méthode Retour Description
chat($messages, $options = []) ChatResponse Completion non-streaming
stream($messages, $options = []) Generator<string> Deltas texte SSE
models() ModelCollection Catalogue + pricing
model($id) static Fluent : modèle
temperature($f) static Fluent : 0–2
topP($f) static Fluent : 0–1
maxTokens($n) static Fluent : limite tokens
systemPrompt($s) static Fluent : message système

DTOs : ChatResponse, ChatMessage, ModelCollection.

Versions

Version Notes
v0.1.1 Support Laravel 12 (illuminate/support ^12)
v0.1.0 Première release : chat, stream, models, enums, Facade

Historique : CHANGELOG.md.

Tests & développement

composer install
composer test                 # PHPUnit (HTTP mocké)
export RODIUMAI_API_KEY="…"
php bin/smoke-test.php        # Parcours live dans la console

Contribuer

Voir CONTRIBUTING.md et docs/architecture.md.

Mainteneurs : guide docs/PUBLISHING.md (tags, Packagist).

Licence

MIT — voir LICENSE.