在win11上部署Dify,并接入ollama、安装database插件和使用

该文章已生成可运行项目,

1 Docker方式部署Dify

1.1 官方教程

Docker Compose 部署 - Dify Docs

1.2 部署

1.2.1 下载源码

git clone https://github.com/langgenius/dify.git 

1.2.2 部署

cd dify/docker
cp .env.example .env

# 启动
docker compose up -d
# 查看容器状态
docker compose ps

1.2.3 Troubleshooting

如果docker compose up -d报以下错:

validating /mnt/d/krow/ws/dify/docker/docker-compose.yaml: volumes Additional property ./volumes/db/data is not allowed

解决: 检查dify/docker目录下是否已经有./volumes/db/data文件夹,如果有,将其删掉,再手动创建,重新运行

1.2.4 访问

http://localhost:80

2 接入ollama模型

2.1 安装OpenAI-API-compatible插件

在这里插入图片描述
在这里插入图片描述
安装成功后
在这里插入图片描述
后台docker-plugin_daemon-1的日志也显示安装成功:
在这里插入图片描述

2.2 接入ollama模型

2.2.1 查看模型名字

ollama list
NAME         ID              SIZE     MODIFIED
qwen3:32b    030ee887880f    20 GB    6 days ago

2.2.2 配置qwen3:32b

在这里插入图片描述

  1. LLM
  2. qwen3:32b
  3. http://localhost:11434/v1
    在这里插入图片描述
    保存时报错:
    在这里插入图片描述
    后台日志报错:
    在这里插入图片描述
2.2.2.1 解决方式1

http://localhost:11434/v1改为http://host.docker.internal:11434/v1

2.2.2.2 解决方式2
  1. 指定ollama允许全部IP访问
    # 在windows的powershell中操作
    $env:OLLAMA_HOST="0.0.0.0:11434"
    ollama serve
    
  2. 查看本机IP
    ipconfig
    
    在这里插入图片描述
  3. 测试
    curl http://192.168.31.244:11434/api/tags | jq
    
    在这里插入图片描述
  4. http://localhost:11434/v1改为http://192.168.31.244:11434/v1

3 安装database插件

3.1 【可选】安装mysql数据库

3.1.1 拉取mysql8镜像

docker pull mysql:8.0

3.1.2 启动mysql8容器

docker run --name mysql8 `
  -e MYSQL_ROOT_PASSWORD=123qwe `
  -p 3306:3306 `
  -v D:\docker-ws\data\mysql\data:/var/lib/mysql `
  -v D:\docker-ws\data\mysql\conf:/etc/mysql/conf.d `
  -d mysql:8.0 `
  --character-set-server=utf8mb4 `
  --collation-server=utf8mb4_unicode_ci `
  --bind-address=0.0.0.0  

3.1.3 连接,并创建数据库

 docker exec -it mysql8 mysql -u root -h 192.168.31.244 -p

在这里插入图片描述

3.2 安装database插件

在这里插入图片描述
在这里插入图片描述
安装成功
在这里插入图片描述

3.3 配置database插件

回到插件列表
在这里插入图片描述
在这里插入图片描述
数据库URI中输入mysql+pymysql://root:123qwe@192.168.31.244:3306/dify
在这里插入图片描述
配置成功
在这里插入图片描述

3.4 Troubleshooting

因为网络问题,可能显示database插件安装成功了,但它的依赖并没有安装成功,这时配置数据库 URI时,就会报

internal server error

查看docker-plugin_daemon-1后台日志:
在这里插入图片描述
解决:编辑dify/docker/.env,配置PIP国内源

PIP_MIRROR_URL=https://pypi.tuna.tsinghua.edu.cn/simple
# PIP_MIRROR_URL=

4 使用qwen3模型和database插件

4.1 创建表和插入数据

use dify;

CREATE TABLE customers
(
    customer_id       INT AUTO_INCREMENT PRIMARY KEY,
    name              VARCHAR(100) NOT NULL,
    email             VARCHAR(100) UNIQUE,
    phone             VARCHAR(20),
    registration_date DATE,
    vip_status        BOOLEAN DEFAULT FALSE
);

-- 产品表
CREATE TABLE products
(
    product_id     INT AUTO_INCREMENT PRIMARY KEY,
    name           VARCHAR(100)   NOT NULL,
    category       VARCHAR(50),
    price          DECIMAL(10, 2) NOT NULL,
    stock_quantity INT DEFAULT 0,
    description    TEXT
);

-- 订单表(关联客户和产品)
CREATE TABLE orders
(
    order_id     INT AUTO_INCREMENT PRIMARY KEY,
    customer_id  INT,
    product_id   INT,
    order_date   DATETIME DEFAULT CURRENT_TIMESTAMP,
    quantity     INT            NOT NULL,
    total_amount DECIMAL(10, 2) NOT NULL,
    status       ENUM ('pending', 'shipped', 'delivered', 'cancelled') DEFAULT 'pending',
    FOREIGN KEY (customer_id) REFERENCES customers (customer_id),
    FOREIGN KEY (product_id) REFERENCES products (product_id)
);

-- 插入客户数据
INSERT INTO customers (name, email, phone, registration_date, vip_status)
VALUES ('张三', 'zhangsan@example.com', '13800138001', '2022-01-15', TRUE),
       ('李四', 'lisi@example.com', '13800138002', '2022-03-22', FALSE),
       ('王五', 'wangwu@example.com', '13800138003', '2022-05-10', TRUE),
       ('赵六', 'zhaoliu@example.com', '13800138004', '2022-07-18', FALSE),
       ('钱七', 'qianqi@example.com', '13800138005', '2022-09-05', FALSE);

-- 插入产品数据
INSERT INTO products (name, category, price, stock_quantity, description)
VALUES ('智能手机X', '电子产品', 5999.00, 100, '最新款旗舰智能手机'),
       ('无线耳机Pro', '电子产品', 899.00, 200, '高音质无线蓝牙耳机'),
       ('智能手表', '电子产品', 1299.00, 150, '健康监测智能手表'),
       ('咖啡机', '家用电器', 799.00, 50, '全自动美式咖啡机'),
       ('电动牙刷', '个人护理', 299.00, 300, '声波震动电动牙刷'),
       ('笔记本电脑', '电子产品', 8999.00, 30, '高性能轻薄笔记本');

-- 插入订单数据
INSERT INTO orders (customer_id, product_id, quantity, total_amount, status)
VALUES (1, 1, 1, 5999.00, 'delivered'),
       (1, 3, 2, 2598.00, 'shipped'),
       (2, 2, 1, 899.00, 'pending'),
       (3, 4, 1, 799.00, 'delivered'),
       (3, 6, 1, 8999.00, 'shipped'),
       (4, 5, 3, 897.00, 'delivered'),
       (5, 1, 1, 5999.00, 'cancelled'),
       (5, 2, 2, 1798.00, 'delivered');

4.2 创建工作流

4.2.1 创建简单工作流

在这里插入图片描述

4.2.2 创建开始节点

在这里插入图片描述

4.2.3 创建Text2SQL节点

在这里插入图片描述

4.2.4 创建LLM节点

在这里插入图片描述

4.2.5 创建python代码节点

import re

def main(text: str) -> dict:
    pattern = r'```sql(.*?)```'
    sqls = re.findall(pattern, text, re.DOTALL)
    sql = [sql.strip() for sql in sqls][0]
    idx = sql.lower().find('limit')
    sql = sql if idx == -1 else sql[:idx]
    return {'sql': sql}

在这里插入图片描述

4.2.6 创建SQL Execute节点

在这里插入图片描述

4.2.7 创建python代码节点

import json

def main(ret_json: list) -> dict:
    str_json = json.dumps(
        ret_json[0].get("result")
    )
    return {
        "str_json": str_json
    }

在这里插入图片描述

4.2.8 创建LLM节点

"""
{{#1749356861528.question#}}
"""
这是"用户问题""""
{{#1749358161409.sql#}}
"""
这是将用户问题转成的SQL语句。

"""
{{#1749358848014.str_json#}}
"""
这是根据SQL查询数据库的结果。

现在请将以上内容按以下格式返回:

# 用户问题
`用户问题内容`
# SQL语句
`SQL语句内容`
# 查询结果
`查询结果内容`

注意,不要改动内容,并且”查询结果内容“要以mardown表格进行展示。

在这里插入图片描述

4.2.9 创建结束节点

在这里插入图片描述

4.3 运行

4.3.1 查询所有VIP客户

在这里插入图片描述

4.3.2 查询所有订单及客户和产品信息

在这里插入图片描述

本文章已经生成可运行项目
### 安装 Dify AI 平台的详细过程 #### 一、Hyper-V WSL2 的配置 为了支持 Docker Desktop,在 Windows 11 上需要先启用 Hyper-V WSL2 (Linux 子系统)。以下是具体操作: 通过 PowerShell 输入以下命令来启动 Hyper-V 功能: ```powershell Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All ``` 此命令会自动完成 Hyper-V 的安装提示重启计算机[^1]。 接着,进入 **控制面板 -> 程序 -> 启用或关闭 Windows 功能** 页面,勾选以下选项以确保环境准备就绪: - Linux 的 Windows 子系统 - 虚拟机平台 点击“确定”,随后按照指示重新启动电脑[^3]。 #### 二、Docker Desktop 的安装与设置 对于 Docker Desktop 的安装部分,可以从官方资源或者推荐链接下载适合版本的应用程序文件[^4]。如果希望自定义其存储路径,则可以通过执行特定参数实现。例如设定目标盘符为 `E:\` 下面创建名为 docker 文件夹作为新位置时可采用下面这条指令: ```cmd start /w "" "Docker Desktop Installer.exe" install --installation-dir=E:\docker ``` 当一切准备工作完成后,请正常运行已下载好的 EXE 可执行档来进行默认流程下的软件部署工作,依据个人需求调整高级属性比如 CPU 数量分配比例等等[^2]。 #### 三、运行 Dify 应用服务端口监听状态确认以及后续管理维护指南说明文档查阅建议事项列表如下所示: 最后一步就是利用官方给出的方法正式启动项目本身了! 假设前面所有的前置条件都已经满足的话那么现在只需要遵循指引去触发对应脚本就能顺利开启整个系统的运作模式啦! --- ### 注意要点总结回顾: - 确认操作系统兼容性问题解决办法; - 正确加载必要的驱动模块服务组件实例化处理机制描述清楚明白易懂便于理解接受程度提高效率减少错误发生几率提升用户体验满意度水平达到预期效果最佳表现形式呈现出来供大家参考学习借鉴使用价值最大化体现出来.
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值