Sign inSign up

zhangyq/openviking

By zhangyq

•Updated 4 months ago

企业级 RAG 知识库服务器,集成 MCP 协议支持

Image
0

4.1K

zhangyq/openviking repository overview

⁠OpenViking

企业级 RAG 知识库服务器,集成 MCP 协议支持

OpenViking 是一个高性能的检索增强生成(RAG)知识库服务,支持文档管理、语义搜索、多模态理解,并提供 MCP (Model Context Protocol) 服务器集成。


⁠说明

本项目是基于 volcengine/OpenViking⁠ 的个人改造版本,原仓库为开源项目。本镜像仅用于个人使用习惯的调整,未对原项目做任何商业化的修改或分发。


⁠核心功能增强

⁠1. MCP (Model Context Protocol) 集成

MCP 服务器端点直接集成到 API Server 中,无需单独进程:

工具说明
query_toolRAG 问答(语义搜索 + LLM 生成答案)
search_tool纯语义搜索,返回相关文档
create_upload_session创建文件上传会话
add_resource_tool添加文档/URL/内容资源

特性:

  • 端点路径: /mcp
  • 协议: JSON-RPC 2.0
  • 多租户支持
  • 复用 API Server 认证机制
⁠2. 异步会话 API
功能说明
异步提交wait=false 参数支持后台处理
消息去重防止重复消息处理
任务跟踪配合 /tasks API 查询异步任务状态
⁠3. 媒体处理增强
  • ZIP 文件解压时自动检测单根目录
  • 避免创建多余的临时目录层级
⁠4. 路径去重优化
  • 智能移除 URI 中重复的连续目录名
  • 保留合法的重复目录结构

⁠版本信息

项目值
版本号v0.2.6
镜像地址zhangyq/openviking
API 端口1933
MCP 端点/mcp

⁠支持的平台

架构支持
linux/amd64✅
linux/arm64❌

⁠镜像标签

标签说明
main最新开发版本
v0.2.6稳定版本

⁠快速开始

⁠1. 准备配置文件
# 编辑 docker-compose.yml
vim docker-compose.yml
# API Server (1933) with integrated MCP endpoint (/mcp)
services:
  openviking:
    image: zhangyq/openviking:main
    container_name: openviking
    ports:
      - "1933:1933"
    volumes:
      # 配置文件挂载(包含 embedding 和 vlm 配置)
      - ./ov.conf:/app/ov.conf
      # 数据目录挂载(持久化存储)
      - ./data:/app/data
    healthcheck:
      test: ["CMD-SHELL", "curl -fsS http://127.0.0.1:1933/health || exit 1"]
      interval: 30s
      timeout: 5s
      retries: 3
      start_period: 60s
    restart: unless-stopped
    environment:
      # OpenViking 配置文件路径
      - OPENVIKING_CONFIG_FILE=/app/ov.conf
      # API Server 配置
      - API_HOST=0.0.0.0
      - API_PORT=1933

networks:
  default:
    name: openviking-net
    driver: bridge
# 编辑 ov.conf,填入你的 API 密钥
vim ov.conf
{
  "server": {
    "host": "0.0.0.0",
    "port": 1933,
    "root_api_key": "change-me-to-a-secure-random-key"
  },
  "storage": {
    "workspace": "/app/data"
  },
  "embedding": {
    "dense": {
      "api_base": "https://api.siliconflow.cn/v1",
      "api_key": "your-api-key-here",
      "provider": "openai",
      "dimension": 1024,
      "model": "Qwen/Qwen3-Embedding-8B"
    }
  },
  "vlm": {
    "api_base": "https://api.siliconflow.cn/v1",
    "api_key": "your-api-key-here",
    "provider": "openai",
    "model": "Pro/Qwen/Qwen2.5-7B-Instruct"
  }
}
⁠2. 创建数据目录
# 创建空白数据目录(用于持久化存储)
mkdir -p data
⁠3. 启动服务
# 启动容器
docker compose up -d

# 查看日志
docker compose logs -f

# 检查健康状态
curl http://localhost:1933/health
⁠4. 服务端点
端点说明
http://localhost:1933/health健康检查
http://localhost:1933/mcpMCP JSON-RPC 端点
http://localhost:1933/api/v1/REST API
⁠5. 连接 MCP 服务器

Claude CLI 配置:

claude --dangerously-skip-permissions --mcp-config '{
  "mcpServers": {
    "openviking": {
      "type": "http",
      "url": "http://10.10.10.10:1933/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}'

⁠目录结构

openviking-server/
├── docker-compose.yml      # Docker Compose 配置
├── ov.conf                 # 配置文件(需自行创建)
└── data/                   # 数据目录(持久化存储)

docker-compose.yml 挂载说明:

宿主机路径容器路径说明
./ov.conf/app/ov.conf配置文件
./data/app/data数据持久化目录

⁠常用命令

# 启动服务
docker compose up -d

# 停止服务
docker compose down

# 重启服务
docker compose restart

# 查看日志
docker compose logs -f openviking

# 进入容器
docker exec -it openviking bash

# 更新镜像
docker compose pull
docker compose up -d

⁠相关链接

Tag summary

Content type

Image

Digest

sha256:713deb4b6…

Size

321.8 MB

Last updated

4 months ago

docker pull zhangyq/openviking