一、Ollama install
方式一:
官网下载
https://ollama.com/download
curl -fsSL https://ollama.com/install.sh | sh
方式二:
使用ModelScope下载
1、确保已通过pip install modelscope安装ModelScope
2、进入下载目录并运行安装脚本
modelscope download --model=modelscope/ollama-linux --local_dir ./ollama-linux
3、进入下载目录并运行安装脚本
cd ollama-linux
改权限
sudo chmod 777 ./ollama-modelscope-install.sh
运行
./ollama-modelscope-install.sh
二、deepseek下载
1、使用ollama在 Ollama 官网下载Models
举例:ollama run deepseek-r1:1.5b
2、测试ollama运行 http://localhost:11434/
Ollama is running
三、anythingLLM安装
anythingLLM参考网站 Home ~ AnythingLLM
docker部署 Local Docker Installation ~ AnythingLLM
1、安装docker
2、 下载镜像
docker pull mintplexlabs/anythingllm
3、运行容器
export STORAGE_LOCATION=$HOME/anythingllm && \
mkdir -p $STORAGE_LOCATION && \
touch "$STORAGE_LOCATION/.env" && \
docker run -d -p 3001:3001 \
--cap-add SYS_ADMIN \
-v ${STORAGE_LOCATION}:/app/server/storage \
-v ${STORAGE_LOCATION}/.env:/app/server/.env \
-e STORAGE_DIR="/app/server/storage" \
--add-host=host.docker.internal:host-gateway \
mintplexlabs/anythingllm
四、问题处理
1、anythingllm中没法访问ollama服务
因为anythingllm运行在docker中,没法访问ollama服务,修点如下:
(1)anythingllm端口映射,docker容器run时已经添加3001:3001
(2)虚拟 docker 网络内部的 Host 的 IP 默认不绑定到主机系统的端口 11434。要解决此问题并确保 Dockerized AnythingLLM 和 Ollama 服务之间的正确通信,必须将 Ollama 配置为绑定到 0.0.0.0 或特定 IP 地址。详见 Ollama 的常见问题
如果 Ollama 作为 systemd 服务运行,则应使用以下方法设置环境变量:systemctl
通过调用 编辑 systemd 服务。这将打开一个编辑器。
systemctl edit ollama.service
对于每个环境变量,在 section 下添加一行:Environment[Service]
[Service]
Environment="OLLAMA_HOST=0.0.0.0"
保存并退出。Ctrl + O
保存文件,Ctrl + X
退出编辑器。
重新加载并重新启动 Ollama:systemd
systemctl daemon-reload
systemctl restart ollama

五、API 访问
API http://localhost:3001/api/docs/
docs API Access & Keys ~ AnythingLLM
详情参考这个博主的分享 使用AnythingLLM的api调用-优快云博客
补充python调用方式,其他类似:
import requests
API_KEY = 'XXXXXXXXXXXXXXXXXXXXXXXXXX' # apikey
URL = 'http://localhost:3001/api/v1/workspace/workspace_xxxx/chat' # workspace名称
headers = {
'Authorization': f'Bearer {API_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json',
}
data = {
"mode": "chat",
"message": "What is 平和运动?"
}
response = requests.post(URL, headers=headers, json=data)
if response.status_code == 200:
result = response.json()
print("生成的回答:", result)
else:
print(f"请求失败,状态码: {response.status_code}")
六、云端部署
在云端访问anythingllm部署的AI服务,可以通过一个公网服务器(有公网ip),使用frp内网穿透技术,访问把本地GPU服务器。