Skip to content

WeKnora大模型部署指南

WeKnora 是腾讯开源的 LLM 文档理解与语义检索框架:面向结构复杂、来源异构的企业文档,采用模块化流水线把解析→向量索引→智能召回→大模型生成串成可控的 RAG(检索增强生成)流程,支持深度内容理解与上下文感知回答,可用于知识库问答、资料检索与多格式文档场景的落地部署。

本文档将展示如何在 OpenCloudOS 9 操作系统上,通过一键安装脚本和容器镜像拉取,快速启动 WeKnora 框架和相关推理服务。

1.安装容器依赖

一键安装容器依赖

脚本下载地址:点击下载执行脚本

sudo ./auto_install.sh
备注:关于一键安装脚本详细代码请查看该链接

2.安装 ollama

2.1 安装方式

方式一:使用docker镜像(推荐)

docker run -d --name ollama --restart=always \
  -p 11434:11434 \
  -e OLLAMA_HOST=0.0.0.0:11434 \
  ollama/ollama:latest

方式二:下载安装脚本并安装(此方式比较慢)

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

2.2 验证

curl -sS http://localhost:11434/api/tags || echo "tags not ready"

3.准备模型(以 Qwen2.5 为例)

docker run -d --name ollama --restart=always \
  -p 11434:11434 \
  -e OLLAMA_HOST=0.0.0.0:11434 \
  ollama/ollama:latest

4.启动 WeKnora

4.1 下载WeKnora

git clone https://github.com/Tencent/WeKnora.git
cd WeKnora
cp .env.example .env

4.2 修改WeKnora/scripts/start_all.sh

如果过docker形式启动ollama,需要修改start_ollama,删除下面部分

    if ! command -v ollama &> /dev/null; then
        install_ollama
        if [ $? -ne 0 ]; then
            return 1
        fi
    fi

4.3 启动WeKnora

 ./scripts/start_all.sh

5.Web访问

5.1 新建知识库

输入图片说明

输入图片说明

5.2 选择模型

输入图片说明

5.3 上传文件

输入图片说明

5.4 访问

输入图片说明

6.自动化脚本

yum update -y
yum install docker git docker-compose git -y

mkdir -p /etc/docker
tee /etc/docker/daemon.json >/dev/null <<'EOF'
{
  "registry-mirrors": [
    "https://mirror.ccs.tencentyun.com",
    "https://docker.mirrors.ustc.edu.cn",
    "https://registry.docker-cn.com"
  ],
  "dns": ["119.29.29.29","223.5.5.5"],
  "max-concurrent-downloads": 3
}
EOF

systemctl daemon-reload
systemctl restart docker

#推荐容器方式部署ollama
docker run -d --name ollama --restart=always \
  -p 11434:11434 \
  -e OLLAMA_HOST=0.0.0.0:11434 \
  ollama/ollama:latest

curl -sS http://localhost:11434/api/tags || echo "tags not ready"
docker exec -it ollama ollama pull qwen2.5:7b-instruct


git clone https://github.com/Tencent/WeKnora.git
cd WeKnora
cp .env.example .env


ROOT="$(pwd)"
SH="$ROOT/scripts/start_all.sh"
ENVF="$ROOT/.env"
URL="http://localhost:11434"
TS="$(date +%s)"

[[ -f "$SH" ]] || { echo "找不到 $SH"; exit 1; }

# 备份
cp -a "$SH"   "$SH.bak.$TS"
[[ -f "$ENVF" ]] && cp -a "$ENVF" "$ENVF.bak.$TS" || true

# 1)  start_ollama()  get_ollama_base_url 后注入容器托管直接返回
if ! grep -q '容器托管.*跳过本地安装/启动' "$SH"; then
  # 仅在 start_ollama() 函数体范围内查找并插入
  if grep -q '^[[:space:]]*start_ollama[[:space:]]*()[[:space:]]*{' "$SH"; then
    sed -i '/^[[:space:]]*start_ollama[[:space:]]*()[[:space:]]*{/,/^[[:space:]]*}[[:space:]]*$/{
      /get_ollama_base_url/ a\
\ \ \ \ # 容器托管:跳过本地安装/启动(由容器/Compose 负责)\
\ \ \ \ IS_REMOTE=1; log_info "Ollama服务地址: $OLLAMA_URL (容器托管)"; return 0
    }' "$SH"
  else
    echo "未找到 start_ollama() 函数定义,放弃打补丁"; exit 1
  fi
fi

chmod +x "$SH"
exec "$SH"