开源的 LLM 应用开发平台Dify的安装和使用

文章目录

前提环境

应用安装

  • 自行安装docker desktop和ollama
  • 推荐ollama安装deepseek-r1:14b轻量化模型,如果本地硬件条件不足,可以使用硅基流动在线API

deocker desktop镜像源配置

js 复制代码
{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "experimental": false,
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "http://ghcr.io",
    "https://docker.nju.edu.cn",
    "https://dockerhub.azk8s.cn",
    "https://registry.cn-hangzhou.aliyuncs.com",
    "https://huecker.io",
    "https://dockerhub.timeweb.cloud",
    "https://noohub.ru"
  ]
}

Dify简介

  • Dify 是一款开源的大语言模型(LLM)应用开发平台,旨在简化和加速生成式 AI 应用的创建与部署。其核心定位是结合 后端即服务(BaaS) 和 LLMOps 理念,通过低代码/无代码的可视化界面,降低开发者与非技术人员构建 AI 应用的门槛。
  1. 核心定位与功能
  • 开源框架:Dify 并非单一的 AI 模型,而是一个应用开发框架,支持开发者快速搭建生产级的 AI 应用,如聊天助手、文本生成工具、智能代理(Agent)等 。
  • 模块化设计:通过可视化编排界面,用户可像"搭积木"一样组合功能模块,例如定义 Prompt、集成外部工具、管理数据集等,无需深入编程。
  • 多模型支持:兼容主流大模型(如 GPT-4、Claude3、Llama3、通义千问等),并可自定义接入本地或云端模型
  1. 核心技术特性
  • RAG(检索增强生成): Dify 提供高效的文档处理与检索能力,支持上传 PDF、TXT 等格式文件,自动完成文本分块、向量化索引及混合检索(向量+全文),提升生成内容的准确性与丰富度 。例如,用户可构建私有知识库,让 AI 回答基于企业数据的专业问题
  • Agent(智能代理): 支持通过 Function Calling 或 ReAct 框架构建智能代理,赋予 AI 任务分解、工具调用(如 Google 搜索、图像生成)等高级能力。例如,客服 Agent 可自动解析用户需求并调用 API 完成订单查询 。
  • 工作流编排: 提供可视化画布,允许用户通过节点组合定义复杂业务流程(如多步翻译、数据分析),支持条件分支、代码执行、HTTP 请求等逻辑节点,实现自动化任务处理。
  1. 应用场景
  • 智能客服与对话助手:支持多轮对话、上下文记忆及知识库集成,适用于企业客服系统或个性化问答场景 。
  • 内容生成与管理:自动生成文章、摘要、代码,或解析长文档进行结构化提取(如合同分析、发票识别) 。
  • 商业智能:结合企业数据库生成数据报告,通过 NL2SQL 将自然语言查询转换为数据库指令 。
  • 企业效能提升:通过私有化部署,将 LLM 嵌入内部系统,实现流程自动化与智能升级(如千人千面的客户体验)

Dify本地docker安装

  1. 通过github下载源码后,进入dify-1.1.3\docker.env.example文件复制并修改为.env文件

  2. .env文件中最后添加一下内容

    bash 复制代码
    #启用自定义模型
    CUSTOM_MODEL_ENABLED=true
    #指定Olama的API地址(根据部署环境调整IP)
    OLLAMA_API_BASE_URL=host.docker.internal:11434
  3. 然后,该该目录下打开终端启动容器服务

    javascript 复制代码
    docker-compose up
  4. 访问localhost/install即可进入安装配置界面,首先注册邮箱、用户名和密码,然后使用新创建的账号进行登录。

Dify安装ollama插件

  1. 打开Dify应用市场,搜索需要的插件并点击详情进行瞎下载。(不仅建议进行在线安装,速度较慢)


  1. 使用ollama命令查看本地模型
  2. 打开ollama添加模型并配置连接信息


Dify安装硅基流动插件

  • 操作方法同Dify安装ollama插件,不再赘述。

简单应用练习

  1. 打开工作室,创建空白应用
  2. 选择聊天助手,填写基本信息
  3. 可以填写你的提示词,然后点击调试与预览,进行测试

进阶应用练习

数据库图像检索与展示助手

  1. ollama安装向量化模型
bash 复制代码
ollama run bge-m3
  1. 准备知识库所需文件亲子运动.txt,内容如下
bash 复制代码
特别提示:注意保暖,避免孩子受寒。
运动图片链接:[点击查看](https://img1.baidu.com/it/u=2495318208,4233708303&fm=253&fmt=auto&app=138&f=JPEG?w=708&h=500)
##
亲子运动项目名称:家庭篮球赛
适合年龄:7~14岁
运动时间:20~30分钟
运动项目介绍:家长与孩子进行简易篮球比赛,提高孩子的篮球技能。
运动目标:培养孩子的球技和团队合作意识。
运动规则:简化篮球规则,进行半场3对3或1对1比赛。
特别提示:穿着合适的运动装备,注意安全。
运动图片链接:[点击查看](https://img0.baidu.com/it/u=3195478262,213097067&fm=253&fmt=auto&app=138&f=JPEG?w=700&h=467)
##
亲子运动项目名称:亲子瑜伽
适合年龄:5~12岁
运动时间:15~20分钟
运动项目介绍:家长与孩子一起练习瑜伽动作,增进亲子间的亲密关系。
运动目标:提高孩子的柔韧性和平衡能力,放松身心。
运动规则:跟随瑜伽教程,一起完成一系列瑜伽动作。
特别提示:穿着舒适,保持呼吸均匀。
运动图片链接:[点击查看](https://img1.baidu.com/it/u=2561021092,817698414&fm=253&fmt=auto&app=138&f=JPEG?w=667&h=500)
##
亲子运动项目名称:家庭接力跑
适合年龄:6~12岁
运动时间:15~20分钟
运动项目介绍:家庭成员分成两队,进行接力跑比赛。
运动目标:提高孩子的奔跑速度和团队协作能力。
运动图片链接:[点击查看](https://img1.baidu.com/it/u=975344947,3030921339&fm=253&fmt=auto&app=138&f=JPEG?w=720&h=480)
##
亲子运动项目名称:飞盘争夺战
适合年龄:6~12岁I
运动时间:15~20分钟
运动项目介绍:家长与孩子进行飞盘传递和接住游戏。
运动目标:锻炼孩子的反应速度和手眼协调能力。
运动规则:在规定区域内,通过飞盘传递,争取让对方接不住飞盘。
特别提示:选择开阔的场地,避免飞盘伤人。
运动图片链接:[点击查看](https://img0.baidu.com/it/u=3788427895,2518031093&fm=253&fmt=auto&app=138&f=JPEG?w=750&h=500)
##
亲子运动项目名称:家庭足球赛
适合年龄:5~12岁
运动时间:20~30分钟
运动项目介绍:家长与孩子进行简易足球比赛,享受足球乐趣。
运动目标:提高孩子的足球技能和团队精神。
运动规则:简化足球规则,进行小场地比赛。
特别提示:穿着足球鞋,注意场地安全。
运动图片链接:
##
亲子运动项目名称:亲子攀岩
适合年龄:8~14岁
运动时间:30~45分钟
运动项目介绍:家长与孩子一起挑战攀岩墙,锻炼勇气和力量。
运动目标:提高孩子的攀爬能力和自信心。
运动规则:在专业人员的指导下,完成攀岩墙的挑战。
特别提示:确保安全装备穿戴正确,听从指导员指挥。
运动图片链接:
##
亲子运动项目名称:家庭自行车赛
适合年龄:7~14岁
运动时间:30~45分钟
运动项目介绍:家长与孩子进行自行车比赛,享受户外运动。
运动目标:提高孩子的骑行技巧和耐力。
运动规则:在公园或自行车道上,设定一个往返赛道进行比赛。
特别提示:佩戴头盔,遵守交通规则。
运动图片链接:
  1. 创建知识库,上传文本文件

  2. 设置分段标识和索引方式、向量化模型

  3. 创建Chatflow应用,并填写基本信息,点击创建

  4. 设置具体的工作流程,整体流程如图。

  5. 知识检索具体设置

  6. LLM设置:可以直接选择使用deepseek-r1模型,上下文选择知识检索的结果result

    • 填写system提示词,内容如下:
    bash 复制代码
    ##角色
    你是一位亲子运动游戏创意专家,根据提供的{{#context#}}信息生成用户需要的亲子运动游戏。不要改变亲子运动游戏格式,要包含亲子运
    动项目名称、适合年龄、运动时间、运动目标、运动规则、特别提示。
    ##限制
    1.根据用户的具体提问回答问题,不要一下子把常见问题都输出给用户,
    2.请使用json格式输出,不要输出任何与json格式无关的内容。
    ##输出要求
    -如果输出的内容包含图片URL,请使用以下JSON格式输出:
    {
      "content":"示例输出内容",
      "imageUrl":"图片地址"
    }
    3. 果输出的内容不包含图片URL,请使用以下JSON格式输出:
    {
       "content":"示例输出内容"
    }
    • user相关设置,选择sys.query变量
  7. 参数提取器具体设置如下:

  8. 添加分支设置:如果图片地址为空,直接输出结果;否则,通过http请求获取图片展示输出。

  9. http请求设置

  10. 直接回答1、2的设置

  11. 点击发布,同时运行测试结果

  12. 测试结果如下:

echart助手可视化

  1. 创建名为echart助手可视化的chatflow应用,整体设置如下:
  2. 创建电影数据.md,文件内容如下:
bash 复制代码
| 电影名称               | 上映日期   | 票房(亿元) | 成本(亿元) | 豆瓣评分 | 上映周数 | 日均票房(万) | 地区分布             |
|------------------------|------------|-------------|-------------|----------|----------|----------------|----------------------|
| 星际远征:重启          | 2023-07-15 | 42.3        | 8.5         | 8.7      | 12       | 352.5          | 北美;欧洲;亚洲        |
| 长安十二时辰            | 2024-02-10 | 36.8        | 6.2         | 9.1      | 9        | 408.9          | 中国;东南亚           |
| 深海迷航               | 2023-12-01 | 28.5        | 5.8         | 7.9      | 15       | 190.0          | 全球                 |
| 侠隐江湖               | 2024-05-01 | 18.4        | 3.5         | 8.3      | 6        | 306.7          | 中国;韩国;日本        |
| 机械之心               | 2023-11-20 | 51.2        | 12.0        | 8.5      | 18       | 283.7          | 北美;中国;欧洲        |
| 时空恋人               | 2024-03-22 | 14.7        | 2.8         | 8.8      | 7        | 210.0          | 中国;港台             |
| 极地救援               | 2023-10-05 | 33.6        | 7.3         | 7.6      | 11       | 305.5          | 北美;欧洲             |
| 山海经:饕餮现世        | 2024-06-15 | 24.9        | 4.5         | 8.4      | 5        | 498.0          | 亚洲                 |
| 银河护卫队:终章        | 2023-09-01 | 65.8        | 15.0        | 8.9      | 16       | 411.3          | 全球                 |
| 青蛇传说               | 2024-04-12 | 19.2        | 3.2         | 8.6      | 8        | 240.0          | 中国;东南亚           |
| 火星殖民               | 2023-08-30 | 47.5        | 9.8         | 7.8      | 13       | 365.4          | 北美;中国             |
| 镜中谜城               | 2024-07-19 | 12.3        | 2.5         | 8.2      | 4        | 307.5          | 中国;日本             |
| 恐龙星球               | 2023-06-10 | 55.1        | 11.5        | 8.0      | 14       | 393.6          | 全球                 |
| 刺客信条:长安          | 2024-01-05 | 31.7        | 6.5         | 8.7      | 10       | 317.0          | 中国;韩国             |
| 量子危机               | 2023-05-20 | 72.4        | 18.0        | 7.5      | 20       | 362.0          | 北美;欧洲;亚洲        |
| 白蛇:缘起             | 2024-08-08 | 16.9        | 3.0         | 9.0      | 6        | 281.7          | 中国                 |
| 异形觉醒               | 2023-04-15 | 29.8        | 7.2         | 7.2      | 17       | 175.3          | 北美;日本             |
| 封神榜:三界之战        | 2024-09-28 | 44.2        | 8.0         | 8.5      | 8        | 552.5          | 中国;东南亚           |
| 侏罗纪世界:新生代      | 2023-03-12 | 68.3        | 16.5        | 8.1      | 19       | 359.5          | 全球                 |
| 雪国列车               | 2024-10-15 | 27.6        | 5.5         | 8.4      | 7        | 394.3          | 韩国;日本             |
| 三体:黑暗森林         | 2023-02-14 | 83.6        | 20.0        | 9.3      | 22       | 379.1          | 全球                 |
| 花木兰:巾帼传奇       | 2024-11-11 | 38.7        | 7.8         | 8.8      | 6        | 645.0          | 中国;北美             |
| 盗梦空间2             | 2023-01-05 | 59.4        | 14.2        | 8.7      | 15       | 396.0          | 北美;欧洲;亚洲        |
| 哪吒:魔童降世2        | 2024-12-25 | 51.9        | 9.5         | 9.0      | 5        | 1038.0         | 全球                 |
| 阿凡达:水之道         | 2023-07-20 | 91.2        | 25.0        | 8.9      | 18       | 506.7          | 全球                 |
| 流浪地球3             | 2024-04-30 | 77.5        | 18.8        | 9.2      | 10       | 775.0          | 中国;北美             |
| 功夫熊猫:神龙大侠     | 2023-08-15 | 34.6        | 6.5         | 8.3      | 12       | 288.3          | 全球                 |
| 哈利波特:魔法遗产     | 2024-06-06 | 62.1        | 15.5        | 8.6      | 9        | 690.0          | 欧洲;北美;亚洲        |
| 复仇者联盟:无限战争2  | 2023-05-01 | 105.4       | 30.0        | 8.8      | 20       | 527.0          | 全球                 |
| 姜子牙:封神再临       | 2024-07-07 | 29.3        | 5.2         | 8.9      | 8        | 366.3          | 中国;东南亚           |
  1. 开始部分设置

  2. 文档提取器设置

  3. 格式化输出设置,记得数据中部分设置上一步的变量,模型可以选择deepseek-r1

  4. 参数提取器设置

  5. 代码执行部分设置,具体设置和脚本代码如下

python 复制代码
import csv
import json

def main(csv_string):
    # 将CSV字符串分割成行
    lines = csv_string.strip().split('\n')
    
    # 使用csv模块读取数据
    reader = csv.reader(lines)
    
    # 将所有行转换为列表
    data = [row for row in reader]
    
    # 将数字字符串转换为浮点数
    for row in data[1:]:  # 跳过标题行
        for i in range(1, len(row)):
            try:
                row[i] = float(row[i])
            except ValueError:
                pass
    
    # 创建完整的Echarts配置
    echarts_config = {
        "legend": {},
        "tooltip": {},
        "dataset": {
            "source": data
        },
        "xAxis": [
            {"type": "category", "gridIndex": 0},
            {"type": "category", "gridIndex": 1}
        ],
        "yAxis": [
            {"gridIndex": 0},
            {"gridIndex": 1}
        ],
        "grid": [
            {"bottom": "55%"},
            {"top": "55%"}
        ],
        "series": [
            # 第一个网格中的折线图系列
            {"type": "bar", "seriesLayoutBy": "row"},
            {"type": "bar", "seriesLayoutBy": "row"},
            {"type": "bar", "seriesLayoutBy": "row"},
            {"type": "bar", "seriesLayoutBy": "row"},
            # 第二个网格中的柱状图系列
            {"type": "bar", "xAxisIndex": 1, "yAxisIndex": 1},
            {"type": "bar", "xAxisIndex": 1, "yAxisIndex": 1},
            {"type": "bar", "xAxisIndex": 1, "yAxisIndex": 1},
            {"type": "bar", "xAxisIndex": 1, "yAxisIndex": 1},
            {"type": "bar", "xAxisIndex": 1, "yAxisIndex": 1},
            {"type": "bar", "xAxisIndex": 1, "yAxisIndex": 1}
        ]
    }
    
    # 生成输出文件
    output = f'```echarts\n{json.dumps(echarts_config, ensure_ascii=False)}\n```'
    return {"result": output}
  1. 最后回答部分设置

  2. 点击保存,然后运行测试,上传电影数据文件,然后输入分析数据的命令,进行执行.

  3. 最终,执行的绘图结果。

相关推荐
Mengke6 小时前
以「asset-price-mcp」为例,从 0 开发 MCP Server
llm·mcp
simplify2014 小时前
【译】Anthropic:推理模型的思维链并非总是忠实
llm·deepseek
几米哥14 小时前
从思考到行动:AutoGLM沉思如何让AI真正"动"起来
llm·aigc·chatglm (智谱)
Liudef0616 小时前
deepseek v3-0324实现SVG 编辑器
开发语言·javascript·编辑器·deepseek
自由鬼17 小时前
开源虚拟化管理平台Proxmox VE部署超融合
linux·运维·服务器·开源·虚拟化·pve
蚝油菜花19 小时前
DeepSite:基于DeepSeek的开源AI前端开发神器,一键生成游戏/网页代码
人工智能·开源
蚝油菜花19 小时前
PaperBench:OpenAI开源AI智能体评测基准,8316节点精准考核复现能力
人工智能·开源
蚝油菜花19 小时前
DreamActor-M1:字节跳动推出AI动画黑科技,静态照片秒变生动视频
人工智能·开源
buxuku200819 小时前
从 0 到 2K Star:我的开源之旅与成长
开源
遇码19 小时前
大语言模型开发框架——LangChain
人工智能·语言模型·langchain·llm·大模型开发·智能体