---
title: Create and manage Passage Retrieval (CPR) models
slug: oaie5476
canonical_url: https://docs.coveo.com/en/oaie5476/
collection: leverage-machine-learning
source_format: adoc
---
# Create and manage Passage Retrieval (CPR) models

> **Important**
>
> Passage Retrieval (CPR) is a paid product extension.
> Contact [Coveo Sales](https://www.coveo.com/en/contact) or your Account Manager to add CPR to your [organization](https://docs.coveo.com/en/185.md) license.
A [Passage Retrieval (CPR)](https://docs.coveo.com/en/oaie9196.md) [model](https://docs.coveo.com/en/1012.md) retrieves the most relevant segments of text (passages) from your dataset to help your LLM-powered application generate an output for a specific user query.

A [Coveo Machine Learning (Coveo ML)](https://docs.coveo.com/en/188.md) Passage Retrieval (CPR) [model](https://docs.coveo.com/en/1012.md) retrieves the most relevant passages from your dataset for a user query.
The passages are then used by a generative large language model (LLM) within a [retrieval-augmented generation (RAG)](https://docs.coveo.com/en/p8ie0159.md) system to generate answers.

## What does a CPR model do?

When a [CPR](https://docs.coveo.com/en/oaie9196.md) [model](https://docs.coveo.com/en/1012.md) builds, it creates [embeddings](https://docs.coveo.com/en/oaie5277.md#embeddings) for the indexed items specified in the model settings and stores the embeddings in model memory.

> **Note**
>
> The model is preconfigured to rebuild and update the embeddings weekly based on when the model is created.
> Contact your Coveo Account Manager if a different build interval is required.
> **Tip**
>
> By default, content retrieval is supported only for English content.
> However, Coveo offers beta support for content retrieval in languages other than English.
> Learn more about [multilingual content retrieval and answer generation](https://docs.coveo.com/en/p5ne0024.md).
![Passage Retrieval passage embedding | Coveo](https://docs.coveo.com/en/assets/images/leverage-machine-learning/cpr-embed-passage-level.png)

A [CPR](https://docs.coveo.com/en/oaie9196.md) [model](https://docs.coveo.com/en/1012.md) uses a pre-trained sentence transformer language model to create the [embeddings](https://docs.coveo.com/en/ncc87383.md).
The language model does this by capturing relationships between words, phrases, and sentences in the dataset.

A [CPR](https://docs.coveo.com/en/oaie9196.md) [model](https://docs.coveo.com/en/1012.md) creates [embeddings](https://docs.coveo.com/en/ncc87383.md) only for the content in an [item](https://docs.coveo.com/en/210.md)'s body, which is the content [mapped](https://docs.coveo.com/en/217.md) to the `body` field in the Coveo [index](https://docs.coveo.com/en/204.md).
For more information, learn [how CPR uses your content](https://docs.coveo.com/en/oaod5329.md#how-cpr-uses-your-content).

> **Note**
>
> The [CPR](https://docs.coveo.com/en/oaie9196.md) [model](https://docs.coveo.com/en/1012.md) uses only the content in an item's `body` field.
> Content in other searchable fields, such as `title`, `author`, `source`, and `date`, isn't embedded by the [model](https://docs.coveo.com/en/1012.md) and therefore isn't considered during passage retrieval.
> Passages are retrieved solely based on the semantic similarity between the query and the content of an item's body.
> For example, even if a query matches terms in an item's `title` field, the [CPR](https://docs.coveo.com/en/oaie9196.md) model won't retrieve passages from that item unless the body content is semantically relevant.
As shown in the following diagram, the model uses [chunks](https://docs.coveo.com/en/oaie5277.md#chunking) to create the [embeddings](https://docs.coveo.com/en/ncc87383.md).
Instead of creating a vector for each individual word, a vector is created for a segment of text (chunk) to increase relevance.

> **Note**
>
> You can [choose the chunking strategy](https://docs.coveo.com/en/oaie5476.md#set-the-chunking-strategy) that the [CPR](https://docs.coveo.com/en/oaie9196.md) [model](https://docs.coveo.com/en/1012.md) uses to create the chunks.
![Vector space | Coveo](https://docs.coveo.com/en/assets/images/leverage-machine-learning/cpr-chunk-example.png)

As shown in the following diagram, for a given [query](https://docs.coveo.com/en/231.md), the [CPR](https://docs.coveo.com/en/oaie9196.md) [model](https://docs.coveo.com/en/1012.md) embeds the query in the [embedding](https://docs.coveo.com/en/ncc87383.md) vector space in its memory to find the most relevant passages ([chunks](https://docs.coveo.com/en/oaie5277.md#chunking)).
In the context of the CPR passage retrieval flow, this is referred to as [second-stage content retrieval](https://docs.coveo.com/en/oaie5277.md#second-stage-content-retrieval).
Only the passages corresponding to the most relevant items identified during [first-stage content retrieval](https://docs.coveo.com/en/oaie5277.md#first-stage-content-retrieval) (items retrieved by the Coveo search engine) are considered.

![Vector space query | Coveo](https://docs.coveo.com/en/assets/images/leverage-machine-learning/grouped-cpr.png)

> **Tip**
>
> The embeddings that are created by the [CPR](https://docs.coveo.com/en/oaie9196.md) [model](https://docs.coveo.com/en/1012.md) aren't impacted by [Coveo Analytics events](https://docs.coveo.com/en/260.md).
> However, a [CPR](https://docs.coveo.com/en/oaie9196.md) [model](https://docs.coveo.com/en/1012.md) leverages the most relevant items retrieved by your Coveo-powered search for a given user query.
> Therefore, by enabling an [Automatic Relevance Tuning (ART)](https://docs.coveo.com/en/1013.md) [model](https://docs.coveo.com/en/1012.md), which learns from [events](https://docs.coveo.com/en/260.md), then the most relevant items, and by extension the generated output by your LLM, will be influenced by events.
> **Note**
>
> You can set a custom value for the maximum number of items that the CPR model considers when retrieving the most relevant passages.
> Though the default value usually provides good results, you can set a custom value if needed.
> 
> When using the [CPR](https://docs.coveo.com/en/oaie9196.md) model with the Coveo Search Agent, you can set a custom value in the [Search Agent configuration](https://docs.coveo.com/en/q2qg1117.md#create-a-search-agent).
> When using the [CPR](https://docs.coveo.com/en/oaie9196.md) model with the Passage Retrieval API, you can set a custom value for the [model association configuration in the query pipeline](https://docs.coveo.com/en/oaie6403.md#cpr-model-association-advanced-configuration).
## Prerequisites

* You have the [required privileges](#required-privileges) to create a [CPR](https://docs.coveo.com/en/oaie9196.md) [model](https://docs.coveo.com/en/1012.md).

* The content you want to use for the [model](https://docs.coveo.com/en/1012.md) meets the [item requirements](https://docs.coveo.com/en/oaod5329.md#requirements) and is [optimized](https://docs.coveo.com/en/oaod5329.md#best-practices) for CPR.

> **Note**
>
> A [Passage Retrieval (CPR)](https://docs.coveo.com/en/oaie5277.md) implementation must include both a [CPR](https://docs.coveo.com/en/oaie9196.md) [model](https://docs.coveo.com/en/1012.md) and a [Semantic Encoder (SE)](https://docs.coveo.com/en/nbtb0041.md) [model](https://docs.coveo.com/en/1012.md).
> Both the CPR and SE models must be configured to use the same content.

> **Important**
>
> Keep the [model embedding constraints](#model-embedding-constraints) in mind when choosing the content for your model.
## Create a CPR model

1. On the [**Models**](https://platform.cloud.coveo.com/admin/#/orgid/ai-and-ml/models/) ([platform-ca](https://platform-ca.cloud.coveo.com/admin/#/orgid/ai-and-ml/models/) | [platform-eu](https://platform-eu.cloud.coveo.com/admin/#/orgid/ai-and-ml/models/) | [platform-au](https://platform-au.cloud.coveo.com/admin/#/orgid/ai-and-ml/models/)) page of the [Coveo Administration Console](https://docs.coveo.com/en/183.md), click **Add model**, and then click the **Passage Retrieval** card.

1. Click **Next**.

1. In the **Learn from** section, select the content that the model will use.
You can select the sources and apply additional filters using the **Standard** configuration, or use **Advanced** mode to define a custom filter expression.

> **Important**
>
> You'll lose the current mode settings when you switch between **Standard** and **Advanced** mode.

> **Note**
>
> A [Passage Retrieval (CPR)](https://docs.coveo.com/en/oaie5277.md) implementation must include both a [CPR](https://docs.coveo.com/en/oaie9196.md) [model](https://docs.coveo.com/en/1012.md) and a [Semantic Encoder (SE)](https://docs.coveo.com/en/nbtb0041.md) [model](https://docs.coveo.com/en/1012.md).
> Both the CPR and SE models must be configured to use the same content.

> **Tip**
>
> The **Data volume preview** section shows the impact of your settings on the data that's available to the model.
** In the **Standard** tab:

.. In the **Sources** dropdown menu, select the [sources](https://docs.coveo.com/en/246.md) that contain the [items](https://docs.coveo.com/en/210.md) from which you want the model to learn.

--
> **Note**
>
> If your Coveo organization includes [multiple indexes](https://docs.coveo.com/en/2877.md), the model can learn only from sources that are linked to the default index.
--

.. (Optional) In the **Apply filters on dataset** section, you can specify a condition to segment the content on which the model should base its training:

**Example**

You want the model to base its training only on items for which the **collection** [field](https://docs.coveo.com/en/200.md) have the `FAQ` value.

Therefore, you add a `collection is equal to FAQ` condition.
... Click **Add filter(s)**.

... In the **Field name** input, enter the name of the [field](https://docs.coveo.com/en/200.md) that you want to use to segment the dataset.

... In the **Select an operator** dropdown menu, select the desired operator.

... In the **Value** input, enter the value of the field on which you want to segment the dataset.

... Click **Apply**.

** In the **Advanced** tab:

.. Enter a custom filter expression using [Coveo query syntax](https://docs.coveo.com/en/1552.md).

.. Click **Apply**.

1. Click **Next**.

1. In the **Name your model** input, enter a meaningful display name for the model.

1. (Optional) Use the **Project** selector to associate your model with one or more [projects](https://docs.coveo.com/en/n7ef0517.md).

1. Click **Start building**.

1. [Associate the model with a pipeline](https://docs.coveo.com/en/oaie6403.md) to use the [model](https://docs.coveo.com/en/1012.md) in a search interface.

1. If required, [change the chunking strategy](#set-the-chunking-strategy) that's used by the [model](https://docs.coveo.com/en/1012.md).

## Set the chunking strategy

To [create the embeddings](#what-does-a-cpr-model-do), a [CPR](https://docs.coveo.com/en/oaie9196.md) [model](https://docs.coveo.com/en/1012.md) uses a process called chunking to break large pieces of text into smaller segments called chunks.
The method that's used to create the chunks is referred to as the chunking strategy.

The [CPR](https://docs.coveo.com/en/oaie9196.md) [model](https://docs.coveo.com/en/1012.md) offers two chunking strategies to choose from:

* [Structure-aware chunking](https://docs.coveo.com/en/p9ub0044.md#structure-aware-chunking)

* [Fixed-size chunking](https://docs.coveo.com/en/p9ub0044.md#fixed-size-chunking)

> **Note**
>
> [CPR](https://docs.coveo.com/en/oaie9196.md) [models](https://docs.coveo.com/en/1012.md) created after the release of structure-aware chunking (October 2025) use the structure-aware chunking strategy by default.
> [CPR](https://docs.coveo.com/en/oaie9196.md) [models](https://docs.coveo.com/en/1012.md) created before October 2025 use the fixed-size chunking strategy by default.
> 
> To view a [CPR](https://docs.coveo.com/en/oaie9196.md) [model](https://docs.coveo.com/en/1012.md)'s active chunking strategy, on the [**Models**](https://platform.cloud.coveo.com/admin/#/orgid/ai-and-ml/models/) ([platform-ca](https://platform-ca.cloud.coveo.com/admin/#/orgid/ai-and-ml/models/) | [platform-eu](https://platform-eu.cloud.coveo.com/admin/#/orgid/ai-and-ml/models/) | [platform-au](https://platform-au.cloud.coveo.com/admin/#/orgid/ai-and-ml/models/)) page, click the [CPR](https://docs.coveo.com/en/oaie9196.md) [model](https://docs.coveo.com/en/1012.md), and then click **More** > **View JSON** in the Action bar.
> The chunking strategy appears in the `strategy` parameter of the `chunkerConfig` object under `extraConfig`.
> **Important**
>
> Structure-aware chunking is specifically optimized for large language [models](https://docs.coveo.com/en/1012.md) (LLMs) and [RAG](https://docs.coveo.com/en/p8ie0159.md) systems, and is the recommended chunking strategy.
> You should use structure-aware chunking unless you have a [specific use case that requires](https://docs.coveo.com/en/p9ub0044.md#choosing-a-chunking-strategy) the use of fixed-size chunking.
> **Note**
>
> You can configure each CPR model to use a different chunking strategy depending on your specific needs.
To set the model chunking strategy

> **Important**
>
> Modifying the chunking strategy initiates an automatic [model](https://docs.coveo.com/en/1012.md) [rebuild](https://docs.coveo.com/en/2712.md).
> **Note**
>
> Review the [main considerations](https://docs.coveo.com/en/p9ub0044.md#choosing-a-chunking-strategy) when choosing between chunking strategies.
1. Access the **Machine Learning** section of the Swagger UI that's associated with your Coveo organization region ([US](https://platform.cloud.coveo.com/docs?urls.primaryName=Machine+Learning) | [CA](https://platform-ca.cloud.coveo.com/docs?urls.primaryName=Machine+Learning) | [EU](https://platform-eu.cloud.coveo.com/docs?urls.primaryName=Machine+Learning) | [AU](https://platform-au.cloud.coveo.com/docs?urls.primaryName=Machine+Learning)).

1. Click **Authorize** and authenticate using your Coveo organization account credentials.

1. In the Swagger UI, expand the **Machine Learning Models** section.

1. Use the **List all models** GET request to access your model's JSON code:

![Use Swagger UI to get a list of CPR models | Coveo](https://docs.coveo.com/en/assets/images/leverage-machine-learning/cpr-model-swagger-list-request.png)

.. Enter your Coveo [**organization ID**](https://docs.coveo.com/en/n1ce5273.md).

.. Enter the `chunksretrieval` **engine ID** to filter the list to show only [CPR](https://docs.coveo.com/en/oaie9196.md) [models](https://docs.coveo.com/en/1012.md).

.. Click **Execute**.
The JSON code for all [CPR](https://docs.coveo.com/en/oaie9196.md) [models](https://docs.coveo.com/en/1012.md) in your organization appears in the **Response body**.

.. In the **Response body**, copy the JSON code of the [model](https://docs.coveo.com/en/1012.md) that you want to configure.
You'll need it in the next step.

1. Use the **Update the configuration of a model** PUT request to modify the [model](https://docs.coveo.com/en/1012.md)'s JSON code:

![Use Swagger UI to edit a CPR machine learning model | Coveo](https://docs.coveo.com/en/assets/images/leverage-machine-learning/cpr-model-swagger-put-request.png)

.. Paste the copied JSON code in the **Request body**.

.. Enter your Coveo **organization ID**.

.. Enter the ID of the [model](https://docs.coveo.com/en/1012.md) you want to modify.

> **Tip**
>
> If you don't know the model ID, it appears in the [model](https://docs.coveo.com/en/1012.md)'s JSON code in the `id` field.
.. In the `extraConfig` element, add the `chunkerConfig` object, and then add the `strategy` parameter, and set it to either `FIXED_SIZE` or `STRUCTURE_AWARE`.

**Example**

To set the structure-aware chunking strategy, the JSON is as follows:

```json
{
...
"extraConfig": {
    "chunkerConfig": {
        "strategy": "STRUCTURE_AWARE"
    }
    }
...
}
```
1. In the Swagger UI, click **Execute** to apply the changes to the [model](https://docs.coveo.com/en/1012.md).

## Set the maximum chunks per item

By default, a [CPR](https://docs.coveo.com/en/oaie9196.md) [model](https://docs.coveo.com/en/1012.md) is configured to create a maximum of 1000 chunks per item during the [embedding process](#what-does-a-cpr-model-do).
The default setting is suitable for the majority of use cases.
However, if you have a large dataset, you can lower the maximum number of chunks per item to avoid the [model](https://docs.coveo.com/en/1012.md) exceeding the overall [model embedding constraints](#model-embedding-constraints) for chunks.

> **Important**
>
> The [model](https://docs.coveo.com/en/1012.md) will embed the item's text until the maximum chunks per item limit is reached.
> The remaining text in the item won't be embedded and therefore won't be used by the [model](https://docs.coveo.com/en/1012.md).
> 
> To make sure that each item's text is fully embedded, follow [best practices](https://docs.coveo.com/en/oaod5329.md#best-practices) by keeping items concise and focused.
To set the maximum number of chunks per item

1. Access the **Machine Learning** section of the Swagger UI that's associated with your Coveo organization region ([US](https://platform.cloud.coveo.com/docs?urls.primaryName=Machine+Learning) | [CA](https://platform-ca.cloud.coveo.com/docs?urls.primaryName=Machine+Learning) | [EU](https://platform-eu.cloud.coveo.com/docs?urls.primaryName=Machine+Learning) | [AU](https://platform-au.cloud.coveo.com/docs?urls.primaryName=Machine+Learning)).

1. Click **Authorize** and authenticate using your Coveo organization account credentials.

1. In the Swagger UI, expand the **Machine Learning Models** section.

1. Use the **List all models** GET request to access your model's JSON code:

![Use Swagger UI to get a list of CPR models | Coveo](https://docs.coveo.com/en/assets/images/leverage-machine-learning/cpr-model-swagger-list-request.png)

.. Enter your Coveo [**organization ID**](https://docs.coveo.com/en/n1ce5273.md).

.. Enter the `chunksretrieval` **engine ID** to filter the list to show only [CPR](https://docs.coveo.com/en/oaie9196.md) [models](https://docs.coveo.com/en/1012.md).

.. Click **Execute**.
The JSON code for all [CPR](https://docs.coveo.com/en/oaie9196.md) [models](https://docs.coveo.com/en/1012.md) in your organization appears in the **Response body**.

.. In the **Response body**, copy the JSON code of the [model](https://docs.coveo.com/en/1012.md) that you want to configure.
You'll need it in the next step.

1. Use the **Update the configuration of a model** PUT request to modify the [model](https://docs.coveo.com/en/1012.md)'s JSON code:

![Use Swagger UI to edit a CPR machine learning model | Coveo](https://docs.coveo.com/en/assets/images/leverage-machine-learning/cpr-model-swagger-put-request.png)

.. Paste the copied JSON code in the **Request body**.

.. Enter your Coveo **organization ID**.

.. Enter the ID of the [model](https://docs.coveo.com/en/1012.md) you want to modify.

> **Tip**
>
> If you don't know the [model](https://docs.coveo.com/en/1012.md) ID, it appears in the [model](https://docs.coveo.com/en/1012.md)'s JSON code in the `id` field.
.. In the `extraConfig` element, under the `chunkerConfig` object, add the `maxPassagesPerDocument` parameter, and set it to a value between `1` and `1000` (default).

**Example**

To set the maximum number of chunks per item to 500, the JSON is as follows:

```json
{
...
"extraConfig": {
    "chunkerConfig": {
        "strategy": "STRUCTURE_AWARE",
        "maxPassagesPerDocument": 500
    }
    }
...
}
```

> **Note**
>
> Once you modify the [model](https://docs.coveo.com/en/1012.md)'s default value, you can view the set value by going to the [**Models**](https://platform.cloud.coveo.com/admin/#/orgid/ai-and-ml/models/) ([platform-ca](https://platform-ca.cloud.coveo.com/admin/#/orgid/ai-and-ml/models/) | [platform-eu](https://platform-eu.cloud.coveo.com/admin/#/orgid/ai-and-ml/models/) | [platform-au](https://platform-au.cloud.coveo.com/admin/#/orgid/ai-and-ml/models/)) page, clicking the [CPR](https://docs.coveo.com/en/oaie9196.md) [model](https://docs.coveo.com/en/1012.md), and then clicking **More** > **View JSON** in the Action bar.
> The value appears in the `maxPassagesPerDocument` parameter of the `chunkerConfig` object under `extraConfig`.
1. In the Swagger UI, click **Execute** to apply the changes to the [model](https://docs.coveo.com/en/1012.md).

## Manage a CPR model

You can [edit](#edit-a-cpr-model), [delete](#delete-a-cpr-model), or [review information](#review-model-information) for your [model](https://docs.coveo.com/en/1012.md).

### Edit a CPR model

1. On the [**Models**](https://platform.cloud.coveo.com/admin/#/orgid/ai-and-ml/models/) ([platform-ca](https://platform-ca.cloud.coveo.com/admin/#/orgid/ai-and-ml/models/) | [platform-eu](https://platform-eu.cloud.coveo.com/admin/#/orgid/ai-and-ml/models/) | [platform-au](https://platform-au.cloud.coveo.com/admin/#/orgid/ai-and-ml/models/)) page, click the model you want to edit, and then click **Edit** in the Action bar.

1. On the subpage that opens, select the **Configuration** tab.

1. Under **Name**, edit the model's display name.

1. (Optional) Use the **Project** selector to associate your model with one or more [projects](https://docs.coveo.com/en/n7ef0517.md).

1. In the **Learn from** section, select the content that the model will use.
You can select the sources and apply additional filters using the **Standard** configuration or use **Advanced** mode to define a custom filter expression.

> **Important**
>
> You'll lose the current mode settings when you switch between **Standard** and **Advanced** mode.

> **Note**
>
> A [Passage Retrieval (CPR)](https://docs.coveo.com/en/oaie5277.md) implementation must include both a [CPR](https://docs.coveo.com/en/oaie9196.md) [model](https://docs.coveo.com/en/1012.md) and a [Semantic Encoder (SE)](https://docs.coveo.com/en/nbtb0041.md) [model](https://docs.coveo.com/en/1012.md).
> Both the CPR and SE models must be configured to use the same content.

> **Tip**
>
> The **Data volume preview** section shows the impact of your settings on the data that's available to the model.
** In the **Standard** tab:

.. In the **Sources** dropdown menu, select the [sources](https://docs.coveo.com/en/246.md) that contain the [items](https://docs.coveo.com/en/210.md) from which you want the model to learn.

--
> **Note**
>
> If your Coveo organization includes [multiple indexes](https://docs.coveo.com/en/2877.md), the model can learn only from sources that are linked to the default index.
--

.. (Optional) In the **Apply filters on dataset** section, you can specify a condition to segment the content on which the model should base its training:

**Example**

You want the model to base its training only on items for which the **collection** [field](https://docs.coveo.com/en/200.md) have the `FAQ` value.

Therefore, you add a `collection is equal to FAQ` condition.
... Click **Add filter(s)**.

... In the **Field name** input, enter the name of the [field](https://docs.coveo.com/en/200.md) that you want to use to segment the dataset.

... In the **Select an operator** dropdown menu, select the desired operator.

... In the **Value** input, enter the value of the field on which you want to segment the dataset.

... Click **Apply**.

** In the **Advanced** tab:

.. Enter a custom filter expression using [Coveo query syntax](https://docs.coveo.com/en/1552.md).

.. Click **Apply**.

1. Click **Save**.

> **Note**
>
> Some configuration changes initiate an automatic model rebuild when you save the model.
> The [**Models**](https://platform.cloud.coveo.com/admin/#/orgid/ai-and-ml/models/) ([platform-ca](https://platform-ca.cloud.coveo.com/admin/#/orgid/ai-and-ml/models/) | [platform-eu](https://platform-eu.cloud.coveo.com/admin/#/orgid/ai-and-ml/models/) | [platform-au](https://platform-au.cloud.coveo.com/admin/#/orgid/ai-and-ml/models/)) page shows your model's current **Status**.
> Model settings take effect only when its status is **Active**.
> 
> For more information on Coveo ML model statuses, see the [**Status** column reference](#status-column).
### Delete a CPR model

> **Note**
>
> If the model is associated with a query pipeline, make sure to dissociate the model from the query pipeline after deleting it.
1. On the [**Models**](https://platform.cloud.coveo.com/admin/#/orgid/ai-and-ml/models/) ([platform-ca](https://platform-ca.cloud.coveo.com/admin/#/orgid/ai-and-ml/models/) | [platform-eu](https://platform-eu.cloud.coveo.com/admin/#/orgid/ai-and-ml/models/) | [platform-au](https://platform-au.cloud.coveo.com/admin/#/orgid/ai-and-ml/models/)) page, click the ML model that you want to delete, and then click **More** > **Delete** in the Action bar.

1. In the panel that appears, click **Delete**.

### Project association prompts

A machine learning model is a [resource](https://docs.coveo.com/en/2820.md) you can associate with a [project](https://docs.coveo.com/en/n7ed6189.md).
Resources associated with a [project](https://docs.coveo.com/en/n7ed6189.md) can [require confirmation](https://docs.coveo.com/en/n7ef0517.md#require-users-confirmation-to-modify-project-resources) when you modify them.
These confirmation prompts help prevent accidental changes that could affect a Coveo implementation.

Deleting a resource always requires confirmation, whether it's associated with a project or not.
When the resource is associated with projects, the confirmation prompt lists those projects.

### Review model information

On the [**Models**](https://platform.cloud.coveo.com/admin/#/orgid/ai-and-ml/models/) ([platform-ca](https://platform-ca.cloud.coveo.com/admin/#/orgid/ai-and-ml/models/) | [platform-eu](https://platform-eu.cloud.coveo.com/admin/#/orgid/ai-and-ml/models/) | [platform-au](https://platform-au.cloud.coveo.com/admin/#/orgid/ai-and-ml/models/)) page, click the desired model, and then click **View** in the Action bar.
For more information, see [Reviewing model information](https://docs.coveo.com/en/1894.md).

## Model embedding constraints

The [CPR](https://docs.coveo.com/en/oaie9196.md) [model](https://docs.coveo.com/en/1012.md) converts your content's body text into numerical representations ([vectors](https://docs.coveo.com/en/nccf9008.md)) in a process called [embedding](https://docs.coveo.com/en/ncc87383.md).
It does this by breaking the text up into smaller segments called chunks, and each chunk is mapped as a distinct vector.
For more information, see [Embeddings](https://docs.coveo.com/en/oaie5277.md#embeddings).

Due to the amount of processing required for embeddings, the model is subject to the following embedding constraints, depending on the [chunking strategy](https://docs.coveo.com/en/p9ub0044.md).

> **Note**
>
> For a given [model](https://docs.coveo.com/en/1012.md), the same chunking strategy is used for all sources and item types.

| Constraint | Structure-aware chunking | Fixed-size chunking |
|---|---|---|
| Chunk size | Average of 400 tokens per chunk (minimum: 200 tokens; maximum: 500 tokens) | 250 whitespace-delimited words per chunk |
| Maximum number of items or chunks 2+a| Up to 15 million items or 50 million chunks > **Notes** > > * The maximum number of items depends on the [item allocation of your product plan](https://docs.coveo.com/en/l2590456.md#generative-ai-solutions). > > * Your CPR implementation must include a [Semantic Encoder (SE) model](https://docs.coveo.com/en/nb6a0483.md). > If you have more than one CPR model in your Coveo organization, each CPR model must use only the items that are used by the SE model. | Maximum number of chunks per item 2+a| 1000 (default) > **Note** > > The default setting of 1000 is suitable for the majority of use cases. > If required, you can [set a custom value between `1` and `1000`](https://docs.coveo.com/en/oaie5476.md#set-the-maximum-chunks-per-item). > **Important** > > The [model](https://docs.coveo.com/en/1012.md) will embed the item's text until the maximum chunks per item limit is reached. > The remaining text in the item won't be embedded and therefore won't be used by the [model](https://docs.coveo.com/en/1012.md). > > To make sure that each item's text is fully embedded, follow [best practices](https://docs.coveo.com/en/oaod5329.md#best-practices) by keeping items concise and focused. |  |

## "Status" column

On the [**Models**](https://platform.cloud.coveo.com/admin/#/orgid/ai-and-ml/models/) ([platform-ca](https://platform-ca.cloud.coveo.com/admin/#/orgid/ai-and-ml/models/) | [platform-eu](https://platform-eu.cloud.coveo.com/admin/#/orgid/ai-and-ml/models/) | [platform-au](https://platform-au.cloud.coveo.com/admin/#/orgid/ai-and-ml/models/)) page of the [Administration Console](https://docs.coveo.com/en/183.md), the **Status** column indicates the current state of your Coveo ML models.

The following table lists the possible model statuses and their definitions:

| Status icon |
|---|
| Active |
| The model is active and available. |
| ![Active](leverage-machine-learning/model-active.png) |
| Build in progress |
| The model is currently building. |
| ![Building](leverage-machine-learning/model-build.png) |
| Inactive |
| The model isn't ready to be queried, such as when a model was recently created or the organization is offline. Click **See more details** for additional information (see [Review model information](https://docs.coveo.com/en/1894.md)). |
| ![Inactive](leverage-machine-learning/model-limited.png) |
| Limited |
| Build issues exist that may affect model performance. Click **See more details** for additional information (see [Review model information](https://docs.coveo.com/en/1894.md)). |
| ![Limited](leverage-machine-learning/model-limited.png) |
| Soon to be archived |
| The model will soon be archived because it hasn't been queried for an extended period of time. Click **Delete** to remove the model. [Learn more about archived models](https://docs.coveo.com/en/mb3e0324.md). |
| ![Archive pending](leverage-machine-learning/model-limited.png) |
| Error |
| An error prevented the model from being built successfully. If it's a temporary system error, check back soon. Otherwise, click **See more details** for additional information (see [Review model information](https://docs.coveo.com/en/1894.md)). > **Note** > > If the model previously built successfully but is now in error, the last successful build version will continue to be used until the issue is resolved and a new successful build is completed. > Any subsequent rebuild attempts will continue to fail until the underlying issue is resolved. |
| ![Error](leverage-machine-learning/model-error.png) |
| Archived |
| The model was archived because it hasn't been queried for an extended period of time. Click **Delete** to remove the model. [Learn more about archived models](https://docs.coveo.com/en/mb3e0324.md). |
| ![Archived](leverage-machine-learning/model-archived.png) |

## Required privileges

The following table indicates the privileges required for members to manage Coveo Generic models (see [Manage privileges](https://docs.coveo.com/en/3151.md) and [Privilege reference](https://docs.coveo.com/en/1707.md)).

| Action | Service | Domain | Required access level | View models | Machine Learning | Models | View |
|---|---|---|---|---|---|---|---|
| Organization | Organization | View |  |  |  |  |  |
| Search | Query pipelines | View |  |  |  |  |  |
| Manage models | Content | Fields | View |  |  |  |  |
| Sources | View All |  |  |  |  |  |  |
| Machine Learning | Allow content preview | Allowed |  |  |  |  |  |
| Models | Edit |  |  |  |  |  |  |
| Organization | Organization | View |  |  |  |  |  |
| Search | Query pipelines | View |  |  |  |  |  |

## What's next?

[Associate the CPR model with a query pipeline](https://docs.coveo.com/en/oaie6403.md).