当前位置: 首页 > 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;…...

仿照MyBatis手写一个持久层框架学习

首先数据准备&#xff0c;创建MySQL数据库mybatis&#xff0c;创建表并插入数据。 DROP TABLE IF EXISTS user_t; CREATE TABLE user_t ( id INT PRIMARY KEY, username VARCHAR ( 128 ) ); INSERT INTO user_t VALUES(1,Tom); INSERT INTO user_t VALUES(2,Jerry);JDBC API允…...

关东升老师极简系列丛书(由清华大学出版社出版)

极简系列丛书&#xff0c;编程学习新体验 在这个科技日新月异的时代&#xff0c;编程已经成为了一种必备技能。但是面对各种复杂的编程语言&#xff0c;你是否也曾感到过迷茫和困惑&#xff1f;由清华大学出版社出版的“极简系列丛书”就是为了帮助你解决这个问题。 这套丛书…...

要求CHATGPT高质量回答的艺术:提示工程技术的完整指南—第 27 章:如何避开和绕过所有人工智能内容检测器

要求CHATGPT高质量回答的艺术&#xff1a;提示工程技术的完整指南—第 27 章&#xff1a;如何避开和绕过所有人工智能内容检测器 使用高易错性和突发性方法 与人工智能生成的文本相比&#xff0c;人类写作往往具有更多的突发性&#xff0c;这是由于人类往往比人工智能生成的文…...

JavaWeb笔记之MySQL数据库

#Author 流云 #Version 1.0 一、引言 1.1 现有的数据存储方式有哪些&#xff1f; Java程序存储数据&#xff08;变量、对象、数组、集合&#xff09;&#xff0c;数据保存在内存中&#xff0c;属于瞬时状态存储。 文件&#xff08;File&#xff09;存储数据&#xff0c;保存…...

Amazon CodeWhisperer 开箱初体验

文章作者&#xff1a;Coder9527 科技的进步日新月异&#xff0c;正当人工智能发展如火如荼的时候&#xff0c;各大厂商在“解放”码农的道路上不断创造出各种 Coding 利器&#xff0c;今天在下就带大家开箱体验一个 Coding 利器&#xff1a; Amazon CodeWhisperer。 亚马逊云科…...

Java的引用类型有几种?区别是什么?

Java中的引用类型主要分为四种&#xff1a;强引用&#xff08;Strong Reference&#xff09;、软引用&#xff08;Soft Reference&#xff09;、弱引用&#xff08;Weak Reference&#xff09;和虚引用&#xff08;Phantom Reference&#xff09;。这些引用类型在Java中主要用于…...

掌握iText:轻松处理PDF文档-基础篇

关于iText iText是一个强大的PDF处理库&#xff0c;可以用于创建、读取和操作PDF文件。它支持PDF表单、加密和签署等操作&#xff0c;同时支持多种字体和编码。maven的中央仓库中的最新版本是5.X&#xff0c;且iText5不是完全免费的&#xff0c;但是基础能力是免费使用的&…...

小红书民宿文案怎么写?建议收藏

随着民宿市场的日益火爆&#xff0c;如何在众多民宿中脱颖而出&#xff0c;吸引更多租客入住&#xff0c;成为摆在每一位民宿业主面前的难题。一篇优质的小红书民宿文案&#xff0c;不仅能吸引潜在租客的关注&#xff0c;还能提高民宿的知名度。本文伯乐网络传媒将从八个方面教…...

C#教程(一):面向对象

1、介绍 C#是一种多范式编程语言&#xff0c;但其中一个主要的编程范式是面向对象编程&#xff08;OOP&#xff09;。面向对象编程有一些特点&#xff0c;而C#提供了丰富的功能来支持这些特点。 2、面向对象特点 封装&#xff08;Encapsulation&#xff09;&#xff1a; 封装…...

Linux系统中部署minio服务、开启反向代理、二级域名SSL加固

链接: B站1小时-配置指导视频: 一、创建minio 文件目录(/project/minio) 二、下载Minio wget https://dl.min.io/server/minio/release/linux-amd64/minio 三、在minio目录中-创建日志文件 四、对minio(可以理解为windows系统中的.exe可执行文件) 进行授权 chmod 777 min…...