CreateIndex
Use this API to create two types of knowledge bases: unstructured knowledge bases for documents, audio, or video, and structured knowledge bases for data queries or image Q&A.
Operation description
-
Permissions:
- RAM user: A RAM user must obtain the required API permissions for Alibaba Cloud Model Studio and join a workspace before calling this operation. You can use the
AliyunBailianDataFullAccesspolicy, which includes thesfm:CreateIndexpermission required for this operation. - Alibaba Cloud account: By default, Alibaba Cloud accounts have the required permissions and can call this operation directly.
- RAM user: A RAM user must obtain the required API permissions for Alibaba Cloud Model Studio and join a workspace before calling this operation. You can use the
-
How to call: Use the latest version of the to call this operation. The SDK handles the complex signature calculation logic to simplify the process.
-
What to do next: This operation only initializes a knowledge base creation job. After calling this operation, you must call the SubmitIndexJob operation to complete the creation. Otherwise, an empty knowledge base is created. For related code examples, see Knowledge base API guide.
-
Idempotence: This operation is not idempotent. Repeated calls may create multiple knowledge bases with the same name. To ensure idempotence, query for the knowledge base before you create it.
Rate limiting: Frequent calls to this operation are subject to rate limiting. Do not exceed a frequency of 10 calls per second. If you encounter rate limiting, retry the call later.
Try it now
Try this API in OpenAPI Explorer, no manual signing needed. Successful calls auto-generate SDK code matching your parameters. Download it with built-in credential security for local usage.
RAM authorization
The table below describes the authorization required to call this API. You can define it in a Resource Access Management (RAM) policy. The table's columns are detailed below:
-
Action: The actions can be used in the
Actionelement of RAM permission policy statements to grant permissions to perform the operation. -
API: The API that you can call to perform the action.
-
Access level: The predefined level of access granted for each API. Valid values: create, list, get, update, and delete.
-
Resource type: The type of the resource that supports authorization to perform the action. It indicates if the action supports resource-level permission. The specified resource must be compatible with the action. Otherwise, the policy will be ineffective.
- For APIs with resource-level permissions, required resource types are marked with an asterisk (*). Specify the corresponding Alibaba Cloud Resource Name (ARN) in the
Resourceelement of the policy. - For APIs without resource-level permissions, it is shown as All Resources. Use an asterisk (*) in the
Resourceelement of the policy.
- For APIs with resource-level permissions, required resource types are marked with an asterisk (*). Specify the corresponding Alibaba Cloud Resource Name (ARN) in the
-
Condition key: The condition keys defined by the service. The key allows for granular control, applying to either actions alone or actions associated with specific resources. In addition to service-specific condition keys, Alibaba Cloud provides a set of common condition keys applicable across all RAM-supported services.
-
Dependent action: The dependent actions required to run the action. To complete the action, the RAM user or the RAM role must have the permissions to perform all dependent actions.
Action | Access level | Resource type | Condition key | Dependent action |
|---|---|---|---|---|
sfm:CreateIndex | create | *All Resource
| None | None |
Request syntax
POST /{WorkspaceId}/index/create HTTP/1.1
Path Parameters
Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
WorkspaceId | string | Yes | The ID of the workspace where you want to create the knowledge base. For more information about how to obtain the workspace ID, see How to use workspaces. | llm-3z7uw7fwz0vexxxx |
Request parameters
Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
Name | string | Yes | The name of the knowledge base. The name can be 1 to 20 characters in length and can contain Chinese characters, letters, digits, underscores (_), hyphens (-), periods (.), and colons (:). | Enterprise doc lib |
StructureType | string | Yes | The type of the knowledge base. Valid values:
The type of a knowledge base cannot be changed after it is created. Valid values:
| unstructured |
EmbeddingModelName | string | No | The vector model used by the knowledge base. A vector model converts the original input prompt and knowledge text into numerical vectors to compare their similarity. The text-embedding-v4 model is a comprehensive upgrade over the text-embedding-v3 model in terms of language support, vectorization of code snippets, and vector dimension selection. It is suitable for most scenarios. For more information, see Vectorization. Valid values:
If you do not specify this parameter, `text-embedding-v3` is used. | text-embedding-v2 |
RerankModelName | string | No | The reranking model used by the knowledge base. The reranking model is an external scoring system that calculates a similarity score between the user's question and each text chunk in the knowledge base, sorts them in descending order, and returns the top K text chunks. Valid values:
If you do not specify this parameter, `qwen3-rerank` is used. Use `qwen3-rerank` if you only need semantic sorting. Use `qwen3-rerank-hybrid` if you need both semantic sorting and text-matching features to ensure relevance. The `gte-rerank-hybrid` and `gte-rerank` models are no longer updated and are not recommended. Valid values:
| gte-rerank-hybrid |
RerankMinScore | number | No | The similarity threshold. Only text chunks with a similarity score greater than this value are recalled. This is used to filter the text chunks returned by the reranking model. The value must be between 0.01 and 1.00. If you do not specify this parameter, the default value 0.01 is used. | 0.20 |
ChunkSize | integer | No | The chunk size, which is the maximum number of characters for each text chunk. If this length is exceeded:
The value must be between 1 and 6000. If you do not specify this parameter, the default value 500 is used. If you set `ChunkSize` to a value less than 100, you must also set `OverlapSize`. You can also leave both parameters unspecified, and the system will use the default values. | 128 |
OverlapSize | integer | No | The overlap size, which is the number of overlapping characters between the current text chunk and the previous one. The value must be between 0 and 1024. If you do not specify this parameter, the default value 100 is used. `OverlapSize` must be smaller than `ChunkSize`. Otherwise, chunking errors will occur. | 16 |
Separator | string | No | The sentence separator. This parameter takes effect only when `chunkMode` is set to regex. It is ignored in other modes, even if specified. You can enter a regular expression (multiple expressions are not supported) to split the file into smaller text chunks. For smart chunking (the `chunkMode` parameter is not specified), you can leave this parameter empty. | (?<=。) |
SourceType | string | No | In the latest SDK version, this parameter is required. Otherwise, calling the SubmitIndexJob operation will result in the error: Required parameter(data_sources) missing or invalid. The source of the imported data. Valid values:
If you set this parameter to DATA_CENTER_CATEGORY, you must specify the `CategoryIds` parameter. If you set this parameter to DATA_CENTER_FILE, you must specify the `DocumentIds` parameter. To create an empty knowledge base, use an empty category that contains no files. Set this parameter to DATA_CENTER_CATEGORY and specify the ID of the empty category for `CategoryIds`. Valid values:
| DATA_CENTER_FILE |
DocumentIds | array | No | You can import files when you create a knowledge base. Specify a list of files to import by providing their IDs. We recommend importing no more than 10,000 files. If you have more files, you can call the SubmitIndexAddDocumentsJob operation to import them later. | |
string | No | The file ID. This is the | file_9a65732555b54d5ea10796ca5742ba22_xxxxxxxx | |
CategoryIds | array | No | You can import files when you create a knowledge base. Specify category IDs to import all files under the corresponding categories. We recommend importing no more than 10,000 files. If you have more files, you can call the SubmitIndexAddDocumentsJob operation to import them later. | |
string | No | The category ID. This is the `CategoryId` returned by the AddCategory operation. You can also obtain it on the Files tab of by clicking the ID icon next to the category name. | ca_hiu2383nfxxxx | |
TableIds | array | No | Obtain the table ID on the Tables tab of the table connector in Data Connections by clicking the ID icon next to the table name. If the list contains multiple IDs, only the first one is used. | |
string | No | |||
SinkType | string | Yes | The storage class for the knowledge base vectors. For more information, see Knowledge bases. Valid values:
If you have not used ADB storage on Alibaba Cloud Model Studio, go to the page, set the vector storage class to ADB-PG, and follow the on-screen instructions to grant the required permissions. If you set this parameter to ADB, you must specify the `SinkInstanceId` and `SinkRegion` parameters. Valid values:
| BUILT_IN |
SinkInstanceId | string | No | The ID of the AnalyticDB for PostgreSQL instance. This parameter is required only when `SinkType` is set to ADB. Go to the AnalyticDB for PostgreSQL instance list page to obtain this ID. | gp-bp32109xxxx |
SinkRegion | string | No | The region where the AnalyticDB for PostgreSQL instance is located. This parameter is required only when `SinkType` is set to ADB. You can call the operation to obtain a list of regions. | cn-hangzhou |
Columns | array<object> | No | The structure of the data table (column names, types, etc.). | |
object | No | This parameter is not yet available. Do not specify it. | ||
Column | string | No | This parameter is not yet available. Do not specify it. | school |
IsRecall | boolean | No | Specifies whether to participate in model response generation. If enabled, the retrieval results from this column are used as input for the LLM to generate an answer. Valid values:
| true |
IsSearch | boolean | No | Specifies whether to participate in knowledge base retrieval. If enabled, the knowledge base is allowed to search for data in this column. Valid values:
| true |
Name | string | No | The field name. It must be consistent with the table header of the data table created in Application Data. | School |
Type | string | No | The field type. It must be consistent with the table header of the data table created in Application Data. Valid values:
| string |
Description | string | No | The description of the knowledge base. The description can be 0 to 1,000 English or Chinese characters in length. The default value is empty. | Enterprise doc lib includes important materials |
metaExtractColumns | array<object> | No | The metadata extraction configuration. Metadata is a series of additional attributes related to unstructured data content. These attributes are integrated into text chunks as key-value pairs. For more information, see Knowledge bases. | |
object | No | |||
Key | string | No | The metadata field. The field name can be 1 to 50 characters in length and must consist of letters or underscores. If you specify this parameter, you must also specify the `Value` and `Type` parameters. | author |
Value | string | No | The value of the metadata field. | Tim |
Type | string | No | The method for obtaining the value of the metadata field. Valid values:
Valid values:
| constant |
Desc | string | No | The Chinese description of the metadata field. The description can be 0 to 1,000 characters in length and can contain Chinese characters, letters, digits, underscores (_), hyphens (-), periods (.), and colons (:). The default value is empty. | Author name |
EnableLlm | boolean | No | If enabled, the metadata field and its value are used along with the text chunk content in the answer generation process of the LLM. Valid values:
The default value is false. Valid values:
| false |
EnableSearch | boolean | No | If enabled, the metadata field and its value are used along with the text chunk content in the knowledge base retrieval process. Valid values:
The default value is false. Valid values:
| false |
enableHeaders | boolean | No | Specifies whether to treat the first row of all .xlsx and .xls files as the table header and append it to each text chunk. This prevents the LLM from treating the header as a regular data row. We recommend enabling this feature only when all imported files are in .xlsx or .xls format and contain a header. Otherwise, do not enable it. Valid values:
If you do not specify this parameter, this feature is disabled by default. Valid values:
| false |
chunkMode | string | No | Enables custom chunking and specifies the chunking policy. For more information, see Knowledge bases. Possible values (only one value can be specified at a time):
If you do not specify this parameter, smart chunking is used by default. Valid values:
| regex |
EnableRewrite | boolean | No | Specifies whether to enable multi-turn conversation rewriting. Valid values:
If you do not specify this parameter, this feature is enabled by default. Valid values:
| true |
CreateIndexType | string | No | This parameter is not yet available. Do not specify it. | standard |
pipelineCommercialType | string | No | The edition type of the knowledge base. Valid values:
| standard |
pipelineCommercialCu | integer | No | The number of RCUs for the knowledge base. This parameter is required only when `pipelineCommercialType` is set to `enterprise`. The value must be between 1 and 200. | 1 |
pipelineRetrieveRateLimitStrategy | string | No | The rate limiting policy for the knowledge base dependency chain. This parameter is required only when `pipelineCommercialType` is set to `enterprise`. Value: downgrade: Degrades the service (switches to using a lightweight retrieval chain). If you do not specify this parameter, the default value `downgrade` is used. | downgrade |
knowledgeType | string | No | The data source code. This parameter is required when creating a data query knowledge base and is used with `table` and `database`. We recommend using the new `connectId` parameter, which you can obtain from the data connector card on the Data Connections page. This parameter is still compatible but will no longer be maintained in the future.
| document |
RerankMode | string | No | The name of the data table. This parameter is required when creating a data query knowledge base. The data table must exist in the data source specified by `connectId` or `datasourceCode`. Valid values:
| qa |
RerankInstruct | string | No | The name of the database. This parameter is required when creating a data query knowledge base. The database must exist in the data source specified by `datasourceCode`. |
Response elements
Element | Type | Description | Example |
|---|---|---|---|
object | Schema of Response | ||
Code | string | Error status code | Forbidden |
Data | object | The business data returned when the request is successful. | |
Id | string | The ID of the knowledge base, also known as `IndexId`. This is the unique identifier of the created knowledge base. Keep this value safe. It will be used for all subsequent API operations related to this knowledge base. | jkurxhxxxx |
Message | string | Error message | Invalid input, variable name is missing |
RequestId | string | Request ID | 17204B98-xxxx-4F9A--2446A84821CA |
Status | string | The status code returned by the interface. | "200" |
Success | boolean | Indicates whether the request was successful. Possible values:
| true |
Examples
Success response
JSON format
{
"Code": "Forbidden",
"Data": {
"Id": "jkurxhxxxx"
},
"Message": "Invalid input, variable name is missing",
"RequestId": "17204B98-xxxx-4F9A--2446A84821CA",
"Status": "\"200\"",
"Success": true
}
Error codes
See Error Codes for a complete list.
Release notes
See Release Notes for a complete list.