共计 3023 个字符,预计需要花费 8 分钟才能阅读完成。
部署方式一
fastgpt有两种部署方式,一个是利用sealos,每天大概4.7元,其实很便宜,而且服务器在新加坡,openai api调取不需要梯子。
教程:
https://sealos.io/docs/examples/ai-applications/install-fastgpt-on-desktop
按照sealos(看来也是fastgpt作为sealos内部人搞的项目也是热点示范案例了)官方教程直接跑起来就行。
部署方式二
如果是自己部署,十分推荐用docker,github的docs/deploy里面甚至还有bash脚本,升级也是十分方便。同时建议配置自己的github repo action,这样可以很简单的更新自己的git内容,缺点是需要梯子或者代理转发。
https://github.com/labring/FastGPT/blob/main/docs/deploy/docker.md
Git Action 自动打包镜像
.github 里拥有一个 git 提交到 main 分支时自动打包 amd64 和 arm64 镜像的 actions。你仅需要提前在 git 配置好 session。
- 创建账号 session: 头像 -> settings -> 最底部 Developer settings -> Personal access tokens -> tokens(classic) -> 创建新 session,把一些看起来需要的权限勾上。
- 添加 session 到仓库: 仓库 -> settings -> Secrets and variables -> Actions -> 创建 secret
- 填写 secret: Name-GH_PAT, Secret-第一步的 tokens,这一步是为了把git相关的package传到dockerhub,因此package的Change package visibility换成This package is currently public.

DOCKER_IMAGE_NAME 需要把名字写全 例如 azoth07/fastgpt
nginx转发
fastgpt作者提供的nginx.conf有误的,
建议是:https://github.com/zhengjie9510/openai-proxy
or:https://github.com/gpt4thewin/docker-nginx-openai-api-cache
or:
# ChatGPT-API
location ^~ /
{
if ($request_method = 'OPTIONS') {
return 204;
}
add_header Access-Control-Allow-Origin "*";
add_header Access-Control-Allow-Headers "Authorization,Cache-Control,Content-Type";
# Restrict access to a specific IP address
allow IP;
allow IP;
deny all;
proxy_pass https://api.openai.com;
proxy_set_header Host api.openai.com;
# Remove the following two lines to make the client IP anonymous
#proxy_set_header X-Real-IP $remote_addr;
#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Accept-Encoding "";
proxy_ssl_session_reuse off;
proxy_ssl_server_name on;
proxy_buffering off;
proxy_max_temp_file_size 0;
resolver 8.8.8.8 ipv6=off;
resolver_timeout 10s;
}
不过利用sealos海外机组作为nginx转发切实十分低成本
cloudflare worker 转发
参考:https://github.com/labring/FastGPT/blob/main/docs/deploy/proxy/cloudflare.md
经过测试默认的1w worker转发数确实遭不住,毕竟我测试导入100w的数据(T.T)
oneapi
fastapi的docker-compose自带oneapi的部署,oneapi支持很多国内openai代理和自建的转发,部分可以查询余额,若想单独部署参考:
https://github.com/songquanpeng/one-api
虽说fastgpt环境有oneapi 配置 推荐使用 one-api 管理key的ONEAPI_URL,但是我实践下认为还是用部署后的oneapi的地址和key直接替代fastgpt的docker-compose.yml环境参数OPENAI_BASE_URL和key比较理想
PG数据优化
结合sealos和docker部署,用navicat载入数据库然后进行命令行,或者修改docs/deploy/fastgpt/pg/init.sql
CREATE INDEX modeldata_id_desc_idx ON modeldata (id DESC);
CREATE INDEX IF NOT EXISTS modelData_userId_index ON modelData USING HASH (user_id);
CREATE INDEX IF NOT EXISTS modelData_kbId_index ON modelData USING HASH (kb_id);
CREATE INDEX IF NOT EXISTS idx_model_data_md5_q_a_user_id_kb_id ON modelData (md5(q), md5(a), user_id, kb_id);
CREATE INDEX IF NOT EXISTS vector_index ON modeldata USING ivfflat (vector vector_ip_ops) WITH (lists = 100);
SET ivfflat.probes = 10;
本地化部署思路
https://github.com/xusenlinzy/api-for-open-llm
https://github.com/xusenlinzy/api-for-open-llm/blob/44b1f8857fe57758f64bc2b6acf93974df566f88/SCRIPT.md?plain=1#L20
把带lora的chatglm2和 m3e embed载入成openai style api
python api/app.py \
–port 80 \
–allow-credentials \
–model_path THUDM/chatglm-6b \
–embedding_name GanymedeNil/text2vec-large-chinese \
–adapter_model_path
然后修改OPENAI_BASE_URL,如果部署oneapi就更容易了,直接在oneapi后台渠道修改