Skip to content

Commit e13a372

Browse files
committed
docs:更新 dify 专栏内容
1 parent f5ed55c commit e13a372

File tree

3 files changed

+366
-0
lines changed

3 files changed

+366
-0
lines changed

docs/.vuepress/config.js

+2
Original file line numberDiff line numberDiff line change
@@ -1134,6 +1134,7 @@ module.exports = {
11341134
"04-RPC框架在网络通信的网络IO模型选型",
11351135
"熔断限流",
11361136
"11-RPC的负载均衡",
1137+
"RPC-Traffic-Replay",
11371138
]
11381139
}],
11391140

@@ -2162,6 +2163,7 @@ module.exports = {
21622163
sidebarDepth: 0,
21632164
children: [
21642165
"what-is-llmops",
2166+
"Build-App-with-Dify",
21652167
"integrate-dify-and-aws-services-to-enable-more-flexible-translation-workflows",
21662168
]
21672169
},

docs/md/AI/llm/Build-App-with-Dify.md

+225
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,225 @@
1+
# 基于DIFY快速构建应用
2+
3+
## 0 前言
4+
5+
Dify的一个“应用”指基于LLM构建的实际场景应用。通过创建应用,可将智能 AI 技术应用于特定的需求。它既包含了开发 AI 应用的工程范式,也包含了具体的交付物。
6+
7+
一个应用为开发者交付:
8+
9+
* 封装友好的 API,可由后端或前端应用直接调用,通过 Token 鉴权
10+
* 开箱即用、美观且托管的 WebApp,你可以 WebApp 的模版进行二次开发
11+
* 一套包含提示词工程、上下文管理、日志分析和标注的易用界面
12+
13+
可任选**其中之一****全部**,来支撑你的 AI 应用开发。
14+
15+
## 1 应用类型
16+
17+
Dify提供如下应用类型:
18+
19+
* **聊天助手**:基于 LLM 构建对话式交互的助手
20+
* **文本生成**:构建面向文本生成类任务的助手,例如撰写故事、文本分类、翻译等
21+
* **Agent**:能够分解任务、推理思考、调用工具的对话式智能助手
22+
* **工作流**:基于流程编排的方式定义更加灵活的 LLM 工作流
23+
* chatflow:支持记忆的复杂多轮对话工作流
24+
25+
![](https://my-img.javaedge.com.cn/javaedge-blog/2025/02/ae7b2cfd247d3612986fbf637a02858a.png)
26+
27+
### 文本生成 V.S 聊天助手
28+
29+
| 特性 | 文本生成 | 聊天助手 |
30+
| ------------ | --------------------- | --------------- |
31+
| WebApp 界面 | 表单+结果式 | 聊天式 |
32+
| WebAPI 端点 | `completion-messages` | `chat-messages` |
33+
| 交互方式 | 一问一答 | 多轮对话 |
34+
| 流式结果返回 | 支持 | 支持 |
35+
| 上下文保存 | 当次 | 持续 |
36+
| 用户输入表单 | 支持 | 支持 |
37+
| 知识库与插件 | 支持 | 支持 |
38+
| AI 开场白 | 不支持 | 支持 |
39+
| 情景举例 | 翻译、判断、索引 | 聊天 |
40+
41+
## 2 创建应用
42+
43+
3种方式在 Dify 的工作室内创建应用:
44+
45+
* 基于应用模板创建(新手推荐)
46+
* 创建空白应用
47+
* 通过 DSL 文件(本地/在线)创建应用
48+
49+
![](https://my-img.javaedge.com.cn/javaedge-blog/2025/02/d40a5470860eca6aa1cfb7419270249a.png)
50+
51+
### 2.1 从模板创建应用
52+
53+
为帮助新手用户快速了解在 Dify 能构建啥应用,Dify 团队提示词工程师已创建多场景、高质量的应用模板。
54+
55+
任意选择某个模板,并将其添加至工作区即可。
56+
57+
### 2.2 创建一个新应用
58+
59+
如需在 Dify 创建一个空白应用,Dify可创建不同应用类型:
60+
61+
给应用起一个名字、选择合适的图标,或者上传喜爱的图片用作图标、使用一段清晰的文字描述此应用的用途,以便后续应用在团队内使用。
62+
63+
![](https://assets-docs.dify.ai/2024/12/1429eb56e0082c281f7aaeb48e72cb0f.png)
64+
65+
### 2.3 通过 DSL 文件创建应用
66+
67+
Dify DSL 是由 Dify.AI 所定义的 AI 应用工程文件标准,文件格式为 YML。该标准涵盖应用在 Dify 内的基本描述、模型参数、编排配置等信息。
68+
69+
#### 本地导入
70+
71+
如从社区或其它人获得一个应用模版(DSL 文件),可从工作室选择 「 导入DSL 文件 」。DSL 文件导入后将直接加载原应用的所有配置信息。
72+
73+
#### URL 导入
74+
75+
你也可以通过 URL 导入 DSL 文件,参考的链接格式:
76+
77+
```url
78+
https://example.com/your_dsl.yml
79+
```
80+
81+
> 导入 DSL 文件时将校对文件版本号。如果 DSL 版本号差异较大,有可能会出现兼容性问题。
82+
83+
## 3 聊天助手
84+
85+
对话型应用采用一问一答模式与用户持续对话。
86+
87+
### 3.1 适用场景
88+
89+
客户服务、在线教育、医疗保健、金融服务等领域。这些应用可以帮助组织提高工作效率、减少人工成本和提供更好用户体验。
90+
91+
### 3.2 咋编排?
92+
93+
对话型应用的编排支持:对话前提示词,变量,上下文,开场白和下一步问题建议。
94+
95+
**面试官** 应用为例。
96+
97+
#### 3.2.1 创建应用
98+
99+
填写应用名称,应用类型选**聊天助手**
100+
101+
![](https://my-img.javaedge.com.cn/javaedge-blog/2025/02/3c087c52d42ab4c5bf8332a0c69d66b5.png)
102+
103+
#### 3.2.2 编排应用
104+
105+
创建应用后会自动跳转到应用概览页。点击左侧菜单 **编排** 来编排应用。
106+
107+
##### ① 填写提示词
108+
109+
提示词用于约束 AI 给出专业回复,让回应更精确。示例:
110+
111+
1. 输入提示指令,要求给出一段面试场景的提示词
112+
2. 右侧内容框将自动生成提示词
113+
3. 你可以在提示词内插入自定义变量
114+
115+
可借助内置提示生成器,如下点击生成:
116+
117+
![](/Users/javaedge/Downloads/IDEAProjects/java-edge-master/assets/image-20250204213510811.png)
118+
119+
红框内输入你的提示词,再点击生成即可,右边即是优化后的提示词:
120+
121+
![](https://my-img.javaedge.com.cn/javaedge-blog/2025/02/076d30028c80ba2c4d2c18cd639f8d01.png)
122+
123+
提示词内支持插入表单变量,如 `{{input}}`。提示词中的变量的值会替换成用户填写的值。
124+
125+
![](https://my-img.javaedge.com.cn/javaedge-blog/2025/02/623d4d1158b31cd532453299d2b12ffc.png)
126+
127+
为更好用户体验,可以加上对话开场白,点击右下角【管理】:
128+
129+
![](https://my-img.javaedge.com.cn/javaedge-blog/2025/02/015f2828146f7522e26cf2e79efb72f9.png)
130+
131+
可选增强功能如下:
132+
133+
![](https://my-img.javaedge.com.cn/javaedge-blog/2025/02/bd66ecd8db59f8f15aaaf677d6668e56.png)
134+
135+
编辑开场白即可:`你好,{{name}}。我是你的面试官,Bob。你准备好了吗?`
136+
137+
> 可添加数个开场问题。
138+
139+
##### ② 添加上下文
140+
141+
如果想要让 AI 的对话范围局限在【知识库】内,例如企业内的客服话术规范,可以在“上下文”内引用知识库。
142+
143+
##### ③ 添加文件上传
144+
145+
部分多模态 LLM 已原生支持处理文件,如 [Claude 3.5 Sonnet](https://docs.anthropic.com/en/docs/build-with-claude/pdf-support)[Gemini 1.5 Pro](https://ai.google.dev/api/files)。你可以在 LLM 的官方网站了解文件上传能力的支持情况。
146+
147+
选择具备读取文件的 LLM,开启 “文档” 功能。无需复杂配置即可让当前 Chatbot 具备文件识别能力。
148+
149+
![](https://assets-docs.dify.ai/2024/11/823399d85e8ced5068dc9da4f693170e.png)
150+
151+
#### 3.2.3 调试
152+
153+
在右侧填写用户输入项,输入内容进行调试。先输入变量 jobName 值为后端开发,开始激聊:
154+
155+
![](https://my-img.javaedge.com.cn/javaedge-blog/2025/02/89df43f43bd3880db673e425d4c893fa.png)
156+
157+
如果回答结果不理想,可以调整提示词和底层模型。你也可以使用多个模型同步进行调试,搭配出合适的配置:
158+
159+
![](https://my-img.javaedge.com.cn/javaedge-blog/2025/02/c659c34c52b218d8c0a3fa3239daa80b.png)
160+
161+
**多个模型进行调试:**
162+
163+
如果使用单一模型调试时感到效率低下,你也可以使用 **“多个模型进行调试”** 功能,批量检视模型的回答效果。最多支持同时添加 4 个大模型:
164+
165+
![](https://my-img.javaedge.com.cn/javaedge-blog/2025/02/d4304880c23db83baae3e8c7def92008.png)
166+
167+
> ⚠️ 使用多模型调试功能时,如果仅看到部分大模型,这是因为暂未添加其它大模型的 Key。
168+
169+
#### 3.2.4 发布应用
170+
171+
调试好应用后,点击右上角的 **“发布”** 按钮生成独立的 AI 应用。
172+
173+
##### ① 发布为公开 Web 站点
174+
175+
发布一个可供用户在互联网上公开访问的 Web 应用,该应用将根据你的 Prompt 和编排设置进行工作。
176+
177+
* 自部署的开源版,该应用将运行在你的服务器上
178+
* 云服务,该应用将托管至网址 [https://udify.app/](https://udify.app/)
179+
180+
***
181+
182+
###### 发布 AI 站点
183+
184+
在应用监测页中,你可以找到 WebApp 的管理卡片。打开访问开关后,你可以得到一个能够在互联网上公开分享的网址:
185+
186+
![](https://my-img.javaedge.com.cn/javaedge-blog/2025/02/1fd67011c778b803cd4de520c1ccbb96.png)
187+
188+
可见,均预置了漂亮的 WebApp 界面。
189+
190+
##### ② 嵌入你的 AI 站点
191+
192+
Dify 支持将你的 AI 应用嵌入到业务网站中,可用该能力在几分钟内制作具有业务数据的官网 AI 客服、业务知识问答等应用。点击 WebApp 卡片上的嵌入按钮,复制嵌入代码,粘贴到你网站的目标位置:
193+
194+
![](https://my-img.javaedge.com.cn/javaedge-blog/2025/02/13e031c88e43bd6396d39a4b877e3cf3.png)
195+
196+
##### ③ 基于 APIs 开发
197+
198+
Dify 基于“**后端即服务**”理念为所有应用提供了 API,为 AI 应用开发者带来了诸多便利。通过这一理念,开发者可以直接在前端应用中获取大型语言模型的强大能力,而无需关注复杂的后端架构和部署过程。
199+
200+
###### 用 Dify API 的好处
201+
202+
* 让前端应用直接安全地调用 LLM 能力,省去后端服务的开发过程
203+
* 在可视化的界面中设计应用,并在所有客户端中实时生效
204+
* 对 LLM 供应商的基础能力进行了良好封装
205+
* 随时切换 LLM 供应商,并对 LLM 的密钥进行集中管理
206+
* 在可视化的界面中运营你的应用,例如分析日志、标注及观察用户活跃
207+
* 持续为应用提供更多工具能力、插件能力和知识库
208+
209+
###### 如何使用?
210+
211+
选择一个应用,在应用(Apps)左侧导航中可以找到**访问 API(API Access)**。在该页面中你可以查看 Dify 提供的 API 文档,并管理可访问 API 的凭据。
212+
213+
![](https://my-img.javaedge.com.cn/javaedge-blog/2025/02/a858e4f584fdd457b34947d2eb7da90c.png)
214+
215+
例如你是一个咨询公司的开发部分,你可以基于公司的私有数据库提供 AI 能力给终端用户或开发者,但开发者无法掌握你的数据和 AI 逻辑设计,从而使得服务可以安全、可持续的交付并满足商业目的。
216+
217+
最佳实践中,API 密钥应通过后端调用,而不是直接以明文暴露在前端代码或请求中,这样可以防止你的应用被滥用或攻击。
218+
219+
你可以为一个应用**创建多个访问凭据**,以实现交付给不同的用户或开发者。这意味着 API 的使用者虽然使用了应用开发者提供的 AI 能力,但背后的 Promp 工程、知识库和工具能力是经封装的。
220+
221+
## FAQ
222+
223+
Q:咋在聊天助手内添加第三方工具?
224+
225+
A:聊天助手类型应用不支持添加第三方工具,可在 [Agent 类型](https://docs.dify.ai/v/zh-hans/guides/application-orchestrate/agent)应用内添加第三方工具。

0 commit comments

Comments
 (0)