思路概述
将Xinference中的reranker模型集成到Dify中,主要思路是先在Xinference中部署reranker模型,使其能提供稳定的推理服务,然后通过Dify的模型供应商配置功能,将Xinference作为自定义模型供应商添加到Dify中,从而让Dify可以调用Xinference中的reranker模型进行相关的重排序任务。
技术路径
- 环境准备:安装并配置好Xinference和Dify的运行环境。
- 部署reranker模型:在Xinference中启动reranker模型。
- 配置Dify:编写Dify所需的模型供应商配置文件,并在Dify界面中添加Xinference作为模型供应商。
- 验证集成效果:在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
- 安装Dify:按照Dify的官方文档进行安装部署,可参考Dify官方安装指南。
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的日志文件,以便及时排查和解决问题。