大模型部署方案与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
头像-->设置-->模型供应商-->设置秘钥
