# Declare vector collection embedding model

Source: https://stratadb.org/docs/reference/vector/collection/set_embedding_model

Declare the embedding model a vector collection's vectors come from.

| | |
|---|---|
| Command | `vector.collection.set_embedding_model` |
| CLI | `strata vector collection set-embedding-model` |
| Wire type | `vector_set_embedding_model` |
| Python | `db.vectors.set_embedding_model(collection: 'str', model: 'str') -> 'Any'` |
| Access | write |
| Commit | commits on success |
| Wire status | transitional |

Records, once, which embedding model produces this collection's vectors. A declaration, not a verification: a stored vector carries no model, so this takes the caller's word for the vectors present; from then on `text` on upsert and query is embedded with this model and no other, and a collection with no recorded model cannot embed `text` at all. A vector supplied directly is not checked against the record - it cannot be - so supplying one remains the caller's statement that the recorded model produced it. Declaring the model a collection already records is a no-op and commits nothing. Declaring a different one is refused with `failed_precondition.engine.embedding_model_mismatch`: the stored vectors came from the recorded model, so create a separate collection for the other one. The current wire response uses the collection-list output with one item.

Successful mutations return an acknowledgement of the outcome: for a state-changing write, the affected target with the mutation effect and commit facts; for mutations that produce a domain result (such as a branch or a promotion outcome), that result object.

## Examples

Declare a collection's embedding model so text can be stored and searched.

### CLI

```console
$ strata vector collection create docs 3 --metric cosine
created collection docs (3 dimensions, cosine)
$ strata vector collection set-embedding-model docs openai:text-embedding-3-small  # Declared once; repeating it with the same model is a no-op.
updated collection docs: embedding model openai:text-embedding-3-small
```

### Wire

```json
{"collection":"docs","dimension":3,"metric":"cosine","type":"vector_create_collection"}
{"collection":"docs","model":"openai:text-embedding-3-small","type":"vector_set_embedding_model"}
```

### Python

```python
_ = db.vectors.create_collection("docs", 3, metric="cosine")
db.vectors.set_embedding_model("docs", "openai:text-embedding-3-small").items[0].embedding_model
```

## Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `branch` | `string or null` | no | Target branch. Defaults to the executor handle branch. |
| `collection` | `string` | yes | Collection name. |
| `model` | `string` | yes | The model that produced, and will produce, this collection's
vectors. |
| `space` | `string or null` | no | Target product space. Defaults to `"default"`. |

## Returns

`MutationAck`

- `data` (`object`) Shared pagination continuation facts.
- `type` (`string`)

## Errors

Recover by code, never by message.

| Code | Retry | Commit outcome |
|---|---|---|
| [`failed_precondition.engine.runtime_closed`](https://stratadb.org/e/failed_precondition.engine.runtime_closed) | never | not_started |
| [`not_found.engine.branch`](https://stratadb.org/e/not_found.engine.branch) | never | not_applicable |
| [`invalid_argument.engine.product_space`](https://stratadb.org/e/invalid_argument.engine.product_space) | never | not_started |
| [`invalid_argument.engine.vector_collection`](https://stratadb.org/e/invalid_argument.engine.vector_collection) | never | not_started |
| [`invalid_argument.engine.vector_key`](https://stratadb.org/e/invalid_argument.engine.vector_key) | never | not_started |
| [`not_found.engine.vector_collection`](https://stratadb.org/e/not_found.engine.vector_collection) | never | not_applicable |
| [`invalid_argument.engine.embedding_model`](https://stratadb.org/e/invalid_argument.engine.embedding_model) | never | not_started |
| [`failed_precondition.engine.embedding_model_mismatch`](https://stratadb.org/e/failed_precondition.engine.embedding_model_mismatch) | never | not_started |

## Related

- [Batch delete vectors](https://stratadb.org/docs/reference/vector/batch_delete)
- [Batch check vector existence](https://stratadb.org/docs/reference/vector/batch_exists)
- [Batch get vectors](https://stratadb.org/docs/reference/vector/batch_get)
- [Batch upsert vectors](https://stratadb.org/docs/reference/vector/batch_upsert)
- [Create vector collection](https://stratadb.org/docs/reference/vector/collection/create)
- [Delete vector collection](https://stratadb.org/docs/reference/vector/collection/delete)
- [List vector collections](https://stratadb.org/docs/reference/vector/collection/list)
- [Read vector collection stats](https://stratadb.org/docs/reference/vector/collection/stats)
- [Count vectors](https://stratadb.org/docs/reference/vector/count)
- [Delete vector](https://stratadb.org/docs/reference/vector/delete)
- [Delete all vectors](https://stratadb.org/docs/reference/vector/delete_all)
- [Delete vectors by filter](https://stratadb.org/docs/reference/vector/delete_by_filter)
- [Update vector embedding](https://stratadb.org/docs/reference/vector/embedding/update)
- [Check vector existence](https://stratadb.org/docs/reference/vector/exists)
- [Get vector](https://stratadb.org/docs/reference/vector/get)
- [Read vector history](https://stratadb.org/docs/reference/vector/history)
- [Query vector index](https://stratadb.org/docs/reference/vector/index/query)
- [List vector keys](https://stratadb.org/docs/reference/vector/keys)
- [Update vector metadata](https://stratadb.org/docs/reference/vector/metadata/update)
- [Query vectors](https://stratadb.org/docs/reference/vector/query)
- [Sample vectors](https://stratadb.org/docs/reference/vector/sample)
- [Scan vectors](https://stratadb.org/docs/reference/vector/scan)
- [Upsert vector](https://stratadb.org/docs/reference/vector/upsert)
