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仓库的更新:

相关推荐
长流小哥14 分钟前
Linux网络编程实战:从字节序到UDP协议栈的深度解析与开发指南
linux·c语言·开发语言·网络·udp
恶霸不委屈24 分钟前
突破精度极限!基于DeepSeek的无人机航拍图像智能校准系统技术解析
人工智能·python·无人机·deepseek
u01037310628 分钟前
Django REST Framework (DRF)
后端·python·django
雨中夜归人30 分钟前
自动化测试工具playwright中文文档-------14.Chrome 插件
python·测试工具·自动化·pytest·playwright
极小狐1 小时前
极狐GitLab 功能标志详解
linux·运维·服务器·elasticsearch·gitlab·极狐gitlab
lixy5791 小时前
深度学习之自动微分
人工智能·python·深度学习
一一Null1 小时前
Access Token 和 Refresh Token 的双令牌机制,维持登陆状态
android·python·安全·flask
钢铁男儿1 小时前
Python 文本和字节序列(处理文本文件)
开发语言·python
雾原2 小时前
Red Hat Enterprise Linux (RHEL)系统部署
linux
您8132 小时前
二十、FTP云盘
linux·服务器·网络