文本嵌入处理器
text_embedding
处理器用于从文本字段生成向量嵌入,以实现语义搜索。
先决条件
在使用 text_embedding
处理器之前,您必须设置一个机器学习 (ML) 模型。有关更多信息,请参阅选择模型。
以下是 text_embedding
处理器的语法:
{
"text_embedding": {
"model_id": "<model_id>",
"field_map": {
"<input_field>": "<vector_field>"
}
}
}
配置参数
下表列出了 text_embedding
处理器的必需和可选参数。
参数 | 数据类型 | 必需/可选 | 描述 |
---|---|---|---|
model_id | 字符串 | 必需 | 将用于生成嵌入的模型 ID。模型必须先部署到 OpenSearch 中才能在神经搜索中使用。有关更多信息,请参阅在 OpenSearch 中使用自定义模型和语义搜索。 |
field_map | 对象 | 必需 | 包含键值对,用于指定文本字段到向量字段的映射。 |
field_map.<input_field> | 字符串 | 必需 | 用于获取文本以生成文本嵌入的字段名称。 |
field_map.<vector_field> | 字符串 | 必需 | 用于存储生成的文本嵌入的向量字段名称。 |
description | 字符串 | 可选 | 处理器的简要描述。 |
tag | 字符串 | 可选 | 处理器的标识符标签。有助于调试以区分相同类型的处理器。 |
batch_size | 整数 | 可选 | 指定每次批处理和处理的文档数量。默认值为 1 。 |
if | 包含布尔表达式的字符串 | 可选 | 运行处理器的条件。 |
ignore_failure | 布尔型 | 可选 | 指定即使处理器遇到错误是否继续执行。如果设置为 true ,则忽略处理器故障。默认值为 false 。 |
on_failure | 列表 | 可选 | 处理器失败时要运行的处理器列表。 |
skip_existing | 布尔型 | 可选 | 当为 true 时,处理器不会对已包含嵌入的字段进行推理调用,保留现有嵌入不变。默认值为 false 。 |
使用处理器
按照以下步骤在管道中使用处理器。创建处理器时必须提供模型 ID。有关更多信息,请参阅在 OpenSearch 中使用自定义模型。
步骤 1:创建管道。
以下示例请求创建了一个摄入管道,其中 passage_text
中的文本将被转换为文本嵌入,并且这些嵌入将存储在 passage_embedding
中
PUT /_ingest/pipeline/nlp-ingest-pipeline
{
"description": "A text embedding pipeline",
"processors": [
{
"text_embedding": {
"model_id": "bQ1J8ooBpBj3wT4HVUsb",
"field_map": {
"passage_text": "passage_embedding"
}
}
}
]
}
步骤 2 (可选):测试管道。
建议在摄取文档之前测试您的管道。
要测试管道,请运行以下查询
POST _ingest/pipeline/nlp-ingest-pipeline/_simulate
{
"docs": [
{
"_index": "testindex1",
"_id": "1",
"_source":{
"passage_text": "hello world"
}
}
]
}
响应
响应确认除了 passage_text
字段外,处理器已在 passage_embedding
字段中生成了文本嵌入
{
"docs": [
{
"doc": {
"_index": "testindex1",
"_id": "1",
"_source": {
"passage_embedding": [
-0.048237972,
-0.07612712,
0.3262124,
...
-0.16352308
],
"passage_text": "hello world"
},
"_ingest": {
"timestamp": "2023-10-05T15:15:19.691345393Z"
}
}
}
]
}
创建摄入管道后,您需要创建一个用于摄入的索引并将文档摄入到该索引中。要了解更多信息,请参阅步骤 2:创建用于摄入的索引和步骤 3:将文档摄入到索引中(来自语义搜索)。
后续步骤
- 要了解如何使用
neural
查询进行文本搜索,请参阅神经查询。 - 要了解更多关于语义搜索的信息,请参阅语义搜索。
- 要了解更多关于在 OpenSearch 中使用模型的信息,请参阅选择模型。
- 有关完整示例,请参阅语义和混合搜索入门。