deepseek本地部署基于Linux系统(Ubuntu 22.04)Ollama、Cherry Studio和本地知识库系统

以下是一个详细的本地部署教程,整合Ollama、Cherry Studio和本地知识库系统。本教程基于Linux系统(Ubuntu 22.04),Windows系统可通过WSL2实现类似操作。


一、环境准备

1. 硬件要求
  • CPU: 推荐Intel i7及以上
  • 内存: 32GB及以上
  • 存储: 至少50GB可用空间
  • GPU: 可选(NVIDIA显卡推荐RTX 3090+)
2. 基础依赖安装
bash 复制代码
# 更新系统
sudo apt update && sudo apt upgrade -y

# 安装基础工具
sudo apt install -y docker.io docker-compose python3-pip git curl

# 安装NVIDIA驱动(如有GPU)
sudo apt install -y nvidia-driver-535 nvidia-container-toolkit
sudo systemctl restart docker

二、Ollama部署

1. 安装Ollama
bash 复制代码
curl -fsSL https://ollama.com/install.sh | sh
sudo systemctl enable ollama
sudo systemctl start ollama
2. 下载DeepSeek模型
bash 复制代码
# 查看可用模型列表
ollama list

# 下载DeepSeek模型(示例使用7B版本)
ollama pull deepseek-ai/deepseek-llm-7b-chat

# 启动模型服务(默认端口11434)
ollama serve

三、CherryML Studio部署

1. 通过Docker安装
bash 复制代码
mkdir cherryml && cd cherryml

# 创建docker-compose.yml
cat > docker-compose.yml <<EOF
version: '3.8'

services:
  cherryml:
    image: registry.cherryml.org/cherryml/cherryml:latest
    ports:
      - "8000:8000"
    volumes:
      - ./data:/data
    environment:
      - OLLAMA_BASE_URL=http://host.docker.internal:11434
EOF

# 启动服务
docker-compose up -d
2. 验证安装

访问 http://localhost:8000,应看到Cherry Studio的Web界面


四、本地知识库集成

1. 安装RAG框架
bash 复制代码
pip install langchain chromadb sentence-transformers
2. 创建知识库目录结构
bash 复制代码
mkdir knowledge_base && cd knowledge_base
mkdir -p data/raw data/processed vector_store
3. 知识库处理脚本(process.py
python 复制代码
from langchain.document_loaders import DirectoryLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.embeddings import HuggingFaceEmbeddings
from langchain.vectorstores import Chroma

# 加载文档(支持PDF/TXT/MD)
loader = DirectoryLoader('data/raw', glob="**/*.txt")
docs = loader.load()

# 文档切分
text_splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=50)
splits = text_splitter.split_documents(docs)

# 创建向量库
embedding = HuggingFaceEmbeddings(model_name="BAAI/bge-small-en-v1.5")
vector_db = Chroma.from_documents(
    documents=splits,
    embedding=embedding,
    persist_directory="vector_store"
)
vector_db.persist()
4. 运行处理脚本
bash 复制代码
# 将原始文档放入data/raw目录后执行
python process.py

五、系统集成

1. 创建集成脚本(query.py
python 复制代码
from langchain.chains import RetrievalQA
from langchain.llms import Ollama
from langchain.vectorstores import Chroma
from langchain.embeddings import HuggingFaceEmbeddings

# 初始化组件
llm = Ollama(base_url="http://localhost:11434", model="deepseek-llm-7b-chat")
embedding = HuggingFaceEmbeddings(model_name="BAAI/bge-small-en-v1.5")
vector_db = Chroma(persist_directory="vector_store", embedding_function=embedding)

# 创建问答链
qa_chain = RetrievalQA.from_chain_type(
    llm,
    retriever=vector_db.as_retriever(),
    chain_type="stuff"
)

# 执行查询
response = qa_chain.run("你的问题内容")
print(response)
2. 通过Cherry Studio API调用
python 复制代码
import requests

CHERRY_API = "http://localhost:8000/api/v1/chat"

payload = {
    "model": "deepseek",
    "messages": [{
        "role": "user",
        "content": "基于知识库回答:你的问题"
    }],
    "knowledge_base": True
}

response = requests.post(CHERRY_API, json=payload)
print(response.json())

六、系统优化

1. 性能优化配置
bash 复制代码
# Ollama配置优化(编辑/etc/systemd/system/ollama.service)
[Service]
Environment="OLLAMA_NUM_PARALLEL=2"
Environment="OLLAMA_KEEP_ALIVE=5m"
2. 安全设置
bash 复制代码
# 配置防火墙规则
sudo ufw allow 11434/tcp
sudo ufw allow 8000/tcp

七、常见问题排查

  1. 模型加载失败

    • 检查显存容量:nvidia-smi
    • 尝试量化版本模型:ollama pull deepseek-7b-chat:q4_0
  2. 知识库检索不准

    • 调整文本切分参数(chunk_size/chunk_overlap)
    • 更换embedding模型:model_name="BAAI/bge-large-en-v1.5"
  3. API连接问题

    • 验证服务状态:

      bash 复制代码
      curl http://localhost:11434/api/tags
      curl http://localhost:8000/api/v1/models

八、扩展功能

  1. 自动化更新知识库
bash 复制代码
# 创建watchdog监控目录变化
pip install watchdog
nohup python -c "from watchdog.observers import Observer; from watchdog.events import FileSystemEventHandler; import os; class Handler(FileSystemEventHandler): def on_modified(self, event): os.system('python process.py'); observer = Observer(); observer.schedule(Handler(), path='data/raw', recursive=True); observer.start(); observer.join()" &
  1. 多模型管理
    在Cherry Studio配置文件中添加:
yaml 复制代码
model_providers:
  - name: ollama
    type: ollama
    config:
      base_url: "http://localhost:11434"
    models:
      - name: deepseek-llm-7b-chat
      - name: llama2-13b

本教程可实现:

  • 本地运行70亿参数的DeepSeek模型
  • 通过Cherry Studio提供Web界面
  • 支持基于本地文档的问答系统
  • 每日可处理约50,000 tokens的查询请求(RTX 3090环境)

建议定期检查各组件GitHub仓库的更新:

相关推荐
小码农<^_^>9 分钟前
linux环境变量
java·linux·运维
sakabu10 分钟前
Linux安装MySQL数据库并使用C语言进行数据库开发
linux·c语言·数据库·笔记·mysql·数据库开发
唐青枫11 分钟前
Linux shift 命令使用详解
linux
古德赖可可16 分钟前
Linux之基本命令和格式
linux·运维
光芒Shine22 分钟前
【Linux-驱动开发-设备树 DTS】
linux·运维
zhyoobo27 分钟前
使用 Python 训练自己的 AI 模型:从数据预处理到深度学习
人工智能·python·深度学习
CQU_JIAKE1 小时前
3.24[Q]Linux
linux·运维·服务器
hylreg1 小时前
ROS2 部署大语言模型节点
人工智能·python·语言模型
十八只兔1 小时前
Jupyter Notebook :美化读取到的JSON格式的数据(以表格形式呈现)
python·jupyter·json·tabulate·python数据读取
Apache IoTDB1 小时前
IoTDB 常见问题 Q&A 第六期
linux·运维·服务器·数据库·iotdb