WSL2-Ubuntu 部署 Ollama+Open-WebUI+AngthingLLM
猫王Online
编辑于 2024年07月18日 12:34

# Welcome to Ubuntu 22.04.1 LTS

代码块
JavaScript
自动换行
复制代码
lsb_release -a
ip addr | grep inet |grep eth
nvidia-smi
复制成功

# 版本更新

代码块
JavaScript
自动换行
复制代码
sudo apt update -y
sudo apt install vim wget curl git -y
复制成功

# WSL2 开启Systemd

代码块
JavaScript
自动换行
复制代码
sudo vim /etc/wsl.conf
复制成功

[boot]

代码块
JavaScript
自动换行
复制代码
systemd=true
复制成功

Windows PowerShell下运行 (关闭后重启)

代码块
JavaScript
自动换行
复制代码
wsl --shutdown
复制成功

# Docker 安装

代码块
JavaScript
自动换行
复制代码
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker <username>
sudo systemctl list-unit-files| grep docker
sudo service docker start
复制成功

***********************************************************

docker 换源

阿里云 Docker 镜像加速服务页面:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

代码块
JavaScript
自动换行
复制代码
sudo vim /etc/docker/daemon.json
复制成功

添加以下内容(清华源)

代码块
JavaScript
自动换行
复制代码
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}

sudo systemctl daemon-reload
sudo systemctl restart docker
sudo docker info
复制成功

***********************************************************

# Ollama 安装 https://ollama.com/ https://github.com/ollama/ollama/blob/main/docs/linux.md https://github.com/ollama/ollama/blob/main/docs/faq.md

代码块
JavaScript
自动换行
复制代码
curl -fsSL https://ollama.com/install.sh | sh
ollama -v
sudo systemctl list-unit-files| grep ollama
复制成功

增加启动环境变量 (放开外部访问)

代码块
JavaScript
自动换行
复制代码
sudo vi /etc/systemd/system/ollama.service
复制成功

添加以下内容

代码块
JavaScript
自动换行
复制代码
Environment="OLLAMA_HOST=0.0.0.0:11434"
ExecStart=/usr/local/bin/ollama serve
复制成功

启动服务

代码块
JavaScript
自动换行
复制代码
sudo systemctl start ollama

curl http://localhost:11434
复制成功

显示 Ollama is running

代码块
JavaScript
自动换行
复制代码
ip addr | grep inet |grep eth
复制成功

显示 inet 172.22.142.228/20 brd 172.22.143.255 scope global eth0

代码块
JavaScript
自动换行
复制代码
curl http://172.22.142.228:11434
复制成功

----------------------------------------------------------------------------------------------------- Docker方式安装

代码块
JavaScript
自动换行
复制代码
docker pull ollama/ollama
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
docker exec -it ollama ollama run gemma:2b
docker exec -it ollama /bin/bash
复制成功

----------------------------------------------------------------------------------------------------- 下载模型

代码块
JavaScript
自动换行
复制代码
ollama pull gemma:2b
ollama list
复制成功

代码块
JavaScript
自动换行
复制代码
ollama run gemma:2b
复制成功

调用模型(命令行运行) >>> send a message (/? for help)

调用模型(Curl接口运行)

代码块
Shell
自动换行
复制代码
curl http://localhost:11434/api/chat -d '{"model": "gemma:2b","messages": [{ "role": "user", "content": "who are you" }]}'
复制成功

调用模型(Python代码调用,建议在conda下运行)

代码块
Shell
自动换行
复制代码
vim test.py

import requests
import json

def send_message_to_ollama(message, port=11434):
url = f"http://localhost:{port}/api/chat"
payload = {
"model": "gemma:2b",
"messages": [{"role": "user", "content": message}]
}
response = requests.post(url, json=payload)
if response.status_code == 200:
response_content = ""
for line in response.iter_lines():
if line:
response_content += json.loads(line)["message"]["content"]
return response_content
else:
return f"Error: {response.status_code} - {response.text}"

if __name__ == "__main__":
user_input = "who are you"
response = send_message_to_ollama(user_input)
print("Ollama's response:")
print(response)
复制成功

在 conda环境中运行Python脚本

代码块
Shell
自动换行
复制代码
conda activate tf
pip install requests
python test.py
conda deactivate
复制成功

# Open WebUI 部署 https://openwebui.com/ https://github.com/open-webui/open-webui

----------------------------------------------------------------------------------------------------- Docker方式安装

代码块
Shell
自动换行
复制代码
docker images
docker pull ghcr.io/open-webui/open-webui:main
复制成功

Ollama 在同一台电脑

代码块
JavaScript
自动换行
复制代码
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
复制成功

Ollama 在不同一台电脑

代码块
JavaScript
自动换行
复制代码
docker run -d -p 3000:8080 -e OLLAMA_BASE_URL=https://example.com -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
复制成功

更新 open-webui

代码块
JavaScript
自动换行
复制代码
docker run --rm --volume /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --run-once open-webui
复制成功

部署后启动(时间有点长) 打开网站 http://127.0.0.1:3000

先注册,登录后 登录后,选择模式(正常情况,会显示出刚才ollama已经下载好的模型)

***************************** #docker 没法访问时

代码块
JavaScript
自动换行
复制代码
sudo docker run -d --network=host -v open-webui:/app/backend/data -e OLLAMA_BASE_URL=http://127.0.0.1:11434 --name open-webui88 --restart always ghcr.io/open-webui/open-webui:main
复制成功

打开网站 http://127.0.0.1:8080 ***************************** -----------------------------------------------------------------------------------------------------

# AngthingLLM 部署 https://useanything.com

----------------------------------------------------------------------------------------------------- Docker方式安装

代码块
JavaScript
自动换行
复制代码
docker pull mintplexlabs/anythingllm:master
docker run -d -p 3001:3001 --restart always mintplexlabs/anythingllm:master
复制成功

----------------------------------------------------------------------------------------------------- 打开网站 http://localhost:3001/

完成安装后,先会要求配置大模型 LLM Preference 选择 Ollama Ollama Base URL 输入 http://172.22.142.228:11434 正常连通里,可以在 Chat Model Selection 选择Ollama已经下载的模型

选择嵌入模式和向量数据库 Embedding Preference 选择 AnythingLLM Embedder

向量数据库连接选择 Vector Database Connection 选择 LanceDB

配置完成后,给工作空间起个名字,即可进入AnythingLLM中。