mirror of
https://github.com/Tencent/WeKnora.git
synced 2026-06-04 13:30:32 +08:00
- Added a new `.env.lite.example` file for the Lite version, providing a minimal configuration template. - Updated `.env.example` to remove deprecated variables and include new Docreader settings. - Enhanced Docker configurations to support the Lite version, including a new Dockerfile for the Docreader service. - Introduced a Makefile target for building and running the Lite version, along with packaging capabilities. - Created GitHub workflows for building and releasing Lite binaries, including Homebrew formula support. - Implemented a new service file for managing the Lite version as a system service. This update enables a streamlined, single-binary deployment of WeKnora, reducing external dependencies and simplifying setup.
5.0 KiB
5.0 KiB
WeKnora Lite
零外部依赖的单二进制部署模式。无需 Docker、PostgreSQL、Redis,适合快速体验和小规模私有部署。
架构
| 组件 | 标准版 | Lite 版 |
|---|---|---|
| 数据库 | PostgreSQL | SQLite (WAL) |
| 向量检索 | pgvector / Qdrant / ES | sqlite-vec (vec0) |
| 关键词检索 | ParadeDB BM25 / ES | SQLite FTS5 |
| 消息队列 | Redis + Asynq | 内存 SyncTaskExecutor |
| 会话存储 | Redis | 内存 |
| 流管理 | Redis / 内存 | 内存 |
| 文件存储 | MinIO / COS / 本地 | 本地 |
| 文档解析 | DocReader (gRPC) | 不可用(文本/段落导入可用) |
| 前端 | Nginx 容器 | Go 内置静态文件服务 |
快速开始
方式一:Homebrew 安装(macOS / Linux,推荐)
brew tap Tencent/weknora https://github.com/Tencent/WeKnora
brew install weknora-lite
安装完成后,推荐使用 brew services 以后台服务方式运行:
brew services start weknora-lite # 启动服务(开机自动启动)
brew services info weknora-lite # 查看运行状态
# 首次启动自动创建配置文件 ~/.config/weknora/.env.lite
# 数据存储在 ~/.local/share/weknora/
# 访问 http://localhost:8080
常用服务管理命令:
brew services stop weknora-lite # 停止服务
brew services restart weknora-lite # 重启服务(修改配置后需重启)
brew services info weknora-lite # 查看状态
日志位于 $(brew --prefix)/var/log/weknora-lite.log。
也可以前台直接运行:
weknora-lite
如需修改配置(LLM 服务地址、安全密钥等):
$EDITOR ~/.config/weknora/.env.lite
brew services restart weknora-lite # 修改配置后重启生效
LLM 服务:WeKnora Lite 需要一个 OpenAI 兼容的 LLM 服务来提供对话和 Embedding 能力。 可以使用 Ollama(本地)、通义千问、OpenAI 等任何兼容服务, 在配置文件中设置对应的地址和 API Key 即可。
方式二:下载预编译包
从 GitHub Releases 下载对应平台的 tarball:
| 文件 | 平台 |
|---|---|
WeKnora-lite_*_linux_amd64.tar.gz |
Linux x86_64 |
WeKnora-lite_*_linux_arm64.tar.gz |
Linux ARM64 |
WeKnora-lite_*_darwin_amd64.tar.gz |
macOS Intel |
WeKnora-lite_*_darwin_arm64.tar.gz |
macOS Apple Silicon |
# 1. 解压
tar xzf WeKnora-lite_v0.2.0_darwin_arm64.tar.gz
cd WeKnora-lite_v0.2.0_darwin_arm64
# 2. 配置
cp .env.lite.example .env.lite
# 编辑 .env.lite,配置 LLM 服务地址和安全密钥
# 3. 运行
set -a && source .env.lite && set +a
./WeKnora-lite
# 访问 http://localhost:8080
方式三:从源码构建
前置条件:Go 1.22+(需要 CGO)、C 编译器 (gcc/clang)、Node.js 22+(前端构建)。
make run-lite
配置
Lite 模式通过 .env.lite 文件配置(模板见 .env.lite.example)。关键环境变量:
DB_DRIVER=sqlite # 使用 SQLite
DB_PATH=./data/weknora.db # 数据库文件路径
RETRIEVE_DRIVER=sqlite # SQLite 检索引擎 (FTS5 + sqlite-vec)
STORAGE_TYPE=local # 本地文件存储
LOCAL_STORAGE_BASE_DIR=./data/files
STREAM_MANAGER_TYPE=memory # 内存流管理
# REDIS_ADDR= # 留空 = 不使用 Redis
OLLAMA_BASE_URL=http://127.0.0.1:11434
完整配置参见 .env.lite.example。
后台运行
Homebrew 用户(macOS / Linux)
Homebrew 安装后直接使用 brew services 管理,详见上方「快速开始 → 方式一」。
Linux systemd(tarball 安装)
tarball 中附带 weknora-lite.service 模板,按需修改路径后安装:
# 创建用户和目录
sudo useradd -r -s /sbin/nologin weknora
sudo mkdir -p /opt/weknora/data
sudo cp WeKnora-lite web/ .env.lite /opt/weknora/
sudo chown -R weknora:weknora /opt/weknora
# 安装并启动服务
sudo cp weknora-lite.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now weknora-lite
# 管理
sudo systemctl status weknora-lite # 查看状态
sudo journalctl -u weknora-lite -f # 查看日志
功能限制
与标准版相比,Lite 版有以下限制:
- 文档解析:不支持文件上传和 URL 导入的自动解析(PDF/Word/Excel 等)。可使用文本和段落方式手动导入。
- 向量检索:sqlite-vec 使用精确 KNN(非近似),适合 10 万条以下的小规模数据集。
- 并发:SQLite 单写者模型,高并发写入场景下性能不如 PostgreSQL。
- 任务队列:无持久化队列,进程重启后未完成的异步任务会丢失。
- 知识图谱:默认禁用 (
NEO4J_ENABLE=false)。 - Agent Skills 沙箱:默认禁用 (
WEKNORA_SANDBOX_MODE=disabled)。
数据目录
默认所有数据存储在 ./data/ 目录下:
data/
├── weknora.db # SQLite 数据库
├── weknora.db-wal # WAL 日志
└── files/ # 上传文件
备份只需复制整个 data/ 目录。