Vertex AI

To use Google Cloud’s Vertex AI for text embedding models, set the GOOGLE_APPLICATION_CREDENTIALS environment variable to point to the path of your service account’s credentials JSON file. These credentials can be created in the Google Cloud Console.

Usage

import os
from mem0 import Memory

# Set the path to your Google Cloud credentials JSON file
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "/path/to/your/credentials.json"
os.environ["OPENAI_API_KEY"] = "your_api_key" # For LLM

config = {
    "embedder": {
        "provider": "vertexai",
        "config": {
            "model": "text-embedding-004",
            "memory_add_embedding_type": "RETRIEVAL_DOCUMENT",
            "memory_update_embedding_type": "RETRIEVAL_DOCUMENT",
            "memory_search_embedding_type": "RETRIEVAL_QUERY"
        }
    }
}

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="john")

The embedding types can be one of the following:

  • SEMANTIC_SIMILARITY
  • CLASSIFICATION
  • CLUSTERING
  • RETRIEVAL_DOCUMENT, RETRIEVAL_QUERY, QUESTION_ANSWERING, FACT_VERIFICATION
  • CODE_RETRIEVAL_QUERY
    Check out the Vertex AI documentation for more information.

Config

Here are the parameters available for configuring the Vertex AI embedder:

ParameterDescriptionDefault Value
modelThe name of the Vertex AI embedding model to usetext-embedding-004
vertex_credentials_jsonPath to the Google Cloud credentials JSON fileNone
embedding_dimsDimensions of the embedding model256
memory_add_embedding_typeThe type of embedding to use for the add memory actionRETRIEVAL_DOCUMENT
memory_update_embedding_typeThe type of embedding to use for the update memory actionRETRIEVAL_DOCUMENT
memory_search_embedding_typeThe type of embedding to use for the search memory actionRETRIEVAL_QUERY