Amazon Bedrockには、Bedrock Studioという機能が提供されています。本日(24/07/08)時点でプレビューリリースです。
Bedrock Studioとは
Bedrock Studioは組織内の生成AIアプリケーション開発者向けにWebベースのプロトタイピング環境を提供するサービスです。ユーザー管理にIAM Identity Centerを使うため、AWSを利用しない人(=IAMユーザーを持たない人)にもBedrockだけ使える環境を提供できます。
Bedrock Studioの主要な機能
Bedrock Studioの主な機能は「プレイグラウンド」と「アプリ」です。
プレイグラウンド
プレイグラウンドは、素の生成AIとチャットができる機能です。
アプリ
アプリは、Bedrockの機能を組み合わせてアプリを構築する機能です。組み合わせられる機能は「コンポーネント」として用意されています。コンポーネントは、以下の3種類あります。
- ナレッジベース
- ガードレール
- ファンクション
各コンポーネントを解説します。
ナレッジベース
ナレッジベースは、Bedrockの「Knowledge Bases for Amazon Bedrock」に相当する機能です。PDFなどの対応ドキュメントを登録することで、ベクトルDBを構築できます。
Knowledge Bases for Amazon Bedrock自体が簡単にベクトルDBを構築できる機能ですが、Bedrock Studioのナレッジベースは更に設定可能項目が絞られており、ほぼ ドキュメントをアップロードするだけ で利用できます。
ガードレール
ガードレールは、Bedrockの「Guardrails for Amazon Bedrock」に相当する機能です。「Hate」「Insults」「Sexual」「Violence」の4つの指標でコンテンツフィルターを設定できます。(Guardrails for Amazon Bedrockでは他に「Misconduct」や「Prompt Attack」に対するフィルターも可能です)
ファンクション
ファンクションは、Bedrockの「Agents for Amazon Bedrock」のアクショングループに相当する機能です。
Agents for Amazon Bedrockは「アクショングループ」としてLambdaを指定し、エージェント機能を構築する機能です。Lambdaのプログラムは自分で実装する必要があります。ナレッジベースやガードレールを指定することもできます。
Bedrock Studioのファンクションでは、 Lambdaが自動で作成されます 。Bedrock Studio利用者は Lambdaから呼び出す外部API をOpenAPIスキーマで指定します。
OpenAPIスキーマは、このような形で作成します。
Google検索を行うAPI
openapi: 3.0.3
info:
title: Google Custom Search JSON API
description: Google Custom Search JSON API. (https://developers.google.com/custom-search/v1/using_rest)
version: 1.0.0
servers:
- url: https://www.googleapis.com
paths:
/customsearch/v1:
get:
summary: Google search.
description: Google search.
security:
- APIkey: []
- ProgrammableSearchEngineID: []
parameters:
- name: q
in: query
description: Search query
required: true
schema:
type: string
- name: lr
in: query
description: Restricts the search to documents written in a particular language (e.g., lr=lang_ja).
schema:
type: string
enum:
- lang_en
- lang_ja
- name: num
in: query
description: Number of search results to return.Valid values are integers between 1 and 10, inclusive.
required: true
schema:
type: integer
responses:
'200':
description: Successful operation
content:
application/json:
schema: {}
components:
securitySchemes:
APIkey:
type: apiKey
in: query
name: key
ProgrammableSearchEngineID:
type: apiKey
in: query
name: cx
Wikipedia検索を行うAPI
openapi: 3.0.3
info:
title: Wikipedia API
description: Wikipedia API
version: 1.0.0
servers:
- url: https://ja.wikipedia.org
paths:
/w/api.php:
get:
description: |
Wikipediaから情報を取得するAPI。以下のいずれかの利用方法が可能です。
1. 検索(「進撃の巨人を検索する場合」) https://ja.wikipedia.org/w/api.php?action=query&list=search&format=json&srsearch=進撃の巨人
2. 概要取得(ページIDが2047223の概要を取得する場合) https://ja.wikipedia.org/w/api.php?action=query&format=json&prop=extracts&explaintext=1&exintro=1&pageids=2047223
parameters:
- name: action
in: query
description: desc
required: true
schema:
type: string
enum:
- query
- name: list
in: query
description: desc
schema:
type: string
enum:
- search
- name: format
in: query
description: desc
required: true
schema:
type: string
enum:
- json
- name: srsearch
in: query
description: desc
schema:
type: string
- name: pageids
in: query
description: desc
schema:
type: string
- name: prop
in: query
description: desc
schema:
type: string
enum:
- extracts
- name: explaintext
in: query
description: desc
schema:
type: string
enum:
- "1"
- name: exintro
in: query
description: desc
schema:
type: string
enum:
- "1"
responses:
'200':
description: Successful operation
content:
application/json:
schema: {}
Bedrock Studioの利用者が、AWSのことを意識しなくてよいように工夫されていますね。ただ、外部API(=パブリックなAPI)を呼び出す仕組みのため、利用したい機能が同じAWSアカウント内のプライベートなAPIの場合は直接呼び出すことができないので注意が必要です。
ファンクションは認証情報を含めることもできます。(認証情報はSecrets Managerで管理されます。もちろん利用者が意識する必要はありません)
デモ動画
作成しました!