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

使用Docker快速搭建OpenAI兼容的Embeddings与Rerank双API服务

使用Docker快速搭建OpenAI兼容的Embeddings与Rerank双API服务

    • 前言
    • 环境准备
      • 硬件要求
      • 软件依赖
    • 双服务部署指南
      • 1. Embeddings API部署
        • 启动容器
        • 参数说明
      • 2. Rerank API部署
        • 启动容器
    • 服务验证与测试
      • 通用验证方法
      • 1. Embeddings API测试
        • 请求示例
        • 响应特征
      • 2. Rerank API测试
        • 请求示例
        • 响应解析
    • 双API联合工作流
      • 典型应用场景
      • 联合调用示例
    • 性能优化建议
    • 常见问题解答
    • 总结

前言

在构建智能搜索、推荐系统等AI应用时,**文本向量化(Embeddings)结果重排序(Reranking)**是两个关键环节。本文将手把手教您通过Docker快速部署两大核心服务:

  1. Embeddings API:基于multilingual-e5-large-instruct模型的文本向量生成服务
  2. Rerank API:采用bce-reranker-base_v1模型的语义相关性排序服务

二者配合使用可构建完整的语义检索流水线,先通过向量搜索召回候选集,再通过语义重排序提升结果精度。


环境准备

硬件要求

  • 推荐配置:16GB内存 + NVIDIA GPU(支持CUDA)
  • 最低配置:8GB内存(仅CPU模式)

软件依赖

  • Docker 20.10+
  • NVIDIA Container Toolkit(GPU版需要)
  • 端口可用性:7965(Embeddings)、7987(Rerank)

双服务部署指南

1. Embeddings API部署

启动容器
docker run -d --name embeddings-api \
  -p 7965:7965 \
  --gpus all \
  engchina/embeddings-api:multilingual-e5-large-instruct
参数说明
参数 作用
--gpus all 启用GPU加速(CPU模式可删除)
-p 7965:7965 服务暴露端口

2. Rerank API部署

启动容器
docker run -d --name rerank-api \
  -p 7987:7987 \
  engchina/rerank-api:bce-reranker-base_v1

服务验证与测试

通用验证方法

访问API文档页面(服务启动约1分钟后生效):

  • Embeddings API文档:http://localhost:7965/docs
  • Rerank API文档:http://localhost:7987/docs

1. Embeddings API测试

请求示例
curl -X POST "http://localhost:7965/v1/embeddings" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "text-embedding-3-large",
    "input": "OpenAI API兼容测试",
    "encoding_format": "float"
  }'
响应特征
{
   
  "data": [
    {
   
      "embedding": [0.017, -0.032, ..., 0.021], // 1024维向量
      "index": 0,
      "object": "embedding"
    }
  ],
  "model": "text-embedding-3-large",
  "usage": {
   
    "prompt_tokens": 5

相关文章:

  • 桌子(table、desk)以及其他常见物体的urdf模型,用于搭建机器人环境如pybullet、Gazebo
  • 单片机学完开发板,如何继续提升自己的技能?
  • 采用贝塞尔函数,进行恒定束宽波束形成算法
  • Opencv之计算机视觉一
  • 10分钟打造专属AI助手:用ms-swift实现自我认知微调
  • 在Vue3中使用$router.push方法进行路由跳转时,如何传递多个路径参数?
  • Android 拍照开发——移动虚拟机摄像头
  • lombok不起作用
  • 蓝桥杯第13届真题2
  • 【R语言】 文件,vector, matrix,dataframe 的基本操作
  • STM32---FreeRTOS软件定时器
  • 修改HuggingFace模型默认缓存路径
  • C 语言中 typedef struct 与 struct 的区别详解
  • 射频组件、度量和数学计算
  • F8 逐行执行(Step Over) F7 进入方法(Step Into) Shift+F8 跳出方法(Step Out)
  • 合React宝宝体质的自定义防抖hook
  • 相对路径跳转和绝对路径跳转有什么区别?
  • Vue3一个组件绑定多个 v-model,自定义 prop 和 event 名称
  • 【区块链 + 金融服务】寿险业直保再保协同平台 | FISCO BCOS 应用案例
  • 【计算机网络】一二章
  • 商务部:4月份以来的出口总体延续平稳增长态势
  • 利用AI捏造“天价骨灰盒”谣言,内蒙古包头一网民被行政处罚
  • 在县中,我看到“走出去”的渴望与“留下来”的惯性
  • 游戏论|迟来的忍者与武士:从《刺客信条:影》论多元话语的争议
  • 贵州通报9起群众身边不正之风和腐败问题典型案例
  • 商务部:已有超1.2亿人次享受到以旧换新补贴优惠