What Are Embeddings??

Embeddings transform text, images, and other media into dense numeric vectors that capture their underlying meaning. This makes it possible for machines to perform semantic search, similarity, recommendations, clustering, RAG, and more.

How Text & Image Embeddings Work

Text embeddings turn sentences or documents into high-dimensional vectors that capture meaning.
Example:

  • “A young boy is playing soccer in a park.”
  • “A child is kicking a football on a playground.”

These sentences get mapped to similar vectors, letting your AI recognize their meaning, regardless of wording.

Image embeddings use neural networks (like CNNs) or vision-language models to turn images into numeric vectors, capturing shapes, colors, and features. For example: A cat image → vector that is “close” to other cats and “far” from cars in vector space.

Supported Embedding Types

OpenAIEmbedding

Use OpenAI’s API to generate text embeddings.


Requires: OpenAI API Key.

MistralEmbedding

Use Mistral’s API for text embeddings.


Requires: Mistral API Key.

SentenceTransformerEncoder

Local, open-source transformer models from the

Sentence Transformers

library.

VisionLanguageEmbedding

OpenAI’s vision models for image embeddings.


Requires: OpenAI API Key.

AzureOpenAI

Text embeddings from OpenAI models on Azure.


Requires: Azure OpenAI API Key.

TogetherEmbedding

Together AI’s hosted models for text embeddings.


Requires: Together AI API Key.

Usage Examples

Make sure you have the right API key set (OpenAI, Mistral, Azure, or Together) for the embedding backend you want to use.

Text Embeddings with OpenAI

from camel.embeddings import OpenAIEmbedding
from camel.types import EmbeddingModelType

openai_embedding = OpenAIEmbedding(model_type=EmbeddingModelType.TEXT_EMBEDDING_3_SMALL)
embeddings = openai_embedding.embed_list(["Hello, world!", "Another example"])

Text Embeddings with Mistral

from camel.embeddings import MistralEmbedding
from camel.types import EmbeddingModelType

mistral_embedding = MistralEmbedding(model_type=EmbeddingModelType.MISTRAL_EMBED)
embeddings = mistral_embedding.embed_list(["Hello, world!", "Another example"])

Local Sentence Transformers

from camel.embeddings import SentenceTransformerEncoder

sentence_encoder = SentenceTransformerEncoder(model_name='intfloat/e5-large-v2')
embeddings = sentence_encoder.embed_list(["Hello, world!", "Another example"])

Image Embeddings with Vision-Language Models

from camel.embeddings import VisionLanguageEmbedding
from PIL import Image
import requests

vlm_embedding = VisionLanguageEmbedding()
url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)
test_images = [image, image]
embeddings = vlm_embedding.embed_list(test_images)

Text Embeddings with Azure OpenAI

from camel.embeddings import AzureEmbedding
from camel.types import EmbeddingModelType

azure_openai_embedding = AzureEmbedding(model_type=EmbeddingModelType.TEXT_EMBEDDING_ADA_2)
embeddings = azure_openai_embedding.embed_list(["Hello, world!", "Another example"])

Text Embeddings with Together AI

from camel.embeddings import TogetherEmbedding

together_embedding = TogetherEmbedding(model_type="togethercomputer/m2-bert-80M-8k-retrieval")
embeddings = together_embedding.embed_list(["Hello, world!", "Another example"])

Pick a text embedding that matches your language, latency, and privacy needs. For multimodal use cases, use image or vision-language embeddings.