🧠
Amazon Bedrock Knowledge Basesがストリーミングレスポンスに対応しました
Amazon Bedrock Knowledge Basesがストリーミングレスポンスに対応したので、試してみました。
何ができるのか
今まででAmazon Bedrock Knowledge Basesでストリーミングレスポンスに対応する場合、retrieve apiでKBから結果を取得しプロンプトを生成し、そのプロンプトをinvoke_model_with_response_stream apiを使ってストリーミングレスポンスを実現していました。
しかし、今回のアップデートでわざわざinvoke_model_with_response_stream apiを挟まなくとも、KBだけでストリーミングレスポンスを実現できるようになりました。
事前準備
- boto3の最新化
- KBの作成
実際に触ってみた
実際に使用するコードは以下の通りです。弊社の公開事例RAGにAWS事例を聞いてみました。
import boto3
client = boto3.client('bedrock-agent-runtime')
question = 'AWS事例を教えてください。'
modelArn = 'arn:aws:bedrock:us-west-2::foundation-model/anthropic.claude-3-5-haiku-20241022-v1:0'
knowledgeBaseId = 'knowledgeBaseId'
response = client.retrieve_and_generate_stream(
input={
'text': question
},
retrieveAndGenerateConfiguration={
'knowledgeBaseConfiguration': {
'modelArn': modelArn,
'knowledgeBaseId': knowledgeBaseId,
},
'type': 'KNOWLEDGE_BASE',
},
)
for event in response["stream"]:
if "output" in event:
print(event["output"]["text"])
実行結果は以下の通りです。
retrieve_and_generate_stream apiを使用するだけで、ストリーミングレスポンスが可能になりました。
まとめ
今までinvoke_model_with_response_stream apiを使用しないとKBのストリーミングレスポンスができなかったのですが、retrieve_and_generate_stream apiでKBのストリーミングレスポンスが可能になりました。最近のKBはなんでもできるようになってきているので、これを機にKBに移行するのも良いのかもしれません。
Discussion