如何为阿里云 Elasticsearch 创建推理端点,连接器,Workflow 并写入数据
阿里云上有很多的服务。在今天的文章中我重点介绍如何创供我们使用的推理端点连接器并使用代码写入我们的数据。在进行下面的操作之前建议观看视频阿里云 Elasticsearch 开通试用到登陆 Kibana 教程。https://www.bilibili.com/video/BV13pNJ6oEf6/我们可以使用阿里云提供的链接进入到试用页面如果你已经创建好了自己的 Elasticsearch 集群那么再次点击那个链接你就会看到上面的页面。点击上面的我的试用我们点击上面的控制台我们可以进行上面的测试。你也可以使用如下的命令来进行测试curl -u elastic:YourPassword http://es-cn-rcn4v4kcy0001wg52.public.elasticsearch.aliyuncs.com:9200/同样地你需要配置 Kibana 的公网地址设置完毕后我们可以直接访问 Kibana这样我们就进入到 Kibana 界面了。创建 API Key我们进入到如下的页面来申请 阿里云 ES API Key我们保存创建的 API key并在之后的配置中使用。创建嵌入推理端点点击 Kibana 上面的 Stack Management并进入到连机器页面参考如下的文章注意上面的 host 就是指的在 API key 申请的那个地址。我们可以选择一个支持多语言的模型比如上面的 ops-text-embedding-002上面的 URL 是由 API key 中的地址组成的http://default-8s7v.platform-cn-beijing.opensearch.aliyuncs.com/compatible-mode/v1/embeddings注意你需要根据自己在 API key 申请页面中的配置进行相应的修改。点击上面的设置。我们可以进入到 Dev Tools 来进行测试POST _inference/alibaba_text_embedding { input: The sky above the port was the color of television tuned to a dead channel. }很显然它能帮我们生成我们的向量。我们接下来使用之前在文章 “如何写入 IMDB 电影数据并针对它运用 AI Agent Builder 对它进行分享” 示范的那样。我们改写我们的程序如下#!/usr/bin/env python3 Ingest imdb_movies.csv into Elasticsearch, using connection settings from .env. import csv import os import sys import urllib3 from dotenv import load_dotenv from elasticsearch import Elasticsearch from elasticsearch.helpers import bulk, BulkIndexError from elastic_transport import TlsError INDEX_NAME imdb CSV_PATH os.path.join(os.path.dirname(os.path.abspath(__file__)), imdb_movies.csv) # Kept low ( 32) because the openai-text_embedding-pmja5fdpvkc inference endpoints # backing service returns a 500 (fastjson getInputValue error) when a single # inference call batches more than ~32 input texts. BULK_CHUNK_SIZE 25 REQUEST_TIMEOUT 300 INDEX_MAPPING { mappings: { properties: { budget_x: {type: double}, country: {type: keyword}, crew: {type: text}, date_x: {type: keyword}, genre: {type: keyword}, names: {type: text}, orig_lang: {type: keyword}, orig_title: {type: text}, overview: {type: text, copy_to: [overview_semantic]}, overview_semantic: { type: semantic_text, inference_id: openai-text_embedding-pmja5fdpvkc }, revenue: {type: double}, score: {type: double}, status: {type: keyword}, }, } } def build_client(es_url: str, es_api_key: str) - Elasticsearch: Connect to Elasticsearch, working for both trusted and self-signed TLS certs. try: client Elasticsearch( es_url, api_keyes_api_key, verify_certsTrue, request_timeoutREQUEST_TIMEOUT ) client.info() return client except TlsError: print(Certificate could not be verified (self-signed?), retrying with verify_certsFalse, filesys.stderr) urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) client Elasticsearch( es_url, api_keyes_api_key, verify_certsFalse, request_timeoutREQUEST_TIMEOUT ) client.info() return client def ensure_index(client: Elasticsearch) - None: if client.indices.exists(indexINDEX_NAME): print(fIndex {INDEX_NAME} already exists, skipping creation) return client.indices.create(indexINDEX_NAME, bodyINDEX_MAPPING) client.cluster.health(indexINDEX_NAME, wait_for_statusyellow, timeout30s) print(fCreated index {INDEX_NAME}) def to_float(value): value (value or ).strip() if not value: return None try: return float(value) except ValueError: return None def read_docs(csv_path: str): with open(csv_path, newline, encodingutf-8) as f: reader csv.DictReader(f) for i, row in enumerate(reader): doc { names: (row.get(names) or ).strip(), date_x: (row.get(date_x) or ).strip(), score: to_float(row.get(score)), genre: [g.strip() for g in (row.get(genre) or ).split(,) if g.strip()], overview: (row.get(overview) or ).strip(), crew: (row.get(crew) or ).strip(), orig_title: (row.get(orig_title) or ).strip(), status: (row.get(status) or ).strip(), orig_lang: (row.get(orig_lang) or ).strip(), budget_x: to_float(row.get(budget_x)), revenue: to_float(row.get(revenue)), country: (row.get(country) or ).strip(), } yield {_index: INDEX_NAME, _id: str(i), _source: doc} def main() - None: load_dotenv() es_url os.environ[ES_URL] es_api_key os.environ[ES_API_KEY] client build_client(es_url, es_api_key) ensure_index(client) try: success, errors bulk( client, read_docs(CSV_PATH), chunk_sizeBULK_CHUNK_SIZE, raise_on_errorFalse, ) except BulkIndexError as e: print(fBulk indexing failed: {e}, filesys.stderr) sys.exit(1) print(fIndexed {success} documents into {INDEX_NAME}) if errors: print(f{len(errors)} documents failed to index, filesys.stderr) for err in errors[:5]: print(err, filesys.stderr) if __name__ __main__: main()请注意在上面我们使用了 inference_id: alibaba_text_embedding。运行我们的程序它就可以把我们的数据写入到 Elasticsearch 中。创建大模型连接器我们可以使用如下的方式来连接大模型我们点击链接来查看有哪些模型可以使用。这个位于 API 申请的页面我们查看到我们需要的模型比如上面的 qwen_plus。我们在连接器里针对它进行如下的配置其中 URL 为http://default-8s7v.platform-cn-beijing.opensearch.aliyuncs.com//compatible-mode/v1/chat/completions注意你需要根据自己在 API key 申请页面中的配置进行相应的修改。它表明我们的配置是成功的。在 Agents 中配置并使用它我们在 Kibana 的 Agents 中打开并使用它Hurray! 我们的 LLM 现在可以开始工作了。配置 Workflow在 9.3 的发布中Workflow 在默认的情况下是没有展现的。我们需要启动它有关更多关于 Workflows 的知识请在链接里进行查看。好了。我基本上把我所想要讲的都讲了。祝大家学习愉快

相关新闻

Typora绘制-流程图

Typora绘制-流程图

**注意:**代码中未高亮显示、老版本代码可以高亮显示;此高亮指的是源码,不是下面明文的示例代码 流程图 mermaid官方网站文档教程链接(英文) 社区维护的中文文档站 1、新版本语法 flowchart 如下仅是基础的常用功能语法,如需…

2026/7/10 21:47:19 阅读更多 →
MySQL学习第四天

MySQL学习第四天

第一部分 1、MySQL数值类型 1.1数值类型 数值类型分为整数型和浮点数类型 int 整数 bigint 大整数 decimal 浮点数 1.2日期类型 1.3字符串类型 char 和varchar数据类型区别: char(长度)是定长字符串类型,括号内写多少长度…

2026/7/10 21:41:18 阅读更多 →
如何构建高效AI语音转换系统:RVC检索式语音转换架构深度解析与实战指南

如何构建高效AI语音转换系统:RVC检索式语音转换架构深度解析与实战指南

如何构建高效AI语音转换系统&#xff1a;RVC检索式语音转换架构深度解析与实战指南 【免费下载链接】Retrieval-based-Voice-Conversion-WebUI Easily train a good VC model with voice data < 10 mins! 项目地址: https://gitcode.com/GitHub_Trending/re/Retrieval-bas…

2026/7/10 21:39:18 阅读更多 →

最新新闻

Hermes Agent 保姆级安装教程:从 0 到 1 搭建自己的 AI 微信机器人

Hermes Agent 保姆级安装教程:从 0 到 1 搭建自己的 AI 微信机器人

文章目录项目地址官方安装方式源码安装方式创建安装目录复制源码目录验证 Hermes 命令是否可用配置文件在哪里运行配置向导选择命令运行环境配置消息平台配置微信私聊权限配置 Home Channel安装 Gateway 后台服务选择服务运行方式配置工具能力Terminal & ProcessesFile Ope…

2026/7/10 22:55:34 阅读更多 →
桌面等待操作_desktop-wait

桌面等待操作_desktop-wait

以下为本文档的中文说明Desktop Wait 是一个桌面 UI 自动化操作中的核心等待技能&#xff0c;用于在指定 UI 界面元素或应用程序窗口出现在屏幕上之前暂停执行流程。该技能是桌面自动化操作链中不可或缺的关键中间环节&#xff0c;确保后续的点击、输入等操作在目标元素完全可用…

2026/7/10 22:53:33 阅读更多 →
终极指南:openeuler/yocto-meta-virtualization 如何构建企业级虚拟化解决方案

终极指南:openeuler/yocto-meta-virtualization 如何构建企业级虚拟化解决方案

终极指南&#xff1a;openeuler/yocto-meta-virtualization 如何构建企业级虚拟化解决方案 【免费下载链接】yocto-meta-virtualization Collection of layers for virtualized solutions 项目地址: https://gitcode.com/openeuler/yocto-meta-virtualization 前往项目官…

2026/7/10 22:49:33 阅读更多 →
如何用数据支撑科技成果转化项目的可行性研判?

如何用数据支撑科技成果转化项目的可行性研判?

观点作者&#xff1a;科易网-国家科技成果转化&#xff08;厦门&#xff09;示范基地 核心要点 科技成果转化通过数据可知实现精准研判&#xff0c;人工服务保障落地实效。数智工具与人工协同&#xff0c;打通“实验室”至“市场”最后一公里&#xff0c;避免决策盲目性。科创…

2026/7/10 22:49:33 阅读更多 →
Codex++纯API模式接入指南

Codex++纯API模式接入指南

一、下载与安装 Codex 桌面版 首先,您需要下载并安装官方的 Codex 桌面版应用程序。访问 OpenAI 官方 Codex 页面 下载对应您操作系统的安装包。安装过程无需登录或激活任何账号,保持默认状态即可。安装后,建议让 Codex 在后台持续运行,以避免被系统静默关闭 。 二、获取…

2026/7/10 22:43:31 阅读更多 →
Claude Code 100个真实案例 - 用AI搭建爬虫数据采集平台(自动翻页+反反爬)

Claude Code 100个真实案例 - 用AI搭建爬虫数据采集平台(自动翻页+反反爬)

Claude Code 100个真实案例 - 用AI搭建爬虫数据采集平台(自动翻页+反反爬) 📌 文章简介:本案例展示如何使用 Claude Code 搭建一个智能爬虫数据采集平台。支持自动翻页、请求头伪装、IP代理轮换、Cookie管理、数据解析存储等完整功能,并通过 FastAPI 提供任务管理服务。 …

2026/7/10 22:41:30 阅读更多 →

日新闻

STM32与LTC1864高精度ADC的SPI通信实现

STM32与LTC1864高精度ADC的SPI通信实现

1. 项目背景与核心需求在工业控制和嵌入式系统开发中&#xff0c;模拟信号与数字系统的无缝集成一直是工程师面临的关键挑战。LTC1864作为一款16位高精度ADC转换器&#xff0c;配合STM32F101ZG这类主流微控制器&#xff0c;能够构建高性能的模拟信号采集系统。这种组合特别适合…

2026/7/10 0:03:07 阅读更多 →
猫抓插件:浏览器资源嗅探与视频下载的终极解决方案

猫抓插件:浏览器资源嗅探与视频下载的终极解决方案

猫抓插件&#xff1a;浏览器资源嗅探与视频下载的终极解决方案 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 还在为网页视频无法下载而烦恼吗&am…

2026/7/10 0:05:09 阅读更多 →
直流有刷电机驱动方案:TC78H653FTG与MKV46F256VLH16应用

直流有刷电机驱动方案:TC78H653FTG与MKV46F256VLH16应用

1. 直流有刷电机驱动方案概述在工业自动化和消费电子领域&#xff0c;直流有刷电机因其结构简单、控制方便、成本低廉等优势&#xff0c;仍然是许多应用场景的首选驱动方案。TC78H653FTG作为东芝推出的新一代H桥驱动器&#xff0c;与MKV46F256VLH16微控制器配合使用&#xff0c…

2026/7/10 0:05:09 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools&#xff1a;5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱&#xff0c;支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/10 19:03:29 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里&#xff0c;参与了关于混合后量子密码学的讨论&#xff0c;应付端点攻击找茬的人&#xff0c;还参与留言板讨论后&#xff0c;发现“威胁模型”对多数人仍是陌生概念&#xff0c;且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/9 13:46:46 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”&#xff1a;我理解的渗透测试到底是什么&#xff1f;每次看到新闻里说某个大公司的数据被“黑”了&#xff0c;或者某个网站被攻击导致服务瘫痪&#xff0c;你是不是和我一样&#xff0c;心里会冒出两个念头&#xff1a;一是“这黑客真厉害”&#x…

2026/7/9 21:41:05 阅读更多 →

月新闻