sailor0913

须知少时凌云志,曾许人间第一流

自建fastgpt服务

发布于 # 有趣 # fastgpt

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

上面是官方对fastgpt的定义,我个人的理解是一个可以自定义的问答系统,可以用来做一些有趣的事情,比如问答、对话等。当然其还有非常强大的编排功能,可以实现复杂的问答场景。

具体内容可以查看官方网站,后续我也会写一些文章来介绍一些fastgpt的高级用法。今天我们先来看一下如何在自己的电脑上搭建一个fastgpt服务。当然,你也可以直接查看官方文档---docker compose快速部署

搭建环境

安装docker

# 安装 Docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
systemctl enable --now docker
# 安装 docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
# 验证安装
docker -v
docker-compose -v

下载脚本文件

mkdir fastgpt
cd fastgpt
curl -O https://raw.githubusercontent.com/labring/FastGPT/main/projects/app/data/config.json

# pgvector 版本(测试推荐,简单快捷)
curl -o docker-compose.yml https://raw.githubusercontent.com/labring/FastGPT/main/files/docker/docker-compose-pgvector.yml
# milvus 版本
# curl -o docker-compose.yml https://raw.githubusercontent.com/labring/FastGPT/main/files/docker/docker-compose-milvus.yml
# zilliz 版本
# curl -o docker-compose.yml https://raw.githubusercontent.com/labring/FastGPT/main/files/docker/docker-compose-zilliz.yml

启动容器

# vim /etc/docker/daemon.json
{
    "registry-mirrors": [
        "https://docker.m.daocloud.io",
        "https://docker.nju.edu.cn",
        "https://dockerproxy.com"
    ]
}
# 启动容器
docker-compose up -d
# 等待10s,OneAPI第一次总是要重启几次才能连上Mysql
sleep 10
# 重启一次oneapi(由于OneAPI的默认Key有点问题,不重启的话会提示找不到渠道,临时手动重启一次解决,等待作者修复)
docker restart oneapi

oneapi前置知识

渠道

令牌

大致工作流程

配置oneapi

增加渠道---通义千问示例

修改fastgpt环境变量(仅测试的话可跳过)

# 下面的地址是 Sealos 提供的,务必写上 v1, 两个项目都在 sealos 部署时候,https://xxxx.cloud.sealos.io 可以改用内网地址
OPENAI_BASE_URL=https://xxxx.cloud.sealos.io/v1
# 下面的 key 是由 One API 提供的令牌
CHAT_API_KEY=sk-xxxxxx

修改 fastgpt 的配置文件(重要)

# 找到llmModels字段,直接在其本身的内容上覆盖修改 model 和 name 即可
"llmModels": [
	{
		"model": "qwen-plus"
		"name": "qwen-plus"
	}
	...
	{
		"model": "qwen-turbo"
		"name": "qwen-turbo"
	}
]

# 找到vectorModels字段配置向量模型,直接在其本身的内容上覆盖修改 model 和 name 即可
# 注意这里的向量模型model和name一般在浏览器访问 oneapi 的时候,系统默认的有,也可以通过查找对应厂商的文档
"vectorModels": [
	{
		"model": "text-embedding-v1",
		"name": "text-embedding-v1"
	}
]

# 配置完成后重启
docker-compose down
docker-compose up -d

基础测试

新建知识库

新建应用