在 FastGPT 中使用
本文会介绍完全使用 OpenAPI 模型来部署 FastGPT 的方案。
OpenAPI(布尔算力) 是一个以提供开源模型调用为主的平台,并拥有自己的加速引擎。帮助用户低成本、快速的进行开源模型的测试和使用。实际体验下来,他们家模型的速度和稳定性都非常不错,并且种类丰富,覆盖语言、向量、重排、TTS、STT、绘图、视频生成模型,可以满足 FastGPT 中所有模型需求。
如果你想部分模型使用 OpenAPI 的模型,可额外参考OneAPI接入布尔算力
1. 注册 OpenAPI 账号
- 点击注册布尔算力账号
- 进入控制台,获取 API key: https://models.openapi.cn
2. 修改 FastGPT 环境变量
OPENAI_BASE_URL=https://api.openapi.cn/v1
# 填写 OpenAPI 控制台提供的 Api Key
CHAT_API_KEY=sk-xxxxxx
3. 修改 FastGPT 配置文件
我们选取 OpenAPI 中的模型作为 FastGPT 配置。这里配置了:
- Qwen2.5 72b 的纯语言和视觉模型
- bge-m3 作为向量模型
- bge-reranker-v2-m3 作为重排模型
- fish-speech-1.5 作为语音模型
- SenseVoiceSmall 作为语音输入模型
注意:ReRank 模型仍需配置一次 Api Key
{
"llmModels": [
{
"provider": "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)
"usedInClassify": true, // 是否用于问题分类
"usedInExtractFields": true, // 是否用于内容提取
"usedInToolCall": true, // 是否用于工具调用
"usedInQueryExtension": true, // 是否用于问题优化
"toolChoice": true, // 是否支持工具选择
"functionCall": false, // 是否支持函数调用
"customCQPrompt": "",
"customExtractPrompt": "",
"defaultSystemChatPrompt": "",
"defaultConfig": {}
},
{
"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",
"name": "BAAI/bge-reranker-v2-m3",
"requestUrl": "https://api.openapi.cn/v1/rerank",
"requestAuth": "openapi 上申请的 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"
}
]
}
],
"whisperModel": {
"model": "FunAudioLLM/SenseVoiceSmall",
"name": "SenseVoiceSmall",
"charsPointsPrice": 0
}
}
4. 重启 FastGPT
5. 体验测试
5.1 测试对话和图片识别
随便新建一个简易应用,选择对应模型,并开启图片上传后进行测试:
可以看到,72B 的模型,性能还是非常快的,这要是本地没几个 4090,不说配置环境,输出怕都要 30s 了。
5.2 测试知识库导入和知识库问答
新建一个知识库(由于只配置了一个向量模型,页面上不会展示向量模型选择)
导入本地文件,直接选择文件,然后一路下一步即可。79 个索引,大概花了 20s 的时间就完成了。现在我们去测试一下知识库问答。
首先回到我们刚创建的应用,选择知识库,调整一下参数后即可开始对话:
对话完成后,点击底部的引用,可以查看引用详情,同时可以看到具体的检索和重排得分:
5.3 测试语音播放
继续在刚刚的应用中,左侧配置中找到语音播放,点击后可以从弹窗中选择语音模型,并进行试听:
5.4 测试语音输入
继续在刚刚的应用中,左侧配置中找到语音输入,点击后可以从弹窗中开启语音输入
开启后,对话输入框中,会增加一个话筒的图标,点击可进行语音输入:
总结
- 如果你想快速的体验开源模型或者快速的使用 FastGPT,不想在不同服务商申请各类 Api Key,那么可以选择 OpenAPI 的模型先进行快速体验。
- 如果你决定未来私有化部署模型和 FastGPT,前期可通过 OpenAPI 进行测试验证,后期再进行硬件采购,减少 POC 时间和成本。