Amazon Bedrock を使う

ショコラ
ショコラ

Amazon Bedrock を使う

もっさん先輩
もっさん先輩

Ubuntuコンテナ を起動します。

docker run -it ubuntu:20.04 bash

awscliコマンド をインストールします。

apt-get update
DEBIAN_FRONTEND=noninteractive apt-get install -y awscli

aws configure を実行します。

aws configure

こんな感じで入力すると、ホームに .aws フォルダーができあがります。

# aws configure
AWS Access Key ID [None]: XXXXXXXXXX
AWS Secret Access Key [None]: XXXXXXXXXX
Default region name [None]: ap-northeast-1
Default output format [None]:

★アクセスキーとシークレットアクセスキーは、「セキュリティ認証情報」の「アクセスキーを作成」で作成することができます。

npm をインストールします。

apt install npm

bedrock をインストールします。

npm i @aws-sdk/client-bedrock

PHP の ライブラリをインストールします。

composer require aws/aws-sdk-php
composer require aws/aws-sdk-php
apt-get update
DEBIAN_FRONTEND=noninteractive apt-get install -y awscli
sudo apt install unzip
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
<?php

namespace App\Console\Commands;
use Illuminate\Console\Command;

use Aws\S3\S3Client;
use Aws\Bedrock\BedrockClient;

use Aws\Sdk;
use Aws\Exception\AwsException;

class AwsBedrock extends Command
{
  protected $signature = 'bedrock';
  protected $description = '';

  public function handle()
  {
    $sdk = new Sdk([
      'region'  => 'us-east-1', // 使用するリージョンを指定
     #'region'  => 'us-west-2', // 使用するリージョンを指定
    ]);

    // Amazon Bedrockのクライアントを作成
    $bedrockClient = $sdk->createBedrockRuntime();

    // Bedrock API に テキスト を渡す
    $body = [
      'inputText'  => 'golf',
      'dimensions' => 512,
      'normalize'  => true,
    ];
    $result = $bedrockClient->invokeModel([
     "modelId"     => "amazon.titan-embed-text-v2:0",
     "body"        => json_encode($body),
     "contentType" => "application/json",
     "accept"      =>  "*/*",
    ]);

    // 結果の解析(ベクトルが含まれる場合)
    $output = json_decode($result['body']);
    $vector = $output->embedding;

    dd( $vector );
  }
}

以上

Scroll to Top