Elasticsearch Inference API增加对阿里云AI的支持

本文涉及的产品
Elasticsearch Serverless通用抵扣包,测试体验金 200元
简介: 本文将介绍如何在 Elasticsearch 中设置和使用阿里云的文本生成、重排序、稀疏向量和稠密向量服务,提升搜索相关性。

作者: David Kyle,Weizijun,Jerry

近日,Elastic宣布 Elasticsearch 开放推理 API 集成阿里云 AI 搜索能力。这项工作使Elastic用户能够直接连接阿里云AI搜索开放平台。使用 Elasticsearch 向量数据库构建 RAG 应用程序的开发人员可以用semantic_text 字段类型存储和使用由阿里云AI搜索开放平台上托管的模型生成的稠密和稀疏向量。此外,Elastic 用户现在可以集成阿里云AI搜索的重排序模型,以增强语义重排序,还有 通义千问 大语言模型系列。

本篇博客将探讨如何将阿里云的AI服务与Elasticsearch集成。您将学习如何在 Elasticsearch 中设置和使用阿里巴巴的文本生成(chat completion)、重排序(rerank)、稀疏向量(sparse vector)和稠密向量(dense vector)服务。将这些多种类型的模型集成到推理任务中将增强包括 RAG 在内的许多应用场景的搜索相关性。

阿里云团队为 Elasticsearch 开放推理 API 贡献代码来支持这些任务类型,并且通过示例了解如何在 Elasticsearch 环境中配置和使用这些服务。注意阿里云使用 service_id 这样的术语 而不是 model_id

使用阿里云AI搜索开放平台中的基础模型

本演练假设您已经拥有阿里云的帐户来使用阿里云AI搜索开放平台。接下来,您需要创建一个工作空间和 API key以用于创建推理模型。

在 Elasticsearch 中创建推理 API 端点

在 Elasticsearch 中,通过“alibabacloud-ai-search”服务来创建端点,并提供服务设置,包括工作空间、主机地址、服务 ID 和用于访问阿里云AI搜索平台的 api key。在 Elasticsearch 的示例中,使用“ops-text-embedding-001”作为service id 创建一个文本向量端点。

PUT _inference/text_embedding/ali_ai_embeddings{    "service": "alibabacloud-ai-search",    "service_settings": {        "api_key": "<api_key>",        "service_id": "ops-text-embedding-001",        "host": "xxxxx.platform-cn-shanghai.opensearch.aliyuncs.com",        "workspace": "default"    }}

您将收到来自 Elasticsearch 的响应,其中包含已成功创建的端点:

{  "inference_id": "ali_ai_embeddings",  "task_type": "text_embedding",  "service": "alibabacloud-ai-search",  "service_settings": {    "similarity": "dot_product",    "dimensions": 1536,    "service_id": "ops-text-embedding-001",    "host": "xxxxx.platform-cn-shanghai.opensearch.aliyuncs.com",    "workspace": "default",    "rate_limit": {      "requests_per_minute": 10000    }  },  "task_settings": {}}

请注意,模型创建不需要其他额外的设置。 Elasticsearch将自动连接阿里云AI搜索开放平台来测试您的凭据和service id,并为您填写维度数和相似度度量。

接下来,测试端点以确保一切设置正确。为此将调用执行推理 API:

POST _inference/text_embedding/ali_ai_embeddings{  "input": "What is Elastic?"}

API 调用将返回输入文本生成的向量,如下所示:

{    "text_embedding": [        {            "embedding": [                0.048400473,                0.051464397,                … (additional values) …                0.033325635,                -0.008986305            ]        }    ]}

您现在已准备好开始探索。尝试完这些示例后,请看一下 Elasticsearch 中针对语义搜索应用场景的一些令人兴奋的创新:

  • 新的`semantic_text` 字段 简化了向量的存储和分块 - 只需选择您的模型,Elastic 即可完成剩余的工作!
  • 8.14 中引入的 `retrievers` 允许您设置多阶段召回处理管道

首先,需要我们深入研究示例!

1. 会话生成

阿里云提供了多种会话生成模型,service ID 列于其模型 API文档 中。

步骤1:配置会话生成服务

设置用于会话生成的推理服务:

PUT _inference/completion/ali-chat{ "service": "alibabacloud-ai-search", "service_settings": {     "host" : "xxxxx.platform-cn-shanghai.opensearch.aliyuncs.com",     "api_key": "xxxxxxxxxxxxxxxxxx",     "service_id": "ops-qwen-turbo",     "workspace" : "default" }}

返回

"inference_id": "ali-chat", "task_type": "completion", "service": "alibabacloud-ai-search", "service_settings": {   "service_id": "ops-qwen-turbo",   "host": "xxxxx.platform-cn-shanghai.opensearch.aliyuncs.com",   "workspace": "default",   "rate_limit": {     "requests_per_minute": 1000   } }, "task_settings": {}}

步骤2:发出会话生成的请求

使用配置的端点,发送 POST 请求以生成会话:

POST _inference/completion/ali-chat{ "input":["Where is the capital of Henan?"]}

返回

{ "completion": [   {     "result": "The capital of Henan is Zhengzhou."   } ]}

独一无二的,在阿里云的 Elastic 推理 API 集成中,聊天历史记录可以包含在输入中,在此示例中包含了之前返回的内容并添加了:“那里有什么有趣的事情吗?”

POST _inference/completion/ali-chat{ "input":["Where is the capital of Henan?", "The capital of Henan is Zhengzhou.", "What fun things are there?" ]}

响应明确包含了历史记录

{ "completion": [   {     "result": "I'm sorry, I do not have enough information to provide a specific list of fun things to do in Zhengzhou, Henan. I can only tell you that Zhengzhou is the capital of Henan province. To find out about fun activities, attractions, or events in Zhengzhou, I would suggest researching local tourism websites, asking locals, or checking out travel guides for the area."   } ]}

在未来的更新中,Elastic 计划允许用户明确地包含聊天历史记录,以提高易用性。

2. 重排序

继续下一个任务类型, 重排序。重排序可以利用阿里云强大的模型对搜索结果进行重新排序,以提高相关性。如果您想了解有关此概念的更多信息,请查看 Elastic 上的此博客 Search Labs

步骤1:配置重排序服务

配置重排序推理服务:

PUT _inference/rerank/ali-rank{ "service": "alibabacloud-ai-search", "service_settings": {   "api_key": "xxxxxxxxxxxxxxxxxx",   "service_id": "ops-bge-reranker-larger",   "host" : "xxxxx.platform-cn-shanghai.opensearch.aliyuncs.com",   "workspace" : "default"    }}

{ "inference_id": "ali-rank", "task_type": "rerank", "service": "alibabacloud-ai-search", "service_settings": {   "service_id": "ops-bge-reranker-larger",   "host": "xxxxx.platform-cn-shanghai.opensearch.aliyuncs.com",   "workspace": "default",   "rate_limit": {     "requests_per_minute": 1000   } }, "task_settings": {}}

步骤2:发出重排序请求

发送 POST 请求以重新排列您的搜索查询结果:

rerank 接口不需要很多配置(task_settings),它返回语义相关性分数,越相关的越靠前,并返回其对应文本在输入数组中的序号 。

POST _inference/rerank/ali-rank{ "query": "What is the capital of the USA?", "input": [   "Carson City is the capital city of the American state of Nevada. At the 2010 United States Census, Carson City had a population of 55,274.",   "Capital punishment (the death penalty) has existed in the United States since before the United States was a country. As of 2017, capital punishment is legal in 30 of the 50 states.",   "The Commonwealth of the Northern Mariana Islands is a group of islands in the Pacific Ocean that are a political division controlled by the United States. Its capital is Saipan.",   "Washington, D.C. (also known as simply Washington or D.C., and officially as the District of Columbia) is the capital of the United States. It is a federal district.",   "Charlotte Amalie is the capital and largest city of the United States Virgin Islands. It has about 20,000 people. The city is on the island of Saint Thomas.",   "North Dakota is a state in the United States. 672,591 people lived in North Dakota in the year 2010. The capital and seat of government is Bismarck." ]}

{ "rerank": [   {     "index": 3,     "relevance_score": 0.9998832   },   {     "index": 4,     "relevance_score": 0.008847355   },   {     "index": 5,     "relevance_score": 0.0026626128   },   {     "index": 0,     "relevance_score": 0.00068250194   },   {     "index": 2,     "relevance_score": 0.00019716943   },   {     "index": 1,     "relevance_score": 0.00011591934   } ]}

3. 稀疏向量

阿里云特别为生成稀疏向量提供了一个模型 ,使用 ops-text-sparse-embedding-001 这个 service id。

步骤1:配置稀疏向量生成服务

PUT _inference/sparse_embedding/ali-sparse-embedding{ "service": "alibabacloud-ai-search", "service_settings": {   "api_key": "xxxxxxxxxxxxxxxxxx",   "service_id": "ops-text-sparse-embedding-001",   "host" : "xxxxx.platform-cn-shanghai.opensearch.aliyuncs.com",   "workspace" : "default" }}

{ "inference_id": "ali-sparse-embedding", "task_type": "sparse_embedding", "service": "alibabacloud-ai-search", "service_settings": {   "service_id": "ops-text-sparse-embedding-001",   "host": "xxxxx.platform-cn-shanghai.opensearch.aliyuncs.com",   "workspace": "default",   "rate_limit": {     "requests_per_minute": 1000   } }, "task_settings": {}}

步骤2:发出稀疏向量生成查询

Sparse 的 task_settings 为:

  • input_type - ingest 或 search
  • return_token - 如果为 true,则在响应中包含文本token,否则仅返回数字

POST _inference/sparse_embedding/ali-sparse-embedding{ "input": "Hello world", "task_settings": {   "input_type": "search",   "return_token": true }}

{ "sparse_embedding": [   {     "is_truncated": false,     "embedding": {       "hello": 0.27783203,       "world": 0.28222656     }   } ]}

设置 return_token == false 返回如下

{ "sparse_embedding": [   {     "is_truncated": false,     "embedding": {       "8999": 0.28222656,       "35378": 0.27783203     }   } ]}

4. 文本向量

阿里云还为不同的任务类型提供多种 文本向量 模型 。

第 1 步:配置文本向量服务

文本向量只有一个task_setting:

  • input_type - ingest 或 search

PUT _inference/text_embedding/ali-embeddings{ "service": "alibabacloud-ai-search", "service_settings": {   "api_key": "xxxxxxxxxxxxxxxxxx",   "service_id": "ops-text-embedding-001",   "host" : "xxxxx.platform-cn-shanghai.opensearch.aliyuncs.com",   "workspace" : "default" }}

{ "inference_id": "ali-embeddings", "task_type": "text_embedding", "service": "alibabacloud-ai-search", "service_settings": {   "service_id": "ops-text-embedding-001",   "host": "xxxxx.platform-cn-shanghai.opensearch.aliyuncs.com",   "workspace": "default",   "rate_limit": {     "requests_per_minute": 1000   },   "similarity": "dot_product",   "dimensions": 1536 }, "task_settings": {}}

步骤2:发出文本向量请求

发送 POST 请求以生成文本向量:

POST _inference/text_embedding/ali-embeddings{ "input": "Hello world"}

{ "text_embedding": [   {     "embedding": [       -0.017036675,       0.07038724,       0.044685286,       0.0064531807,       0.013290042,       0.011183944,       -0.0020014185,       -0.009508779,

使用 Elastic 和阿里云进行AI搜索

无论您是使用 Elasticsearch 实现混合搜索、语义重排序,还是通过摘要增强 RAG 应用场景,与阿里云 AI 服务的连接都为 Elasticsearch 开发人员打开了一个充满可能性的新世界。

  • 要继续深入了解,请参考 Jupyter notebook ,里面包含了 Inference API 与阿里云 AI 搜索结合的端到端完整的示例。
  • 阅读阿里云关于 Elasticsearch AI搜索的创新的 公告 。

用户现在可以开始在 Elasticsearch Serverless环境和即将推出的 Elasticsearch 版本中使用它。愉快地进行搜索吧!


相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。 &nbsp;
相关文章
|
18天前
|
人工智能 文字识别 监控
|
15天前
|
云安全 人工智能 安全
Dify平台集成阿里云AI安全护栏,构建AI Runtime安全防线
阿里云 AI 安全护栏加入Dify平台,打造可信赖的 AI
|
22天前
|
云安全 人工智能 自然语言处理
阿里云x硅基流动:AI安全护栏助力构建可信模型生态
阿里云AI安全护栏:大模型的“智能过滤系统”。
|
17天前
|
人工智能 vr&ar UED
获奖公布|第十九届"挑战杯"竞赛2025年度中国青年科技创新"揭榜挂帅"擂台赛阿里云“AI技术助力乡村振兴”专题赛拟授奖名单公示
获奖公布|第十九届"挑战杯"竞赛2025年度中国青年科技创新"揭榜挂帅"擂台赛阿里云“AI技术助力乡村振兴”专题赛拟授奖名单公示
|
22天前
|
人工智能 数据处理 API
阿里云、Ververica、Confluent 与 LinkedIn 携手推进流式创新,共筑基于 Apache Flink Agents 的智能体 AI 未来
Apache Flink Agents 是由阿里云、Ververica、Confluent 与 LinkedIn 联合推出的开源子项目,旨在基于 Flink 构建可扩展、事件驱动的生产级 AI 智能体框架,实现数据与智能的实时融合。
214 6
阿里云、Ververica、Confluent 与 LinkedIn 携手推进流式创新,共筑基于 Apache Flink Agents 的智能体 AI 未来
|
15天前
|
机器学习/深度学习 人工智能 Serverless
吉利汽车携手阿里云函数计算,打造新一代 AI 座舱推理引擎
当前吉利汽车研究院人工智能团队承担了吉利汽车座舱 AI 智能化的方案建设,在和阿里云的合作中,基于星睿智算中心 2.0 的 23.5EFLOPS 强大算力,构建 AI 混合云架构,面向百万级用户的实时推理计算引入阿里云函数计算的 Serverless GPU 算力集群,共同为智能座舱的交互和娱乐功能提供大模型推理业务服务,涵盖的场景如针对模糊指令的复杂意图解析、文生图、情感 TTS 等。
|
18天前
|
缓存 监控 前端开发
顺企网 API 开发实战:搜索 / 详情接口从 0 到 1 落地(附 Elasticsearch 优化 + 错误速查)
企业API开发常陷参数、缓存、错误处理三大坑?本指南拆解顺企网双接口全流程,涵盖搜索优化、签名验证、限流应对,附可复用代码与错误速查表,助你2小时高效搞定开发,提升响应速度与稳定性。
|
18天前
|
存储 人工智能 OLAP
AI Agent越用越笨?阿里云AnalyticDB「AI上下文工程」一招破解!
AI 上下文工程是管理大模型输入信息的系统化框架,解决提示工程中的幻觉、上下文溢出与信息冲突等问题。通过上下文的采集、存储、加工与调度,提升AI推理准确性与交互体验。AnalyticDB PostgreSQL 版提供增强 RAG、长记忆、Supabase 等能力,助力企业构建高效、稳定的 AI 应用。
|
15天前
|
机器学习/深度学习 人工智能 算法
阿里云视频云以 360° 实时回放技术支撑 NBA 2025 中国赛 —— AI 开启“智能观赛”新体验
NBA中国与阿里云达成合作,首发360°实时回放技术,融合AI视觉引擎,实现多视角、低延时、沉浸式观赛新体验,重新定义体育赛事观看方式。
155 0
阿里云视频云以 360° 实时回放技术支撑 NBA 2025 中国赛 —— AI 开启“智能观赛”新体验
|
16天前
|
存储 人工智能 OLAP
AI Agent越用越笨?阿里云AnalyticDB「AI上下文工程」一招破解!
AI上下文工程是优化大模型交互的系统化框架,通过管理指令、记忆、知识库等上下文要素,解决信息缺失、长度溢出与上下文失效等问题。依托AnalyticDB等技术,实现上下文的采集、存储、组装与调度,提升AI Agent的准确性与协同效率,助力企业构建高效、稳定的智能应用。

相关产品

  • 检索分析服务 Elasticsearch版