Skip to content

Commit

Permalink
Merge branch 'release/0.2.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
Maki committed May 5, 2024
2 parents f8adecc + efc810f commit 9af332c
Show file tree
Hide file tree
Showing 6 changed files with 133 additions and 1 deletion.
2 changes: 2 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,6 @@ RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2
RUN unzip awscliv2.zip
RUN sudo ./aws/install

RUN pip install --upgrade boto3 art termcolor

WORKDIR /app
5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,11 @@ upload: ./.env_sample to s3://test-20210711/.env_sample

おめでとうございます!Docker コンテナ内で AWS CLI v2 を設定して使用することに成功しました。


## 📚 サンプルスクリプト

AWS Bedrock の使用例を示すサンプルスクリプトが `example` ディレクトリに含まれています。詳細については、[example/README.md](example/README.md) を参照してください。

## 🛠️ プロジェクト構造

プロジェクトの構造は次のようになっています。
Expand Down
2 changes: 1 addition & 1 deletion docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,6 @@ services:
env_file:
- .env
environment:
AWS_DEFAULT_REGION: ap-northeast-1
AWS_DEFAULT_REGION: us-east-2
AWS_DEFAULT_OUTPUT: json
tty: true
48 changes: 48 additions & 0 deletions example/01_list_bedrock_models.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
import boto3
import json
import pprint
from termcolor import colored
from art import *
import os

def main():
# スクリプト名を取得して出力
script_name = os.path.basename(__file__)
tprint(script_name)

# Bedrockクライアントの作成
region_name = "us-east-1" # 指定可能なリージョンはバージニア北部(us-east-1)またはオレゴン(us-west-2)
bedrock = create_bedrock_client(region_name)

# ファウンデーションモデルの一覧を取得して出力
foundation_models = get_foundation_models(bedrock)
print_foundation_models(foundation_models)

def create_bedrock_client(region_name):
"""
Bedrockクライアントを作成する関数
:param region_name: リージョン名
:return: Bedrockクライアント
"""
return boto3.client("bedrock", region_name=region_name)

def get_foundation_models(bedrock):
"""
ファウンデーションモデルの一覧を取得する関数
:param bedrock: Bedrockクライアント
:return: ファウンデーションモデルの一覧
"""
return bedrock.list_foundation_models()["modelSummaries"]

def print_foundation_models(foundation_models):
"""
ファウンデーションモデルの一覧を出力する関数
:param foundation_models: ファウンデーションモデルの一覧
"""
pprint.pprint(foundation_models)

if __name__ == "__main__":
main()
54 changes: 54 additions & 0 deletions example/02_bedrock_text_generation.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
import boto3
import json

# Bedrockクライアントを初期化する関数
def initialize_bedrock_client(region="us-west-2"):
"""
指定されたリージョンでBedrockクライアントを初期化します。
指定可能なリージョンはバージニア北部(us-east-1)またはオレゴン(us-west-2)です。
デフォルトリージョンで良い場合はリージョン指定省略可能です。
"""
return boto3.client('bedrock-runtime', region_name=region)

# Bedrockモデルにリクエストを送信する関数
def send_request_to_bedrock(client, model_id, message, max_tokens=1000):
"""
指定されたBedrockモデルにリクエストを送信し、応答を返します。
"""
body = json.dumps(
{
"anthropic_version": "bedrock-2023-05-31",
"max_tokens": max_tokens,
"messages": [
{
"role": "user",
"content": message
}
]
}
)
accept = 'application/json'
content_type = 'application/json'
response = client.invoke_model(body=body, modelId=model_id, accept=accept, contentType=content_type)
response_body = json.loads(response.get('body').read())
return response_body["content"][0]["text"]

# メインの処理
def main():
# Bedrockクライアントを初期化
bedrock_client = initialize_bedrock_client()

# 使用するモデルIDを指定
model_id = 'anthropic.claude-3-haiku-20240307-v1:0'

# モデルに送信するメッセージ
message = "味噌汁の作り方を説明してください"

# Bedrockモデルにリクエストを送信し、応答を取得
answer = send_request_to_bedrock(bedrock_client, model_id, message)

# 応答を表示
print(answer)

if __name__ == "__main__":
main()
23 changes: 23 additions & 0 deletions example/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Examples

このディレクトリには、MOA プロジェクトの使用例を示すサンプルスクリプトが含まれています。

## 01_list_bedrock_models.py

このスクリプトは、AWS Bedrock で利用可能なファウンデーションモデルの一覧を取得して表示します。主な手順は以下の通りです。

1. Bedrock クライアントを作成
2. `list_foundation_models()` メソッドを使用してファウンデーションモデルの一覧を取得
3. 取得したファウンデーションモデルの一覧を表示

## 02_bedrock_text_generation.py

このスクリプトは、AWS Bedrock のモデルを使用してテキスト生成を行う方法を示しています。主な手順は以下の通りです。

1. Bedrock クライアントを初期化
2. 使用するモデル ID を指定
3. モデルに送信するメッセージを設定
4. `invoke_model()` メソッドを使用してモデルにリクエストを送信し、応答を取得
5. 取得した応答を表示

これらのスクリプトを参考に、AWS Bedrock の機能を活用したアプリケーションを開発できます。

0 comments on commit 9af332c

Please sign in to comment.