赞
踩
服务器 | GPU | 系统 |
---|---|---|
HP580 G8 | P40 | Rocky9.2 |
安装程序 |
---|
AnythingLLM |
前端界面Open WebUI |
ChatOllama |
ollama |
AnythingLLM 是 Mintplex Labs Inc. 开发的一款开源 ChatGPT 等效工具,
用于在安全的环境中与文档等进行聊天,专为想要使用现有文档进行智能聊天或构建知识库的任何人而构建。
Open WebUI 是针对 LLM 的用户友好的 WebUI,支持的 LLM 运行程序包括 Ollama
和 OpenAI 兼容的 API。
Open WebUI 系统旨在简化客户端(您的浏览器)和 Ollama API 之间的交互。
此设计的核心是后端反向代理,可增强安全性并解决 CORS 问题。
ChatOllama 是一个 Nuxt 3 + Ollama Web 应用程序。ChatOllama 允许您管理您的 Ollama 服务器,
并与世界各地的 LLM 聊天。
从功能上来说,ChatOllama 类似于 Open WebU 和 AnythingLLM 的混合体,既可以和 AI 聊天,
也可以用来构建自己专属的知识库
开源免费:Ollama是一个不收费的开源工具。
即插即用:它提供了预装好的大模型,免除了复杂的安装和下载流程。
用户友好:即便没有任何技术背景,Ollama也易于上手和使用。
跨平台兼容性:
Ollama支持各种设备,包括PC、Mac甚至是树莓派。
运行各种规模的模型,保证了出色的扩展性。
docker pull mintplexlabs/anythingllm
export STORAGE_LOCATION=/data/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" \
mintplexlabs/anythingllm
docker run -d -p 13000:8080 \
--add-host=host.docker.internal:host-gateway \
-v open-webui:/app/backend/data \
-e OLLAMA_BASE_URL=http://host.docker.internal:11434 \
--name open-webui \
--restart always dyrnq/open-webui:main
docker run -d -p 13000:8080 \
--gpus all --add-host=host.docker.internal:host-gateway \
-v open-webui:/app/backend/data \
--name open-webui \
--restart always ghcr.io/open-webui/open-webui:cuda
mkdir -p /data/chatollama/{data,db}
cd /data/chatollama
vim docker-compose.yml
把如下配置放到
version: '3.1'
services:
chromadb:
image: chromadb/chroma:latest
container_name: chatollama-db
restart: always
ports:
- "11431:8000"
volumes:
- ./data:/chroma/.chroma/index
chatollama:
image: 0001coder/chatollama:latest
#image: chatollama:local
container_name: chatollama-web
restart: always
#pull_policy: always
ports:
- "11432:3000"
volumes:
- ./db:/app/sqlite
environment:
- CHROMADB_URL=http://chromadb:8000
- DATABASE_URL=file:/app/sqlite/chatollama.sqlite
build:
context: .
dockerfile: Dockerfile
depends_on:
- chromadb
docker-compose up -d
如果没有 docker-compose
安装地址
https://github.com/docker/compose/releases
wget https://github.com/docker/compose/releases/download/v2.28.1/docker-compose-linux-x86_64
mv docker-compose-linux-x86_64 /usr/bin/docker-compose
chmod +x /usr/bin/docker-compose
docker-compose --version
数据库初始化
容器启动后,先不忙访问,还需要对 SQLite 数据库进行初始化处理
# 如果您是第一次启动,需要初始化 SQLite 数据库
docker-compose exec chatollama npx prisma migrate dev
如果不执行初始化,后面在创建知识库时会遇到下面的报错
Invalid `prisma.knowledgeBase.count()` invocation: The table `main.KnowledgeBase`
does not exist in the current database.
version: '3.1'
services:
chromadb:
image: chromadb/chroma:latest
container_name: chatollama-db
restart: always
ports:
- "11431:8000"
volumes:
- ./data:/chroma/.chroma/index
networks:
mynetwork:
ipv4_address: 172.24.0.200 # 指定 chromadb 的 IP 地址
chatollama:
image: 0001coder/chatollama:latest
container_name: chatollama-web
restart: always
ports:
- "11432:3000"
volumes:
- ./db:/app/sqlite
environment:
- CHROMADB_URL=http://172.24.0.200:8000 # 使用指定的 chromadb IP 地址
- DATABASE_URL=file:/app/sqlite/chatollama.sqlite
build:
context: .
dockerfile: Dockerfile
depends_on:
- chromadb
networks:
mynetwork:
ipv4_address: 172.24.0.201 # 指定 chatollama 的 IP 地址
networks:
mynetwork:
driver: bridge
ipam:
config:
- subnet: 172.24.0.0/16
在目录中执行如下命令
docker-compose up -d
如果没有 docker-compose
安装地址
https://github.com/docker/compose/releases
wget https://github.com/docker/compose/releases/download/v2.28.1/docker-compose-linux-x86_64
mv docker-compose-linux-x86_64 /usr/bin/docker-compose
chmod +x /usr/bin/docker-compose
docker-compose --version
数据库初始化
容器启动后,先不忙访问,还需要对 SQLite 数据库进行初始化处理
# 如果您是第一次启动,需要初始化 SQLite 数据库
docker-compose exec chatollama npx prisma migrate dev
如果不执行初始化,后面在创建知识库时会遇到下面的报错
Invalid `prisma.knowledgeBase.count()` invocation: The table `main.KnowledgeBase`
does not exist in the current database.
如果可能,清理掉现有的冲突网络。你可以通过以下命令列出所有 Docker 网络并删除冲突的网络:
docker network ls
docker network rm <network_id_or_name>
docker pull ollama/ollama
docker run --gpus "device=0" -e OLLAMA_FLASH_ATTENTI0N=1 \
--name ollama -p 11434:11434 -d ollama/ollama
注释:如果有四块GPU --gpus "device=" 指定使用哪一块显卡
从0开始 0是第一块 1是第二块
如果报错
docker: Error response from daemon:
could not select device driver "" with capabilities: [[gpu]].
上传到服务器的 /etc/yum.repos.d 中
yum -y install nvidia-container-runtime
yum install -y nvidia-docker2
然后执行
docker run --gpus "device=0" -e OLLAMA_FLASH_ATTENTI0N=1 \
--name ollama -p 11434:11434 -d ollama/ollama
如果有多个GPU
docker run --gpus "device=1" -e OLLAMA_FLASH_ATTENTI0N=1 \
--name ollama_01 -p 11450:11434 -d ollama/ollama
将 device 修改一下
将 映射端口改一下
将 名称改一下 即可
修改转到后端的端口:例如将 11434 修改 11400
cd /var/lib/docker/containers/ 这个地址是docker存储地址
一个容器ID 就是一个文件夹 ,进去之后找到要修改的容器ID开头的文件夹
config.v2.json ## 配置文件config
hostconfig.json ## 配置文件hostconfig
vim comfig.v2.json
修改ExposedPorts 参数的值为要替换的端口
"ExposedPorts":{"11400/tcp":
vim hostconfig.json
PortBindings 参数的值为要替换的端口
"PortBindings":{"11400/tcp"
这两个配置文件,这以下需要注意的问题:
两个配置都需要更改,同时更改的内容需要一样
更改完成之后需要对docker服务重启,而不是docker容器重启
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://dockerproxy.com",
"https://registry.docker-cn.com",
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com",
"https://ccr.ccs.tencentyun.com"
],
"ipv6": false,
"max-concurrent-downloads": 10,
"log-driver": "json-file",
"log-level": "warn",
"log-opts": {
"max-size": "10m",
"max-file": "3"
},
"data-root": "/data/docker",
"runtimes": {
"nvidia": {
"path": "/usr/bin/nvidia-container-runtime",
"runtimeArgs": []
}
},
"default-runtime": "nvidia"
}
systemctl daemon-reload
systemctl restart docker
最好用的模型:
ollama run qwen:32b
ollama run qwen2:latest
ollama run qwen2:7b-instruct-q8_0
docker run -it --rm --name test --gpus all nvidia/cuda
https://blog.csdn.net/wbsu2004/article/details/136443260
https://blog.csdn.net/wbsu2004/article/details/136930945
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。