FastGPT 是由环界云团队开发的基于 LLM 大语言模型的知识库问答系统,提供开箱即用的数据处理、模型调用等能力。同时可以通过 Flow 可视化进行工作流编排,从而实现复杂的问答场景。FastGPT 已在 Github 获得 19.4k 个 star。
硅基流动的 SiliconCloud 是一个大模型云服务平台,并拥有自己的加速引擎。SiliconCloud 能帮助用户低成本、快速地进行开源模型的测试和使用。实际体验下来,他们家模型的速度和稳定性都非常不错,并且种类丰富,覆盖语言、向量、重排序、TTS、STT、绘图、视频生成等数十款模型,可以满足 FastGPT 中所有模型需求。
本文是由 FastGPT 团队编写的教程,将介绍完全使用 SiliconCloud 模型在本地开发部署 FastGPT 的方案。
1 获取 SiliconCloud 平台 API Key
- 打开 SiliconCloud 官网,并注册/登录账号。
- 完成注册后,打开 API 密钥 ,创建新的 API Key,点击密钥进行复制,以备后用。
2 修改 FastGPT 环境变量
OPENAI_BASE_URL=https://api.siliconflow.cn/v1 # 填写 SiliconCloud 控制台提供的 Api Key CHAT_API_KEY=sk-xxxxxx
FastGPT开发与部署文档:https://doc.fastgpt.cn
3 修改 FastGPT 配置文件
选取 SiliconCloud 中的模型作为 FastGPT 配置。这里配置了 Qwen2.5 72b 的纯语言和视觉模型;选择 bge-m3 作为向量模型;选择 bge-reranker-v2-m3 作为重排模型。选择 fish-speech-1.5 作为语音模型;选择 SenseVoiceSmall 作为语音输入模型。
注意:ReRank 模型仍需配置一次 API Key。
{ "llmModels": [ { "provider": "Other", // 模型提供商,主要用于分类展示,目前已经内置提供商包括:https://github.com/labring/FastGPT/blob/main/packages/global/core/ai/provider.ts, 可 pr 提供新的提供商,或直接填写 Other "model": "Qwen/Qwen2.5-72B-Instruct", // 模型名(对应OneAPI中渠道的模型名) "name": "Qwen2.5-72B-Instruct", // 模型别名 "maxContext": 32000, // 最大上下文 "maxResponse": 4000, // 最大回复 "quoteMaxToken": 30000, // 最大引用内容 "maxTemperature": 1, // 最大温度 "charsPointsPrice": 0, // n积分/1k token(商业版) "censor": false, // 是否开启敏感校验(商业版) "vision": false, // 是否支持图片输入 "datasetProcess": true, // 是否设置为文本理解模型(QA),务必保证至少有一个为true,否则知识库会报错 "usedInClassify": true, // 是否用于问题分类(务必保证至少有一个为true) "usedInExtractFields": true, // 是否用于内容提取(务必保证至少有一个为true) "usedInToolCall": true, // 是否用于工具调用(务必保证至少有一个为true) "usedInQueryExtension": true, // 是否用于问题优化(务必保证至少有一个为true) "toolChoice": true, // 是否支持工具选择(分类,内容提取,工具调用会用到。) "functionCall": false, // 是否支持函数调用(分类,内容提取,工具调用会用到。会优先使用 toolChoice,如果为false,则使用 functionCall,如果仍为 false,则使用提示词模式) "customCQPrompt": "", // 自定义文本分类提示词(不支持工具和函数调用的模型 "customExtractPrompt": "", // 自定义内容提取提示词 "defaultSystemChatPrompt": "", // 对话默认携带的系统提示词 "defaultConfig": {}, // 请求API时,挟带一些默认配置(比如 GLM4 的 top_p) "fieldMap": {} // 字段映射(o1 模型需要把 max_tokens 映射为 max_completion_tokens) }, { "provider": "Other", "model": "Qwen/Qwen2-VL-72B-Instruct", "name": "Qwen2-VL-72B-Instruct", "maxContext": 32000, "maxResponse": 4000, "quoteMaxToken": 30000, "maxTemperature": 1, "charsPointsPrice": 0, "censor": false, "vision": true, "datasetProcess": false, "usedInClassify": false, "usedInExtractFields": false, "usedInToolCall": false, "usedInQueryExtension": false, "toolChoice": false, "functionCall": false, "customCQPrompt": "", "customExtractPrompt": "", "defaultSystemChatPrompt": "", "defaultConfig": {} } ], "vectorModels": [ { "provider": "Other", "model": "Pro/BAAI/bge-m3", "name": "Pro/BAAI/bge-m3", "charsPointsPrice": 0, "defaultToken": 512, "maxToken": 5000, "weight": 100 } ], "reRankModels": [ { "model": "BAAI/bge-reranker-v2-m3", // 这里的model需要对应 siliconflow 的模型名 "name": "BAAI/bge-reranker-v2-m3", "requestUrl": "https://api.siliconflow.cn/v1/rerank", "requestAuth": "siliconflow 上申请的 key" } ], "audioSpeechModels": [ { "model": "fishaudio/fish-speech-1.5", "name": "fish-speech-1.5", "voices": [ { "label": "fish-alex", "value": "fishaudio/fish-speech-1.5:alex", "bufferId": "fish-alex" }, { "label": "fish-anna", "value": "fishaudio/fish-speech-1.5:anna", "bufferId": "fish-anna" }, { "label": "fish-bella", "value": "fishaudio/fish-speech-1.5:bella", "bufferId": "fish-bella" }, { "label": "fish-benjamin", "value": "fishaudio/fish-speech-1.5:benjamin", "bufferId": "fish-benjamin" }, { "label": "fish-charles", "value": "fishaudio/fish-speech-1.5:charles", "bufferId": "fish-charles" }, { "label": "fish-claire", "value": "fishaudio/fish-speech-1.5:claire", "bufferId": "fish-claire" }, { "label": "fish-david", "value": "fishaudio/fish-speech-1.5:david", "bufferId": "fish-david" }, { "label": "fish-diana", "value": "fishaudio/fish-speech-1.5:diana", "bufferId": "fish-diana" } ] } ], "whisperModel": { "model": "FunAudioLLM/SenseVoiceSmall", "name": "SenseVoiceSmall", "charsPointsPrice": 0 } }
4 重启 FastGPT
5 体验测试
测试对话和图片识别
随便新建一个简易应用,选择对应模型,并开启图片上传后进行测试。
可以看到,72B 的模型,性能非常快,这要是本地没几个 4090,不说配置环境,输出恐怕都要 30s 了。
测试知识库导入和知识库问答
新建一个知识库(由于只配置了一个向量模型,页面上不会展示向量模型选择)。
导入本地文件,直接选择文件,然后一路下一步即可。79 个索引,大概花了 20s 的时间就完成了。现在我们去测试一下知识库问答。
首先回到我们刚创建的应用,选择知识库,调整一下参数后即可开始对话。
对话完成后,点击底部的引用,可以查看引用详情,同时可以看到具体的检索和重排得分。
测试语音播放
继续在刚刚的应用中,左侧配置中找到语音播放,点击后可以从弹窗中选择语音模型,并进行试听。
测试语言输入
继续在刚刚的应用中的左侧配置中找到语音输入,点击后可以从弹窗中开启语言输入。
开启后,对话输入框中,会增加一个话筒的图标,点击可进行语音输入。
resumos
如果你想快速的体验开源模型或者快速的使用 FastGPT,不想在不同服务商申请各类 API Key,那么可以选择 SiliconCloud 的模型进行快速体验。