> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lancedb.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Cohere

Using cohere API requires cohere package, which can be installed using `pip install cohere`. Cohere embeddings are used to generate embeddings for text data. The embeddings can be used for various tasks like semantic search, clustering, and classification.
You also need to set the `COHERE_API_KEY` environment variable to use the Cohere API.

```bash Bash icon="terminal" theme={"theme":{"light":"vitesse-light","dark":"catppuccin-mocha"}}
export COHERE_API_KEY="your-api-key"
```

Supported models are:

* embed-english-v3.0
* embed-multilingual-v3.0
* embed-english-light-v3.0
* embed-multilingual-light-v3.0

The v2.0 models (`embed-english-v2.0`, `embed-english-light-v2.0` and `embed-multilingual-v2.0`) were retired by Cohere on April 4, 2026.

Python 0.41.0 defaults to `embed-multilingual-v2.0` (768 dimensions).
Python 0.42.0b8 defaults to `embed-multilingual-v3.0` (1024 dimensions). Set
`name="embed-multilingual-v3.0"` explicitly, as in the example below, rather
than relying on the client default.
Existing tables containing vectors from a v2.0 model must be re-embedded with an
active model into a table whose vector column has the matching dimension.

Supported parameters (to be passed in `create` method) are:

| Parameter | Type | Default Value | Description |
| - | - | - | - |
| `name` | `str` | v2.0 in Python 0.41.0; v3.0 in Python 0.42.0b8 | The model ID of the cohere model to use. Supported base models for Text Embeddings: embed-english-v3.0, embed-multilingual-v3.0, embed-english-light-v3.0, embed-multilingual-light-v3.0 |
| `source_input_type` | `str` | `"search_document"` | The type of input data to be used for the source column. |
| `query_input_type` | `str` | `"search_query"` | The type of input data to be used for the query. |

Cohere supports following input types:

| Input type | Description |
| - | - |
| `search_document` | Used for embeddings stored in a vector database for search use cases. |
| `search_query` | Used for embeddings of search queries run against a vector database. |
| `semantic_similarity` | Specifies that the text will be used for semantic textual similarity (STS). |
| `classification` | Used for embeddings passed through a text classifier. |
| `clustering` | Used for embeddings run through a clustering algorithm. |

Usage Example:

```python Python icon="python" theme={"theme":{"light":"vitesse-light","dark":"catppuccin-mocha"}}
import tempfile
from pathlib import Path

import lancedb
from lancedb.embeddings import EmbeddingFunctionRegistry
from lancedb.pydantic import LanceModel, Vector

cohere = (
    EmbeddingFunctionRegistry.get_instance()
    .get("cohere")
    .create(name="embed-multilingual-v3.0")
)

class TextModel(LanceModel):
    text: str = cohere.SourceField()
    vector: Vector(cohere.ndims()) = cohere.VectorField()

data = [{"text": "hello world"}, {"text": "goodbye world"}]

db = lancedb.connect(str(Path(tempfile.mkdtemp()) / "cohere-demo"))
tbl = db.create_table("test", schema=TextModel, mode="overwrite")
tbl.add(data)
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.