当前位置: 首页 > news >正文

Elasticsearch:创建一个定制的 DeepSeek 嵌入推理端点

今天很高兴阅读了同事写的文章 “Elasticsearch 推理 API 增加了开放的可定制服务”。我马上就想到了如何把它应用到 DeepSeek 中。这是因为截止目前为止,我们还没有为 DeepSeek 做任何的推理端点 API 的创建。

创建 DeepSeek 服务

我们可以仿照之前的文章 “Elasticsearch:在 Elastic 中玩转 DeepSeek R1 来实现 RAG 应用”。我们使用 Ollama 来部署自己的 DeepSeek。等我们部署完毕后,我们可以通过如下的方式来检验我的安装是否成功:

从上面的输出中,我们可以看到我们的 DeepSeek 的部署是成功的。

通过 CURL 命令来测试我们的嵌入输出

我们在 terminal 中打入如下的命令:

curl http://localhost:11434/v1/embeddings \-H "Content-Type: application/json" \-H "Authorization: Bearer AnyKeyHere" \-d '{"model": "deepseek-r1:7b","input": "This is a sentence to be embedded."}'| jq .

我们可以看到如下的输出:

创建自己的嵌入端点

根据上面的输出,也参考我们的文章 “Elasticsearch 推理 API 增加了开放的可定制服务”,我们设计出如下的 endpoint API:

PUT _inference/text_embedding/inference_deepseek
{"service": "custom","service_settings": {"secret_parameters": {"api_key": "AnyKeyHere"},"url": "http://localhost:11434/v1/embeddings","headers": {"Authorization": "Bearer ${api_key}","Content-Type": "application/json"},"request": "{ \"model\": \"deepseek-r1:7b\",\"input\": ${input}}","response": {"json_parser": {"text_embeddings": "$.data[*].embedding[*]"}},"input_type": {"translation": {"search": "query","ingest": "passage"},"default": "query"}}
}

运行完上面命令后,我们可以使用如下的命令来进行检验:

POST _inference/text_embedding/inference_deepseek
{"input": ["What is Elastic"]
}

这样我们就完成了我们的 DeepSeek 嵌入模型的 endpoint 设计。

定制 chat completion endpoint

按照同样的机制,我们来定制一个专为 DeepSeek 的 chat completion 推理端点:

PUT _inference/completion/inference_deepseek_chat
{"service": "custom","service_settings": {"secret_parameters": {"api_key": "AnyKeyHere"},"url": "http://localhost:11434/api/generate","headers": {"Authorization": "Bearer ${api_key}","Content-Type": "application/json"},"request": "{ \"model\": \"deepseek-r1:7b\", \"stream\": false, \"prompt\": ${input} }","response": {"json_parser": {"completion_result": "$.response"}},"input_type": {"default": "input"}}
}

我们想在 Kibana 中进行测试。由于我们的 Kibana 在默认的情况下,如果一个请求超过 30s 还没有完成的话,那么它就会自动地 timeout,即便你在 API 中有设置 timeout 的值超过 30s。为此,我们在 config/kibana.yml 中加入如下的语句:

elasticsearch.requestTimeout: 180000

也就是说超过 180s,才会 timeout。这样我们在 Kibana 中发出如下的命令:

POST /_inference/completion/inference_deepseek_chat?timeout=180s
{"input": "System: You are a helpful assistant.\nUser: Tell me about Elasticsearch Inference Service."
}

注意:在生产环境中千万不要设置这么大的 timeout 值。

我们可以看到如下的结果:

http://www.dtcms.com/a/494645.html

相关文章:

  • “自然搞懂”深度学习系列(基于Pytorch架构)——01初入茅庐
  • 51c~Pytorch~合集6
  • Java 对接印度股票数据源实现 http+ws实时数据
  • 建设网站分析报告陕西四通建设工程有限责任公司网站
  • 微信网站建设app公司WordPress邮箱注册慢
  • 【Qt】元对象系统:从实际开发中看QML/C++交互原理
  • 【MySQL】从零开始了解数据库开发 --- 数据表的索引
  • 设计模式篇之 策略模式 Strategy
  • 【HarmonyOS】并发线程间的通信
  • 2三、buildroot
  • 开源 C++ QT QML 开发(二十二)多媒体--ffmpeg编码和录像
  • 详细分析平衡树--红黑树(万字长文/图文详解)
  • 国产开源代码管理工具 GitPuk 安装+入门全流程解析
  • wordpress本地视频教程免费网站seo优化
  • 前端布局入门:flex、grid 及其他常用布局
  • Excel中将毫秒时间戳转换为标准时间格式
  • 传奇网站模板免费下载建立网站需要多少钱费用
  • 第2讲:Go内存管理机制深度解析
  • 【解决】mayfly-go 容器启动失败 —— failed to connect to mysql!
  • 基于STM32低功耗授时系统的硬件电路设计-上
  • 嵌入式软件架构--多窗口显示1(后台软件实现)
  • 牛商网网站建设企业网站开发建设
  • 软件供应链安全的革命:深度解析链图·SBOM管理服务平台的技术突破
  • QChart控件:图例QLegend
  • 【活动预告】2025斗拱开发者大会,共探支付与AI未来
  • 开源Filestash 搭建“多合一”文件管理器
  • Web3.0的底层引擎
  • 建设一个手机网站怎么制作网站生成图片
  • QEMU:如何组织与 I2C 设备的透明交互
  • 精密电子东莞网站建设技术支持视频网站建设类图