文档首页/ 云搜索服务 CSS/ 最佳实践/ 基于Dify集成CSS与DeepSeek构建智能问答助手
更新时间:2025-08-26 GMT+08:00
分享

基于Dify集成CSS与DeepSeek构建智能问答助手

通过开源Dify平台集成CSS服务的OpenSearch向量数据库与搜索大模型(支持Embedding向量化与Rerank重排序技术)、以及MaaS服务的DeepSeek模型,可构建具备以下能力的智能问答助手:

  • 直接问答:调用DeepSeek模型生成回答。
  • 知识增强问答:结合知识库内容与DeepSeek模型输出精准答案。

应用场景

基于开源框架Dify构建,打造具备双重能力的智能对话助手。系统支持用户自由选择直接调用DeepSeek大模型进行开放式问答,或结合企业私有知识库实现精准信息检索与推理应答,适用于智能客服、知识库问答、个性化推荐等多种业务场景。通过OpenSearch向量数据库实现毫秒级语义检索,配合CSS搜索大模型的Embedding向量化与Rerank重排序技术,可精准匹配海量非结构化数据。独享版大模型服务保障企业数据隔离与模型性能稳定,MaaS平台提供的DeepSeek模型则赋予系统强大的上下文理解和多轮对话能力。

方案架构

图1 方案架构图
  1. 用户通过Dify控制台提交查询请求。
  2. 检索模块使用CSS搜索大模型的Embedding技术解析查询内容。
  3. 在本地知识库(即CSS的OpenSearch向量数据库)中查找文档。
  4. 检索到的文档经过MaaS的DeepSeek模型服务生成专业、可靠的回答。
  5. 答案通过Dify控制台返回给用户。

其中,MaaS服务提供计算资源,DeepSeek模型执行复杂查询,是支持性组件。

方案优势

该方案适合需要快速构建企业级知识中枢、同时兼顾通用对话能力、创新效率与成本控制的场景,具备以下核心优势:

  • 灵活架构支持知识问答与开放对话模式自由切换,适应多样化业务需求。
  • 私有化部署保障数据安全,满足金融、医疗等敏感行业合规要求。
  • 检索增强生成(RAG)技术有效解决大模型幻觉问题,提升回答准确性与可信度。
  • 开箱即用的可视化配置界面,显著降低AI应用开发门槛,企业可快速完成从数据接入到智能服务上线的全流程。

约束限制

  • 仅“西南-贵阳一”区域支持该解决方案。
  • CSS服务的搜索大模型处于受限使用阶段,如需使用请提交工单申请开通。
  • OpenSearch向量数据库建议优先选择2.x版本。
  • 为确保OpenSearch向量数据库、搜索大模型与DeepSeek模型服务的正常交互,需保证三者网络互通。本案例中,三者部署于同一VPC内。

准备工作

  • 通过MaaS服务购买DeepSeek模型服务,并在调用说明页面获取其API地址、模型名称和API Key。操作指导请参见使用ModelArts Studio的DeepSeek-R1模型框架实现对话问答
  • 通过CSS服务创建OpenSearch向量数据库,并在集群列表获取其内网访问地址,如果是安全模式的集群还要获取访问集群的账号和密码。如需新建集群请参见创建OpenSearch集群
  • 通过CSS服务创建搜索大模型,通过CSS服务购买搜索大模型,并在集群列表获取其内网访问地址。

步骤二:部署Dify

在服务器上部署Dify容器,并接入OpenSearch向量数据库。本案例以弹性云服务器ECS为例介绍操作步骤。Dify的详细安装指导请参见Docker Compose部署

  1. 参考快速购买和使用Linux ECS,购买ECS。

    ECS的实例规则要大于或等于2U4G,虚拟私有云要和OpenSearch的VPC一致,并且必须绑定弹性公网IP。

  2. 参考手工部署Docker,在ECS实例上安装Docker。
  3. 克隆Dify的源代码到ECS实例上,并切换至某tag版本分支,以0.15.3版本为例。

    git clone https://github.com/langgenius/dify.git && cd dify
    git checkout -b 0.15.3 0.15.3

  4. 进入Dify源代码的Docker目录,修改“.env”文件,配置OpenSearch向量数据库的信息。

    1. 进入docker目录,复制生成“.env”文件,并进入编辑。
      cd docker && cp .env.example .env
      vim .env
    2. 修改VECTOR_STORE参数值,改为opensearch。
      VECTOR_STORE=opensearch
    3. 修改OpenSearch向量数据库的信息,改为准备工作获取的集群信息。
      OPENSEARCH_HOST=x.x.x.x  # OpenSearch的访问地址(IP地址)
      OPENSEARCH_PORT=9200  # OpenSearch的端口号
      OPENSEARCH_USER=admin  # OpenSearch的访问账号(非安全集群直接删除)
      OPENSEARCH_PASSWORD=*******  # OpenSearch的访问密码(非安全集群直接删除)
      OPENSEARCH_SECURE=true   # 如果Opensearch为安全集群则将该配置设置为true
    4. 保存修改。

  5. 执行命令,启动Dify容器。

    docker compose up -d

  6. 执行命令,确认容器是否启动成功。

    docker ps

    显示如下信息表示启动成功。

    图2 查看Dify容器

  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。

      “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 查看接入的模型

  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

步骤四:创建知识库

如果需要基于知识库进行智能问答,则需要在Dify平台配置知识库。

  1. 在Dify平台上方选择“知识库”
  2. 单击“创建知识库”
  3. 选择“导入已有文本”,上传文本文件。
  4. 单击“下一步”,根据业务需要设置知识库,其中Embedding模型和Rerank模型选择1接入的模型。

    图5 设置知识库

  5. 单击“保存并处理”,等待知识库嵌入完成。此时,文本文件就通过Dify平台调用Embedding搜索大模型写入了OpenSearch向量数据库。
  6. 单击“前往文档”,进入知识库。
  7. 单击左侧“召回测试”,验证是否可以正常召回文本内容。

    图6所示,回答正确,表示文档召回成功。
    图6 召回测试

步骤五:创建智能问答助手

在Dify平台创建聊天助手,并进行调试预览,验证AI应用是否能够正常运行。

  1. 在Dify平台上方选择“工作室”
  2. 单击“创建空白应用”,配置应用信息。“选择应用类型”必须选择“聊天助手”“应用名称”可以自定义,例如test。
  3. 单击“创建”,进入应用编排页面。
  4. 在编排页面右侧,确认应用已关联DeepSeek模型服务。

    图7 确认模型

  5. 在编排页面调试智能问答助手,验证功能。

    智能问答助手支持2种调试方式:直接问答和知识增强问答。

    • 直接问答:聊天助手不对接知识库,直接调用DeepSeek模型生成问答。

      该方式无需配置“上下文”,智能问答助手会直接使用DeepSeek回答问题,如图8所示。

      图8 直接大模型问答
    • 知识增强问答:聊天助手对接知识库,并基于知识库内容,结合DeepSeek模型输出精准答案。

      该方式需要先在“上下文”添加步骤四:创建知识库创建的知识库,再进行问答,为了突出和大模型回答的差异,可以在“提示词”添加内容“仅根据上下文进行回答”,智能问答助手就会优先根据知识库的文档进行回答,如图9所示。

      图9 结合知识库问答

相关文档