通过编程创建向量索引
您可以通过编程方式创建向量索引资产,从而高效地从存储在向量数据存储中的文档中检索文本片段。
您可以从不同类型的矢量数据存储中选择,用于索引您的接地文档。 有关向量存储的详细信息,包括向量化和搜索设置、支持的文档文件类型以及支持的编码器模型,请参阅向量索引设置。
开始之前
- 在您能够使用该API之前,您的管理员必须在创建向量索引资产时安装您想要使用的嵌入模型。
您只能使用该 ms-marco-minilm-l-12-v2 模型对通过API创建的向量索引中的搜索结果进行重新排序。 您的管理员必须安装重新排序模型才能启用搜索结果重新排序功能。
您必须在项目中拥有管理员或编辑角色。
您必须生成凭据才能通过 watsonx.ai 的API进行身份验证。 详情请参阅生成持有人令牌。
或者,您也可以使用 watsonx.ai 用户界面的图形工具来创建矢量索引。 请参阅从用户界面创建向量索引。
过程
您可以使用 watsonx.ai 的REST API在项目中创建和管理矢量索引资产。 详情请参阅 watsonx.ai API参考文档中的向量索引 - 事务性API部分。
使用REST API创建矢量索引资产的高级步骤,对于每种类型的矢量数据存储而言基本相同。 关键差异在于向量索引资产请求主体中需包含的值,具体如下文流程所示:
将您的接地文件作为数据资产上传至项目中,并记录文件的资产ID。
要获取文件的资产ID:
在项目的 “资产 ”选项卡中,选择 “数据 > 数据资产 ”资产类型。
点击您的接地文件资产名称。
该ID可从 URL 的.
data-assets/后缀部分获取。 URL 的格式如下:https://<host-name>/projects/<project-id>/data-assets/<asset-id>
为您的矢量数据存储创建矢量索引资产。 REST API请求创建索引资产,并为存储在向量数据存储中的文档生成文本嵌入向量。 通过使用数据资产ID来引用文档,并重新排序矢量搜索结果。
限制: 您无法调整通过API创建的向量索引资产的搜索结果和重新排序设置。- 内存向量存储
以下示例 REST API 请求将在您的项目中创建一个向量索引资产,用于内存中向量存储:
curl --location --request POST 'https://cpd-<namespace-name>.apps.<OCP-domain>/v1/transactional_vector_indexes?version=2026-01-05' \ --header 'Authorization: Bearer ${TOKEN}' \ --header 'Content-Type: application/json' \ --data-raw '{ "project_id": "4e34d515-c61f-4f18-92b4-758be78d0a58", "name": "transactional-flow-external-inmemory", "description": "Create vector index with API", "data_assets": [ "df9ea6b4-2382-4ab7-aa54-d82e9432db34", "2ee31d21-f57b-4c76-b492-6cdb3c0d8389" ], "store": { "type": "memory" }, "settings": { "chunk_size": 2000, "chunk_overlap": 200, "top_k": 3, "split_pdf_pages": true, "rerank": true, "embedding_model_id": "sentence-transformers/all-minilm-l6-v2" } }'- Elasticsearch 向量存储器
在使用连接ID创建向量索引之前,请先创建与 Elasticsearch 向量存储的连接。 有关详细信息,请参阅设置 Elasticsearch 向量存储库。
以下示例REST API请求将在您的项目中为 Elasticsearch 向量存储创建向量索引资产:
curl --location --request POST 'https://cpd-<namespace-name>.apps.<OCP-domain>/v1/transactional_vector_indexes?version=2026-01-05' \ --header 'Authorization: Bearer ${TOKEN}' \ --header 'Content-Type: application/json' \ --data '{ "project_id": "4e34d515-c61f-4f18-92b4-758be78d0a58", "name": "transactional-flow-external-elastic", "description": "My first vector index", "data_assets": [ "5aa17ada-fdf9-4453-82dd-cf9ea84ab569" ], "store": { "type": "elasticsearch", "connection_id": "697dbae3-13b1-4ca9-8b65-16248e2d2675", "index": "wx-newindex", "new_index": true, "database": "rag" }, "settings": { "chunk_size": 2000, "chunk_overlap": 200, "top_k": 3, "split_pdf_pages": true, "rerank": true, "embedding_model_id": ".elser_model_2", "schema_fields": { "document_name": "metadata.document_name", "text": "text", "page_number": "metadata.page", "vector_query": "vector" } }'- watsonx.data Milvus 向量存储器
在使用连接标识创建向量索引之前,请先建立与 watsonx.data Milvus 向量存储库的连接。 有关详细信息,请参阅设置 watsonx.dataMilvus 向量存储库。
以下示例REST API请求将在您的项目中为 watsonx.dataMilvus 向量存储创建一个向量索引资产:
curl --location --request POST 'https://cpd-<namespace-name>.apps.<OCP-domain>/v1/transactional_vector_indexes?version=2026-01-05' \ --header 'Authorization: Bearer ${TOKEN}' \ --header 'Content-Type: application/json' \ --data '{ "project_id": "4e34d515-c61f-4f18-92b4-758be78d0a58", "name": "transactional-flow-external-milvus-may29", "description": "My first vector index", "data_assets": [ "09dcb221-e262-4bba-9c72-18be5e5fe9e8" ], "store": { "type": "watsonx.data", "connection_id": "a02785b4-aa31-4a54-8a12-52df08c56b38", "index": "wx_milvusindex", "new_index": true, "database": "default" }, "settings": { "chunk_size": 2000, "chunk_overlap": 200, "top_k": 3, "split_pdf_pages": true, "rerank": true, "embedding_model_id": "sentence-transformers/all-minilm-l6-v2", "schema_fields": { "document_name": "document_name", "text": "text", "page_number": "page" } }'
仅适用于外部向量存储: REST API响应返回向量索引资产ID以及 Python 笔记本资产ID,该笔记本用于启动作业运行,在外部向量存储中生成文本嵌入。 响应中还包含嵌入生成任务的ID。
您可以通过更新 Python 笔记本、向量化设置和数据资产来管理向量索引资产。
运行以下示例 REST API 请求,以编辑矢量索引资产的矢量化设置:
curl --location --request POST 'https://cpd-<namespace-name>.apps.<OCP-domain>/v1/transactional_vector_indexes/<vector-index-asset-id>' \ --header 'Authorization: Bearer ${TOKEN}' \ --header 'Content-Type: application/json' \ --data-raw '{ "settings": { "chunk_size": 2000, "chunk_overlap": 200, "top_k": 3, "split_pdf_pages": true, "rerank": false, "embedding_model_id": "ibm/granite-embedding-278m-multilingual", "schema_fields": { "document_name": "document_name", "text": "text", "page_number": "page" } } }'
后续操作
现在,您可以使用存储文档集的向量索引资产,尝试检索增强生成(RAG)模式。 将提示逻辑保存到笔记本中,以便在生成式人工智能应用程序中使用。 详情请参阅《 保存您的工作 》 和《检索增强生成》。