To use AWS Bedrock embedding models, you need to have the appropriate AWS credentials and permissions. The embeddings implementation relies on the boto3 library.

Setup

  • Ensure you have model access from the AWS Bedrock Console
  • Authenticate the boto3 client using a method described in the AWS documentation
  • Set up environment variables for authentication:
    export AWS_REGION=us-east-1
    export AWS_ACCESS_KEY_ID=your-access-key
    export AWS_SECRET_ACCESS_KEY=your-secret-key
    

Usage

import os
from mem0 import Memory

# For LLM if needed
os.environ["OPENAI_API_KEY"] = "your-openai-api-key"

# AWS credentials
os.environ["AWS_REGION"] = "us-east-1"
os.environ["AWS_ACCESS_KEY_ID"] = "your-access-key"
os.environ["AWS_SECRET_ACCESS_KEY"] = "your-secret-key"

config = {
    "embedder": {
        "provider": "aws_bedrock",
        "config": {
            "model": "amazon.titan-embed-text-v1"
        }
    }
}

m = Memory.from_config(config)
messages = [
    {"role": "user", "content": "I'm planning to watch a movie tonight. Any recommendations?"},
    {"role": "assistant", "content": "How about a thriller movies? They can be quite engaging."},
    {"role": "user", "content": "I'm not a big fan of thriller movies but I love sci-fi movies."},
    {"role": "assistant", "content": "Got it! I'll avoid thriller recommendations and suggest sci-fi movies in the future."}
]
m.add(messages, user_id="alice")

Config

Here are the parameters available for configuring AWS Bedrock embedder:

ParameterDescriptionDefault Value
modelThe name of the embedding model to useamazon.titan-embed-text-v1