modelflow-ai/anthropic-adapter

将anthropic集成到modelflow-ai中。

0.2.0 2024-08-25 18:33 UTC

This package is auto-updated.

Last update: 2024-08-25 18:52:45 UTC


README


Anthropic Adapter Logo

Modelflow AI
Anthropic Adapter


该适配器将Anthropic AI模型集成到Modelflow AI。

注意:这是modelflow-ai项目的一部分,请在主仓库中创建问题。

注意:该项目正在积极开发中,任何反馈都将非常受重视。


安装

要安装Anthropic Adapter包,您需要在您的计算机上安装PHP 8.2或更高版本以及Composer。然后,您可以通过运行以下命令将包添加到您的项目中:

composer require modelflow-ai/anthropic-adapter

示例

以下是一些如何在您的PHP应用程序中使用Anthropic Adapter的示例。您可以在示例目录中找到更多详细的示例。

用法

首先,初始化客户端

use ModelflowAi\Anthropic\Anthropic;

$client = Anthropic::client('your-api-key');

然后,您可以使用AnthropicChatModelAdapter

use ModelflowAi\Chat\Adapter\AIChatAdapterInterface;
use ModelflowAi\Chat\AIChatRequestHandler;
use ModelflowAi\Chat\Request\AIChatRequest;
use ModelflowAi\Chat\Request\Message\AIChatMessage;
use ModelflowAi\Chat\Request\Message\AIChatMessageRoleEnum;
use ModelflowAi\DecisionTree\DecisionTree;
use ModelflowAi\DecisionTree\Criteria\CapabilityCriteria;
use ModelflowAi\DecisionTree\DecisionRule;
use ModelflowAi\Anthropic\Model;
use ModelflowAi\AnthropicAdapter\Chat\AnthropicChatAdapter;
use ModelflowAi\PromptTemplate\ChatPromptTemplate;

$modelAdapter = new AnthropicChatAdapter($client, Model::CLAUDE_3_HAIKU);

/** @var DecisionTreeInterface<AIChatRequest, AIChatAdapterInterface> $decisionTree */
$decisionTree = new DecisionTree([
    new DecisionRule($modelAdapter, [CapabilityCriteria::SMART]),
]);
$handler = new AIChatRequestHandler($decisionTree);

$response = $handler->createRequest(
    ...ChatPromptTemplate::create(
        new AIChatMessage(AIChatMessageRoleEnum::SYSTEM, 'You are an {feeling} bot'),
        new AIChatMessage(AIChatMessageRoleEnum::USER, 'Hello {where}!'),
    )->format(['where' => 'world', 'feeling' => 'angry']),
)
    ->addCriteria(CapabilityCriteria::SMART)
    ->build()
    ->execute();

echo \sprintf('%s: %s', $response->getMessage()->role->value, $response->getMessage()->content);

贡献

欢迎贡献。请在https://github.com/modelflow-ai/.github的主仓库中打开一个问题或提交一个pull请求。

许可证

该项目受MIT许可证的许可。有关完整的版权和许可信息,请查看与源代码一起分发的LICENSE文件。