Dify部署人工智能应用

如今人工智能大模型(Large Language Model, LLM)的功能已经很强大了,但如何利用大模型来开发一些应用,提高自己工作的效率呢?

Dify部署人工智能应用

Dify是一款开发人工智能大模型应用的引擎,可基本不用代码的情况下开发出功能强大的大模型应用,如客服机器人、智能搜索、智能工作流等。由于Dify提供了开源的版本,可以不花任何的费用下实现本地的部署。

安装Dify开源版本

可参考官方的安装指导,建议使用Docker进行安装,会简单很多。

  1. 先根据不同的电脑安装Docker,只需要在官网下载安装包,然后点开安装。安装完之后一定要运行Docker,这样在Mac的终端或者Windows的命令提示符可以运行Docker的指令。
  2. 根据官方指引安装Dify本地版本。这里需要在Mac Terminal里输入一些指令。Windows需要先安装Git,然后在安装好的Git Bash里面输入指令。具体的指令如下,可通过官网或者Chat GPT了解每个指令的作用。
# Clone the Dify source code to your local machine:
git clone https://github.com/langgenius/dify.git

# Navigate to the Docker directory in the Dify source code
cd dify/docker

# Copy the environment configuration file
cp .env.example .env

# Start the Docker containers
docker compose up -d

# Check if all containers are running successfully:
docker compose ps

# 通过以下链接访问后台
http://localhost

docker compose up -d可能会出现以下报错:

% docker compose up -d
[+] Running 9/9
 ✘ redis Error      context canceled                  2.6s 
 ✘ weaviate Error   context canceled                  2.6s 
 ✘ nginx Error      context canceled                  2.6s 
 ✘ db Error         context canceled                  2.6s 
 ✘ ssrf_proxy Error context canceled                  2.6s 
 ✘ web Error        context canceled                  2.6s 
 ✘ api Error        Get "https://registry-1.docker.io/v2/": EOF     2.6s 
 ✘ worker Error     context canceled                  2.6s 
 ✘ sandbox Error    context canceled                  2.6s 
Error response from daemon: Get "https://registry-1.docker.io/v2/": EOF

这种情况是镜像拉取出错,解决方法是在dify/docker的目录下新建一个Docker的配置文档,然后配置一些信息。通过以下命令建立一个配置文件。

vim daemon.json

输入以下信息并保存。vim命令如何保存可问AI。

{
    "registry-mirrors": [
    "https://2a6bf1988cb6428c877f723ec7530dbc.mirror.swr.myhuaweicloud.com",
    "https://docker.m.daocloud.io",
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com",
    "https://your_preferred_mirror",
    "https://dockerhub.icu",
    "https://docker.registry.cyou",
    "https://docker-cf.registry.cyou",
    "https://dockercf.jsdelivr.fyi",
    "https://docker.jsdelivr.fyi",
    "https://dockertest.jsdelivr.fyi",
    "https://mirror.aliyuncs.com",
    "https://dockerproxy.com",
    "https://mirror.baidubce.com",
    "https://docker.m.daocloud.io",
    "https://docker.nju.edu.cn",
    "https://docker.mirrors.sjtug.sjtu.edu.cn",
    "https://docker.mirrors.ustc.edu.cn",
    "https://mirror.iscas.ac.cn",
    "https://docker.rainbond.cc"
    ]
}

选择模型

同样参考官网模型设置的章节。进入设置可以选择不同的模型,Open AI、Gemini等是收费的,Ollama是开源的。可以根据自己的需求选择大模型。

Dify Setting

以添加Google Vertex AI为例,在模型列表中选择相应的模型,然后弹出以下设置的窗口。只需要输入相应的信息便可以添加大模型,后期应用的时候只需要选择相应的模型。

需要注意Google Cloud的Service Account Key是json格式,需要通过工具转成base64的格式。操作其实很简单,把json文档里的内容全部拷贝到在线转换工具,后期把结果拷贝到设置里面。

添加数据库

如果应用需要用到知识库,还可以添加私有的知识库。添加Knowledge Base的操作就更简单了,只需要把文档加入到创建的数据库便可以,完全是图像界面的操作,不涉及任何代码。

添加数据库最常遇到的问题是上传的文档一直显示排队(Queuing)状态,不管多长时间都不被处理,而且进度也总是0%。这是一个已经解决的问题,只需要在dify/docker文件夹下面的.env文件修改成如下:

# ------------------------------
# Server Configuration
# ------------------------------

# The log level for the application.
# Supported values are `DEBUG`, `INFO`, `WARNING`, `ERROR`, `CRITICAL`
LOG_LEVEL=INFO
# Log file path
LOG_FILE=/app/logs/server.log
# Log file max size, the unit is MB
LOG_FILE_MAX_SIZE=20
# Log file max backup count
LOG_FILE_BACKUP_COUNT=5
# Log dateformat
LOG_DATEFORMAT=%Y-%m-%d %H:%M:%S

可以网络查找如何通过Bash的命令修改文件。