FastGPT问答系统实战:知识库检索×联网搜索

1 概述

1.1 案例介绍

FastGPT是一款开源的 LLM 应用开发平台,提供从 Agent 构建到 AI workflow 编排、RAG 检索、模型管理等能力,轻松构建和运营生成式 AI 原生应用。本文将带你快速搭建工作流,实现从知识库或者搜索引擎进行检索。‌SearXNG 是一个免费的互联网元搜索引擎,它聚合了来自各种搜索服务和数据库的结果,但摆脱了隐私追踪——用户行为既不会被引擎跟踪也不会被分析‌。

通过实际操作,帮助大家学习使用FastGPT进行支持本地知识库和联网搜索的AI问答系统开发、测试和发布。

1.2 适用对象

  • 企业
  • 个人开发者
  • 高校学生

1.3 案例时间

本案例总时长预计50分钟。

1.4 案例流程

f682e73cd42a3ef4ffb51ef6af678303.png{{{width="70%" height="auto"}}}

说明:

  1. 部署SearXNG搜索引擎;
  2. 免费领取DeepSeek R1;
  3. 使用脚本部署FastGPT;
  4. 为FastGPT配置模型;
  5. 创建本地知识库;
  6. 构建问答工作流并运行发布。

1.5 资源总览

资源名称规格单价(元)时长(分钟)
华为开发者空间——云主机4vCPUs | 8GB | ARM | Ubuntu免费50

2 FastGPT构建智能问答系统

2.1 开发者空间配置

面向广大开发者群体,华为开发者空间提供一个随时访问的“开发桌面云主机”、丰富的“预配置工具集合”和灵活使用的“场景化资源池”,开发者开箱即用,快速体验华为根技术和资源。

如果还没有领取开发者空间云主机,可以参考免费领取云主机文档领取。

领取云主机后可以直接进入华为开发者空间工作台界面,点击打开云主机 > 进入桌面连接云主机。

a1aae6ff53aac98855ef597dd6899967.png

552fc96c3b58a06e294e4a760ae719e3.PNG

2.2 部署SearXNG

点击打开 Sealos 北京区,可以用手机号验证码登录,登录后点击应用管理

(* 注意:若提示需要实名认证可以忽略)

4acefe7b4bdbf3eaddbaf9d1fe741d8b.png

点击新建应用

1e5d4864d4128a09c2667c6616752d7d.png

配置应用参数。

07d3e8182b1a8b55e1ddaa66946d4fb7.png

0f9b6346147b5f38cbc2034a25144ffa.png

应用配置参数如下:

配置项规格
基础配置--应用名称searxng
基础配置--镜像名searxng/searxng:latest
基础配置--CPU0.2
基础配置--内存512M
网络配置--容器暴露端口8080
网络配置--开启公网访问开启
高级配置--环境变量UWSGI_WORKERS=4 UWSGI_THREADS=4
高级配置--配置文件文件名:/etc/searx/settings.yml

配置文件/etc/searx/settings.yml的内容如下:

general:
  debug: false
  instance_name: "searxng"
  privacypolicy_url: false
  donation_url: false
  contact_url: false
  enable_metrics: true
  open_metrics: ''

brand:
  new_issue_url: https://github.com/searxng/searxng/issues/new
  docs_url: https://docs.searxng.org/
  public_instances: https://searx.space
  wiki_url: https://github.com/searxng/searxng/wiki
  issue_url: https://github.com/searxng/searxng/issues

search:
  safe_search: 0
  autocomplete: ""
  autocomplete_min: 4
  default_lang: "auto"
  ban_time_on_fail: 5
  max_ban_time_on_fail: 120
  formats:
    - html

server:
  port: 8080
  bind_address: "0.0.0.0"
  base_url: false
  limiter: false
  public_instance: false
  secret_key: "example"
  image_proxy: false
  http_protocol_version: "1.0"
  method: "POST"
  default_http_headers:
    X-Content-Type-Options: nosniff
    X-Download-Options: noopen
    X-Robots-Tag: noindex, nofollow
    Referrer-Policy: no-referrer

redis:
  url: false

ui:
  static_path: ""
  static_use_hash: false
  templates_path: ""
  default_theme: simple
  default_locale: ""
  query_in_title: false
  infinite_scroll: false
  center_alignment: false
  theme_args:
    simple_style: auto

outgoing:
  request_timeout: 30.0
  max_request_timeout: 40.0
  pool_connections: 200
  pool_maxsize: 50
  enable_http2: false
  retries: 5

engines:

  - name: bing
    engine: bing
    shortcut: bi

doi_resolvers:
  oadoi.org: 'https://oadoi.org/'
  doi.org: 'https://doi.org/'
  doai.io: 'https://dissem.in/'
  sci-hub.se: 'https://sci-hub.se/'
  sci-hub.st: 'https://sci-hub.st/'
  sci-hub.ru: 'https://sci-hub.ru/'

default_doi_resolver: 'oadoi.org'

(* 国内目前只有 Bing 引擎可以正常用,所以上面的配置只配置了 bing 引擎)

点击右上角部署应用,点击确认

9a0a34ff7b026fb0d16c27b5e27ae544.png

部署完成后,获取公网地址备用。

dfb8a4d2213e7303e22b2e3b9e0425fb.png

2.3 领取DeepSeek R1

华为云提供了单模型200万免费Tokens,包含DeepSeek-R1&V3满血版,我们可以登录ModelArts Studio(MaaS)控制台领取免费额度,这里我们选择DeepSeek-R1。

在云主机桌面底部菜单栏,点击打开火狐浏览器。用火狐浏览器访问ModelArts Studio首页:https://www.huaweicloud.com/product/modelarts/studio.html,点击ModelArts Studio控制台跳转到登录界面,按照提示进行登录,即可进入ModelArts Studio控制台。

231f92c8565c20d0dad06c5d00af669d.png

进入ModelArts Studio控制台首页,区域选择西南-贵阳一,在左侧菜单栏,选择在线推理 > 预置服务 > 免费服务,选择DeepSeek-R1-32K模型,点击领取额度,领取200万免费token。

15901ab709d46a26ced7c5081d32576d.png

领取后点击调用说明,可以获取到对应的API地址模型名称

a3a8bc4f4cd33101d4951d5ec4e12e36.png

点击API Key管理-创建API Key,自定义标签和描述,点击确定创建API Key。(注意保存好API Key)。

56bc1d48fac91ebb706d4f3e6061aa25.png

到这里华为云MaaS提供的免费DeepSeek Tokens就领取完成啦,记录对应的API地址模型名称API Key留作下面步骤使用。

2.4 安装FastGPT

如果个人云主机上已安装FastGPT,跳过此步,直接执行2.5章节。

在华为开发者空间云主机桌面右键选择Open Terminal Here打开终端命令窗口。

dc418218316a9d1709ed82d6aea959a3.png

使用FastDeploymentScript部署FastGPT,执行以下命令下载脚本文件。

wget https://szh-demo.obs.cn-east-3.myhuaweicloud.com/xc/fastgpt_demo/fds.sh.x

d7c949acc03d728c837ea41cd9447afe.png

设置脚本权限。

chmod +x fds.sh.x

执行脚本。

sudo ./fds.sh.x

输入4 然后回车安装部署FastGPT。

(* 该脚本可以部署多个平台,如Dify、FastGPT等,但是要满足其对服务器的规格要求)

be34ee0dfe3ce0a88eb87f825e578629.png

等待安装完成后,在云主机打开火狐浏览器,输入http://localhost:3000访问FastGPT首页。

416c5e502679796ef6f4cbeb1fe563ca.png

登录用户名为root,密码默认是1234

2.5 配置模型

首次登录FastGPT后,系统会提示“检测到没有可用的语言模型”,并自动跳转到模型配置页面。注意需要确保模型API Key是正确的。

(* 注意:如果没有提示或系统未正常跳转,可以在账号 > 模型提供商页面,进行模型配置)

模型供应商页面点击模型配置,点击新增模型,选择语言模型

5bbc8a755b4eb00b27ab209c6a56f642.png

进入到模型参数编辑页面配置模型。

0b551426f6f285a158c1d6401b9f40ce.png

26acffda72a1f218138da38574f41991.png

参数配置说明:

配置项配置内容
用于知识库文件处理开启
模型ID2.3步骤中获取到的模型名称
模型供应商其他
别名华为云MAAS
最大上下文1024
知识库最大引用100000
自定义请求地址2.3步骤中获取到的API地址
自定义请求Key2.3步骤中获取到的API Key
其他保持默认即可

配置完语言模型,通常会提示“检测到没有可用的索引模型”,我们需要继续配置索引模型(不提示也需要继续配置索引模型,后面创建知识库需要使用)。

e20e6349bab4468fbc1706a825f0d72d.png

索引模型我们选用硅基流动模型广场中的BAAI/bge-m3,登录并进入到硅基流动模型广场。搜索bge-m3,点击BAAI/bge-m3,点击API文档

e6325a32976c8409acf1504990205f3d.png

获取BAAI/bge-m3的模型ID、请求地址、请求Key(没有Key则新建;提示没有登录的话请按照提示注册/登录)。

beace61040eba3f867d91a87b8122cda.png

回到FastGPT,在模型配置页面,选择硅基流动供应商,找到BAAI/bge-m3模型,点击启动,然后点击模型参数编辑

0146ed3aeecab2f34abc1dac2b080f77.png

将上面在硅基流动获取到的BAAI/bge-m3模型的请求地址、请求Key分别填入到自定义请求地址和自定义请求Key,点击确定

385a77c7f3974d639164f3c90fc3a620.png

此外该案例还需要用到重排模型对知识库检索结果进行二次增强排序,这里重排模型同样使用硅基流动提供的BAAI/bge-reranker-v2-m3,重复上面BAAI/bge-m3模型同样的步骤添加BAAI/bge-reranker-v2-m3模型。

9910e056ccd118acb4f8160a4fc4ebe5.png

配置结果。

a9f6f4aa1db43965d84ec4a9bafd2ad4.png

2.6 创建知识库

在FastGPT中进入知识库界面,然后新建 > 通用知识库

4b1dabdba137f52e295e15678386e348.png

知识库名字可以自定义,索引模型和文本理解模型选择之前配置的两个模型。

a36c1142159902034ca2904dfef8dec4.png

点击新建/导入 > 文本数据集,导入文件。

1cd72381d104da5aa4bbb2e1abbc0800.png

来源选择本地文件

6fb194cdf79abbfa63fc46470143eef7.png

在云主机火狐浏览器下载测试用的马铃薯.txt,然后上传文档到知识库。

0f495264a8595fa658e7e34494e04eaa.png

直接点击下一步

1a70e79f4f57c9b0faa5ffa42d2f6a65.png

按默认配置一直下一步即可完成上传。

(* 注意:如果提示上传失败或上传文件格式不支持等问题,尝试重新上传)

2.7 构建问答工作流

在FastGPT点击工作台,然后点击新建 > 导入JSON配置

e2bd4556b4e1e099f65a15ab80927680.png

名字可以自定义,点击上传文件,然后上传准备好的工作流JSON文件(在云主机火狐浏览器进行JSON文件下载)。

fc52b62fd8fc5d62745a2cd6d3c335f7.png

e5435b4ca444cc255374609170841636.png

工作流打开后,点击由下角 + 按钮放大工作流节点,在知识库搜索节点添加2.6步骤创建的知识库。

13eae8c797f032378b4c569ad51bb10f.png

Search XNG搜索节点中配置2.2步骤部署的SearXNG公网地址。

4ad1893b28aff1a3f054718fdd67a07e.png

然后点击右上角运行按钮即可进入到运行预览窗口进行对话测试。

测试情况1:从知识库中检索出内容并结合DeepSeek模型进行回答。如询问:土豆的历史。

c062c1ea36d17102495954e248417d44.png

5df6df55fde81047d1f8bab54b3aae65.png

测试情况2:从知识库中未检索出内容,使用SearXNG搜索引擎联网联网搜索并结合DeepSeek模型进行回答。如询问:蛋炒饭的做法。

531176d61e927ce27b741221bb9f2909.png

dd2db88af8c641cc7160fe0ee1b2b6f6.png

至此该应用已经实现知识库检索和联网搜索能力,接下来我们看下如果将应用发布给外部使用。

2.8 应用发布

点击右上角保存 > 保存并发布,名称默认即可,然后点击确定

6b3a5de5b586a8e68d109675f3984641.png

然后点击顶部菜单栏中发布渠道,可以直接分享一个免登录的Web窗口给外部使用。

36eab368703436d70eb3f61c7a612e1a.png

复制链接,在云主机火狐浏览器中打开测试

450d99a181da44bd5545e58aa7da9cd7.png

22fe239ec88337db48c52acf6799e331.png

此外,也支持创建API密钥通过API接入到其他平台或代码中,感兴趣的同学可以自行探索。

至此,FastGPT问答系统实战案例内容全部完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值