大模型应用_FastGPT

1 功能

  • 整体功能,想解决什么问题
    • 官方说明:FastGPT 是一个基于 LLM 大语言模型的知识库问答系统,提供开箱即用的数据处理、模型调用等能力。同时可以通过 Flow 可视化进行工作流编排,从而实现复杂的问答场景!
    • 个人体会:在不用编程的情况下,快速建立简单的本地知识库。
  • 当前解决了什么问题,哪些问题解决不了
    • 作者团队可能是觉得大模型本身太单薄了,希望通过结合其它工具,做一个中间层的方案,用大模型解决更多问题。
    • 向下接入了多个大模型:GPT、Claude、Spark、ChatGLM 等;向上除了提供 很好用的 Web 工具,还提供了类似 OpenAI 的 API 供其它程序接入其功能,如:微信,飞书……;针对本地知识库,实现了数据的解析,存储,问答功能,并做了一些优化(评价本地知识库效果是一个非常复杂的问题,不在此讨论)。
    • 提供了工作流 Flow,个人感觉对于想开箱即用的人来说有些复杂;对于深度使用者略显单薄。
    • 计算 Embedding 以及答案的合成都需要连网使用。
  • 提供哪些功能点,其中哪些是刚需
    • 基本的与大模型聊天问答功能
    • 本地知识库支持,虽然不是最先进最强大的技术栈,但对于中小规模的数据,个人数据是可用的,这是此项目的核心功能。
    • 支持手动录入知识,以回答重要的问题。
    • 包装一些常用功能,比如翻译,将一些定制 prompt 作成”应用“,以提供特定类型的服务。官方文档中展示了一些典型的使用场景,很有启发性。
    • 界面清晰,舒服。
  • 用户使用难度,操作逻辑是否过于复杂
    • 最简单的方法就是直接用作者在官网部署的服务,没有难度。
    • 本地部署,尽管没有现成的文档,但有脚本 run.sh,可以启动多个 docker,也很好用。
    • 在我见过的 RAG Web 项目中,FastAI 界面是做的最好的
  • 使用场景
    • 用 FastGPT 给单位的文档做个知识库,考虑到部署和学习成本,可能是目前性价比最高的方案。

2 技术栈

  • 技术栈是什么:

    • 工具
      • NextJs + TypeScript + ChakraUI
      • 代码量大部分由 TypeScript 编写。
    • 数据库
      • Postgres (Vector 版本:ankane/pgvector:v0.5.0)存储向量
      • MongoDB 用于存取其他数据,比如用户知识库的文本部分,聊天记录,不定长,可能被扩展的数据,便于文本检索。
    • 其它
      • python:做了一些文档转换内容处理的工作,代码很少,几乎没用到。
      • go 语言:实现文档服务 DocSite
  • 现有底层工具消化了哪些常用功能

    • 我对 JS 不太熟,看不太出来
  • 代码分析(使用 cloc 工具统计)

    • github 项目下载内容 183M,主要为.git 和 DocSite
    • 代码主要由 TypeScript 编写,约 4.5W 行(不计生成的 JS 代码)
    • 核心代码在:FastGPT/projects/app/src

3 商业模式

  • 用户可以使用 FastGPT源码 部署自己的工具,也可以在其官网使用现成的线上版服务。使用 openai 的服务时,费用同 openai;同时,还提供了一些其它的收费服务。为了合规,把名字的名字换了一下,一看价格就明白了。
  • 同时出售商业版,收费见:https://doc.fastgpt.in/docs/pricing/。
  • 开源产品,以服务方式提供,对用户来说也比较方便经济。

4 使用方法

  • 安装
cd FastGPT/files/deploy/fastgpt

配置 docker-compose.yml:如果已经启了一些本地服务,可能发生端口冲突,需要调整设置;另外,还要设置数据库的用户名密码,API_KEY 等。

. run.sh

这里使用 docker-compose 启动了多个 docker 容器,非常方便。

  • 使用

    在登录界面用 root/1234 登录(密码可在 docker-compose.yml 中设置)

5 个人体会

5.1 整体评价

FastGPT 是一个产品导向的工具,相对于其它 github 上的试验型工具,更像是一个完整的产品。在业务分析,使用场景,交互设计,界面设计,易用性方面都很优秀。

另外,它提供 API 的方式与其它工具配合使用。利用 API_KEY 的方式,无缝替换 ChatGPT,从而引入本地知识和自定义问题及答案。对于二创,前端代码非常多,直接拿来也不好改,不如直接调用其 API。

5.2 使用感受

作为最终用户,使用感受如下:

当组织或者个人有万千上万个文档,不太可能通过界面一个一个导入,需要使用 API 构建知识库,

可以针对某一个知识库问答,它不仅给出答案,还给显示内容来源,可看到引用的原文,让答案有据可查,又不仅仅是搜索,我觉得这个真的是刚需

在产品设计方面,也看到了作者对产品功能的理解和对解决方案的设计。

可以把知识分为三层:

  • 手工录入的重要知识(常为问题答案对)
  • 从本地文档中获取的知识
  • 通用知识(LLM 自带)

6 参考

  • 介绍视频
  • 技术文档
  • 部署方法视频(这个视频好像录的比较早,当前版本更为易用)
  • *3 分钟把高质量 AI 知识库 FastGPT 装进企业微信

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/243246.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

竞赛保研 python 爬虫与协同过滤的新闻推荐系统

1 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 python 爬虫与协同过滤的新闻推荐系统 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分工作量:3分创新点:4分 该项目较为新颖&…

道路坑洞数据集(坑洞目标检测)VOC+YOLO格式650张

路面坑洞的形成原因是由于设计、施工、养护处理不当、控制不适和受气候、环境、地质、水文等自然因素影响,以及车辆的运行和车辆超载运行导致路面破损,出现坑洞的现象。 路面坑洞的分类: (1)路面混凝土板中坑洞&…

如何使用 Redis 快速实现分布式锁?

本文我们来讨论如何使用 Redis 快速实现分布式锁。 分布式锁有很多种解决方案,前面简单介绍过,Redis 可以通过 set key 方式来实现分布式锁,但实际情况要更加复杂,比如如何确保临界资源的串行执行,如何及时释放&#…

人工智能_机器学习065_SVM支持向量机KKT条件_深度理解KKT条件下的损失函数求解过程_公式详细推导_---人工智能工作笔记0105

之前我们已经说了KKT条件,其实就是用来解决 如何实现对,不等式条件下的,目标函数的求解问题,之前我们说的拉格朗日乘数法,是用来对 等式条件下的目标函数进行求解. KKT条件是这样做的,添加了一个阿尔法平方对吧,这个阿尔法平方肯定是大于0的,那么 可以结合下面的文章去看,也…

node-static 任意文件读取漏洞复现(CVE-2023-26111)

0x01 产品简介 node-static 是 Node.js 兼容 RFC 2616的 HTTP 静态文件服务器处理模块,提供内置的缓存支持。 0x02 漏洞概述 node-static 存在任意文件读取漏洞,攻击者可通过该漏洞读取系统重要文件(如数据库配置文件、系统配置文件&#…

生信算法2 - DNA测序算法实践之序列统计

生信序列基本操作算法 建议在Jupyter实践,python版本3.9 1. 读取fastq序列 # fastq序列获取 !wget http://d28rh4a8wq0iu5.cloudfront.net/ads1/data/SRR835775_1.first1000.fastqdef readFastq(filename):# 序列列表sequences []# 质量值列表qualities []with…

一些程序源码及教程的网站合集~

很多时候我们需要一个快速上手的code demo及教程,除了最常用的【github】,一些中文网站可能会帮助我们更好上手~ 这里提供几个中文网站参考: 【51CTO】: Python 动态手势识别系统hmm 手势识别opencv_mob64ca140d96d9的技术博客…

5G工业物联网网关,比4G工业网关强在哪里?

​随着5G技术的广泛应用,越来越多的行业开始探索如何利用5G网络提升效率和创新能力。其中,工业物联网领域是受益最大的领域之一。作为连接物联网设备和网络的关键组件,5G工业物联网网关在这个变革中发挥着至关重要的作用。本文将深入探讨5G工…

【个人版】SpringBoot下Spring-Security核心概念解读【二】

Spring-Security HttpSecurity Spring-Security全局导读: 1、Security核心类设计 2、HttpSecurity结构和执行流程解读 3、Spring-Security个人落地篇 背景: Spring-Security框架的核心架构上一篇已经概述,展示其执行流程及逻辑,但…

科技提升安全,基于DETR【DEtection TRansformer】模型开发构建商超扶梯场景下行人安全行为姿态检测识别系统

在商超等人流量较为密集的场景下经常会报道出现一些行人在扶梯上摔倒、受伤等问题,随着AI技术的快速发展与不断普及,越来越多的商超、地铁等场景开始加装专用的安全检测预警系统,核心工作原理即使AI模型与摄像头图像视频流的实时计算&#xf…

使用对象处理流ObjectOutputStream读写文件

注意事项: 1.创建的对象必须实现序列化接口,如果属性也是类,那么对应的类也要序列化 2.读写文件路径问题 3.演示一个例子 (1)操作的实体类FileModel,实体类中有Map,HashMap这些自带的本身就实现了序列化。 public class File…

运行和部署若依分离版前端

一、运行 一、用vscode打开 二、安装依赖 # 建议不要直接使用 cnpm 安装依赖,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题 npm install --registryhttps://registry.npmmirror.com# 启动服务 npm run dev浏览器访问 http://localhost:80二、部…

死锁(面试常问)

1.什么是死锁 简单来说就是一个线程加锁后解锁不了 一个线程,一把锁,线程连续加锁两次。如果这个锁是不可重入锁,会死锁。两个线程,两把锁。 举几个例子,1.钥匙锁车里了,车钥匙锁家里了。2. 现在有一本书…

两线制输入馈电型隔离变送器

两线制输入馈电型隔离变送器 产品型号:JSD TA-1021系列 馈电型隔离变送器产品介绍: JSD TA-1021 为两线制输入馈电型高精度隔离变送器,是将输入与输出之间电气绝缘的模拟信号量进行变换、放大、隔离及远传的小型仪表设备,接收仪表…

代码随想录算法训练营Day1 | 704.二分查找、27.移除元素

LeetCode 704 二分查找 题目链接:704.二分查找 本题思路:本题题目写的是二分查找,所以我们用到的算法肯定也是二分查找,需要定义 3个变量。 l: 从数组的下标0开始 r: 数组长度 - 1 mid:(l r)…

SQL进阶理论篇(二):数据库的设计范式

文章目录 简介数据库的设计范式有哪些数据库中的几种键从1NF到3NF1NF2NF3NFBCNF(巴斯范式) 反范式设计反范式的适用场景总结参考文献 简介 本小节主要内容: 数据库的设计范式都有哪些数据库的键都有哪些1NF、2NF和3NF都是指什么&#xff1f…

基于Dockerfile创建LNMP

实验组件 172.111.0.10:nginx docker-nginx 172.111.0.20:mysql docker-mysql 172.111.0.30:php docker-php 实验步骤 1.建立nginx-lnmp镜像及容器 cd /opt mkdir nginx cd nginx/ --上传nginx-1.22.0.tar.gz和wordpress-6.4.2-zh_C…

【LeetCode每日一题】1904. 你完成的完整对局数

给你两个字符串 startTime 和 finishTime ,均符合 "HH:MM" 格式,分别表示你 进入 和 退出 游戏的确切时间,请计算在整个游戏会话期间,你完成的 完整对局的对局数 。 如果 finishTime 早于 startTime ,这表示…

欧拉函数与欧拉定理

文章目录 AcWing 873. 欧拉函数题目链接欧拉函数欧拉函数的证明思路CODE时间复杂度分析 AcWing 874. 筛法求欧拉函数题目链接问题分析与时间复杂度CODE思路 欧拉定理 AcWing 873. 欧拉函数 题目链接 https://www.acwing.com/activity/content/problem/content/942/ 欧拉函数 …

四六级高频词组7

目录 词组 其他文章链接: 词组 251. (be) equivalent to(equal in value, amount, meaning) 相等于, 相当于 252. in essence (in itsones nature) 本质上…