laravelai maintained by muradbdinfo
Description
Unified AI chat for Laravel — Ollama, OpenAI, Anthropic (Claude), DeepSeek. One interface, any AI.
Author
Last update
2026/05/09 18:11
(dev-main)
License
Downloads
68
Laravel AI
One interface, any AI. Unified AI chat for Laravel — Ollama, OpenAI (ChatGPT), Anthropic (Claude), DeepSeek.
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:
Credits
License
MIT License. See LICENSE for details.