LaravelでAWS Bedrockを使ってテキストを生成する

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アプリケーションを簡単に連携させるためのツールです。

インストール手順

  1. aws/aws-sdk-php-laravelの公式サイトにアクセスします。
  2. インストールガイドに従ってセットアップを完了させます。

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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください