Upgrade to Pro — share decks privately, control downloads, hide ads and more …

初めての札幌と初めてのBedrock ~Bedrock Converse API×SAMで遊ん...

初めての札幌と初めてのBedrock ~Bedrock Converse API×SAMで遊んでみる~

2024/07/12 第36回 JAWS-UG札幌 勉強会【 #CloudflareUG_cts と合同開催です!】
https://jawsug-sapporo.connpass.com/event/321565/

mai miya

July 12, 2024
Tweet

More Decks by mai miya

Other Decks in Technology

Transcript

  1. ©Fusic Co., Ltd. 2 宮崎 真⾐ Miyazaki Mai HN: mai

    (@maimyyym ) ◉ I am - 管理栄養⼠(養成校卒業・資格保持のみ) - 元百貨店スタッフ(Beauty Counselor) - 2023年10⽉ Fusic⼊社 ◉ Skill - PHP / AWS / TypeScript / Python ◉ Comment - はじめての北の⼤地! ⾃⼰紹介 はじめに 事業本部 技術創造部⾨ / エンジニア 株式会社Fusic at 福岡
  2. ©Fusic Co., Ltd. 9 まずはこれ、Bedrock頻出単語 サラッと⾒てみるBedrock 。 基盤モデル(Foundation Model) ⽣成AIの⼀種。

    “基盤”なので様々なデータで 再トレーニングして、独⾃の複雑な タスク・アプリケーションに使える エージェント ユーザーの⼊⼒に対して、その達成に 必要なタスクを洗い出して実⾏する。 ざっくり:いい感じに処理してくれる。 RAG(検索拡張⽣成) 基盤モデルが学習していない内容(あ る個⼈や組織のプライベートなデータ とか)を外部ソースとして読みに⾏っ てレスポンスを⽣成できる仕組み ナレッジベース ある企業・組織・ドメイン等において ナレッジ=データ=情報を 集約・蓄積したもの。 RAGの外部ソースとなりうるもの。 ※⼝頭での説明はとばします
  3. ©Fusic Co., Ltd. 11 Converse API SAM × Bedrock Converse

    API Converse APIとは 従来のInvokeModel APIはモデルに よって呼び出し⽅が違った。 Converse APIはモデルの種類によらず 同じインターフェースで実⾏可能。 client = boto3.client("bedrock-runtime") inferenceConfig = { "temperature": 0.1, "maxTokens": 500, "topP": 0.9, } modelId = ”anthropic.claude-v2” prompt = "Who are you?” messages = [{ "role": "user", "content": [{"text": prompt}] }] response = client.converse( modelId=modelId, messages=messages, inferenceConfig=inferenceConfig ) 何が嬉しい? APIにアクセスする仕組みを⼀つ実装 するだけでBedrockの各モデルを簡単 にお試しできる! 同じコードで、 値を変えるだけで 実⾏可能!
  4. ©Fusic Co., Ltd. 13 SAMでローカルAPIサーバーを起動 SAM × Bedrock Converse API

    を実⾏すると、 $ sam local start-api --{option} http://localhost:3000 が APIエンドポイントに SAM
  5. ©Fusic Co., Ltd. 14 ConverseAPIを呼び出す SAM × Bedrock Converse API

    client = boto3.client("bedrock-runtime") inferenceConfig = { "temperature": 0.1, "maxTokens": 500, "topP": 0.9, } def handler(event, context): modelId = event["queryStringParameters"]["modelId"] prompt = event["queryStringParameters"]["prompt"] messages = [{ "role": "user", "content": [{"text": prompt}] }] response = client.converse( modelId=modelId, messages=messages, inferenceConfig=inferenceConfig ) クエリパラメータで モデルIDとプロンプトを指定 ※ローカルで簡単に検証するためのコードです Converse API 呼び出し SAM
  6. ©Fusic Co., Ltd. 15 APIテストツール”Postman”で⼿軽に実⾏ SAM × Bedrock Converse API

    GUIで簡単に値を変えて Bedrockを試すことができる
  7. ©Fusic Co., Ltd. 20 Thank You We are Hiring! https://recruit.fusic.co.jp/

    ご清聴いただきありがとうございました