rev(东↑西↓)
rev(东↑西↓)
Published on 2025-02-18 / 10 Visits

群晖Synology Chat接入DeepSeek大语言模型,打造企业私有化智能聊天系统,提升工作效率与数据安全

随着人工智能技术的飞速发展,各类大语言模型正在深刻改变我们的工作方式。将这些强大的AI能力整合到企业内部的聊天系统中,无疑会大幅提升工作效率。本文将详细介绍如何通过开源项目Synology Chat Bot,将DeepSeek等大语言模型接入群晖的Synology Chat,打造一个私有化的智能聊天系统。

项目背景与优势

在前文中,我们已经介绍了如何使用群晖的Synology Chat搭建企业内部的私有化聊天系统。如今,随着AI技术的进步,我们可以通过开源项目Synology Chat Bot,轻松将大语言模型整合到群晖的聊天系统中,赋予企业专属的AI助手能力。结合开源的Dify平台,甚至可以构建一个完整的企业知识库和智能问答系统。

项目原理

Synology Chat Bot的核心原理是通过Webhook机制,在群晖Chat与大语言模型之间搭建桥梁。具体流程如下:

  1. 当用户在群晖Chat中向机器人发送消息时,Chat会通过Webhook将消息转发给项目的服务端。
  2. 服务端收到消息后,会将用户的问题通过API发送给大语言模型(如DeepSeek)。
  3. 大语言模型生成回答后,服务端再通过Webhook将回答发送回群晖Chat。
  4. 最终,用户可以在群晖Chat中看到AI的回复。

该项目采用OpenAI的标准API格式,如果你的模型不是标准的OpenAI格式,可以参考相关文章进行转换。

部署前提

在开始部署之前,需要确保以下条件已满足:

  • 群晖已安装Synology Chat套件(参考前文)。
  • 已安装Container Manager套件。
  • 注册一个DeepSeek API Key(推荐使用硅基流动的API进行演示,注册后会有赠送余额)。

安装与部署

由于该项目涉及的环境变量较多,建议采用Docker-compose的方式进行部署。

步骤1:创建项目文件夹

  1. 打开群晖的【File Station】,新建一个名为synology-chat-bot的文件夹,用于存放项目数据。

Image

步骤2:编辑环境变量文件

  1. 将项目中的.env.example文件下载到本地进行编辑。

  2. 修改以下五个关键环境变量:

    • CHAT_API_URL:请求的URL地址,通常可以在API文档中找到。
    • CHAT_API_KEY:API密钥,可以在相应的菜单中获取或新建。
    • CHAT_API_MODEL:模型名称,与模型广场上的模型名一一对应。
    • SYNOLOGY_INCOMING_WEBHOOK_URL:传入URL。
    • SYNOLOGY_OUTGOING_WEBHOOK_TOKEN:令牌。

Image

步骤3:配置机器人

  1. 打开群晖的Synology Chat网页,点击头像选择整合(需要管理员账户)。
  2. 选择机器人,点击创建,并将传入URL令牌拷贝到相应的环境变量中。
  3. 为机器人输入名称并保存。

Image

步骤4:上传环境变量文件

  1. 将编辑好的.env文件上传到群晖的synology-chat-bot文件夹。

Image

步骤5:部署Docker容器

  1. 打开群晖的【Container Manager】,新增一个项目,并将以下docker-compose文件粘贴进去:
version: '3.8'

services:
  synology-chat-bot:
    image: laoning666/synology-chat-bot
    container_name: synology-chat-bot
    ports:
      - "8008:8008"
    env_file:
      - .env
    restart: unless-stopped
  1. 点击下一步,等待项目构建成功。

Image

步骤6:配置机器人传出URL

  1. 在机器人配置中,去掉在聊天机器人列表隐藏的选项。
  2. 传出URL中填写刚刚部署的地址http://your_server_ip:8008/webhook

Image

步骤7:添加机器人并开始对话

  1. 在Synology Chat主界面添加机器人,即可开始与AI进行对话。

Image

后记

通过这个项目,我们成功为群晖的Synology Chat注入了AI能力,不仅提升了工作效率,还确保了数据的私有化部署,保障了数据安全。由于Synology Chat不支持流式响应,输出较长文字时可能会出现响应超时的情况。虽然可以通过分割对话的方式分批输出,但老宁认为这种方式不够友好,因此未实现此功能。