6
2

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で管理されます。もちろん利用者が意識する必要はありません)

デモ動画

作成しました!

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2