当前位置: 首页 > news >正文

大模型应用_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 装进企业微信

相关文章:

大模型应用_FastGPT

1 功能 整体功能,想解决什么问题 官方说明:FastGPT 是一个基于 LLM 大语言模型的知识库问答系统,提供开箱即用的数据处理、模型调用等能力。同时可以通过 Flow 可视化进行工作流编排,从而实现复杂的问答场景!个人体会…...

elasticsearch|大数据|elasticsearch的api部分实战操作以及用户和密码的管理

一, 前言 本文主要内容是通过elasticsearch的api来进行一些集群的管理和信息查询工作,以及elasticsearch用户的增删改查和密码的重设以及重置如何操作 接上文:elasticsearch|大数据|elasticsearch低版本集群的部署安装和安全增强---密码设…...

Android多进程和跨进程通讯方式

前言 我们经常开发过程中经常会听到线程和进程,在讲述Android进程多进程前我打算先简单梳理一下这俩者。 了解什么是进程与线程 进程: 系统中正在运行的一个应用程序,某个程序一旦运行就是一个进程,是资源分配的最小单位&#…...

通过Jenkins将应用发布到K8s1.24.3

一、准备基础环境 cat >> /etc/hosts <<EOF 192.168.180.210 k8s-master 192.168.180.200 k8s-node1 192.168.180.190 k8s-node2 192.168.180.180 gitlab 192.168.180.170 jenkins 192.168.180.160 harbor EOF 配置主机名 hostnamectl set-hostname k8s-master &am…...

正则表达式入门与实践

文章目录 一、为什么要有正则二、正则表达式基础概念三、Pattern与Matcher类的使用(一)Pattern类的常用方法(二)Matcher类的常用方法四、常用正则规则及其含义(一)规范表示(二)数量表示(三)逻辑运算符五、String对正则表达式的支持六、实践演练(一)匹配给定文本中的…...

C++初阶(十六)优先级队列

&#x1f4d8;北尘_&#xff1a;个人主页 &#x1f30e;个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上&#xff0c;不忘来时的初心 文章目录 一、priority_queue的介绍和使用1、priority_queue的介绍2、priority_queue的使用 二、priori…...

深入探索C语言中的二叉树:数据结构之旅

引言 在计算机科学领域&#xff0c;数据结构是基础中的基础。在众多数据结构中&#xff0c;二叉树因其在各种操作中的高效性而脱颖而出。二叉树是一种特殊的树形结构&#xff0c;每个节点最多有两个子节点&#xff1a;左子节点和右子节点。这种结构使得搜索、插入、删除等操作…...

如何发现服务器被入侵了,服务器被入侵了该如何处理?

作为现代社会的重要基础设施之一&#xff0c;服务器的安全性备受关注。服务器被侵入可能导致严重的数据泄露、系统瘫痪等问题&#xff0c;因此及时排查服务器是否被侵入&#xff0c;成为了保障信息安全的重要环节。小德将给大家介绍服务器是否被侵入的排查方案&#xff0c;并采…...

CSDN一键注释功能

这是什么牛逼哄哄的功能 看这里&#xff1a; 然后&#xff1a; 再试一个&#xff1a; 输出结果是&#xff1f;package yuyi03.interview;/*** ClassName: InterviewTest2* Package: yuyi03.interview* Description:** Author 雨翼轻尘* Create 2023/12/14 0014 0:08*/ publ…...

基于JAVA的校园电子商城系统论文

摘 要 网络技术和计算机技术发展至今&#xff0c;已经拥有了深厚的理论基础&#xff0c;并在现实中进行了充分运用&#xff0c;尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代&#xff0c;所以对于信息的宣传和管理就很关键。因此校园购物信息的…...

直播传媒公司网站搭建作用如何

直播已然成为抖快等平台的主要生态之一&#xff0c;近些年主播也成为了一种新行业&#xff0c;相关的mcn机构直播传播公司等也时有开业&#xff0c;以旗下主播带来高盈利&#xff0c;而在实际运作中也有一些痛点难题&#xff1a; 1、机构宣传展示难 不少散主播往往会选择合作…...

数据结构与算法-动态规划-机器人达到指定位置方法数

机器人达到指定位置方法数 来自左程云老师书中的一道题 【题目】 假设有排成一行的 N 个位置&#xff0c;记为 1~N&#xff0c;N 一定大于或等于 2。开始时机器人在其中的 M 位置上&#xff08;M 一定是 1&#xff5e;N 中的一个&#xff09;&#xff0c;机器人可以往左走或…...

K8S学习指南(2)-docker的基本使用

文章目录 引言安装 DockerDocker 基本概念1. 镜像&#xff08;Images&#xff09;示例&#xff1a;拉取并运行一个 Nginx 镜像 2. 容器&#xff08;Containers&#xff09;示例&#xff1a;查看运行中的容器 3. 仓库&#xff08;Repository&#xff09;示例&#xff1a;推送镜像…...

java 执行linux 命令

文章目录 前言一、linux命令执行二、使用步骤三、踩坑 前言 java 执行linux 命令&#xff1b; 本文模拟复制linux文件到指定文件夹后打zip包后返回zip名称&#xff0c;提供给下载接口下载zip&#xff1b; 一、linux命令执行 linux命令执行Process process Runtime.getRunti…...

ubuntu将本机的wifi网络通过网线分享给另一台机器(用于没有有线网络,重装系统后无wifi驱动或者另一台设备没有wifi网卡)

1.将两台机器通过网线连接 2.在pci ethernet中设置选择另一台机器的mac address&#xff0c;ipv4中选择share to other computer&#xff0c;另一台机器上设置为动态ip&#xff0c;连接上之后另一台机器即可上网。...

Docker + Jenkins + Gitee 自动化部署项目

1.简介 各位看官老爷&#xff0c;本文为Jenkins实战&#xff0c;注重实际过程&#xff0c;阅读完会有以下收获&#xff1a; 了解如何使用Docker安装Jenkins了解如何使用Jenkins部署maven项目了解如何使用JenkinsGitee实现自动化部署 2.Jenkins介绍 相信&#xff0c;正在读这…...

ChatGPT 应用开发(一)ChatGPT OpenAI API 免代理调用方式(通过 Cloudflare 的 AI Gateway)

前言 开发 ChatGPT 应用&#xff0c;我觉得最前置的点就是能使用 ChatGPT API 接口。首先我自己要能成功访问&#xff0c;这没问题&#xff0c;会魔法就可以本地调用。 那用户如何调用到我的应用 API 呢&#xff0c;我的理解是通过用户能访问到的中转服务器向 OpenAI 发起访问…...

【TC3xx】GETH

目录 一、RGMII 二、SMI接口 三、TC3xx MCAL 3.1 MCU 3.2 Port 3.3 DMA 3.4 中断配置 3.5 ETH 3.6 集成 一、RGMII TC3xx支持MII/RMII/RGMII三种以太网数据通信接口。其中RGMII经常用于MAC和MAC之间&#xff0c;或MAC与PHY之间的通信&#xff0c;RGMII的带宽可以是10M…...

不需要联网的ocr项目

地址 GitHub - plantree/ocr-pwa: A simple PWA for OCR, based on Tesseract. 协议 mit 界面 推荐理由 可以离线使用&#xff0c;隐私安全...

【Git使用总结】

Git使用总结 随着软件开发和团队协作的日益重要&#xff0c;Git作为一种强大的版本控制系统&#xff0c;已经成为了开发人员不可或缺的工具。本文将对Git的使用进行总结&#xff0c;以帮助读者更好地掌握Git的用法和技巧。 一、Git的基本概念 在开始使用Git之前&#xff0c;…...

大话软工笔记—需求分析概述

需求分析&#xff0c;就是要对需求调研收集到的资料信息逐个地进行拆分、研究&#xff0c;从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要&#xff0c;后续设计的依据主要来自于需求分析的成果&#xff0c;包括: 项目的目的…...

51c自动驾驶~合集58

我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留&#xff0c;CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制&#xff08;CCA-Attention&#xff09;&#xff0c;…...

shell脚本--常见案例

1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件&#xff1a; 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)

文章目录 1.什么是Redis&#xff1f;2.为什么要使用redis作为mysql的缓存&#xff1f;3.什么是缓存雪崩、缓存穿透、缓存击穿&#xff1f;3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

遍历 Map 类型集合的方法汇总

1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

dify打造数据可视化图表

一、概述 在日常工作和学习中&#xff0c;我们经常需要和数据打交道。无论是分析报告、项目展示&#xff0c;还是简单的数据洞察&#xff0c;一个清晰直观的图表&#xff0c;往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server&#xff0c;由蚂蚁集团 AntV 团队…...

mac:大模型系列测试

0 MAC 前几天经过学生优惠以及国补17K入手了mac studio,然后这两天亲自测试其模型行运用能力如何&#xff0c;是否支持微调、推理速度等能力。下面进入正文。 1 mac 与 unsloth 按照下面的进行安装以及测试&#xff0c;是可以跑通文章里面的代码。训练速度也是很快的。 注意…...

[论文阅读]TrustRAG: Enhancing Robustness and Trustworthiness in RAG

TrustRAG: Enhancing Robustness and Trustworthiness in RAG [2501.00879] TrustRAG: Enhancing Robustness and Trustworthiness in Retrieval-Augmented Generation 代码&#xff1a;HuichiZhou/TrustRAG: Code for "TrustRAG: Enhancing Robustness and Trustworthin…...

在golang中如何将已安装的依赖降级处理,比如:将 go-ansible/v2@v2.2.0 更换为 go-ansible/@v1.1.7

在 Go 项目中降级 go-ansible 从 v2.2.0 到 v1.1.7 具体步骤&#xff1a; 第一步&#xff1a; 修改 go.mod 文件 // 原 v2 版本声明 require github.com/apenella/go-ansible/v2 v2.2.0 替换为&#xff1a; // 改为 v…...

2.3 物理层设备

在这个视频中&#xff0c;我们要学习工作在物理层的两种网络设备&#xff0c;分别是中继器和集线器。首先来看中继器。在计算机网络中两个节点之间&#xff0c;需要通过物理传输媒体或者说物理传输介质进行连接。像同轴电缆、双绞线就是典型的传输介质&#xff0c;假设A节点要给…...