如何在dify中添加自定义reranker模型

思路概述

将Xinference中的reranker模型集成到Dify中,主要思路是先在Xinference中部署reranker模型,使其能提供稳定的推理服务,然后通过Dify的模型供应商配置功能,将Xinference作为自定义模型供应商添加到Dify中,从而让Dify可以调用Xinference中的reranker模型进行相关的重排序任务。

技术路径

  1. 环境准备:安装并配置好Xinference和Dify的运行环境。
  2. 部署reranker模型:在Xinference中启动reranker模型。
  3. 配置Dify:编写Dify所需的模型供应商配置文件,并在Dify界面中添加Xinference作为模型供应商。
  4. 验证集成效果:在Dify中使用配置好的reranker模型进行测试。

方法步骤

1. 环境准备
  • 安装Xinference:可以通过pip或者Docker进行安装。
    • 使用pip安装
pip3 install "xinference(all)"
- **使用Docker安装**:
docker run -d --name xinference -v "C:\xinference:/xinference" -e XINFERENCE_HOME="/xinference" -p 9997:9997 --gpus all xprobe/xinference:latest xinference-local -H 0.0.0.0 --log-level debug
2. 部署reranker模型到Xinference
  • 启动Xinference服务
export XINFERENCE_MODEL_SRC=modelscope
xinference-local --host 0.0.0.0 --port 6006
  • 启动reranker模型:以bge-reranker-v2-m3模型为例,使用以下命令启动:
xinference launch --model-name bge-reranker-v2-m3 --model-type rerank

启动后,记录下模型的UID,后续配置Dify时会用到。可以通过Xinference的Web界面(访问http://<Xinference服务IP>:6006)查看模型的UID。

3. 配置Dify
  • 编写vendor yaml文件:创建一个名为xinference.yaml的文件,内容如下:
provider: xinference
label:
  en_us: Xorbits Inference
icon_small:
  en_us: icon_s_en.svg
icon_large:
  en_us: icon_l_en.svg
help:
  title:
    en_us: How to deploy Xinference
    zh_hans: 如何部署Xinference
  url:
    en_us: https://github.com/xorbitsai/inference
supported_model_types:
  - llm
  - text-embedding
  - rerank
configurate_methods:
  - customizable-model
provider_credential_schema:
  credential_form_schemas:
  - variable: model_type
    type: select
    label:
      en_us: Model type
      zh_hans: 模型类型
    required: true
    options:
    - value: text-generation
      label:
        en_us: Language model
        zh_hans: 语言模型
    - value: embeddings
      label:
        en_us: Text embedding
    - value: reranking
      label:
        en_us: Rerank
  - variable: model_name
    type: text-input
    label:
      en_us: Model name
      zh_hans: 模型名称
    required: true
    placeholder:
      zh_hans: 填写模型名称
      en_us: Input model name
  - variable: server_url
    label:
      zh_hans: 服务器url
      en_us: Server url
    type: text-input
    required: true
    placeholder:
      zh_hans: 在此输入Xinference的服务器地址,如https://example.com/xxx
      en_us: Enter the url of your Xinference, for example https://example.com/xxx
  - variable: model_uid
    label:
      zh_hans: 模型uid
      en_us: Model uid
    type: text-input
    required: true
    placeholder:
      zh_hans: 在此输入你的model uid
      en_us: Enter the model uid
  • 上传vendor yaml文件:将xinference.yaml文件上传到Dify的模型供应商配置目录(具体目录根据Dify的部署方式而定)。
  • 在Dify界面添加模型供应商:登录Dify管理后台,进入“设置” -> “模型供应商”,点击“添加模型供应商”,选择“自定义模型供应商”,填写相关信息:
    • 模型类型:选择“rerank”。
    • 模型名称:填写bge-reranker-v2-m3
    • 服务器URL:填写Xinference服务的地址,如http://<Xinference服务IP>:6006
    • 模型UID:填写之前记录的模型UID。
4. 验证集成效果
  • 在Dify中创建一个新的应用或者使用已有的应用,进入应用的配置页面,找到“检索设置”。
  • 启用Rerank功能,并选择刚刚配置的Xinference reranker模型。
  • 上传一些测试数据到知识库,发起检索请求,查看是否能正常使用reranker模型进行重排序。

工具链

  • Xinference:用于部署和管理机器学习模型,提供模型推理服务。
  • Dify:低代码的大模型应用开发平台,用于创建和管理大模型应用。
  • Docker:可选,用于容器化部署Xinference。
  • pip:用于安装Python包,如Xinference。

注意事项

  • 确保Xinference和Dify所在的网络环境可以相互访问。
  • 如果使用GPU加速,需要确保Docker容器或者服务器环境正确配置了GPU驱动。
  • 在部署和配置过程中,注意查看Xinference和Dify的日志文件,以便及时排查和解决问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

由数入道

滴水助江海,心灯渡万世。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值