Linux 服务器

发布于 更新于

AI总结: 本文介绍了在Linux系统上安装和配置Ollama的步骤,包括使用curl命令下载并解压缩Ollama,设置系统服务以便长期使用,手动启动服务,查询和拉取模型,以及如何与模型进行交互和测试接口。此外,还提供了关于RAG(Retrieval-Augmented Generation)技术的介绍及其在AnythingLLM中的应用,包括docker安装和nginx配置。最后,提到了监控GPU使用情况的方法和相关链接。 优化建议: 1. 在安装步骤中,可以增加对系统依赖的检查,确保用户在安装前满足所有要求。 2. 提供更详细的错误处理和故障排除步骤,以帮助用户解决可能遇到的问题。 3. 在配置nginx时,可以添加SSL证书的配置说明,以增强安全性。 4. 对于RAG的介绍,可以提供更多实际应用案例,以便用户更好地理解其价值。 5. 增加对模型性能和使用限制的说明,帮助用户合理选择和使用模型。

ollama安装

可以按照官方的安装手册进行安装, 这里仅记录自己的操作步骤方便记忆. Linux安装ollama手册

curl -fsSL https://ollama.com/install.sh | sudo bash

使用N卡的话, 建议使用安装脚本安装, 会安装相关驱动并配置. 如官网下载速度太慢, 可自己下载包并修改脚本

82c82,84
< $SUDO tar -C "$OLLAMA_INSTALL_DIR" -xzf ollama-linux-amd64.tgz
---
> curl --fail --show-error --location --progress-bar \
>     "https://ollama.com/download/ollama-linux-${ARCH}.tgz${VER_PARAM}" | \
>     $SUDO tar -xzf - -C "$OLLAMA_INSTALL_DIR"

PS: 以Ubuntu 14.04.5 LTS为例

下载安装ollama v0.5.7

将压缩包解压到/usr目录, 可以不用再配置环境变量直接调用

sudo tar -C /usr -xzf ollama-linux-amd64.tgz

查询压缩包的结构

# tar -tvf ollama-linux-amd64.tgz
drwxr-xr-x root/root         0 2025-01-17 00:47 ./
drwxr-xr-x root/root         0 2025-01-17 00:47 ./bin/
-rwxr-xr-x root/root  30064856 2025-01-17 00:47 ./bin/ollama
drwxr-xr-x root/root         0 2025-01-17 00:47 ./lib/
drwxr-xr-x root/root         0 2025-01-17 00:52 ./lib/ollama/
lrwxrwxrwx root/root         0 2025-01-17 00:52 ./lib/ollama/libcudart.so.12 -> libcudart.so.12.4.127
-rwxr-xr-x root/root 441938896 2025-01-17 00:52 ./lib/ollama/libcublasLt.so.12.4.5.8
lrwxrwxrwx root/root         0 2025-01-17 00:49 ./lib/ollama/libcudart.so.11.0 -> libcudart.so.11.3.109
lrwxrwxrwx root/root         0 2025-01-17 00:49 ./lib/ollama/libcublas.so.11 -> libcublas.so.11.5.1.109
lrwxrwxrwx root/root         0 2025-01-17 00:52 ./lib/ollama/libcublas.so.12 -> ./libcublas.so.12.4.5.8
-rwxr-xr-x root/root    619192 2025-01-17 00:52 ./lib/ollama/libcudart.so.11.3.109
-rwxr-xr-x root/root 109604768 2025-01-17 00:52 ./lib/ollama/libcublas.so.12.4.5.8
-rwxr-xr-x root/root    707904 2025-01-17 00:52 ./lib/ollama/libcudart.so.12.4.127
-rwxr-xr-x root/root 263770264 2025-01-17 00:49 ./lib/ollama/libcublasLt.so.11.5.1.109
lrwxrwxrwx root/root         0 2025-01-17 00:49 ./lib/ollama/libcublasLt.so.11 -> libcublasLt.so.11.5.1.109
drwxr-xr-x root/root         0 2025-01-17 01:15 ./lib/ollama/runners/
drwxr-xr-x root/root         0 2025-01-17 01:03 ./lib/ollama/runners/cuda_v11_avx/
-rwxr-xr-x root/root   9885296 2025-01-17 01:03 ./lib/ollama/runners/cuda_v11_avx/ollama_llama_server
-rwxr-xr-x root/root 979085896 2025-01-17 01:01 ./lib/ollama/runners/cuda_v11_avx/libggml_cuda_v11.so
drwxr-xr-x root/root         0 2025-01-17 01:17 ./lib/ollama/runners/rocm_avx/
-rwxr-xr-x root/root   9930480 2025-01-17 01:17 ./lib/ollama/runners/rocm_avx/ollama_llama_server
-rwxr-xr-x root/root 451342832 2025-01-17 01:15 ./lib/ollama/runners/rocm_avx/libggml_rocm.so
drwxr-xr-x root/root         0 2025-01-17 01:01 ./lib/ollama/runners/cuda_v12_avx/
-rwxr-xr-x root/root   9873136 2025-01-17 01:01 ./lib/ollama/runners/cuda_v12_avx/ollama_llama_server
-rwxr-xr-x root/root 1237676328 2025-01-17 00:59 ./lib/ollama/runners/cuda_v12_avx/libggml_cuda_v12.so
drwxr-xr-x root/root          0 2025-01-17 00:47 ./lib/ollama/runners/cpu_avx2/
-rwxr-xr-x root/root    9860720 2025-01-17 00:47 ./lib/ollama/runners/cpu_avx2/ollama_llama_server
drwxr-xr-x root/root          0 2025-01-17 00:47 ./lib/ollama/runners/cpu_avx/
-rwxr-xr-x root/root    9840240 2025-01-17 00:47 ./lib/ollama/runners/cpu_avx/ollama_llama_server
-rwxr-xr-x root/root  121866104 2025-01-17 00:49 ./lib/ollama/libcublas.so.11.5.1.109
lrwxrwxrwx root/root          0 2025-01-17 00:52 ./lib/ollama/libcublasLt.so.12 -> ./libcublasLt.so.12.4.5.8

启动ollama

长期使用可以按照安装手册, 添加ollama到系统服务中.

系统服务

[Unit]
Description=Ollama Service
After=network-online.target

[Service]
ExecStart=/usr/local/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="PATH=/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"
Environment="OLLAMA_HOST=0.0.0.0"
Environment="OLLAMA_MODELS=/data/ollama/models"
Environment="OLLAMA_ORIGINS=*"
Environment="OLLAMA_DEBUG=1"

[Install]
WantedBy=default.target

OLLAMA_HOST设置为0.0.0.0 允许局域网访问

OLLAMA_MODELS 指定模型路径 防止系统盘空间不足

OLLAMA_ORIGINS设置跨域, 可在chatgptBox中使用

OLLAMA_DEBUG 设置debug模式, 可查看用户请求的参数信息

$ netstat -an | grep 11434
tcp6       0      0 :::11434                :::*                    LISTEN

# tcp6:表示这是一个 TCP IPv6 协议的连接。
# 0(第一个):表示接收队列中的数据包数量为 0。
# 0(第二个):表示发送队列中的数据包数量为 0。
# :::11434:表示服务监听在所有 IPv6 地址(:: 是 IPv6 的通配符)的 11434 端口。
# :::*:表示服务接受来自任何远程地址和端口的连接。
# LISTEN:表示该端口处于监听状态,等待连接。

手动启动

nohup /usr/bin/ollama serve &

命令执行

查询本地已下载的模型

$ ollama list
NAME                ID              SIZE      MODIFIED
deepseek-r1:1.5b    a42b25d8c10a    1.1 GB    24 hours ago

拉取模型

ollama pull deepseek-r1:1.5b

启动模型 直接在命令行进行交互

$ ollama run deepseek-r1:1.5b
>>> 你是什么
<think>

</think>

您好!我是由中国的深度求索(DeepSeek)公司开发的智能助手DeepSeek-R1。如您有任何任何问题,我会尽我所能为您提供帮助。

测试接口

curl -L -X POST 'http://127.0.0.1:11434/v1/chat/completions' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
  "messages": [
    {
      "content": "You are a helpful assistant",
      "role": "system"
    },
    {
      "content": "Hi",
      "role": "user"
    }
  ],
  "model": "deepseek-r1:1.5b",
  "frequency_penalty": 0,
  "max_tokens": 2048,
  "presence_penalty": 0,
  "response_format": {
    "type": "text"
  },
  "stop": null,
  "stream": false,
  "stream_options": null,
  "temperature": 1,
  "top_p": 1,
  "tools": null,
  "tool_choice": "none",
  "logprobs": false,
  "top_logprobs": null
}'

nginx配置

location /ollama/ {
    proxy_pass http://127.0.0.1:11434/;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
}

客户端

设置->模型服务->Ollama

API密钥: 空

API地址: http://mydomain.com/ollama/v1/

添加模型: deepseek-r1:1.5b

在助手页设置选择默认模型为上述模型 即可进行聊天

Image

Image

支持联网搜索以及RAG设置

anythingllm

AnythingLLM 是一个功能强大且灵活的开源平台,旨在帮助用户轻松构建和部署基于大型语言模型 (LLM) 的私有化应用程序。

RAG(Retrieval-Augmented Generation)增强信息检索和生成模型,能够从大规模知识库中检索相关信息并生成高质量的反馈。 简单来讲,采用RAG就需要把你的私域数据向量化,然后存储到向量数据库中,支持向量检索配合LLM大模型一起提供更专业的回复。 RAG是一种结合了信息检索和大模型(LLM)的技术,在对抗大模型幻觉、高效管理用户本地文件以及数据安全保护等方面具有独到的优势。

要求: 服务器安装docker

"registry-mirrors": [
    "https://docker.hpcloud.cloud/",
    "https://docker.m.daocloud.io/",
    "https://docker.unsee.tech/",
    "https://docker.1panel.live/",
    "http://mirrors.ustc.edu.cn/",
    "https://docker.chenby.cn/",
    "http://mirror.azure.cn/",
    "https://dockerpull.org/",
    "https://dockerhub.icu/",
    "https://hub.rat.dev/"
  ]

install.sh 安装脚本

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" \
mintplexlabs/anythingllm

执行该脚本会在当前用户目录下anythingllm目录安装服务

nginx配置

location / {
    proxy_pass http://127.0.0.1:3001;
}

配置AnythingLLM

嵌入模型 AnythingLLM Embedder(默认) nomic-embed-text

ollama pull nomic-embed-text

接口文档: http://127.0.0.1:3001/api/docs

首次访问时按导引进行模型配置, 配置URL后会自动获取支持的模型列表

人工智能提供商 -> LLM首选项

LLM提供商: Ollama

Ollama Model: deepseek-r1:1.5b

Ollama Base URL: http://mydomain.com/ollama

新工作区

创建工作区后, 可通过上传图标按钮, 上传自有文档添加到工作区中 也可以连接GitHub Repo, GitLab Repo, YouTube Transcript, Bulk Link Scraper, Confluence

Image

嵌入式对话

可新增嵌入式对话, 按需配置后(需选择工作区), Show Code复制代码, 将代码复制到空白html的

内, 可直接打开html测试

Image

监控gpu使用情况

watch -n 1 nvidia-smi

相关链接

ollama

ollama常用模型

ollama模型列表

DeepSeek技术专题:部署教程、一线玩法、原理解析

TI-ONE 训练平台 快速部署和体验 DeepSeek 系列模型

Deepseek官方提示词库

RAGFlow

Ollama免费服务