Looking to hire Laravel developers? Try LaraJobs

laravelai maintained by muradbdinfo

Description
Unified AI chat for Laravel — Ollama, OpenAI, Anthropic (Claude), DeepSeek. One interface, any AI.
Last update
2026/05/09 18:11 (dev-main)
License
Links
Downloads
68

Comments
comments powered by Disqus

Laravel AI

One interface, any AI. Unified AI chat for Laravel — Ollama, OpenAI (ChatGPT), Anthropic (Claude), DeepSeek.

Latest Version on Packagist Total Downloads License PHP Version

Installation

composer require muradbdinfo/laravelai

Publish the config:

php artisan vendor:publish --tag=ai-config

Supported

  • Providers: Ollama, OpenAI, Anthropic (Claude), DeepSeek
  • Laravel: 10, 11, 12, 13
  • PHP: 8.1+

Quick Start

use EasyAI\LaravelAI\Facades\AI;

// Default provider (from config)
$response = AI::chat([
    ['role' => 'user', 'content' => 'Hello!']
]);

echo $response->content;          // "Hi! How can I help?"
echo $response->totalTokens;      // 42
echo $response->provider;         // "ollama"

Switch Providers

$response = AI::provider('openai')->chat($messages);
$response = AI::provider('anthropic')->chat($messages);
$response = AI::provider('deepseek')->chat($messages);
$response = AI::provider('ollama')->chat($messages);

Chain Options

$response = AI::provider('openai')
    ->model('gpt-4o')
    ->temperature(0.7)
    ->maxTokens(1000)
    ->systemPrompt('You are a helpful teacher.')
    ->chat($messages);

Streaming

AI::provider('ollama')
    ->model('llama3.1:8b')
    ->stream($messages, function (string $chunk) {
        echo $chunk;
    });

Health Check

AI::provider('ollama')->health();   // true or false
AI::provider('openai')->health();   // true or false

List Models

AI::provider('ollama')->models();
// ['llama3.1:8b', 'qwen2:1.5b', 'phi3:mini']

Token Estimation

AI::estimateTokens('Hello world');           // ~3
AI::estimateTokens($messagesArray);          // ~120

Helper Function

$answer = ai('What is Laravel?');
$answer = ai('What is Laravel?', 'openai');
$answer = ai('What is Laravel?', 'anthropic', 'claude-sonnet-4-20250514');

Configuration

Set in .env:

AI_PROVIDER=ollama

# Ollama
AI_OLLAMA_URL=http://127.0.0.1:11434
AI_OLLAMA_MODEL=llama3.1:8b

# OpenAI
AI_OPENAI_KEY=sk-...
AI_OPENAI_MODEL=gpt-4o-mini

# Anthropic
AI_ANTHROPIC_KEY=sk-ant-...
AI_ANTHROPIC_MODEL=claude-sonnet-4-20250514

# DeepSeek
AI_DEEPSEEK_KEY=sk-...
AI_DEEPSEEK_MODEL=deepseek-chat

Custom Driver

Add your own AI provider:

// AppServiceProvider@boot
AI::extend('groq', function ($config) {
    return new GroqDriver($config);
});

// Use it
AI::provider('groq')->chat($messages);

Response Object

$response->getContent();          // string
$response->getPromptTokens();     // int
$response->getCompletionTokens(); // int
$response->getTotalTokens();      // int
$response->getModel();            // string
$response->getProvider();         // string
$response->getRaw();              // array (raw API response)
$response->toArray();             // array

Testing

vendor/bin/phpunit

Support & Donations

If this package helps you, consider supporting its development:

Buy Me A Coffee GitHub Sponsors

Credits

License

MIT License. See LICENSE for details.