--- title: "创建嵌入向量" date: 2026-01-30 lastmod: 2026-01-30 description: "说明 Easysearch 中创建嵌入向量相关 API 的情况。" tags: ["AI", "嵌入向量", "API说明"] summary: "API 状态说明 # 重要提示:POST /_ai/embeddings API 在 Easysearch 中已废弃,调用此 API 会返回 HTTP 410 (Gone) 状态码。 废弃的 API # POST /_ai/embed POST /_ai/embed/{model} 响应状态 # 调用已废弃的端点时会返回: 状态码:410 Gone 错误信息:“Deprecated and no longer supported” 推荐的替代方案 # 虽然 REST 端点已被废弃,但嵌入功能仍然可以通过以下方式使用: 1. 摄入管道 + TextEmbedding 处理器 # 在创建索引时通过摄入管道自动生成嵌入向量: PUT /_ingest/pipeline/my-pipeline { "processors": [ { "text_embedding": { "model": "text-embedding-ada-002", "text_field": "content", "vector_field": "content_embedding", "url": "http://localhost:11434/api/embeddings", "vendor": "ollama" } } ] } 2." --- ## API 状态说明 **重要提示**:`POST /_ai/embeddings` API 在 Easysearch 中**已废弃**,调用此 API 会返回 HTTP 410 (Gone) 状态码。 ## 废弃的 API ``` POST /_ai/embed POST /_ai/embed/{model} ``` ### 响应状态 调用已废弃的端点时会返回: - **状态码**:410 Gone - **错误信息**:"Deprecated and no longer supported" ## 推荐的替代方案 虽然 REST 端点已被废弃,但嵌入功能仍然可以通过以下方式使用: ### 1. 摄入管道 + TextEmbedding 处理器 在创建索引时通过摄入管道自动生成嵌入向量: ```json PUT /_ingest/pipeline/my-pipeline { "processors": [ { "text_embedding": { "model": "text-embedding-ada-002", "text_field": "content", "vector_field": "content_embedding", "url": "http://localhost:11434/api/embeddings", "vendor": "ollama" } } ] } ``` ### 2. 搜索管道 + 语义查询 在搜索时使用语义查询处理器: ```json PUT /_search/pipeline/semantic-search { "request_processors": [ { "semantic_query_enricher": { "model_name": "text-embedding-ada-002", "text_field": "query_text", "embedding_field": "content_embedding" } } ] } ``` ### 3. Action API 使用内部的 `cluster:admin/ai/embed` action。 ## 废弃 API 的参数说明 虽然 API 已废弃,以下是原始参数说明: ### 路由参数 | 参数 | 类型 | 是否必需 | 描述 | |------|------|----------|------| | `model` | string | 可选 | 要使用的 AI 模型名称 | ### 请求体参数 | 参数 | 类型 | 是否必需 | 描述 | |------|------|----------|------| | `model` | string | 必需 | AI 模型名称 | | `input` | array | 必需 | 需要生成嵌入向量的文本数组 | | `url` | string | 必需 | 外部 AI 服务的 URL 地址 | | `vendor` | string | 必需 | AI 服务提供商
`openai`:OpenAI
`ollama`:Ollama 或兼容服务 | | `dimensions` | integer | 可选 | 输出向量的维度 | | `api_key` | string | 条件必需 | OpenAI 的 API 密钥 | ## 已废弃的请求示例 ```json POST /_ai/embed { "model": "text-embedding-3-large", "input": ["Hello world", "How are you?"], "dimensions": 1536, "url": "https://api.openai.com/v1/embeddings", "vendor": "openai", "api_key": "sk-..." } ``` ## 响应示例(已废弃) ```json { "data": [ { "index": 0, "embedding": [0.1, -0.2, 0.3, ...] } ], "model": "text-embedding-3-large", "usage": { "prompt_tokens": 24, "total_tokens": 24 } } ``` ## 迁移指南 如果您之前使用过 `POST /_ai/embed` API,请按以下方式迁移: ### 原方式(已废弃) ```json POST /_ai/embed { "input": ["Hello world"], "model": "text-embedding-ada-002" } ``` ### 新方式(推荐) ```json # 创建包含嵌入处理的文档 POST /my-index/_doc?pipeline=my-pipeline { "content": "Hello world" } ``` ## 支持的模型 根据文档,Easysearch 支持的嵌入模型包括: - **nomic-embed-text**:文本嵌入模型 - **text-embedding-ada-002**:OpenAI 嵌入模型 - **其他 Ollama 兼容模型** ## 注意事项 1. 该 API 已完全废弃,不再支持 2. 建议使用摄入管道实现自动嵌入 3. 搜索管道提供更灵活的语义搜索功能 4. 配置外部 AI 服务时确保网络连通性 ## 相关文档 - [创建或更新摄入管道](./create-or-update-ingest-pipeline.md) - [创建搜索管道](./create-search-pipeline.md) - [SQL查询](./sql-query.md)