Files
FastGPT/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/flow-modules/intro.md
Archer 657d0ad374 flow moduoles (#161)
* flow intro

* docs:flow modules

* docs:flow modules
2023-08-09 18:07:58 +08:00

84 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
sidebar_position: 1
---
# 快速了解
FastGpt V4 后将采用新的交互方式来构建 AI 应用。使用了 Flow 节点编排的方式来实现复杂工作流,提高可玩性和扩展性。但同时也提高了上手的门槛,有一定开发背景的用户使用起来会比较容易。
这篇文章就来简单介绍一下模块编排基本内容。每个模块的详解会单独分出一章。
![](./imgs/intro1.png)
## 什么是模块?
在程序中,模块可以理解为一个个 function 或者接口。可以理解为它就是一个**步骤**。将多个模块一个个拼接起来,即可一步步的去实现最终的 AI 输出。
如下图,是一个最简单的 AI 对话。它由用户输入的问题、聊天记录以及 AI 对话模块组成。
![](./imgs/intro2.png)
运行的流程如下:
1. 用户输入问题后,会向服务器发送一个请求,并携带问题。从而得到【用户问题】模块的一个输出。
2. 根据设置的【最长记录数】来进行获取数据库中的记录数,从而得到【聊天记录】模块的输出。
经过上面两个流程就得到了左侧两个蓝色点的结果。结果会被注入到右侧的【AI】对话模块。
3. AI 对话模块根据传入的聊天记录和用户问题,调用对话接口,从而实现回答。(这里的对话结果输出隐藏了起来,默认只要触发了对话模块,就会往客户端输出内容)
### 模块分类
从功能上,可以分为 3 类:
1. 仅读模块:全局变量、用户引导
2. 系统模块:聊天记录(无输入,直接从数据库取)、用户问题(流程入口)
3. 功能模块知识库搜索、AI 对话等剩余模块。(这些模块都有输入和输出,可以自由组合)
### 模块的组成
每个模块会包含 3 个核心部分:固定参数、外部输入(左边有个圆圈)和输出(右边有个圆圈)。
对于仅读模块,只需要根据提示填写即可,不参与流程运行。
对于系统模块,通常只有固定参数和输出,主要需要关注输出到哪个位置。
对于功能模块,通常这 3 部分都是重要的,以下图的 AI 对话为例
![](./imgs/intro3.png)
- 对话模型、温度、回复上限、系统提示词和限定词为固定参数,同时系统提示词和限定词也可以作为外部输入,意味着如果你有输入流向了系统提示词,那么原本填写的内容就会被**覆盖**。
- 触发器、引用内容、聊天记录和用户问题则为外部输入,需要从其他模块的输出流入。
- 回复结束则为该模块的输出。
### 模块什么时候执行?
记住原则:
1. 仅关心**已连接的**外部输入,即左边的圆圈被连接了。
2. 当连接内容都有值时触发。
#### 例子 1
聊天记录模块会自动执行因此聊天记录输入会自动赋值。当用户发送问题时【用户问题】模块会输出值此时【AI 对话】模块的用户问题输入也会被赋值。两个连接的输入都被赋值后,会执行 【AI 对话】模块。
![](./imgs/intro1.png)
#### 例子 2
下图是一个知识库搜索例子。
1. 历史记录会流入【AI】对话模块。
2. 用户的问题会流入【知识库搜索】和【AI 对话】模块由于【AI 对话】模块的触发器和引用内容还是空,此时不会执行。
3. 【知识库搜索】模块仅一个外部输入,并且被赋值,开始执行。
4. 【知识库搜索】结果为空时“搜索结果不为空”的值为空不会输出因此【AI 对话】模块会因为触发器没有赋值而无法执行。而“搜索结果为空”会有输出,流向指定回复的触发器,因此【指定回复】模块进行输出。
5. 【知识库搜索】结果不为空时“搜索结果不为空”和“引用内容”都有输出会流向【AI 对话】此时【AI 对话】的 4 个外部输入都被赋值,开始执行。
![](./imgs/intro4.png)
## 如何阅读?
1. 建议从左往右阅读。
2.**用户问题** 模块开始。用户问题模块,代表的是用户发送了一段文本,触发任务开始。
3. 关注 AI 对话和指定回复模块,这两个模块是输出答案的地方。