adeel696 / ai-wrapper
A Laravel AI Wrapper
v1.0.0
2025-05-22 11:31 UTC
README
adeel696/ai-wrapper is a Laravel package that provides a unified interface to interact with multiple AI providers such as OpenAI (ChatGPT), Anthropic Claude, and Google Gemini โ all from a simple, Laravel-friendly wrapper.
๐ Features
- ๐ Unified interface for multiple AI providers
- ๐ง Support for OpenAI, Claude (Anthropic), and Gemini (Google)
- ๐ฆ Works out of the box with Laravel's config and service provider system
- ๐ Runtime switching of providers and models (
setProvider()
,setModel()
) - ๐งฐ Wrapper methods like
chat
,summarize
,translate
,embed
, and more - ๐งช Easy to extend with additional providers
๐ฆ Installation
composer require adeel696/ai-wrapper
โ๏ธ Configuration & ๐งช Usage
php artisan vendor:publish --tag=config
Update config/ai.php as needed:
return [ 'default_provider' => 'openai', 'default_model' => 'gpt-3.5-turbo', 'providers' => [ 'openai' => ['api_key' => env('OPENAI_API_KEY')], 'anthropic' => ['api_key' => env('ANTHROPIC_API_KEY')], 'google' => ['api_key' => env('GOOGLE_AI_API_KEY')], ], 'models' => [ 'openai' => ['default' => 'gpt-3.5-turbo'], 'claude' => ['default' => 'claude-3-opus-20240229'], 'gemini' => ['default' => 'gemini-pro'], ], ];
In your .env file, add the relevant API keys:
OPENAI_API_KEY=your-openai-api-key ANTHROPIC_API_KEY=your-anthropic-api-key GOOGLE_AI_API_KEY=your-google-api-key
Import and Initialize
use adeel696\AiWrapper\AiManager; $ai = new AiManager();
Usage Examples
๐ Set Provider and Model (Optional)
$ai->setProvider('claude')->setModel('claude-3-opus-20240229');
๐ฌ Chat (Default Provider)
$response = $ai->chat("Tell me about Laravel."); echo $response;
๐ Summarize Text
$text = "Laravel is a PHP framework designed for web artisans..."; echo $ai->summarize($text);
๐ Translate Text
echo $ai->translate("How are you?", "es");
๐ง Embed Text (for semantic search)
$vector = $ai->embed("What is AI?"); print_r($vector);
๐ง Transcribe Audio
$response = $ai->transcribeAudio(storage_path('audio/voice.mp3')); echo $response;
๐งฉ Stream Output (if supported by provider)
$ai->stream("Tell me a joke.", function ($chunk) { echo $chunk; });