Mem0 supports LangChain as a provider to access a wide range of embedding models. LangChain is a framework for developing applications powered by language models, making it easy to integrate various embedding providers through a consistent interface.For a complete list of available embedding models supported by LangChain, refer to the LangChain Text Embedding documentation.
import osfrom mem0 import Memoryfrom langchain_openai import OpenAIEmbeddings# Set necessary environment variables for your chosen LangChain provideros.environ["OPENAI_API_KEY"] = "your-api-key"# Initialize a LangChain embeddings model directlyopenai_embeddings = OpenAIEmbeddings( model="text-embedding-3-small", dimensions=1536)# Pass the initialized model to the configconfig = { "embedder": { "provider": "langchain", "config": { "model": openai_embeddings } }}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", metadata={"category": "movies"})
LangChain supports a wide range of embedding providers, including:
OpenAI (OpenAIEmbeddings)
Cohere (CohereEmbeddings)
Google (VertexAIEmbeddings)
Hugging Face (HuggingFaceEmbeddings)
Sentence Transformers (HuggingFaceEmbeddings)
Azure OpenAI (AzureOpenAIEmbeddings)
Ollama (OllamaEmbeddings)
Together (TogetherEmbeddings)
And many more
You can use any of these model instances directly in your configuration. For a complete and up-to-date list of available embedding providers, refer to the LangChain Text Embedding documentation.