7
1

どうもこんにちは。

今回は、Amazon BedrockのKnowledgeBaseを使ったRAGをRailsアプリケーションで行ってみました。

pineconeやKnowledgeBaseのセットアップ方法、AWSコンソール上でのテストについては、さまざまな方が記事にしているので、自分はRailsでの使い方にフォーカスして話を進めます。

環境

Ruby: 3.2.2
Rails: 7.1.3.4
リージョン: バージニア北部(東京リージョンだとpineconeが使えなかったので...)

前提条件

以下の記事を参考にして、pineconeやKnowledgeBaseをセットアップしたものとして話を進めます。

Railsへの実装

1. ライブラリインストール

Gemfileに記載して、インストールします。

gem 'aws-sdk-bedrockagentruntime'
bundle install

2. Bedrockクライアント設定

access_key = 'XXXXXXXXXXXXXXXXXXX'
secret_access_key = 'YYYYYYYYYYYYYYYYYYYYYYYYYY'
credentials = Aws::Credentials.new(access_key, secret_access_key)
bedrock_client = Aws::BedrockAgentRuntime::Client.new(region: 'us-east-1', credentials: credentials)

3. インプット文章の用意

input = {
    "text": "私は日本人なので、日本語で教えてください。「<好きな質問してください。>」}"
}

4. APIのための設定

config = {
    knowledge_base_configuration: {
    knowledge_base_id: "ZZZZZZZZZZZZ",
    model_arn: "arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-3-haiku-20240307-v1:0",
    retrieval_configuration: {
            vector_search_configuration: {
                override_search_type: "SEMANTIC"
            }
        }
    },
    type: "KNOWLEDGE_BASE"
}

5. リクエスト実行

prompt = {
    input: input,
    retrieve_and_generate_configuration: config
}
response = bedrock_client.retrieve_and_generate(prompt)

6. レスポンス出力

completion_value = response.output.text

以上

7
1
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
7
1