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

手把手教你基于 FastGPT 搭建个人知识库

前言 大家好,我是潇潇雨声。我发现在使用 GPT 时,尽管它能够生成一些小红书文案和日志,但内容常常显得空洞缺乏深度。今天我想分享一个解决这个问题的方法,那就是基于开源项目 FastGPT[1]

我们可以通过向 GPT 提供一些有针对性的资料,然后让 AI 根据这些文档进行交互式对话,回答我们的问题。虽然回答的质量可能不会达到极高水平,但至少可以提高一定的质量下限。这就有点像使用 GPT 进行有针对性的训练。

接下来,我将带你安装并使用 FastGPT。

FastGPT

官方简介

FastGPT 是一个基于 LLM 大语言模型的知识库问答系统,提供开箱即用的数据处理、模型调用等能力。同时可以通过 Flow 可视化进行工作流编排,从而实现复杂的问答场景!

知识库核心流程图

一,安装 FastGPT

  1. 安装 Docker

如果没有安装 Docker 可以参考我之前写的 手把手教你在 windows 上安装 Dcoker

  1. 创建配置文件
  • 创建 docker-compose.yml
# 非 host 版本, 不使用本机代理
# (不懂 Docker 的,只需要关心 OPENAI_BASE_URL 和 CHAT_API_KEY 即可!)
version: '3.3'
services:
  pg:
    image: ankane/pgvector:v0.5.0 # git
    # image: registry.cn-hangzhou.aliyuncs.com/fastgpt/pgvector:v0.5.0 # 阿里云
    container_name: pg
    restart: always
    ports: # 生产环境建议不要暴露
      - 5432:5432
    networks:
      - fastgpt
    environment:
      # 这里的配置只有首次运行生效。修改后,重启镜像是不会生效的。需要把持久化数据删除再重启,才有效果
      - POSTGRES_USER=username
      - POSTGRES_PASSWORD=password
      - POSTGRES_DB=postgres
    volumes:
      - ./pg/data:/var/lib/postgresql/data
  mongo:
    image: mongo:5.0.18
    # image: registry.cn-hangzhou.aliyuncs.com/fastgpt/mongo:5.0.18 # 阿里云
    container_name: mongo
    restart: always
    ports: # 生产环境建议不要暴露
      - 27017:27017
    networks:
      - fastgpt
    environment:
      # 这里的配置只有首次运行生效。修改后,重启镜像是不会生效的。需要把持久化数据删除再重启,才有效果
      - MONGO_INITDB_ROOT_USERNAME=username
      - MONGO_INITDB_ROOT_PASSWORD=password
    volumes:
      - ./mongo/data:/data/db
  fastgpt:
    container_name: fastgpt
    image: ghcr.io/labring/fastgpt:latest # git
    # image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:latest # 阿里云
    ports:
      - 3000:3000
    networks:
      - fastgpt
    depends_on:
      - mongo
      - pg
    restart: always
    environment:
      # root 密码,用户名为: root
      - DEFAULT_ROOT_PSW=1234
      # 中转地址,如果是用官方号,不需要管。务必加 /v1
      - OPENAI_BASE_URL=https://api.openai.com/v1
      - CHAT_API_KEY=替换成你的OPENAI-KEY
      - DB_MAX_LINK=5 # database max link
      - TOKEN_KEY=any
      - ROOT_KEY=root_key
      - FILE_TOKEN_KEY=filetoken
      # mongo 配置,不需要改. 如果连不上,可能需要去掉 ?authSource=admin
      - MONGODB_URI=mongodb://username:password@mongo:27017/fastgpt?authSource=admin
      # pg配置. 不需要改
      - PG_URL=postgresql://username:password@pg:5432/postgres
    volumes:
      - ./config.json:/app/data/config.json
networks:
  fastgpt:

「注意:需要将 CHAT_API_KEY 的值换成自己 openai key。」

  • 再创建 config.json
{
    "SystemParams": {
      "pluginBaseUrl""",
      "vectorMaxProcess"15,
      "qaMaxProcess"15,
      "pgHNSWEfSearch"100
    },
    "ChatModels": [
      {
        "model""gpt-3.5-turbo-1106",
        "name""GPT35-1106",
        "price"0,
        "maxContext"16000,
        "maxResponse"4000,
        "quoteMaxToken"2000,
        "maxTemperature"1.2,
        "censor"false,
        "vision"false,
        "defaultSystemChatPrompt"""
      },
      {
        "model""gpt-3.5-turbo-16k",
        "name""GPT35-16k",
        "maxContext"16000,
        "maxResponse"16000,
        "price"0,
        "quoteMaxToken"8000,
        "maxTemperature"1.2,
        "censor"false,
        "vision"false,
        "defaultSystemChatPrompt"""
      },
      {
        "model""gpt-4",
        "name""GPT4-8k",
        "maxContext"8000,
        "maxResponse"8000,
        "price"0,
        "quoteMaxToken"4000,
        "maxTemperature"1.2,
        "censor"false,
        "vision"false,
        "defaultSystemChatPrompt"""
      },
      {
        "model""gpt-4-vision-preview",
        "name""GPT4-Vision",
        "maxContext"128000,
        "maxResponse"4000,
        "price"0,
        "quoteMaxToken"100000,
        "maxTemperature"1.2,
        "censor"false,
        "vision"true,
        "defaultSystemChatPrompt"""
      }
    ],
    "QAModels": [
      {
        "model""gpt-3.5-turbo-16k",
        "name""GPT35-16k",
        "maxContext"16000,
        "maxResponse"16000,
        "price"0
      }
    ],
    "CQModels": [
      {
        "model""gpt-3.5-turbo",
        "name""GPT35",
        "maxContext"4000,
        "maxResponse"4000,
        "price"0,
        "functionCall"true,
        "functionPrompt"""
      },
      {
        "model""gpt-4",
        "name""GPT4-8k",
        "maxContext"8000,
        "maxResponse"8000,
        "price"0,
        "functionCall"true,
        "functionPrompt"""
      }
    ],
    "ExtractModels": [
      {
        "model""gpt-3.5-turbo-1106",
        "name""GPT35-1106",
        "maxContext"16000,
        "maxResponse"4000,
        "price"0,
        "functionCall"true,
        "functionPrompt"""
      }
    ],
    "QGModels": [
      {
        "model""gpt-3.5-turbo-1106",
        "name""GPT35-1106",
        "maxContext"1600,
        "maxResponse"4000,
        "price"0
      }
    ],
    "VectorModels": [
      {
        "model""text-embedding-ada-002",
        "name""Embedding-2",
        "price"0.2,
        "defaultToken"700,
        "maxToken"3000
      }
    ],
    "ReRankModels": [],
    "AudioSpeechModels": [
      {
        "model""tts-1",
        "name""OpenAI TTS1",
        "price"0,
        "voices": [
          { "label""Alloy""value""alloy""bufferId""openai-Alloy" },
          { "label""Echo""value""echo""bufferId""openai-Echo" },
          { "label""Fable""value""fable""bufferId""openai-Fable" },
          { "label""Onyx""value""onyx""bufferId""openai-Onyx" },
          { "label""Nova""value""nova""bufferId""openai-Nova" },
          { "label""Shimmer""value""shimmer""bufferId""openai-Shimmer" }
        ]
      }
    ],
    "WhisperModel": {
      "model""whisper-1",
      "name""Whisper1",
      "price"0
    }
  }

  1. 启动

在 docker-compose.yml 同级目录下执行

  1. 拉取镜像
docker-compose pull
  1. 运行容器
docker-compose up -d

二,使用 FastGPT

  1. 访问

浏览器通过http://localhost:3000/进行访问

alt
alt

登录用户名为 root,密码为 docker-compose.yml 环境变量里设置的 DEFAULT ROOT PSW,默认是 1234.

  1. 新建知识库

新建一个知识库,这里我是专门的存储酷壳网站上的文章,所以就命名为酷壳。

alt
  1. 导入文档

通过文件导入已经下载好的文章

alt
alt
alt

确认后就开始将当前数据转化为向量数据

这两篇文章字数可能破完了,完全导入好,所花费的时间可能会有半个小时乃至一个小时.....,由于文本限制问题,按照固定字数拆分若干个数据集

alt

这是已经拆分好的,还有 5 个在排队,先测试一下。

  1. 使用知识库

新建一个应用

alt
  1. 绑定刚刚的知识库
alt
alt
  1. 开始对话,效果展示如下:
alt

这里有个小问题,

alt

翻译如下:您已经超过了每分钟请求的限制次数。对于您的账户(org-FPtm4iWkzMglOZn9J06QAK6F)中的 text-embedding-ada-002 模型来说,每分钟的请求限制是 3 次,您已经使用了 3 次请求,但是您又发送了 1 次请求,所以您需要等待 20 秒后再试。您可以访问https://platform.openai.com/account/rate-limits了解更多信息。如果您在账户https://platform.openai.com/account/billing中添加了付款方式,您可以增加您的请求限制。

粗略的理解,一分钟只能处理三次请求,可以尝试设置多个 key 进行轮询,来解决上述的问题。

如果觉得我的分享对您有帮助,请关注我。创作不易,您的三连就是对我最大的支持。

alt

Reference

[1]

FastGPT: https://github.com/labring/FastGPT

本文由 mdnice 多平台发布

相关文章:

手把手教你基于 FastGPT 搭建个人知识库

前言 大家好,我是潇潇雨声。我发现在使用 GPT 时,尽管它能够生成一些小红书文案和日志,但内容常常显得空洞缺乏深度。今天我想分享一个解决这个问题的方法,那就是基于开源项目 FastGPT[1]。 我们可以通过向 GPT 提供一些有针对性的…...

gitee 怎么添加SSH密钥

要在Gitee上添加SSH密钥,请按照以下步骤操作: 登录到Gitee账户并导航到您要添加SSH密钥的存储库页面。点击页面右上方的“设置”按钮。在设置页面中,选择“SSH公钥”选项卡。点击“添加密钥”按钮。在弹出的对话框中,输入密钥标题…...

万界星空开源MES/注塑MES/开源注塑MES/免费MES/MES源码

一、系统概述: 万界星空科技免费MES、开源MES、商业开源MES、市面上最好的开源MES、MES源代码、适合二开的开源MES、好看的数据大屏、功能齐全开源mes. 1.万界星空开源MES制造执行系统的Java开源版本。 开源mes系统包括系统管理,车间基础数据管理&…...

macOS 开发 - MASShortcut

文章目录 关于 MASShortcut项目结构 快速使用源码学习检测是否有热键冲突处理 Event macOS 开发交流 秋秋群:644096295,V : ez-code 关于 MASShortcut MASShortcut 是一款快捷键管理工具,替代和兼容 ShortcutRecorder github : https://git…...

【大数据面试】Flink面试题附答案

目录 ✅Flink介绍、特点、应用场景 ✅Flink与Spark Streaming的区别 ✅Flink有哪些部署模式 ✅Flink架构 ✅怎么设置并行度? ✅什么是算子链? ✅什么是任务槽(Task Slots)? ✅任务槽和并行度的关系 ✅Flink作…...

语音识别之百度语音试用和OpenAiGPT开源Whisper使用

0.前言: 本文作者亲自使用了百度云语音识别,腾讯云,java的SpeechRecognition语言识别包 和OpenAI近期免费开源的语言识别Whisper(真香警告)介绍了常见的语言识别实现原理 1.NLP 自然语言处理(人类语言处理) 你好不同人说出来是不同的信号表示 单位k 16k16000个数字表示 1秒160…...

Rust报错:the msvc targets depend on the msvc linker but `link.exe` was not found

当我在我的 windows 电脑上安装 rust,然后用 cargo 新建了一个项目后,cargo run 会报错: error: linker link.exe not found| note: program not foundnote: the msvc targets depend on the msvc linker but link.exe was not foundnote: p…...

2312llvm,04后端上

后端 后端由一套分析和转换趟组成,任务是生成代码,即把LLVM中间(IR)转换为目标代码(或汇编). LLVM支持广泛目标:ARM,AArch64,Hexagon,MSP430,MIPS,NvidiaPTX,PowerPC,R600,SPARC,SystemZ,X86,和XCore. 所有这些后端共享一套,按通用API方法抽象后端任务的目标无关生成代码的一部…...

springboot学习笔记(五)

MybatisPlus进阶 1.MybatisPlus一对多查询 2.分页查询 1.MybatisPlus一对多查询 场景:我有一个表,里面填写的是用户的个人信息(姓名,生日,密码,用户ID)。我还有一个表填写的订单信息&#x…...

文件上传——后端

文件上传流程: 创建阿里云OSS(对象存储服务)的bucket 登录阿里云,并完成实名认证,地址:https://www.aliyun.com/. 可以通过搜索,进入以下页面: 点击立即使用后: 点击…...

虾皮开通:如何在虾皮上开通跨境电商店铺

在当今的数字时代,跨境电商已经成为了全球贸易的一种重要形式。虾皮(Shopee)作为东南亚市场份额第一的跨境电商平台,为卖家提供了广阔的销售机会。如果您想在虾皮上开通店铺,以下是一些步骤和注意事项供您参考。 先给…...

C语言—每日选择题—Day60

明天更新解析 第一题 1. 下列for循环的循环体执行次数为() for(int i 10, j 1; i j 0; i, --j) A:0 B:1 C:无限 D:以上都不对 答案及解析 A for循环的判断条件是 i j 0;赋值语句做判断条件…...

【3D生成与重建】SSDNeRF:单阶段Diffusion NeRF的三维生成和重建

系列文章目录 题目:Single-Stage Diffusion NeRF: A Unified Approach to 3D Generation and Reconstruction 论文:https://arxiv.org/pdf/2304.06714.pdf 任务:无条件3D生成(如从噪音中,生成不同的车等)、…...

计算机网络:应用层

0 本节主要内容 问题描述 解决思路 1 问题描述 不同的网络服务: DNS:用来把人们使用的机器名字(域名)转换为 IP 地址;DHCP:允许一台计算机加入网络和获取 IP 地址,而不用手工配置&#xff1…...

现代雷达车载应用——第3章 MIMO雷达技术 3.2节 汽车MIMO雷达波形正交策略

经典著作,值得一读,英文原版下载链接【免费】ModernRadarforAutomotiveApplications资源-CSDN文库。 3.2 汽车MIMO雷达波形正交策略 基于MIMO雷达技术的汽车雷达虚拟阵列合成依赖于不同天线发射信号的可分离性。当不同天线的发射信号正交时&#x…...

Unresolved plugin: ‘org.apache.maven.plugins‘解决报错

新建springboot项目报Unresolved plugin: ‘org.apache.maven.plugins:maven-surefire-plugin:3.1.2’ 缺什么插件 引入什么插件的依赖就行 <dependency><groupId>org.apache.maven.plugins</groupId><artifactId>maven-install-plugin</artifact…...

阿里云林立翔:基于阿里云 GPU 的 AIGC 小规模训练优化方案

云布道师 本篇文章围绕生成式 AI 技术栈、生成式 AI 微调训练和性能分析、ECS GPU 实例为生成式 AI 提供算力保障、应用场景案例等相关话题展开。 生成式 AI 技术栈介绍 1、生成式 AI 爆发的历程 在 2022 年的下半年&#xff0c;业界迎来了生成式 AI 的全面爆发&#xff0c…...

从0开始学Git指令

从0开始学Git指令 因为网上的git文章优劣难评&#xff0c;大部分没有实操展示&#xff0c;所以打算自己从头整理一份完整的git实战教程&#xff0c;希望对大家能够起到帮助&#xff01; 初始化一个Git仓库&#xff0c;使用git init命令。 添加文件到Git仓库&#xff0c;分两步…...

B039-SpringMVC基础

目录 SpringMVC简介复习servletSpringMVC入门导包配置前端控制器编写处理器实现Contoller接口普通类加注解(常用) 路径问题获取参数的方式过滤器简介自定义过滤器配置框架提供的过滤器 springMVC向页面传值的三种方式视图解析器springMVC的转发和重定向 SpringMVC简介 1.Sprin…...

Tomcat报404问题解决方案大全(包括tomcat可以正常运行但是报404)

文章目录 Tomcat报404问题解决方案大全(包括tomcat可以正常运行但是报404)1、正确的运行页面2、报错404问题分类解决2.1、Tomcat未配置环境变量2.2、IIs访问权限问题2.3、端口占用问题2.4、文件缺少问题解决办法&#xff1a; Tomcat报404问题解决方案大全(包括tomcat可以正常运…...

STM32的ADC+DMA还能这么玩?深入剖析定时器触发与波形显示的性能边界与优化

STM32的ADCDMA性能极限探索&#xff1a;从定时器触发到波形显示的深度优化 在嵌入式数据采集领域&#xff0c;ADC与DMA的协同工作一直是性能优化的关键战场。当我们需要在资源受限的MCU上实现高精度波形采集时&#xff0c;如何榨取STM32的每一分性能潜力&#xff1f;本文将带您…...

DAMOYOLO-S边缘端部署指南:STM32F103C8T6嵌入式平台推理优化

DAMOYOLO-S边缘端部署指南&#xff1a;STM32F103C8T6嵌入式平台推理优化 1. 引言 如果你正在为一个资源极其有限的嵌入式设备寻找一个能跑起来的目标检测方案&#xff0c;比如用一块小小的STM32F103C8T6开发板&#xff0c;那么这篇文章就是为你准备的。你可能已经尝试过一些经…...

实战指南:基于快马生成tomcat生产级配置,涵盖https、集群与性能调优

今天想和大家分享一个实战经验&#xff1a;如何在生产环境中配置Tomcat服务器。作为一个长期和Tomcat打交道的开发者&#xff0c;我深知生产环境配置和本地开发环境的巨大差异。最近在InsCode(快马)平台上实践了一套完整的配置方案&#xff0c;效果很不错&#xff0c;这里把关键…...

CentOS虚拟机启动卡在紧急模式?别慌,手把手教你用xfs_repair修复XFS元数据损坏

CentOS虚拟机启动卡在紧急模式&#xff1f;手把手教你用xfs_repair拯救XFS元数据 当你正准备开始一天的工作&#xff0c;突然发现CentOS虚拟机无法正常启动&#xff0c;屏幕上赫然显示着"emergency mode"的红色警告。这种突如其来的系统崩溃&#xff0c;往往让运维人…...

AI驱动的Vue3应用开发平台深入探究(十):物料系统之内置组件库

内置组件库&#xff08;Element Plus、Ant Design Vue、Vant&#xff09; VTJ 通过其统一的物料系统架构&#xff0c;与三个流行的 Vue 组件库提供了全面的集成。这一抽象层使开发者能够利用熟悉的组件模式&#xff0c;同时保持低代码的可扩展性和跨库的可移植性。该系统将组件…...

完整指南:使用wiliwili在Switch上实现本地视频播放的高效方案

完整指南&#xff1a;使用wiliwili在Switch上实现本地视频播放的高效方案 【免费下载链接】wiliwili 专为手柄控制设计的第三方跨平台B站客户端&#xff0c;目前可以运行在PC全平台、PSVita、PS4 和 Nintendo Switch上 项目地址: https://gitcode.com/GitHub_Trending/wi/wil…...

C#运动控制库大比拼:HALCON vs Leadshine,哪个更适合你的项目?

C#运动控制库深度评测&#xff1a;HALCON与Leadshine的工业级对决 在工业自动化领域&#xff0c;选择合适的运动控制库往往决定着项目的成败。作为C#开发者&#xff0c;我们常面临一个关键抉择&#xff1a;是选择功能全面的HALCON&#xff0c;还是专注运动控制的Leadshine&…...

ModelScope与Hugging Face中文API调用全攻略:从安装到实战代码解析

ModelScope与Hugging Face中文API调用全攻略&#xff1a;从安装到实战代码解析 如果你正在寻找一个能够快速上手ModelScope和Hugging Face API的指南&#xff0c;特别是针对中文开发者的实用教程&#xff0c;那么你来对地方了。这两个平台作为当前最受欢迎的AI模型开源社区&…...

OpenClaw+Qwen3-32B自动化办公:会议纪要生成与飞书同步实战

OpenClawQwen3-32B自动化办公&#xff1a;会议纪要生成与飞书同步实战 1. 为什么需要自动化会议纪要 每次开完会最痛苦的事情是什么&#xff1f;对我来说就是整理会议纪要。作为技术负责人&#xff0c;每周要参加5-6个不同主题的会议&#xff0c;会后需要花大量时间回听录音、…...

高维问题如何“降维计算”:矩阵映射、卷积与拆分汇总

你在课程里提到一个很重要的工程化思想&#xff1a; 高维问题看起来复杂&#xff0c;但很多计算可以通过“拆分再计算”的方式降维处理 这篇把它整理成一条可复述的主线&#xff0c;重点放在&#xff1a; 为什么能拆拆完怎么汇总和矩阵/卷积的关系是什么 先说明一个常见误解&am…...