mozex/anthropic-laravel

Anthropic PHP for Laravel 是一个增强型的 PHP API 客户端,允许您与 Anthropic API 交互

资助包维护!
mozex

1.0.2 2024-08-15 13:40 UTC

This package is auto-updated.

Last update: 2024-09-15 13:59:24 UTC


README

Latest Version on Packagist GitHub Tests Workflow Status License

Anthropic Laravel 是一个由社区维护的 PHP API 客户端,允许您与 Anthropic API 交互。此包基于 Nuno MaduroSandro Gehri 的出色工作。

注意: 此存储库包含 Anthropic PHP for Laravel 的集成代码。如果您想以框架无关的方式使用 Anthropic PHP 客户端,请查看 mozex/anthropic-php 存储库。

目录

支持我们

创建和维护开源项目需要大量的时间和精力。您的支持将有助于提升项目,并使 PHP 社区能够做出更多贡献。

您可以通过 GitHub Sponsors 项目进行赞助。只需点击此存储库顶部的 "Sponsor" 按钮。任何金额都将是巨大的帮助,即使是一美元的小额捐款也能产生重大影响,并将直接用于开发和改进此包。

感谢您考虑赞助。您的支持确实产生了影响!

入门

需要 PHP 8.1+

首先,通过 Composer 包管理器安装 Anthropic

composer require mozex/anthropic-laravel

然后,执行安装命令

php artisan anthropic:install

这将创建一个 config/anthropic.php 配置文件在您的项目中,您可以使用环境变量进行修改以满足您的需求。用于 Anthropic API 键的空环境变量已经附加到您的 .env 文件中。

ANTHROPIC_API_KEY=sk-...

最后,您可以使用 Anthropic 门面来访问 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?

配置

配置是通过环境变量或直接在配置文件(config/anthropic.php)中完成的。

Anthropic API 密钥

指定您的 Anthropic API 密钥。这将用于通过 Anthropic API 进行身份验证 - 您可以在 Anthropic 控制面板的 https://console.anthropic.com/settings/keys 上找到您的 API 密钥。

ANTHROPIC_API_KEY=

请求超时

超时可用于指定等待响应的最大秒数。默认情况下,客户端将在 30 秒后超时。

ANTHROPIC_REQUEST_TIMEOUT=

使用

有关使用示例,请参阅 mozex/anthropic-php 存储库。

测试

Anthropic 门面包含一个 fake() 方法,允许您伪造 API 响应。

伪造的响应将按照提供给 fake() 方法的顺序返回。

所有响应都包含一个 fake() 方法,允许您通过仅提供与您的测试用例相关的参数来轻松创建响应对象。

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!');

发送请求后,有各种方法可以确保发送了预期的请求。

// 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 ';
});

更多测试示例,请查看 mozex/anthropic-php 仓库。

变更日志

有关最近更改的更多信息,请参阅 CHANGELOG

贡献

有关详细信息,请参阅 CONTRIBUTING

安全漏洞

有关如何报告安全漏洞的详细信息,请参阅 我们的安全策略

鸣谢

许可

MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件