artisan-build / llm
A package that wraps several LLM providers for Laravel
Fund package maintenance!
Artisan Build
Requires
- php: ^8.2
- illuminate/contracts: ^10.0||^11.0
- openai-php/client: ^0.9.2
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- larastan/larastan: ^2.9
- laravel/pint: ^1.14
- nunomaduro/collision: ^8.1.1||^7.10.0
- orchestra/testbench: ^9.0.0||^8.22.0
- pestphp/pest: ^2.34
- pestphp/pest-plugin-arch: ^2.7
- pestphp/pest-plugin-laravel: ^2.3
- phpstan/extension-installer: ^1.3
- phpstan/phpstan-deprecation-rules: ^1.1
- phpstan/phpstan-phpunit: ^1.3
- spatie/laravel-ray: ^1.35
This package is auto-updated.
Last update: 2024-11-20 10:30:22 UTC
README
First of all, I want to acknowledge the amazing work that Nuno and Sandro have done managing the openai-php projects including the Laravel wrapper that this package replaces for us. We wrote this package to meet a few specific needs:
- We need to allow users to bring their own keys and the way the client is created in the openai-php/laravel package makes that impossible.
- We wanted to add hooks before the request is made and after the response is received.
- We wanted to simplify the use of Azure and OpenRouter.ai
If none of those apply to you, then the openai-php/laravel package is a great choice, and you'll get no additional benefit from using this instead.
Support us
You can support our open-source work by sponsoring Len Woodward. Since Ed lives in Europe where taxes are a bit more complicated, he doesn't participate in the sponsorship program, but you are welcome to buy him a beer if you see him at a conference.
Installation
You can install the package via composer:
composer require artisan-build/llm
You can publish the config file with:
php artisan vendor:publish --tag="llm-config"
This is the contents of the published config file:
return [ 'azure' => [ 'deployment_id' => env('AZURE_DEPLOYMENT_ID'), 'resource_id' => env('AZURE_RESOURCE_ID'), 'version' => env('AZURE_VERSION'), ], 'openai' => [ 'api_key' => env('OPENAI_API_KEY'), 'organization' => env('OPENAI_ORGANIZATION'), ], 'openrouter' => [ 'api_key' => env('OPEN_ROUTER_API_KEY'), ], 'request_timeout' => env('OPENAI_REQUEST_TIMEOUT', 30), ]
Usage
For the full documentation, please visit our documentation site
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
License
The MIT License (MIT). Please see License File for more information.