01、大模型部署方案与Dify的使用

大模型部署方案与Dify的部署

一、整体部署方案

xml 复制代码
##1、为什么只把dify安装在docker中?
Ollama和Xinference在调用模型的时候需要消耗大量的GPU资源,而docker默认是使用cpu的。
docker如果要支持GPU是需要额外安装软件来支持的。

##2、为什么不把Embedding嵌入模型和ReRank重排序模型安装在Ollama中?
Ollama专注于简化大语言模型(LLM)的本地部署和管理,其核心优势在于LLM的易用性和快速上手。对嵌入式模型和重排序模型支持不太好。
Xinference是一个功能更全面的模型服务框架,它不仅支持部署和管理大语言模型,还对嵌入模型和重排序模型提供了广泛且灵活的支持。
xml 复制代码
##3、基于RAG架构的开发流程
"大模型的知识冻结" 是指:大语言模型(LLM)在训练完成后,其内部学到的知识就被"固定"下来,不会自动更新。之后它将无法自动感知或学习新发生的事件和信息。

"大模型幻觉"模型在生成内容时,输出了看似合理但事实上错误、虚构、甚至完全不存在的信息,而模型自己还表现得非常自信。

RAG :  Retrieval检索 + Augmented增强 + Generation生成

本地文档--->文本加载器-->文本数据-->文本切割器-->文本切片-->嵌入模型-->向量存储

问题--->嵌入模型-->查询向量-->同向量存储里的数据做 向量匹配--->找到关联的文本切片-->提示词模板--->提示词--->大语言模型--->回答

其中Retrieval检索==>10从向量数据库中查询
Augmented增强==>12将关联的文本切片塞到提示词模板当中
Generation生成==>大语言模型的回答
xml 复制代码
其中  Embedding用到嵌入式模型
     知识重排序用到 重排序模型
	 LLM用到 大语言模型
xml 复制代码
##5、基于Agent架构的5个核心要素

充分利用 LLM 的推理决策能力,通过增加规划、记忆和工具调用的能力,构造一个能够独立思考、逐步完成给定目标的智能体。
Agent = LLM + Memory + Tools + Planning + Action
xml 复制代码
##核心要素1:大模型LLM
大模型作为"大脑":提供推理、规划和知识理解能力,是AI Agent的决策中枢。

##核心要素2:记忆
短期记忆:存储单次对话周期的上下文信息,属于临时信息存储机制。受限于模型的上下文窗口长度。

长期记忆:可以横跨多个任务或时间周期,可存储并调用核心知识,非即时任务。
长期记忆,可以通过模型参数微调知识图谱(固化知识)、(结构化语义网络)或向量数据库(相似性检索)方式实现。

##核心要素3:工具的使用tool use
工具使用:调用外部工具(如API、数据库)扩展能力边界

##核心要素4:规划决策
规划决策:通过任务分解、反思与自省框架实现复杂任务处理。例如,利用思维链:(Chainof Thought)将目标拆解为子任务,并通过反馈优化策略。

##核心要素5:行动
行动:实际执行决策的模块,涵盖软件接口操作(如自动订票)和物理交互(如机器人执行搬运)。比如:检索、推理、编程等。
xml 复制代码
AutoDL平台地址: https://www.autodl.com
Ollama官方地址: https://ollama.com

XInference官方地址: https://xinference.cn/

二、Dify部署

xml 复制代码
Dify 作为一个综合性的 LLM 应用开发平台,内置了构建现代生成式A! 应用所需的几乎所有关键技术栈。
它的具体功能如下:
·基于Agent架构构建智能体应用
·基于RAG构建私有知识库应用
·基于Workflow构建智能工作流应用

##官网:https://dify.ai/zh

1、部署Docker:

xml 复制代码
##centos7安装

官网文档:  https://docs.docker.com/install/linux/docker-ce/centos/

1》、yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2
2》、yum-config-manager \
   --add-repo \
   http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3》、可选:yum-config-manager --enable docker-ce-nightly

yum-config-manager --enable docker-ce-test

4》、yum install docker-ce docker-ce-cli containerd.io

5》、启动 systemctl start docker
6》、测试 docker run hello-world

## docker开机启动
systemctl enable docker   ##开启开机自启
systemctl disable docker  ##关闭开机自启

部署Dify:

xml 复制代码
##安装
cd /opt
mkdir dify
git clone https://gitee.com/night_wish/dify.git
cd dify/docker

cp .env.example .env  ##里面有端口之类的配置,默认是80

docker compose up -d   ##如果执行不成功看下 /etc/docker/daemon.json 设置好后 重启docker   systemctl reload docker
xml 复制代码
##拓展 /etc/docker/daemon.json 内容

{
  "registry-mirrors": [
    "https://docker.unsee.tech",
    "https://dockerpull.org",
    "https://docker.1panel.live",
    "https://dockerhub.icu",
    "https://docker.m.daocloud.io",
    "https://docker.nju.edu.cn",
    "https://registry.docker-cn.com",
    "https://docker.mirrors.ustc.edu.cn",
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com",
    "https://5tqw56kt.mirror.aliyuncs.com",
    "https://docker.hpccloud.cloud",
    "http://mirrors.ustc.edu.cn",
    "https://docker.chenby.cn",
    "https://docker.ckyl.me",
    "http://mirror.azure.cn",
    "https://hub.rat.dev"
  ]
}

systemctl reload-daemon
systemctl reload docker
xml 复制代码
##访问
http://192.168.73.108:80
设置管理员账号  邮箱:277014708@qq.com  用户名:root  密码:admin123

2、Dify更新

xml 复制代码
cd /opt/software/dify/docker
docker compose down
git pull origin main
docker compose pull
docker compose up -d

3、配置文件

xml 复制代码
cd /opt/software/dify/docker
ls -a
mv .env.example .env

4、安装常用的python依赖包

xml 复制代码
vi /opt/software/dify/docker/volumes/sandbox/dependencies/python-requirements.txt
xml 复制代码
##接入Mysql
#修改python-requirements.txt后,执行下面命令
docker compose down
docker compose up -d

##有可能安装不上
docker exec -it docker-sandbox-1 /bin/bash
看下有没有 /app/python-requirements.txt
如果没有 退出 sandbox:
	vi docker/docker-compose.yaml
增加 
sandbox:
    image: langgenius/dify-sandbox:0.2.12
    restart: always
    environment:
       xxxxxxxx
    volumes:
      - ./volumes/sandbox/dependencies:/dependencies
      - ./volumes/sandbox/dependencies/python-requirements.txt:/app/python-requirements.txt:ro  ##这一行是新增的,我的是没有的
      - ./volumes/sandbox/conf:/conf

##允许dify访问3306端口
cd dify/docker/ssrf_proxy
vi squid.conf.template
# 新增
acl Safe_ports port 3306   # MYSQL


##dify访问外部网络
vi docker/docker-compose.yaml

sandbox:
	xxxx
	networks:
		- ssrf_proxy_network
		- default    ##这一行是新增的

##重启
docker compose down
docker compose up -d

执行
# 检查是否安装
pip list | grep pymysql

# 检查是否能导入
python -c "import pymysql; print('🎉 pymysql 可用!')"

如果输出:🎉 pymysql 可用!,说明一切正常!

如果没有自动安装,手动执行安装:
pip install -r /app/python-requirements.txt

5、接入大模型

xml 复制代码
头像-->设置-->模型供应商-->设置秘钥
相关推荐
西柚小萌新3 小时前
【Python从入门到精通】--Pycharm增加内存
开发语言·python·pycharm
西柚小萌新3 小时前
【深入浅出PyTorch】--7.1.PyTorch可视化1
人工智能·pytorch·python
我是华为OD~HR~栗栗呀3 小时前
华为OD-23届考研-Java面经
java·c++·后端·python·华为od·华为·面试
Small___ming3 小时前
【Python基础】Python路径操作全解析:os.path、glob与pathlib从入门到精通
开发语言·python
这里有鱼汤3 小时前
3步用Python识别MACD背驰,避免80%追涨杀跌陷阱,建议收藏
后端·python
程序员爱钓鱼3 小时前
Python编程实战 · 基础入门篇 | Python能做什么
后端·python·github
一车小面包4 小时前
Transformers中从 logits 本质到问答系统中的字符定位机制
pytorch·python·深度学习
战族狼魂4 小时前
基于python+Java的二手车与奔驰销量数据可视化平台
java·数据库·python
Goboy4 小时前
【Python修仙笔记.3】Python函数作为秘技 - 封装你的仙法
后端·python