FastGPT本地构建工作流高级编排(最新4.11.0)

目录

前言

一、本地部署

二、工作流编排

[2.1 配置大模型](#2.1 配置大模型)

[2.1.1 通过 OneAPI 接入模型](#2.1.1 通过 OneAPI 接入模型)

[2.2 创建知识库](#2.2 创建知识库)

[2.3 创建工作流](#2.3 创建工作流)

[2.4 示例讲解](#2.4 示例讲解)

一、初始化

二、问题分类

三、本地数据+知识库

四、调试

结语


前言

官网文档:Docker Compose 快速部署 | FastGPT

本篇主讲工作流编排实现基于知识库 | http请求+知识库 -> 大模型输出,将跳过docker安装等步骤,侧重于应用自定义流程及扩展。主包刚学习的时候也看了很多博主写的文件和视频,大部分偏向基本使用并没有告诉我各组件节点组合使用是否可行,还是需要自己摸索尝试。所以本篇文件希望给大家一点小灵感方便构建实现自己需求的agent!

一、本地部署

准备docker环境后可,可去GitHub找到需要的向量数据库,下载到本地。

注意配置文件有注释需要查看默认的登录账号以及密码

Linux 快速脚本

bash 复制代码
mkdir fastgpt
cd fastgpt
curl -O https://raw.githubusercontent.com/labring/FastGPT/main/projects/app/data/config.json

# pgvector 版本(测试推荐,简单快捷)
curl -o docker-compose.yml https://raw.githubusercontent.com/labring/FastGPT/main/deploy/docker/docker-compose-pgvector.yml
# oceanbase 版本(需要将init.sql和docker-compose.yml放在同一个文件夹,方便挂载)
# curl -o docker-compose.yml https://raw.githubusercontent.com/labring/FastGPT/main/deploy/docker/docker-compose-oceanbase/docker-compose.yml
# curl -o init.sql https://raw.githubusercontent.com/labring/FastGPT/main/deploy/docker/docker-compose-oceanbase/init.sql
# milvus 版本
# curl -o docker-compose.yml https://raw.githubusercontent.com/labring/FastGPT/main/deploy/docker/docker-compose-milvus.yml
# zilliz 版本
# curl -o docker-compose.yml https://raw.githubusercontent.com/labring/FastGPT/main/deploy/docker/docker-compose-zilliz.yml

config.json 文件也就是一些模型的配置:

bash 复制代码
{
  "systemEnv": {
    "vectorMaxProcess": 10, // 向量处理线程数量
    "qaMaxProcess": 10, // 问答拆分线程数量
    "vlmMaxProcess": 10, // 图片理解模型最大处理进程
    "tokenWorkers": 30, // Token 计算线程保持数,会持续占用内存,不能设置太大。
    "hnswEfSearch": 100, // 向量搜索参数,仅对 PG 和 OB 生效。越大,搜索越精确,但是速度越慢。设置为100,有99%+精度。
    "hnswMaxScanTuples": 100000, // 向量搜索最大扫描数据量,仅对 PG生效。
    "customPdfParse": {
      "url": "", // 自定义 PDF 解析服务地址
      "key": "", // 自定义 PDF 解析服务密钥
      "doc2xKey": "", // doc2x 服务密钥
      "price": 0 // PDF 解析服务价格
    }
  },
"llmModels": [{}], // 语言模型
"vectorModels": [{}], // 向量模型
"reRankModels": [{}], // 重排模型
}

将两个文件放在一个目录执行命令:

bash 复制代码
# 在 docker-compose.yml 同级目录下执行
docker-compose pull // 拉取容器
docker-compose up -d // 启动

二、工作流编排

2.1 配置大模型

在上面讲到config.json文件就是一些大模型的配置,源文件定义了需求模型,但是我们不能用,需要自己添加才行

首先需要新增一个模型渠道,我这里使用了通义千问,可根据自己拥有的模型新增 。

接着把新增的模型启动即可,不然到后面没有模型选择🤦

2.1.1 通过 OneAPI 接入模型

教程:通过 OneAPI 接入模型 | FastGPT

项目地址:https://github.com/songquanpeng/one-api

很多博主都分享通过这种方式统一配置管理大模型,FastGPT 目前采用模型分离的部署方案,因为只兼容 OpenAI 的模型规范(OpenAI 不存在的模型采用一个较为通用的规范),并通过 One API 来实现对不同模型接口的统一。但是主包貌似没有找到mac包所以直接使用以上方法,fastgpt已接入了AI Proxy。

2.2 创建知识库

注意web站点与第三方知识库同步需要付费,商业版才可用,我们个人直接使用本地上次知识库即可!!!

这时可以选择已经配置的模型进行处理,后面就是导入本地文件

最重要的一步就是知识库处理方式,取决于知识库结构以及更好的检索

2.3 创建工作流

这里直接创建一个工作流

这就是一个普通空白的工作流,每个应用都是流程开始(用户问题)

接着通过拖拉拽使用组件,再进行连接,这里需要注意每个节点需要有闭环,不然运行会提示异常

2.4 示例讲解

接下是我做的一个示例:

用户提问 -(其中我做了全局变量更新) ->问题分类 ->

  • 关于酒店运营问题 -> 知识库检索 -> ai大模型输出
  • 关于酒店数据分析等问题 -> 判断器->

1、 关于流量问题 -> http请求 + 知识库检索 -> ai模型输出

2、其他问题 -> 指定回答

  • 打招呼,问候等问题 -> 指定回答

一、初始化

(1)流程开始添加【代码运行】节点引用全局变量[当前时间],因为时间格式不是不需要的所以把它解析成我想要的格式并更新到`系统配置`的全局变量中

(2)流程开始添加【HTTP请求】节点,配置接口地址、参数和headers,通过JSONPath语法提取响应的字段,最后更新全局变量

二、问题分类

【问题分类】相当于使用ai模型分析用户意图, 这里我添加了三类问题并且每个问题都连接不同节点处理,这样用户的问题只能派指一条执行

三、本地数据+知识库

  • 首先我添加了判断器来判断根据关键字再执行不同节点,这里也可以再添加一个【问题分类】分析问题调用不同接口获取数据(当前简单只有一个请求)
  • 接着使用【文本内容提取】这想当于让ai模型根据用户问题提取可用的接口参数,再去调用接口。看图可以发现我的接口参数引用了全局变量,也就是初始化时获取的固定值
  • 在执行【文本内容提取】节点同时我又使用了【知识库】,接着使用【文本拼接】将接口数据、知识库和问题结合给ai大模型输出

四、调试

可以直接触碰任何节点,从当前节点开始执行(需要填写当前接口需要的参数)

运行调试:模型回答结束后可以查看上下问引用,工作流总运行时间以及查看详情

查看详情:这里可以看到每个步骤的完整响应

结语

以上就是我的分享,感谢大家看到最后。其中还有很多工具没有一一演示了,比如**数据库连接、网页内容抓取等。**如果创建一个应用就很复杂的话,我们也没必要通过一个工作流实现,不易查看,可以抽离单个工作流为一个应用,最后再建一个工作流把这些应用整合起来用。


祝你早安午安晚安。

祉猷并茂,顺遂无虞。

相关推荐
大熊猫侯佩2 小时前
无需自己写半行代码:让 AI 编程智能体(Agent)化身神笔马良为我们自动仿制 App 界面
swiftui·agent·cursor
墨尘游子3 小时前
11-大语言模型—Transformer 盖楼,BERT 装修,RoBERTa 直接 “拎包入住”|预训练白话指南
人工智能·语言模型·自然语言处理
金井PRATHAMA3 小时前
主要分布于内侧内嗅皮层的层Ⅲ的网格-速度联合细胞(Grid × Speed Conjunctive Cells)对NLP中的深层语义分析的积极影响和启示
人工智能·深度学习·神经网络·机器学习·语言模型·自然语言处理·知识图谱
缘友一世4 小时前
基于LangGraph Cli的智能数据分析助手
langchain·llm·agent·langgraph
vibag5 小时前
LLM大语言模型
人工智能·python·语言模型·自然语言处理
AI大模型6 小时前
本地AI知识库问答开源技术实现(二)--配置模型和知识库
程序员·llm·agent
深度学习机器9 小时前
Gemini CLI源码解析:Agent与上下文管理实现细节
人工智能·llm·agent
福宝plus9 小时前
教你如何使用ChatGPT Agent,Agent使用次数限制,以及实际体验感受
chatgpt·openai·agent
樱花的浪漫14 小时前
大模型推理框架基础概述
人工智能·算法·机器学习·语言模型·自然语言处理