Skip to content

Cohere Embeddings

The Cohere embeddings provider converts text into vectors using Cohere’s embed-v3.0 models. These models offer strong multilingual support and efficient embedding dimensions.

Terminal window
npm install @youcraft/recall-embeddings-cohere
import { createMemory } from '@youcraft/recall'
import { cohereEmbeddings } from '@youcraft/recall-embeddings-cohere'
const embeddings = cohereEmbeddings({
apiKey: process.env.COHERE_API_KEY!,
})
const memory = createMemory({ db, embeddings, extractor })
OptionTypeDefaultDescription
apiKeystringrequiredYour Cohere API key
modelstring"embed-english-light-v3.0"Embedding model to use
inputTypestring"search_document"Input type for embeddings
ModelDimensionsDescription
embed-english-v3.01024High quality English embeddings
embed-english-light-v3.0384Fast, efficient English embeddings
embed-multilingual-v3.01024High quality multilingual (100+ languages)
embed-multilingual-light-v3.0384Fast multilingual embeddings
const embeddings = cohereEmbeddings({
apiKey: process.env.COHERE_API_KEY!,
model: 'embed-english-v3.0',
})
const embeddings = cohereEmbeddings({
apiKey: process.env.COHERE_API_KEY!,
model: 'embed-multilingual-v3.0',
})

Cohere models support different input types optimized for specific use cases:

TypeUse Case
search_documentEmbedding documents to be searched (default)
search_queryEmbedding search queries
classificationText classification tasks
clusteringClustering similar texts

For memory storage and retrieval, search_document is typically the best choice.

The provider automatically handles Cohere’s batch size limit (96 texts per request):

// Handled automatically - splits into batches of 96
await embeddings.embedBatch(texts) // Works with any size array