ubuntu部署fastGPT+oneApi
服务器:ubuntu20.04.6
基本环境:nodeJs 18 ,go 1.21.4,mysql 8.0.35
node管理器:nvm(用于管理node版本)
oneAPI
下载最新版 OneAPI
git clone https://githubfast.com/songquanpeng/one-api.git
安装 MySQL 8.0.35 并创建数据库
-
安装 MySQL 8.0.35:
sudo apt update sudo apt install mysql-server=8.0.35
-
登录 MySQL 并创建
oneapi
数据库:sudo mysql -u root -p mysql> CREATE DATABASE oneapi;
安装 Go 1.21.4 环境
-
下载 Go 1.21.4 安装包:
wget https://go.dev/dl/go1.21.4.linux-amd64.tar.gz
-
安装 Go 并配置环境变量:
sudo rm -rf /usr/local/go sudo tar -C /usr/local -xzf go1.21.4.linux-amd64.tar.gz
-
将 Go 安装路径加入环境变量:
在~/.profile
或~/.bashrc
文件中添加以下内容:export GOCACHE=$HOME/.cache/go-build export GOROOT=/usr/local/go export GOPATH=$HOME/go export GOBIN=$GOPATH/bin export PATH=$PATH:$GOROOT/bin:$GOBIN export PATH=$PATH:/usr/local/go/bin
-
使环境变量生效:
source ~/.profile
或
source ~/.bashrc
-
验证 Go 安装:
go version
输出类似
go version go1.21.4 linux/amd64
。
配置 Go 环境变量
在终端中设置 Go 环境变量 SQL_DSN
用于 OneAPI 连接本地数据库:
export SQL_DSN="<mysql用户名>:<密码>@tcp(localhost:3306)/oneapi"
构建前端
-
切换到
one-api/web/default
目录:cd one-api/web/default
-
切换 npm 源:
npm config set registry https://registry.npmmirror.com/
-
清除 npm 缓存:
npm cache clean --force
-
安装前端依赖并构建:
npm install npm run build
构建后端
-
切换到 OneAPI 项目目录:
cd /path/to/your/one-api
-
设置环境变量
#设置 GO111MODULE 为 on go env -w GO111MODULE=on #设置 GOPROXY 为 https://goproxy.cn go env -w GOPROXY=https://goproxy.cn
确认配置是否成功:
go env | grep GO111MODULE go env | grep GOPROXY
-
下载 Go 包:
go mod download
-
构建 OneAPI 可执行文件:
go build -ldflags "-s -w" -o one-api
-
增加可执行权限:
chmod u+x ./one-api
启动项目
-
启动 OneAPI 服务(默认端口号 3001):
./one-api --port 3001 --log-dir ./logs
-
如果修改端口号,需要同步修改 FastGPT 的 OneAPI 配置。
fastGPT
下载最新版 FastGPT
git clone https://githubfast.com/labring/FastGPT
安装数据库
-
安装 MongoDB 6.0.12
sudo apt update sudo apt install -y mongodb-org=6.0.12 mongodb-org-server=6.0.12 mongodb-org-shell=6.0.12 mongodb-org-mongos=6.0.12 mongodb-org-tools=6.0.12
-
安装 PostgreSQL 16 及 pgvector 扩展
sudo apt install -y postgresql-16 sudo -u postgres psql -c "CREATE EXTENSION IF NOT EXISTS vector;"
配置
前提
在终端命令行下切换到 fastGPT/projects/app
目录下。
复制配置文件
-
复制
.env.template
文件,生成.env.local
文件,修改.env.local
里的内容:cp .env.template .env.local
-
复制
data/config.json
文件,生成data/config.local.json
文件:cp data/config.json data/config.local.json
修改配置文件
配置 .env.local
文件(本地环境变量),主要修改数据库连接的变量:
FastGPT 配置
# MongoDB 数据库连接参数
MONGODB_URI=mongodb://127.0.0.1:27017/?authSource=admin
# PostgreSQL 数据库连接参数
PG_URL=postgresql://username:password@localhost:5432/postgres
OneAPI 配置
# OneAPI 基本地址
OPENAI_BASE_URL=http://<你的oneApi地址>/v1
# OneAPI 生成的令牌
CHAT_API_KEY=<oneApi生成的令牌>
修改 data/config.local.json
文件
{
"SystemParams": {
"vectorMaxProcess": 15,
"qaMaxProcess": 15,
"pgHNSWEfSearch": 100
},
"ChatModels": [
{
"model": "gpt-3.5-turbo-1106",
"name": "GPT35-1106",
"price": 0,
"maxContext": 16000,
"maxResponse": 4000,
"quoteMaxToken": 2000,
"maxTemperature": 1.2,
"censor": false,
"vision": false,
"defaultSystemChatPrompt": ""
}
],
"QAModels": [
{
"model": "gpt-3.5-turbo-16k",
"name": "GPT35-16k",
"maxContext": 16000,
"maxResponse": 16000,
"price": 0
}
],
"CQModels": [
{
"model": "gpt-3.5-turbo-1106",
"name": "GPT35-1106",
"maxContext": 16000,
"maxResponse": 4000,
"price": 0,
"toolChoice": true,
"functionPrompt": ""
}
],
"ExtractModels": [
{
"model": "gpt-3.5-turbo-1106",
"name": "GPT35-1106",
"maxContext": 16000,
"maxResponse": 4000,
"price": 0,
"toolChoice": true,
"functionPrompt": ""
}
],
"QGModels": [
{
"model": "gpt-3.5-turbo-1106",
"name": "GPT35-1106",
"maxContext": 1600,
"maxResponse": 4000,
"price": 0
}
],
"VectorModels": [
{
"model": "text-embedding-ada-002",
"name": "Embedding-2",
"price": 0.2,
"defaultToken": 700,
"maxToken": 3000
}
],
"ReRankModels": [],
"AudioSpeechModels": [
{
"model": "tts-1",
"name": "OpenAI TTS1",
"price": 0,
"baseUrl": "",
"key": "",
"voices": [
{ "label": "Alloy", "value": "alloy", "bufferId": "openai-Alloy" },
{ "label": "Echo", "value": "echo", "bufferId": "openai-Echo" },
{ "label": "Fable", "value": "fable", "bufferId": "openai-Fable" },
{ "label": "Onyx", "value": "onyx", "bufferId": "openai-Onyx" },
{ "label": "Nova", "value": "nova", "bufferId": "openai-Nova" },
{ "label": "Shimmer", "value": "shimmer", "bufferId": "openai-Shimmer" }
]
}
],
"WhisperModel": {
"model": "whisper-1",
"name": "Whisper1",
"price": 0
}
}
启动项目
在终端命令行下切换到 <你本地的fastGPT项目路径>
目录下。
赋予脚本执行权限
chmod -R +x ./scripts/
安装依赖
在代码根目录下执行以下命令,会安装根 package、projects 和 packages 内所有依赖:
pnpm i
切换到应用目录
cd projects/app
运行开发模式
pnpm dev