mozex / anthropic-laravel
Anthropic PHP for Laravel is a supercharged PHP API client that allows you to interact with the Anthropic API
Fund package maintenance!
mozex
Installs: 2 492
Dependents: 0
Suggesters: 0
Security: 0
Stars: 27
Watchers: 2
Forks: 2
Open Issues: 0
Requires
- php: ^8.1.0
- guzzlehttp/guzzle: ^7.8.1
- laravel/framework: ^9.46.0|^10.34.2|^11.0
- mozex/anthropic-php: ^v1.0.2
Requires (Dev)
- laravel/pint: ^1.16.1
- pestphp/pest: ^2.34.7
- pestphp/pest-plugin-arch: ^2.7
- phpstan/phpstan: ^1.11.2
- spatie/ray: ^1.41
- symfony/var-dumper: ^6.4.0|^7.0.1
README
Anthropic Laravel is a community-maintained PHP API client that allows you to interact with the Anthropic API. This package is based on the excellent work of Nuno Maduro and Sandro Gehri.
Note: This repository contains the integration code of the Anthropic PHP for Laravel. If you want to use the Anthropic PHP client in a framework-agnostic way, take a look at the mozex/anthropic-php repository.
Table of Contents
- Support Us
- Get Started
- Configuration
- Usage
- Testing
- Changelog
- Contributing
- Security Vulnerabilities
- Credits
- License
Support us
Creating and maintaining open-source projects requires significant time and effort. Your support will help enhance the project and enable further contributions to the PHP community.
Sponsorship can be made through the GitHub Sponsors program. Just click the "Sponsor" button at the top of this repository. Any amount is greatly appreciated, even a contribution as small as $1 can make a big difference and will go directly towards developing and improving this package.
Thank you for considering sponsoring. Your support truly makes a difference!
Get Started
Requires PHP 8.1+
First, install Anthropic via the Composer package manager:
composer require mozex/anthropic-laravel
Next, execute the install command:
php artisan anthropic:install
This will create a config/anthropic.php
configuration file in your project, which you can modify to your needs
using environment variables.
Blank environment variable for the Anthropic API key is already appended to your .env
file.
ANTHROPIC_API_KEY=sk-...
Finally, you may use the Anthropic
facade to access the Anthropic API:
use Anthropic\Laravel\Facades\Anthropic; $result = Anthropic::messages()->create([ 'model' => 'claude-3-opus-20240229', 'max_tokens' => 1024, 'messages' => [ ['role' => 'user', 'content' => 'Hello!'], ], ]); echo $result->content[0]->text; // Hello! How can I assist you today?
Configuration
Configuration is done via environment variables or directly in the configuration file (config/anthropic.php
).
Anthropic API Key
Specify your Anthropic API Key. This will be used to authenticate with the Anthropic API - you can find your API key on your Anthropic dashboard, at https://console.anthropic.com/settings/keys.
ANTHROPIC_API_KEY=
Request Timeout
The timeout may be used to specify the maximum number of seconds to wait for a response. By default, the client will time out after 30 seconds.
ANTHROPIC_REQUEST_TIMEOUT=
Usage
For usage examples, take a look at the mozex/anthropic-php repository.
Testing
The Anthropic
facade comes with a fake()
method that allows you to fake the API responses.
The fake responses are returned in the order they are provided to the fake()
method.
All responses are having a fake()
method that allows you to easily create a response object by only providing the parameters relevant for your test case.
use Anthropic\Laravel\Facades\Anthropic; use Anthropic\Responses\Completions\CreateResponse; Anthropic::fake([ CreateResponse::fake([ 'completion' => 'awesome!', ]), ]); $completion = Anthropic::completions()->create([ 'model' => 'claude-2.1', 'prompt' => '\n\nHuman: PHP is \n\nAssistant:', 'max_tokens_to_sample' => 100, ]); expect($completion['completion'])->toBe('awesome!');
After the requests have been sent there are various methods to ensure that the expected requests were sent:
// assert completion create request was sent Anthropic::assertSent(Completions::class, function (string $method, array $parameters): bool { return $method === 'create' && $parameters['model'] === 'claude-2.1' && $parameters['prompt'] === 'PHP is '; });
For more testing examples, take a look at the mozex/anthropic-php repository.
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.