这里只是对于自己在部署过程中踩到的坑做个记录。
以anythingllm为平台,接入基于ollama运行deepseekr1通用模型、嵌入模型,使用milvus作为向量数据库。其中milvus和anythingllm均在docker desktop中运行。
一、ollama
1.首先在ollama官网下载并安装ollama。
2.然后在官网的model页面中,寻找需要下载的model,我这里需要下载一个通用的deepseekr1模型(大小根据自己配置选择,我的3060选择的是7b的模型)和一个嵌入模型。
在命令框中输入这里的指令就可以下载,可能需要kx上网。
ollama的默认地址:localhost:11434
这里通用聊天模型和嵌入模型就准备完毕了。
二、anythingllm
首先需要安装docker,我用的是windows系统,所以安装的是docker desktop,这个去官网安装即可。
在docker desktop中配置好镜像源之后,可以直接搜索到Anythingllm,,下载后在cmd命令行中:
1.设置存储目录set STORAGE_LOCATION=%USERPROFILE%\Documents\anythingllm
2.创建存储目录if not exist "%STORAGE_LOCATION%" mkdir "%STORAGE_LOCATION%"
3.创建 .env 文件 if not exist "%STORAGE_LOCATION%.env" echo. > "%STORAGE_LOCATION%.env"
关键配置项,在 .env 文件中,常见的配置项包括:
SERVER_PORT:指定服务器运行的端口。
JWT_SECRET:用于生成和验证 JWT(JSON Web Token)的密钥。
STORAGE_DIR:指定存储数据的路径。
LLM_PROVIDER:配置大语言模型提供者。
OLLAMA_BASE_PATH:配置 Ollama 服务的基础 URL 地址。
OPEN_AI_KEY:用于访问 OpenAI API 的密钥。
.env 文件中配置的内容会根据你的需求和使用的服务不同而有所变化。
4.在 CMD 中,你可以使用单行命令在Docker运行Anythingllm
docker run -d --name anythingllm --add-host=host.docker.internal:host-gateway --env STORAGE_DIR=/app/server/storage --health-cmd "/bin/bash /usr/local/bin/docker-healthcheck.sh || exit 1" --health-interval 60s --health-start-period 60s --health-timeout 10s -p 3001:3001/tcp --restart=always --user anythingllm -v %STORAGE_LOCATION%:/app/server/storage -v %STORAGE_LOCATION%.env:/app/server/.env -w /app mintplexlabs/anythingllm
这条 Docker 命令启动了一个 AnythingLLM 容器,并通过挂载宿主机的存储目录和 .env 文件,使得容器能够持续存储数据并加载配置。容器以后台运行,并提供 Web 服务,可以通过 http://localhost:3001 (localhost=本机IPv4地址)访问应用。
到这里anythingllm就跑起来了。然后再准备最后的向量数据库(这里使用Milvus)。
三、Milvus
参考https://blog.csdn.net/m0_54345753/article/details/136738293这个链接,在docker中安装milvus并运行。
用到的命令
C:\Users\用户名\milvus>docker compose ps 安装和启动
docker compose ps 查询信息
docker port milvus-standalone 19530/tcp 更改端口
minio的地址是http://127.0.0.1:9001(minio)或者localhost:9001(minio) minio的初始账号和密码都是minioadmin
milvus的地址是http://127.0.0.1:19530(milvus)或者http://localhost:19530
四、模型设置
这里就全部安装完成了,接下来打开浏览器输入anythingllm的地址http://localhost:3001。
之后在设置中设置通用模型,接下来一定要先设定嵌入模型,再设定向量数据库模型才不会报错。
这里有一个坑,如果在对话中报了
An error occurred while streaming response. network error或者
14 UNAVAILABLE: No connection established. Last error: connect ECONNREFUSED 127.0.0.1:19530 (2025-03-20T03:12:18.601Z)
两种错误,则是因为AnythingLLM在Docker容器中运行,需将嵌入模型和向量数据库的地址都改为宿主机的IP(如192.168.x.x)或Docker网络别名(如host.docker.internal)。