LaravelでAWS Bedrockを活用する方法について解説します。
AWS SDK for PHPとBedrockRuntimeClientのセットアップ、そしてMetaのLlama 2 70BとAnthropicのClaude 2の使用方法を説明しします。
aws/aws-sdk-php-laravelのインストール
LaravelでAWS SDK for PHPを使うために、aws/aws-sdk-php-laravelをインストールする必要があります。
このライブラリは、AWSの各種サービスとLaravelアプリケーションを簡単に連携させるためのツールです。
インストール手順
- aws/aws-sdk-php-laravelの公式サイトにアクセスします。
- インストールガイドに従ってセットアップを完了させます。
BedrockRuntimeClientの作成
BedrockRuntimeClientを作成します。
use Aws\BedrockRuntime\BedrockRuntimeClient;
/** @var BedrockRuntimeClient $client */
$client = App::make('aws')->createClient('bedrockruntime');
このクライアントを使用して、AWSの機能をLaravelアプリケーション内で活用できます。
MetaのLlama 2 70Bを使う
MetaのLlama 2 70Bモデルを使用して、AIによるテキスト生成を試みます。
パラメータの設定
$body = [
'prompt' => $prompt,
'max_gen_len' => 512,
'temperature' => 0.5,
'top_p' => 0.9,
];
モデルの実行とレスポンスの取得
モデルを実行し、生成されたテキストを取得します。
$response = $client->invokeModel([
'body' => json_encode($body),
'modelId' => 'meta.llama2-70b-chat-v1',
]);
/** @var Stream $body */
$body = $response['body'];
$response_body = json_decode($body->getContents());
$result = trim($response_body->generation);
AnthropicのClaude 2を使う
AnthropicのClaude 2モデルも同様に使用できますが、リクエストとレスポンスの形式がわずかに異なります。
$body = [
'prompt' => $prompt,
'max_tokens_to_sample' => 512,
'temperature' => 0.5,
'top_p' => 0.9,
];
$response = $client->invokeModel([
'body' => json_encode($body),
'modelId' => 'anthropic.claude-v2',
]);
/** @var Stream $body */
$body = $response['body'];
$response_body = json_decode($body->getContents());
$result = trim($response_body->completion);