什么是Dify
Dify 是一个开源的大语言模型(LLM)应用开发平台,旨在简化和加速生成式 AI 应用的创建和部署。它结合了后端即服务(Backend as Service, BaaS)和 LLMOps 的理念,为开发者提供了一个用户友好的界面和一系列强大的工具。Dify 支持多种大型语言模型,如 Claude3、OpenAI 等,并与多个模型供应商合作,确保开发者可以根据需求选择最适合的模型。
Dify 的核心功能包括:
- 低代码/无代码开发:通过可视化的方式允许开发者轻松定义 Prompt、上下文和插件等,无需深入底层技术细节。
- 模块化设计:每个模块都有清晰的功能和接口,开发者可以根据需求选择性地使用这些模块来构建自己的 AI 应用。
- 丰富的功能组件:包括 AI 工作流、RAG 管道、Agent、模型管理等,帮助开发者从原型到生产的全过程。
- 全面的模型支持:无缝集成了数百种来自数十个推理提供商和自托管解决方案的专有/开源大型语言模型。
Dify 适用于多种场景,包括创业、将 LLM 集成至已有业务、作为企业级 LLM 基础设施,以及探索 LLM 的能力边界。
架构
功能比较
本地化部署 Dify 社区版
https://docs.dify.ai/zh-hans/getting-started/install-self-hosted/docker-compose
要在本地进行 Dify 的私有化部署并接入本地大模型,可以参考官方的链接。
私有化部署 Dify
- 系统要求:
-
CPU:至少 2 核心
-
RAM:至少 4GB
- 克隆 Dify 源代码:
打开终端或命令提示符,输入以下命令克隆 Dify 的源代码:
git clone https://github.com/langgenius/dify.git
cd dify/docker
cp .env.example .env
- 启动 Dify:
使用 Docker Compose 一键启动 Dify:
docker compose up -d
启动成功后,Dify 会运行多个容器,包括业务服务和基础组件。
- 访问 Dify 应用:
由于 Dify 使用 Nginx 将 Web 服务转发到 80 端口,因此可以在浏览器中输入公网 IP 地址访问 Dify 应用。
接入本地大模型
使用 LocalAI 部署本地模型
- 部署 LocalAI:
- 克隆 LocalAI 代码仓库并进入指定目录:
git clone https://github.com/go-skynet/LocalAI
cd LocalAI/examples/langchain-chroma
- 下载示例模型:
wget https://huggingface.co/skeskinen/ggml/resolve/main/all-MiniLM-L6-v2/ggml-model-q4_0.bin -O models/bert
wget https://gpt4all.io/models/ggml-gpt4all-j.bin -O models/ggml-gpt4all-j
- 配置 `.env` 文件,并启动 LocalAI:
docker-compose up -d --build
- 在 Dify 中接入 LocalAI:
-
模型名称:
gpt-3.5-turbo
-
服务器 URL:
http://127.0.0.1:8080
(如果是 Docker 部署,使用宿主机 IP 地址)。 -
登录 Dify 应用,进入“设置” > “模型供应商” > “LocalAI”。
-
填写模型信息,例如:
使用 Ollama 部署本地模型(推荐)
- 下载并安装 Ollama:
访问 Ollama 官网下载对应系统的客户端。 - 运行 Ollama:
在终端中运行 Ollama 并启动 API 服务:
ollama run llava
Ollama 会在本地 11434 端口启动一个 API 服务。
- 在 Dify 中接入 Ollama:
-
模型名称:
llava
-
基础 URL:
http://127.0.0.1:11434
(如果是 Docker 部署,使用局域网 IP 地址)。 -
登录 Dify 应用,进入“设置” > “模型供应商” > “Ollama”。
-
填写模型信息,例如:
通过以上步骤,你可以在本地私有化部署 Dify 并接入本地大模型,从而实现更灵活和安全的 AI 应用开发和部署。
本地化API调用
私有化部署dify后,如何本地API调用呢,这里我们给出一个demo
在私有化部署 Dify 后,可以通过以下步骤进行本地 API 调用:
获取 API 密钥
- 登录 Dify 应用的后台管理界面。
- 在应用设置中找到并复制应用的 API 密钥(API Key)。
配置 API URL
- 确认 Dify 的 API 服务端口。默认情况下,Dify 的 API 服务可能通过 Nginx 转发到 80 端口,如果没有修改过端口,则直接使用
http://localhost
或者http://<your-server-ip>
作为 API URL。如果修改了端口,例如使用了 81 端口,则 URL 应为http://localhost:81
。
发送 API 请求
以下是一个使用 Python 发送 API 请求的示例代码,假设您要调用聊天消息 API:
import requests
import json
# API请求的URL,注意替换为你的实际端口号(如未修改端口,默认不需要加端口号)
url = 'http://localhost/v1/chat-messages'
# 应用密钥
api_key = "your-api-key"
# 请求头
headers = {
'Authorization': f'Bearer {api_key}',
'Content-Type': 'application/json',
}
# 请求数据
data = {
"inputs": {},
"query": "What are the specs of the iPhone 13 Pro Max?",
"response_mode": "blocking",
"conversation_id": "",
"user": "abc-123"
}
# 发送POST请求
response = requests.post(url, headers=headers, data=json.dumps(data))
# 处理响应
if response.status_code == 200:
print(response.json())
else:
print(f"Error: {response.status_code}, {response.text}")
请将 your-api-key
替换为实际的 API 密钥,并根据需要调整 URL 和请求数据。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。