1 概述
1.1 案例介绍
FastGPT是一款开源的 LLM 应用开发平台,提供从 Agent 构建到 AI workflow 编排、RAG 检索、模型管理等能力,轻松构建和运营生成式 AI 原生应用。本文将带你快速搭建工作流,实现从知识库或者搜索引擎进行检索。SearXNG 是一个免费的互联网元搜索引擎,它聚合了来自各种搜索服务和数据库的结果,但摆脱了隐私追踪——用户行为既不会被引擎跟踪也不会被分析。
通过实际操作,帮助大家学习使用FastGPT进行支持本地知识库和联网搜索的AI问答系统开发、测试和发布。
1.2 适用对象
- 企业
- 个人开发者
- 高校学生
1.3 案例时间
本案例总时长预计50分钟。
1.4 案例流程
{{{width="70%" height="auto"}}}
说明:
- 部署SearXNG搜索引擎;
- 免费领取DeepSeek R1;
- 使用脚本部署FastGPT;
- 为FastGPT配置模型;
- 创建本地知识库;
- 构建问答工作流并运行发布。
1.5 资源总览
| 资源名称 | 规格 | 单价(元) | 时长(分钟) |
|---|---|---|---|
| 华为开发者空间——云主机 | 4vCPUs | 8GB | ARM | Ubuntu | 免费 | 50 |
2 FastGPT构建智能问答系统
2.1 开发者空间配置
面向广大开发者群体,华为开发者空间提供一个随时访问的“开发桌面云主机”、丰富的“预配置工具集合”和灵活使用的“场景化资源池”,开发者开箱即用,快速体验华为根技术和资源。
如果还没有领取开发者空间云主机,可以参考免费领取云主机文档领取。
领取云主机后可以直接进入华为开发者空间工作台界面,点击打开云主机 > 进入桌面连接云主机。


2.2 部署SearXNG
点击打开 Sealos 北京区,可以用手机号验证码登录,登录后点击应用管理。
(* 注意:若提示需要实名认证可以忽略)

点击新建应用。

配置应用参数。


应用配置参数如下:
| 配置项 | 规格 |
|---|---|
| 基础配置--应用名称 | searxng |
| 基础配置--镜像名 | searxng/searxng:latest |
| 基础配置--CPU | 0.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 引擎)
点击右上角部署应用,点击确认。

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

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控制台。

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

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

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

到这里华为云MaaS提供的免费DeepSeek Tokens就领取完成啦,记录对应的API地址、模型名称、API Key留作下面步骤使用。
2.4 安装FastGPT
如果个人云主机上已安装FastGPT,跳过此步,直接执行2.5章节。
在华为开发者空间云主机桌面右键选择Open Terminal Here打开终端命令窗口。

使用FastDeploymentScript部署FastGPT,执行以下命令下载脚本文件。
wget https://szh-demo.obs.cn-east-3.myhuaweicloud.com/xc/fastgpt_demo/fds.sh.x

设置脚本权限。
chmod +x fds.sh.x
执行脚本。
sudo ./fds.sh.x
输入4 然后回车安装部署FastGPT。
(* 该脚本可以部署多个平台,如Dify、FastGPT等,但是要满足其对服务器的规格要求)

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

登录用户名为root,密码默认是1234。
2.5 配置模型
首次登录FastGPT后,系统会提示“检测到没有可用的语言模型”,并自动跳转到模型配置页面。注意需要确保模型API Key是正确的。
(* 注意:如果没有提示或系统未正常跳转,可以在账号 > 模型提供商页面,进行模型配置)
在模型供应商页面点击模型配置,点击新增模型,选择语言模型。

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


参数配置说明:
| 配置项 | 配置内容 |
|---|---|
| 用于知识库文件处理 | 开启 |
| 模型ID | 2.3步骤中获取到的模型名称 |
| 模型供应商 | 其他 |
| 别名 | 华为云MAAS |
| 最大上下文 | 1024 |
| 知识库最大引用 | 100000 |
| 自定义请求地址 | 2.3步骤中获取到的API地址 |
| 自定义请求Key | 2.3步骤中获取到的API Key |
| 其他 | 保持默认即可 |
配置完语言模型,通常会提示“检测到没有可用的索引模型”,我们需要继续配置索引模型(不提示也需要继续配置索引模型,后面创建知识库需要使用)。

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

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

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

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

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

配置结果。

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

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

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

来源选择本地文件。

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

直接点击下一步

按默认配置一直下一步即可完成上传。
(* 注意:如果提示上传失败或上传文件格式不支持等问题,尝试重新上传)
2.7 构建问答工作流
在FastGPT点击工作台,然后点击新建 > 导入JSON配置。

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


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

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

然后点击右上角运行按钮即可进入到运行预览窗口进行对话测试。
测试情况1:从知识库中检索出内容并结合DeepSeek模型进行回答。如询问:土豆的历史。


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


至此该应用已经实现知识库检索和联网搜索能力,接下来我们看下如果将应用发布给外部使用。
2.8 应用发布
点击右上角保存 > 保存并发布,名称默认即可,然后点击确定。

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

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


此外,也支持创建API密钥通过API接入到其他平台或代码中,感兴趣的同学可以自行探索。
至此,FastGPT问答系统实战案例内容全部完成。
6万+

被折叠的 条评论
为什么被折叠?



