Bedrock Knowledge baseを使って今年の上半期のニュースを聞いてみた(リベンジ編)
by
KMiura
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Bedrock Knowledge baseを使って今年 の上半期のニュースを聞いてみた (リベンジ編) KMiura(@k_miura_io)
Slide 2
Slide 2 text
自己紹介 • 三浦 耕生(こうき) • Acallのバックエンドエンジニア • JAWS UG名古屋&神戸 運営 • Cloudflare Meetup名古屋 運営 • 鯱.py 運営 @k_miura_io koki.miura05
Slide 3
Slide 3 text
このイベントでやったLT覚えてますか?
Slide 4
Slide 4 text
LTについて今北産業 • Step FunctionsでNews APIを使ってその日のヘッ ドラインニュースをSlackのAPIで投稿するワークフ ロー作った • Slackで投稿するだけではなくAPIのレスポンスログ をS3に溜め込むETL的な機能も用意 • S3に溜め込んだデータをそのままBedrockに使うと いう話
Slide 5
Slide 5 text
S3のデータをKnowledgebaseにできる 仕組みがあるらしい • Amazon BedrockのKnowledgebaseを使うとS3をソースにフルマネージドなRAGを実現 できそう • 調べてみると外部のベクトルデータベースを使う方法があるが、わざわざ用意しなくても OpenSearch Serverlessを使うことができる(むしろ今のところそれが推奨っぽい)
Slide 6
Slide 6 text
実際にデモチャットで確認 • 答えは帰って来るがなんか微妙… • 日付周りが結構弱い
Slide 7
Slide 7 text
どうすれば精度上がりそう? • 読み込ませたソースになっているファイルがAPIのレスポンスをそのまま保存して いるだけなのでCSVとかで整形したほうがいいかも • ソースごとにメタデータ情報を記載したjsonファイルをバケットに足すことで応答精 度が上がるそう 今回はこれを試してリベンジする話
Slide 8
Slide 8 text
データ生成のフロー • すでに存在するAPIのレスポンスログを溜め込むバケットにデータが保存されたこ とをトリガーでKnowledge Base用のデータを整形 • SQSに流し込んでLambdaでCSVとmetadataのjsonの生成を自動化 • ベクトルデータベースにはPineconeを使用(OpenSearchは高すぎるw)
Slide 9
Slide 9 text
生成したデータフォーマット
Slide 10
Slide 10 text
metadata { "metadataAttributes":{ ”year":”2024" } }
Slide 11
Slide 11 text
それっぽい返答が 出るようになった
Slide 12
Slide 12 text
上半期のニュースも 抽出できた
Slide 13
Slide 13 text
DEMO
Slide 14
Slide 14 text
まとめ • BedrockのKnowledge Baseに対応したデータフォーマットに変換するこ とでAWS上で手軽にRAGを実現できる • metadataを活用することでより適切なデータを取得できた • 多少コードが書けるとデータ整形の自動化がだいぶ楽になる
Slide 15
Slide 15 text
宣伝 https://bit.ly/4dBnLIf
Slide 16
Slide 16 text
END