fastgpt 部署的坑#2

252次阅读
没有评论

共计 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。

  1. 创建账号 session: 头像 -> settings -> 最底部 Developer settings -> Personal access tokens -> tokens(classic) -> 创建新 session,把一些看起来需要的权限勾上。
  2. 添加 session 到仓库: 仓库 -> settings -> Secrets and variables -> Actions -> 创建 secret
  3. 填写 secret: Name-GH_PAT, Secret-第一步的 tokens,这一步是为了把git相关的package传到dockerhub,因此package的Change package visibility换成This package is currently public.
fastgpt 部署的坑#2

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后台渠道修改

正文完
 
评论(没有评论)