--- 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/) license. A [Passage Retrieval (CPR)](https://docs.coveo.com/en/oaie9196/) [model](https://docs.coveo.com/en/1012/) 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. ## What does a CPR model do? When a [CPR](https://docs.coveo.com/en/oaie9196/) [model](https://docs.coveo.com/en/1012/) builds, it creates [embeddings](https://docs.coveo.com/en/oaie5277#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/). ![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/) [model](https://docs.coveo.com/en/1012/) uses a pre-trained sentence transformer language model to create the [embeddings](https://docs.coveo.com/en/ncc87383/). The language model does this by capturing relationships between words, phrases, and sentences in the dataset. A [CPR](https://docs.coveo.com/en/oaie9196/) [model](https://docs.coveo.com/en/1012/) creates [embeddings](https://docs.coveo.com/en/ncc87383/) only for the content in an [item](https://docs.coveo.com/en/210/)'s body, which is the content [mapped](https://docs.coveo.com/en/217/) to the `body` field in the Coveo [index](https://docs.coveo.com/en/204/). For more information, learn [how CPR uses your content](https://docs.coveo.com/en/oaod5329#how-cpr-uses-your-content). > **Note** > > The [CPR](https://docs.coveo.com/en/oaie9196/) [model](https://docs.coveo.com/en/1012/) 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/) 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/) 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#chunking) to create the [embeddings](https://docs.coveo.com/en/ncc87383/). 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#set-the-chunking-strategy) that the [CPR](https://docs.coveo.com/en/oaie9196/) [model](https://docs.coveo.com/en/1012/) 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, when a user enters a [query](https://docs.coveo.com/en/231/) in a LLM-powered application, the [CPR](https://docs.coveo.com/en/oaie9196/) [model](https://docs.coveo.com/en/1012/) embeds the query in the [embedding](https://docs.coveo.com/en/ncc87383/) vector space in its memory to find the most relevant passages ([chunks](https://docs.coveo.com/en/oaie5277#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#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#first-stage-content-retrieval) (items retrieved by the Coveo search engine) are considered. The most relevant passages are then exposed by the Passage Retrieval API to the LLM so it can generate an answer. ![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/) [model](https://docs.coveo.com/en/1012/) aren't impacted by [Coveo Analytics events](https://docs.coveo.com/en/260/). > However, a [CPR](https://docs.coveo.com/en/oaie9196/) [model](https://docs.coveo.com/en/1012/) 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/) [model](https://docs.coveo.com/en/1012/), which learns from [events](https://docs.coveo.com/en/260/), 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 segments of text (passages). > This is an advanced [model](https://docs.coveo.com/en/1012/) query pipeline association configuration that should be used by experienced Coveo administrators only. > For more information, see [CPR model association advanced configuration](https://docs.coveo.com/en/oaie6403#cpr-model-association-advanced-configuration). ## Prerequisites * You have the [required privileges](#required-privileges) to create a [CPR](https://docs.coveo.com/en/oaie9196/) [model](https://docs.coveo.com/en/1012/). * The content you want to use for the [model](https://docs.coveo.com/en/1012/) meets the [item requirements](https://docs.coveo.com/en/oaod5329#requirements) and is [optimized](https://docs.coveo.com/en/oaod5329#best-practices) for CPR. > **Note** > > A [Passage Retrieval (CPR)](https://docs.coveo.com/en/oaie5277/) implementation must include both a [CPR](https://docs.coveo.com/en/oaie9196/) [model](https://docs.coveo.com/en/1012/) and a [Semantic Encoder (SE)](https://docs.coveo.com/en/nbtb0041/) [model](https://docs.coveo.com/en/1012/). > The same SE model can be used with multiple CPR models. > Both the CPR and SE models must be configured to use the same content. > > See [CPR overview](https://docs.coveo.com/en/oaie5277#cpr-overview) for information on how CPR and SE work together in the context of a user query to retrieve passages. > **Important** > > Keep the [model embedding limits](#model-embedding-limits) in mind when choosing the content for your model. ## Create a CPR model . 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/), click **Add model**, and then click the **Passage Retrieval** card. . Click **Next**. . 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/) implementation must include both a [CPR](https://docs.coveo.com/en/oaie9196/) [model](https://docs.coveo.com/en/1012/) and a [Semantic Encoder (SE)](https://docs.coveo.com/en/nbtb0041/) [model](https://docs.coveo.com/en/1012/). > The same SE model can be used with multiple CPR models. > Both the CPR and SE models must be configured to use the same content. > > See [CPR overview](https://docs.coveo.com/en/oaie5277#cpr-overview) for information on how CPR and SE work together in the context of a user query to retrieve passages. > **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/) that contain the [items](https://docs.coveo.com/en/210/) from which you want the model to learn. -- > **Note** > > If your Coveo organization includes [multiple indexes](https://docs.coveo.com/en/2877/), 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/) 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/) 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/). .. Click **Apply**. . Click **Next**. . In the **Name your model** input, enter a meaningful display name for the model. . (Optional) Use the **Project** selector to associate your model with one or more [projects](https://docs.coveo.com/en/n7ef0517/). . Click **Start building**. . [Associate the model with a pipeline](https://docs.coveo.com/en/oaie6403/) to use the [model](https://docs.coveo.com/en/1012/) in a search interface. . If required, [change the chunking strategy](#set-the-chunking-strategy) that's used by the [model](https://docs.coveo.com/en/1012/). ## Set the chunking strategy To [create the embeddings](#what-does-a-cpr-model-do), a [CPR](https://docs.coveo.com/en/oaie9196/) [model](https://docs.coveo.com/en/1012/) 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/) [model](https://docs.coveo.com/en/1012/) offers two chunking strategies to choose from: * [Structure-aware chunking](https://docs.coveo.com/en/p9ub0044#structure-aware-chunking) * [Fixed-size chunking](https://docs.coveo.com/en/p9ub0044#fixed-size-chunking) > **Note** > > [CPR](https://docs.coveo.com/en/oaie9196/) [models](https://docs.coveo.com/en/1012/) 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/) [models](https://docs.coveo.com/en/1012/) created before October 2025 use the fixed-size chunking strategy by default. > > To view a [CPR](https://docs.coveo.com/en/oaie9196/) [model](https://docs.coveo.com/en/1012/)'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/) [model](https://docs.coveo.com/en/1012/), and then click **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/) (LLMs) and [RAG](https://docs.coveo.com/en/p8ie0159/) 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#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/) [rebuild](https://docs.coveo.com/en/2712/). > **Note** > > Review the [main considerations](https://docs.coveo.com/en/p9ub0044#choosing-a-chunking-strategy) when choosing between chunking strategies. . 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)). . Click **Authorize** and authenticate using your Coveo organization account credentials. . In the Swagger UI, expand the **Machine Learning Models** section. . 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/). .. Enter the `chunksretrieval` **engine ID** to filter the list to show only [CPR](https://docs.coveo.com/en/oaie9196/) [models](https://docs.coveo.com/en/1012/). .. Click **Execute**. The JSON code for all [CPR](https://docs.coveo.com/en/oaie9196/) [models](https://docs.coveo.com/en/1012/) 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/) that you want to configure. You'll need it in the next step. . Use the **Update the configuration of a model** PUT request to modify the [model](https://docs.coveo.com/en/1012/)'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/) you want to modify. > **Tip** > > If you don't know the model ID, it appears in the [model](https://docs.coveo.com/en/1012/)'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" } } ... } ``` . In the Swagger UI, click **Execute** to apply the changes to the [model](https://docs.coveo.com/en/1012/). ## Set the maximum chunks per item By default, a [CPR](https://docs.coveo.com/en/oaie9196/) [model](https://docs.coveo.com/en/1012/) 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/) exceeding the overall [model embedding limit](#model-embedding-limits) for chunks. > **Important** > > The [model](https://docs.coveo.com/en/1012/) 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/). > > To make sure that each item's text is fully embedded, follow [best practices](https://docs.coveo.com/en/oaod5329#best-practices) by keeping items concise and focused. To set the maximum number of chunks per item . 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)). . Click **Authorize** and authenticate using your Coveo organization account credentials. . In the Swagger UI, expand the **Machine Learning Models** section. . 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/). .. Enter the `chunksretrieval` **engine ID** to filter the list to show only [CPR](https://docs.coveo.com/en/oaie9196/) [models](https://docs.coveo.com/en/1012/). .. Click **Execute**. The JSON code for all [CPR](https://docs.coveo.com/en/oaie9196/) [models](https://docs.coveo.com/en/1012/) 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/) that you want to configure. You'll need it in the next step. . Use the **Update the configuration of a model** PUT request to modify the [model](https://docs.coveo.com/en/1012/)'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/) you want to modify. > **Tip** > > If you don't know the [model](https://docs.coveo.com/en/1012/) ID, it appears in the [model](https://docs.coveo.com/en/1012/)'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/)'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/) [model](https://docs.coveo.com/en/1012/), and then clicking **View JSON** in the Action bar. > The value appears in the `maxPassagesPerDocument` parameter of the `chunkerConfig` object under `extraConfig`. . In the Swagger UI, click **Execute** to apply the changes to the [model](https://docs.coveo.com/en/1012/). ## 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/). ### Edit a CPR model . 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. . On the subpage that opens, select the **Configuration** tab. . Under **Name**, edit the model's display name. . (Optional) Use the **Project** selector to associate your model with one or more [projects](https://docs.coveo.com/en/n7ef0517/). . 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/) implementation must include both a [CPR](https://docs.coveo.com/en/oaie9196/) [model](https://docs.coveo.com/en/1012/) and a [Semantic Encoder (SE)](https://docs.coveo.com/en/nbtb0041/) [model](https://docs.coveo.com/en/1012/). > The same SE model can be used with multiple CPR models. > Both the CPR and SE models must be configured to use the same content. > > See [CPR overview](https://docs.coveo.com/en/oaie5277#cpr-overview) for information on how CPR and SE work together in the context of a user query to retrieve passages. > **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/) that contain the [items](https://docs.coveo.com/en/210/) from which you want the model to learn. -- > **Note** > > If your Coveo organization includes [multiple indexes](https://docs.coveo.com/en/2877/), 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/) 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/) 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/). .. Click **Apply**. . 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. . 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. . In the panel that appears, click **Delete**. ### 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/). ## Model embedding limits The [CPR](https://docs.coveo.com/en/oaie9196/) [model](https://docs.coveo.com/en/1012/) converts your content's body text into numerical representations ([vectors](https://docs.coveo.com/en/nccf9008/)) in a process called [embedding](https://docs.coveo.com/en/ncc87383/). 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#embeddings). Due to the amount of processing required for embeddings, the model is subject to the following embedding limits,depending on the [chunking strategy](https://docs.coveo.com/en/p9ub0044/). > **Note** > > For a given [model](https://docs.coveo.com/en/1012/), the same chunking strategy is used for all sources and item types. [cols="1,1,1",options="header"] |=== | Limit | Structure-aware chunking | Fixed-size chunking | Chunk size | Average of 300 tokens per chunk (minimum: 200 tokens; maximum: 400 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#generative-ai-solutions). > > * Your CPR implementation must include a [Semantic Encoder (SE) model](https://docs.coveo.com/en/nb6a0483/). > 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#set-the-maximum-chunks-per-item). > **Important** > > The [model](https://docs.coveo.com/en/1012/) 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/). > > To make sure that each item's text is fully embedded, follow [best practices](https://docs.coveo.com/en/oaod5329#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/), the **Status** column indicates the current state of your Coveo ML models. The following table lists the possible model statuses and their definitions: [%header,cols="1,6,^.^1"] |=== .^|Status .^|Definition |Status icon |Active |The model is active and available. a|![Active](leverage-machine-learning/model-active.png) |Build in progress |The model is currently building. a|![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/)). a|![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/)). a|![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/). a|![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/)). a|![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/). a|![Archived](leverage-machine-learning/model-archived.png) |=== ## Required privileges By default, members with the [required privileges](https://docs.coveo.com/en/1832#required-privileges) can view and edit elements of 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. The following table indicates the privileges required for members to manage Coveo Generic models (see [Manage privileges](https://docs.coveo.com/en/3151/) and [Privilege reference](https://docs.coveo.com/en/1707/)). [cols="3",options="header"] |=== |Action |Service - Domain |Required access level |View models |Machine Learning - Models Organization - Organization Search - Query pipelines |View .5+|Manage models |Organization - Organization Search - Query pipelines |View |Machine Learning - Models |Edit |Machine Learning - Allow content preview |Enable |Content - Sources |View All |Content - Fields |View |=== ## What's next? [Associate the CPR model with a query pipeline](https://docs.coveo.com/en/oaie6403/).