一、 什么是FastGPT?
FastGPT,是一个基于 LLM 大语言模型的知识库问答系统,提供开箱即用的数据处理、模型调用等能力。
同时可以通过 Flow 可视化进行工作流编排,从而实现复杂的问答场景!
二、 FastGPT知识库的部署架构和工作流程
首先当我们录入知识库时,FastGPT会用集成的向量模型对知识库中的文本进行分割,得到文本块。
利用embedding模型给出文本块的embedding,并利用向量数据库进行保存。
然后当用户给大模型输入问题后,问题输入与知识库通过大预言模型根据用户输入信息的embedding, 通过向量数据库检索得到最相关的文本片段,将提示词模板与用户提交问题及历史消息合并输入大语言模型。大语言模型进行结果组装返回给用户回答。
部署FastGPT需要部署的环境。
- Docker DeskTop
- OneAPI
- Ollama + LLM大模型以及 向量模型
关于Docker DeskTop怎么部署参看Windows系统安装Docker容器博客
什么是OneApi?
One API 是一个 OpenAI 接口管理 & 分发系统,可以通过标准的 OpenAI API 格式访问所有的大模型,开箱即用。
默认情况下,FastGPT 只配置了 GPT 的模型,如果你需要接入其他模型,需要进行一些额外配置。FastGPT 可以通过接入 One API 来实现对不同大模型的支持。
OneApi中渠道和令牌的关系及OneApi及FastGPT的工作流程
**渠道:**
OneApi 中一个渠道对应一个 Api Key,这个 Api Key 可以是GPT、微软、ChatGLM、文心一言的。一个Api Key通常可以调用同一个厂商的多个模型。
One API 会根据请求传入的模型来决定使用哪一个Key,如果一个模型对应了多个Key,则会随机调用。
**令牌:**
Api Key
访问 One API 所需的凭证,只需要这1个凭证即可访问One API上配置的模型。因此FastGPT中,只需要配置One API的baseurl和令牌即可。
**大致工作流程**
Api Key
客户端请求 One API
根据请求中的 model 参数,匹配对应的渠道(根据渠道里的模型进行匹配,必须完全一致)。如果匹配到多个渠道,则随机选择一个(同优先级)。
One API 向真正的地址发出请求。
One API 将结果返回给客户端。
常用的中文向量模型
mofanke/acge_text_embedding
shaw/dmeta-embedding-zh
m3e
bge-m3
三、安装FastGPT和OneAPI
通过GitHub下载FastGPT的Docker-compose 文件https://github.com/labring/FastGPT/blob/main/files/docker/docker-compose/docker-compose
和OneAPI的Config.json文件
https://github.com/labring/FastGPT/blob/main/projects/app/data/config.json
将两个文件放置到相同目录下,然后在文件浏览器窗口该目录下输入cmd命令,执行
docker-compose up -d
可以看到docker自动拉取镜像并安装执行,等到全部安装结束即可。
全部安装结束,我们即可打开本地http://ip:3001端口即是OneAPI的登录入口,默认用户名 root 密码123456。本地http://ip:3000即是FastGPT的登录入口,默认用户名root 密码1234。
四、下载并运行大模型和向量模型。
第一种方式:通过Ollama进行快速下载和运行:
登录ollama官网搜索下载大模型和向量模型,这步非常简单,直接命令行运行Ollama run+模型名称即可。ollama支撑常见的多种模型下载和运行。
譬如,大语言模型:llama3、qwen2、gema;
向量模型:mofanke/acge_text_embedding
shaw/dmeta-embedding-zh
bge-m3
以下是我已经下载并运行的模型。
第二种方式:通过其它方式进行下载和运行:
docker方式:
m3e
#GPU模式启动
docker run -d -p 6008:6008 --gpus all --name m3e --network fastgpt_fastgpt registry.cn-hangzhou.aliyuncs.com/fastgpt_docker/m3e-large-api
#CPU模式启动,并把m3e加载到fastgpt同一个网络
docker run -d -p 6008:6008 --name m3e --network fastgpt_fastgpt stawky/m3e-large-api
五、重新配置OneApi渠道以及修改Config.json文件并重启docker-compose。
config.json文件里面配置了示例的大模型名称和向量模型名称。我们根据本地的实际情况修改成自己的大模型