Appearance
第3章 Amazon Bedrockによる生成AIの活用
3.1 Amazon Bedrockの基本概念とメリット
Amazon Bedrock(アマゾン・ベッドロック)は、世界中の有名なAI開発会社(Anthropic、Meta、Mistral AIなど)が作成したさまざまな超高性能AIモデルを、共通の接続口(API)を通して簡単に利用できるサーバーレスサービスです。
自分たちで巨大なAIを動かすための高性能なサーバーを購入して管理する必要がなく、インターネット経由でAIに文字を送信し、返答を受け取ることができます。また、セキュリティ対策が非常に厳格であり、AIに送信した質問内容や社内データが、外部のAIの学習用データとして勝手に再利用されることがありません。これにより、企業の機密情報を扱う場合でも、安心して高性能な生成AIをシステムに組み込むことができます。
3.2 boto3を使用したモデル呼び出しコード
PythonプログラムからAmazon Bedrockを利用するには、AWSが公式に提供しているライブラリである boto3 を使用します。
以下は、推奨されている最新の converse(会話用)APIを使用して、高性能AIモデルである「Anthropic Claude 3.5 Sonnet」を呼び出してテキストを生成させるためのPythonコード例です。
python
import boto3
# 1. Amazon Bedrock用のクライアント(通信窓口)を初期化します
# ※AWSのクレデンシャル(認証情報)が設定されている環境を前提とします
client = boto3.client(
service_name="bedrock-runtime",
region_name="us-east-1" # Bedrockが利用可能な地域を指定します
)
# 2. 使用するAIモデルの識別番号(モデルID)を指定します
# ここではAnthropic社のClaude 3.5 Sonnetを指定しています
model_id = "anthropic.claude-3-5-sonnet-20240620-v1:0"
# 3. 送信するメッセージのリストを組み立てます
messages = [
{
"role": "user",
"content": [{"text": "Amazon Bedrockのメリットを、中学生にもわかるように短く箇条書きで教えて。"}]
}
]
try:
# 4. モデルを呼び出して推論を実行します(Converse API)
response = client.converse(
modelId=model_id,
messages=messages,
inferenceConfig={
"maxTokens": 500, # 出力する最大のトークン数(文字量の目安)
"temperature": 0.5 # 回答のランダムさ(低いほど実用的で安定します)
}
)
# 5. 返ってきた応答データから回答文のテキストを取り出して表示します
output_text = response["output"]["message"]["content"][0]["text"]
print(output_text)
except Exception as e:
print(f"エラーが発生しました: {e}")このコードを実行することで、AWS上の安全な通信を経由して、最新のAIモデルからの的確な回答を取得することができます。