# 基于Dify集成CSS Elasticsearch向量数据库与DeepSeek构建智能问答助手
通过开源Dify平台集成CSS服务自主研发的Elasticsearch向量数据库与搜索大模型（支持Embedding向量化与Rerank重排序技术）、以及MaaS服务的DeepSeek模型，可构建具备以下能力的智能问答助手：
- 直接问答：调用DeepSeek模型生成回答。
- 知识增强问答：结合知识库内容与DeepSeek模型输出精准答案。
#### 应用场景
基于开源框架Dify构建，打造具备双重能力的智能对话助手。系统支持用户自由选择直接调用DeepSeek大模型进行开放式问答，或结合企业私有知识库实现精准信息检索与推理应答，适用于智能客服、知识库问答、个性化推荐等多种业务场景。通过CSS Elasticsearch向量数据库实现毫秒级语义检索，配合CSS搜索大模型的Embedding向量化与Rerank重排序技术，可精准匹配海量非结构化数据。独享版大模型服务保障企业数据隔离与模型性能稳定，MaaS平台提供的DeepSeek模型则赋予系统强大的上下文理解和多轮对话能力。
#### 方案架构
图1方案架构图   
![](https://support.huaweicloud.com/bestpractice-css/figure/zh-cn_image_0000002436637804.png "点击放大")
1. 用户通过Dify控制台提交查询请求。
2. 检索模块使用CSS搜索大模型的Embedding技术解析查询内容。
3. 在本地知识库（即CSS Elasticsearch向量数据库）中查找文档。
4. 检索到的文档经过MaaS的DeepSeek模型服务生成专业、可靠的回答。
5. 答案通过Dify控制台返回给用户。
其中，MaaS服务提供计算资源，DeepSeek模型执行复杂查询，是支持性组件。
#### 方案优势
该方案适合需要快速构建企业级知识中枢、同时兼顾通用对话能力、创新效率与成本控制的场景，具备以下核心优势：
- 灵活架构支持知识问答与开放对话模式自由切换，适应多样化业务需求。
- 私有化部署保障数据安全，满足金融、医疗等敏感行业合规要求。
- 检索增强生成（RAG）技术有效解决大模型幻觉问题，提升回答准确性与可信度。
- 开箱即用的可视化配置界面，显著降低AI应用开发门槛，企业可快速完成从数据接入到智能服务上线的全流程。
CSS自主研发的向量数据库在查询性能、查询召回率等方面更具优势。
#### 约束限制
- 仅"西南-贵阳一"区域支持该解决方案。
- CSS服务的搜索大模型处于受限使用阶段，如需使用请提交[工单](https://console.huaweicloud.com/ticket/?locale=zh-cn#/ticketindex/serviceTickets)申请开通。
- Elasticsearch集群推荐选择7.10.2版本。
- 为确保CSS Elasticsearch向量数据库、搜索大模型与DeepSeek模型服务的正常交互，需保证三者网络互通。本案例中，三者部署于同一VPC内。
 
 #### 准备工作
- 通过MaaS服务购买DeepSeek模型服务，并在调用说明页面获取其API地址、模型名称和API Key。操作指导请参见[快速体验DeepSeek-V4-Pro模型](https://support.huaweicloud.com/bestpractice-maas/bestpractice_maas_0014_01.html)。
- 通过CSS服务创建Elasticsearch集群，并在集群列表获取其内网访问地址，如果是安全模式的集群还要获取访问集群的账号和密码。如需新建集群请参见[创建Elasticsearch集群](https://support.huaweicloud.com/usermanual-css/css_01_0011.html)。
- 通过CSS服务购买搜索大模型，并在集群列表获取其内网访问地址。 在创建Elasticsearch集群时，可以通过启用"Embedding节点"，实现创建集群时同步部署独享版搜索大模型。
  
 
#### 步骤一：部署Dify
在服务器上部署Dify容器，并接入CSS Elasticsearch向量数据库。本案例以弹性云服务器ECS为例介绍操作步骤。Dify的详细安装指导请参见[Docker Compose部署](https://docs.dify.ai/zh-hans/getting-started/install-self-hosted/docker-compose)。
1. 参考[快速购买和使用Linux ECS](https://support.huaweicloud.com/qs-ecs/ecs_01_0103.html)，购买ECS。
   
   ECS的实例规格要大于或等于2U4G，虚拟私有云要和Elasticsearch的VPC一致，并且必须绑定弹性公网IP。
   
   
2. 参考[手工部署Docker](https://support.huaweicloud.com/bestpractice-ecs/zh-cn_topic_0141067581.html)，在ECS实例上安装Docker。
3. 克隆Dify的源代码到ECS实例上，并切换至某tag版本分支，以1.7.0版本为例。 
   ![](https://support.huaweicloud.com/bestpractice-css/public_sys-resources/caution_3.0-zh-cn.png)
   Dify版本必须大于或等于1.7.0，否则不支持CSS向量数据库。
   ```
   git clone https://github.com/langgenius/dify.git && cd dify
   git checkout -b 1.7.0 1.7.0
   ```
   
   
4. 进入Dify源代码的Docker目录，修改".env"文件，配置CSS Elasticsearch向量数据库的信息。 
   1. 进入docker目录，复制生成".env"文件，并进入编辑。
      ```
      cd docker && cp .env.example .env
      vim .env
      ```
      
   
   2. 修改VECTOR_STORE参数值，改为huawei_cloud。
      ```
      VECTOR_STORE=huawei_cloud
      ```
      
   
   3. 修改Elasticsearch向量数据库的信息，改为[准备工作]获取的Elasticsearch集群信息。
      ```
      HUAWEI_CLOUD_HOSTS=http://10.10.1.27:9200  # Elasticsearch的访问地址（IP地址），如果是安全集群，改为https
      HUAWEI_CLOUD_USER=admin  # Elasticsearch的访问账号（非安全集群直接删除）
      HUAWEI_CLOUD_PASSWORD=*******  # Elasticsearch的访问密码（非安全集群直接删除）
      ```
      
   
   4. 保存修改。
   
   
   
   
5. 执行命令，启动Dify容器。 
   ```
   docker compose up -d
   ```
   
   
6. 执行命令，确认容器是否启动成功。 
   ```
   docker ps
   ```
   显示如下信息表示启动成功。
   图2查看Dify容器   
   ![](https://support.huaweicloud.com/bestpractice-css/figure/zh-cn_image_0000002470737589.png "点击放大")
   
   
7. 通过ECS的弹性公网IP访问部署在ECS上的Dify平台。 
   在浏览器输入"http://{ECS公网IP}:80"访问Dify的开发平台。首次登录需注册管理员账号，依次填写邮箱、账号、密码。
   
   
 
#### 步骤二：Dify接入Embedding和DeepSeek
Dify作为一个开源的大语言模型（LLM）应用开发平台，通过配置和调用搜索大模型和DeepSeek模型服务的API，来实现功能集成和扩展。
1. 在Dify平台接入搜索大模型，包含Embedding模型和Rerank模型。
   
   1. 单击Dify平台右上角的头像，选择"设置"中的"模型供应商"。
   
   2. 在模型供应商页面中选择"OpenAI-API-compatible"，单击"添加模型"配置Embedding和Rerank模型。配置说明参见[表1]。
       表1添加搜索大模型 
      | 参数名称                | Embedding参数值                                                                                                                                          | Rerank参数值    |
      |:---|:---|:---|
      | 模型类型                 | 选择"Text Embedding"。                                                                                                                                   | 选择"Rerank"。 |
      | 模型名称                | 填写"query2doc"或"query2query"。 在FAQ短文本召回场景中，当query召回相似query时，doc不参与检索，建议使用query2query模型，其他场景选择query2doc模型。 | 填写"rerank"。  |
      | API endpoint URL | 填写"http://{搜索大模型的内网访问地址}/v1"，搜索大模型的内网访问地址即为[准备工作]获取的搜索大模型的IP地址和端口号。例如获取到的内网地址为"xx.xx.xx.xx:xxxx"，则此处填写"http://xx.xx.xx.xx:xxxx/v1"。                              ||
      | 模型上下文长度             | 填写"512"。Embedding搜索大模型只支持512。                                                                                                                                                                                     ||
         
      ![](https://support.huaweicloud.com/bestpractice-css/public_sys-resources/note_3.0-zh-cn.png)
      "OpenAI-API-compatible"模板会对Rerank分数做归一化，这个并不影响最终结果排序，但是如果需要使用分值过滤，则建议使用"Xorbits Inference"模板配置Rerank模型，配置说明参见[表2]。
       表2添加Rerank模型 
      | 参数名称   | 参数值                                                                                                                                                                             |
      |:---|:---|
      | 模型类型   | 选择"Rerank"。                                                                                                                                                                      |
      | 模型名称   | 填写"rerank"。                                                                                                                                                                        |
      | 服务器URL | 填写"http://{搜索大模型的内网访问地址}"，搜索大模型的内网访问地址即为[准备工作]获取的搜索大模型的IP地址和端口号。例如获取到的内网地址为"xx.xx.xx.xx:xxxx"，则此处填写"http://xx.xx.xx.xx:xxxx"。 |
      | 模型UID   | 填写"rerank"。                                                                                                                                                                     |
         
      
   
   3. 在模型列表可以查看接入的模型。
      图3查看接入的模型   
      ![](https://support.huaweicloud.com/bestpractice-css/figure/zh-cn_image_0000002470236105.png "点击放大") 
   
   
   
   
2. 在Dify平台接入DeepSeek模型服务。 
   1. 单击Dify平台右上角的头像，选择"设置"中的"模型供应商"。
   
   2. 在模型供应商页面中选择"OpenAI-API-compatible"，单击"添加模型"配置DeepSeek信息。配置说明参见[表3]。
       表3添加DeepSeek 
      | 参数名称             | 参数值                                                                                                               |
      |:---|:---|
      | 模型类型           | 选择"LLM"。                                                                                                           |
      | 模型名称           | 填写DeepSeek模型服务的模型名称，即[准备工作]获取的MaaS服务中的DeepSeek模型名称。            |
      | API Key        | 填写DeepSeek模型服务的API Key，即[准备工作]获取的MaaS服务中的DeepSeek模型的API Key。 |
      | API endpoint URL | 填写DeepSeek模型服务的Open API地址，即[准备工作]获取的MaaS服务中的DeepSeek模型的API地址。  |
      | 最大token上限       | 填写"1024"。DeepSeek模型服务只支持1024。                                                                                     |
         
      
   
   3. 在模型列表可以查看接入的模型。
      图4查看接入的DeepSeek   
      ![](https://support.huaweicloud.com/bestpractice-css/figure/zh-cn_image_0000002436637808.png "点击放大") 
   
   
   
   
 
 #### 步骤三：创建知识库
如果需要基于知识库进行智能问答，则需要在Dify平台配置知识库。
1. 在Dify平台上方选择"知识库"。
2. 单击"创建知识库"。
3. 选择"导入已有文本"，上传文本文件。
4. 单击"下一步"，根据业务需要设置知识库，其中Embedding模型和Rerank模型选择[1]接入的模型。
   
   图5设置知识库   
   ![](https://support.huaweicloud.com/bestpractice-css/figure/zh-cn_image_0000002470236109.png "点击放大")
   
   
5. 单击"保存并处理"，等待知识库嵌入完成。此时，文本文件就通过Dify平台调用Embedding搜索大模型写入了CSS Elasticsearch向量数据库。
6. 单击"前往文档"，进入知识库。
7. 单击左侧"召回测试"，验证是否可以正常召回文本内容。 
   如[图6]所示，回答正确，表示文档召回成功。
   图6召回测试   
   ![](https://support.huaweicloud.com/bestpractice-css/figure/zh-cn_image_0000002436637816.png "点击放大")
   
   
 
#### 步骤四：创建智能问答助手
在Dify平台创建聊天助手，并进行调试预览，验证AI应用是否能够正常运行。
1. 在Dify平台上方选择"工作室"。
2. 单击"创建空白应用"，配置应用信息。"选择应用类型"必须选择"聊天助手"，"应用名称"可以自定义，例如test。
3. 单击"创建"，进入应用编排页面。
4. 在编排页面右侧，确认应用已关联DeepSeek模型服务。 
   图7确认模型   
   ![](https://support.huaweicloud.com/bestpractice-css/figure/zh-cn_image_0000002470236113.png)
   
   
5. 在编排页面调试智能问答助手，验证功能。 
   智能问答助手支持2种调试方式：直接问答和知识增强问答。
   - 直接问答：聊天助手不对接知识库，直接调用DeepSeek模型生成问答。 该方式无需配置"上下文"，智能问答助手会直接使用DeepSeek回答问题，如[图8]所示。
     图8直接大模型问答   
     ![](https://support.huaweicloud.com/bestpractice-css/figure/zh-cn_image_0000002436637824.png "点击放大") 
   
   - 知识增强问答：聊天助手对接知识库，并基于知识库内容，结合DeepSeek模型输出精准答案。 该方式需要先在"上下文"添加[步骤三：创建知识库]创建的知识库，再进行问答，为了突出和大模型回答的差异，可以在"提示词"添加内容"仅根据上下文进行回答"，智能问答助手就会优先根据知识库的文档进行回答，如[图9]所示。
     图9结合知识库问答   
     ![](https://support.huaweicloud.com/bestpractice-css/figure/zh-cn_image_0000002470236121.png "点击放大") 
   
   
   
   
 
