前言

在数字化浪潮奔涌向前的时代,人工智能宛如一颗璀璨的星辰,照亮了各个领域前行的道路。而 Dify,作为人工智能应用开发领域的一颗新星,正以其独特的魅力和强大的功能,吸引着无数开发者的目光。它不仅是一个工具,更是一把开启无限可能的钥匙,让我们能够轻松构建出智能、高效的应用程序。

然而,对于许多初学者和想要尝试新技术的开发者来说,Dify 的部署过程可能会显得有些神秘和复杂。那些繁琐的步骤、晦涩的术语,就像一道道难以跨越的障碍,横亘在探索的道路上。但请不要担心,本教程就像一位贴心的向导,将带领你一步一步揭开 Dify 部署的神秘面纱,让你轻松踏上这场人工智能开发的奇妙之旅

下载 Dify

  1. 访问 Dify GitHub 仓库 ,选择合适的版本下载,我这里用的是 1.2.0 版本。
    pE5cuvt.png

  2. 下载源码,直接在服务器中使用 wget https://github.com/langgenius/dify/archive/refs/tags/1.2.0.zip

解压

使用 unzip 1.2.0.zip 命令解压下载的压缩包,解压完成会得到一个名为 dify-1.2.0 的文件夹。
pE5c6PJ.png

修改配置文件

  • 使用 cd dify-1.2.0/docker 进入文件夹,再次使用 ls -a 查看所有文件,但是没有看到 .env 文件,怎么办呢?
    pE5c2x1.png
    不要慌,使用 cp .env.example .env 命令复制一份 .env.example 文件,并将其重命名为 .env

  • 为了保证我们使用最新版(舒服的)的 Milvus,我们要在 docker-compose.yml 文件中修改一下的 Milvus 版本以及 Attu 管理工具。我们使用 vim docker-compose.yaml 命令打开文件,然后找到 milvus-standalone 的内容,将其修改为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
milvus-standalone:
container_name: milvus-standalone
image: milvusdb/milvus:v2.5.8
profiles:
- milvus
command: [ 'milvus', 'run', 'standalone' ]
environment:
ETCD_ENDPOINTS: ${ETCD_ENDPOINTS:-etcd:2379}
MINIO_ADDRESS: ${MINIO_ADDRESS:-minio:9000}
common.security.authorizationEnabled: ${MILVUS_AUTHORIZATION_ENABLED:-true}
volumes:
- ./volumes/milvus/milvus:/var/lib/milvus
healthcheck:
test: [ 'CMD', 'curl', '-f', 'http://localhost:9091/healthz' ]
interval: 30s
start_period: 90s
timeout: 20s
retries: 3
depends_on:
- etcd
- minio
ports:
- 19530:19530
- 9091:9091
networks:
- milvus
attu:
container_name: attu
image: zilliz/attu:v2.5.6
environment:
MILVUS_URL: milvus-standalone:19530
ports:
- "9092:3000"
depends_on:
- "milvus-standalone"

此时,我们已经对 Milvus 进行了版本升级,并且增加了 Attu 管理工具(这里我把 Attu 的访问端口改成了 9092)

  • 接下来,我们还需要修改 .env 文件,找到以下内容,进行替换
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# The type of vector store to use.
# Supported values are `weaviate`, `qdrant`, `milvus`, `myscale`, `relyt`, `pgvector`, `pgvecto-rs`, `chroma`, `opensearch`, `tidb_vector`, `oracle`, `tencent`, `elasticsearch`, `elasticsearch-ja`, `analyticdb`, `couchbase`, `vikingdb`, `oceanbase`, `opengauss`, `tablestore`.
VECTOR_STORE=milvus

# Milvus configuration. Only available when VECTOR_STORE is `milvus`.
# The milvus uri.
MILVUS_URI=http://milvus-standalone:19530
MILVUS_TOKEN=
MILVUS_USER=root
MILVUS_PASSWORD=Milvus
MILVUS_ENABLE_HYBRID_SEARCH=False

# Enable or disable security authorization
MILVUS_AUTHORIZATION_ENABLED=false
PLUGIN_S3_USE_AWS_MANAGED_IAM=true
PLUGIN_S3_USE_PATH_STYLE=true

部署

修改完成之后,我们就可以使用 docker-compose up -d 命令进行部署了。