前言
- 在服务器上用docker部署的librechat,它会自动把rag_api给部署好,rag_api是用来处理pdf等文件的,最后只需要在.env里添加一下RAG的配置就可以了。
但是我是在huggingface上部署的librechat,是没有自动把rag_api给部署好的。官方文档上没有说要怎么另外部署,找遍全网都没找到部署rag_api的教程,在两位佬的提示和帮助下成功部署rag_api服务。
- 实现效果如下:
部署
- 1.先根据官方文档部署,对照 环境变量文档进行填写,请注意记下JWT_SECRET的值,后面要用到,复制下面的官方空间,复制完之后就可以正常对话了,只是不能上传文件和图片,上传文件要部署rag_api,
上传图片要配置firebase的环境,
https://www.librechat.ai/docs/remote/huggingface
- 刚刚才发现配置firebase的环境后发送照片给4o会识别不出来,所以要把firebase关掉,关掉之后图片和文件是可以正常上传和识别的。
关掉firebase详细步骤
先fork一份下面这个仓库,然后编辑里面的librechat-hf.yaml,把fileStrategy: "firebase"删掉,然后点击右上角的raw,复制链接替换Dockerfile里的链接,如果别的各种ai的话。可以大删特删,删成像下面这样
GitHub - LibreChat-AI/librechat-config-yaml: LibreChat Config Files aka librechat.yaml Collection
- 如果只想要对话功能和上传图片功能可以用下面这个官方空间,不用配置firebase环境
– 自定义huggingface域名看这位佬的即可
- 2.以下步骤是实现pdf等文件的功能,不用上传文件功能的话可以不看。把huggingface部署完之后开始部署rag_api
- 首先先在 supabase建一个PostgreSQL +pgvector的数据库
详细步骤
记住数据库密码
等待部署完成,等一会然后刷新一下
点击侧边的数据库
点拓展,搜索vector,启用
然后点击左下角的设置,进去数据库设置,然后这五个值和数据库密码等会就要用在rag_api的环境变量里
- 其次在koyeb上进行容器部署
详细步骤
填入 Package librechat-rag-api-dev-lite · GitHub
然后批量编辑环境变量
然后填入以下环境变量,根据 rag_api项目的环境变量来填写,openai地址要带/v1,这里坑了我好久,要用有text-embedding-3-small模型的中转站或者自己的key
我找了好久才找到一个有这个模型的中转站。带aff,不带aff,注册送一刀,邀请一个人送0.5刀,一刀用单用text-embedding-3-small模型可以用特别久,在环境变量地址和sk直接填中转站的就好了,要放到自己的newapi里的话会调用不了。
需要注意的是JWT_SECRET为按官方文档里部署librechat时填写的JWT_SECRET环境变量的值
DB_HOST=
DB_PORT=
DEBUG_RAG_API=
EMBEDDINGS_MODEL=text-embedding-3-small
EMBEDDINGS_PROVIDER=openai
JWT_SECRET=
PDF_EXTRACT_IMAGES=false
POSTGRES_DB=postgres
POSTGRES_PASSWORD=
POSTGRES_USER=
RAG_OPENAI_API_KEY=sk-xxxxxxxxxx
RAG_OPENAI_BASEURL=https://xxxx.com/v1
VECTOR_DB_TYPE=pgvector
等待部署完成,复制容器地址,然后在huggingface的环境变量里添加RAG_API_URL,至此rag_api部署完成,
- 附上刚找到的koyeb保活项目
https://github.com/Jasondeepny/keepalive_kyb
最后配置firebase的环境,按照 官方的文档配置即可,然后在 huggingface的librechat.yaml
配置文件中设置以下内容即可
version: 1.0.8
cache: true
fileStrategy: "firebase"
- 到这里所有的部署完了,最终我目前在huggingface上的环境变量如下图