项目简介

Nexus是一个现代化的属性图数据库,专为读取密集型工作负载和混合RAG(检索增强生成)应用设计。它结合了图遍历和语义相似性搜索的强大功能,提供了强大的上下文管理能力。通过支持Model Context Protocol (MCP) 和 Universal Model Interoperability Protocol (UMICP),Nexus可以作为LLM应用的后端,以标准化的方式提供资源管理、工具调用和上下文信息服务。

主要功能点

  • 属性图数据库: 支持节点、关系和属性,提供高效的图遍历能力和Neo4j兼容的Cypher查询子集。
  • 原生向量搜索: 内置HNSW索引,实现快速近似最近邻(KNN)搜索,支持将向量相似性与图遍历结合的混合查询。
  • AI集成协议: 通过Model Context Protocol (MCP) 和 Universal Model Interoperability Protocol (UMICP) 协议,向LLM客户端提供上下文和功能调用,包括图生成、模式识别等AI辅助工具,增强LLM对复杂数据的理解能力。
  • 认证与安全: 支持API Key、JWT、RBAC和限速等功能,确保数据安全和访问控制。
  • 高可用与可伸缩: 路线图包括主从复制、自动故障转移、分片和集群协调,以满足生产环境的需求。
  • 代码关联分析: 能够从代码库数据中自动生成调用图、依赖图和数据流图,为LLM提供结构化的代码关系信息。

安装步骤

方式一:自动化安装 (推荐)

Linux/macOS: 打开终端,运行以下命令:

curl -fsSL https://raw.githubusercontent.com/hivellm/nexus/main/scripts/install.sh | bash

Windows: 打开PowerShell(以管理员身份),运行以下命令:

powershell -c "irm https://raw.githubusercontent.com/hivellm/nexus/main/scripts/install.ps1 | iex"

安装脚本将自动下载最新版本、安装'nexus-server'到系统路径,并创建系统服务(开机自启动)。

方式二:从源代码构建

  1. 克隆仓库:
    git clone https://github.com/hivellm/nexus
    cd nexus
  2. 构建 (发布模式): 确保已安装Rust nightly 1.85+ (edition 2024)。
    cargo +nightly build --release --workspace
  3. 运行服务器:
    ./target/release/nexus-server
    服务器默认在 'http://localhost:15474' 启动。

服务器配置 (适用于MCP客户端)

MCP客户端需要了解如何与Nexus服务器建立连接。以下是MCP客户端通常需要配置的关键信息,以及针对Nexus的建议值:

  • 服务器名称 ('server_name'): 一个可读的名称,例如 "Nexus Graph Database"。
  • 启动命令 ('command'): Nexus服务器的可执行文件路径。
    • 如果通过自动化脚本安装,Nexus通常会作为一个系统服务运行,此时客户端可能不需要直接提供启动命令。
    • 如果从源代码构建并手动运行,命令通常是 'target/release/nexus-server' (在Nexus仓库的根目录下执行)。
  • 启动参数 ('args'): 启动Nexus服务器时传递的命令行参数列表。Nexus服务器主要通过环境变量进行配置,因此此列表通常可以留空 '[]'。
  • 环境变量 ('env'): 启动Nexus服务器时设置的环境变量。重要变量包括:
    • 'NEXUS_ADDR': 服务器监听的IP地址和端口,例如设置为 '"0.0.0.0:15474"' 表示监听所有网络接口的15474端口。
    • 'NEXUS_DATA_DIR': 数据存储目录,例如 './data'。
    • 'NEXUS_AUTH_ENABLED': 是否启用API密钥认证。当'NEXUS_ADDR'设置为'0.0.0.0'时,必须设置为'"true"'来启用认证,否则服务器将拒绝启动。
    • 'RUST_LOG': 日志级别,例如 '"nexus_server=info"'。
  • 协议端点 ('protocol_endpoint'): MCP客户端连接到Nexus服务器MCP功能的完整URL。默认地址和端口下,其值应为 '"http://127.0.0.1:15474/mcp"'。如果服务器监听的IP和端口与默认值不同,请相应修改此URL。

基本使用方法

1. 执行Cypher查询

通过REST API执行图查询:

curl -X POST http://localhost:15474/cypher \
  -H "Content-Type: application/json" \
  -d '{
    "query": "MATCH (n:Person) WHERE n.age > 25 RETURN n.name, n.age ORDER BY n.age DESC LIMIT 10"
  }'

2. KNN向量搜索

执行原生向量相似性搜索:

curl -X POST http://localhost:15474/knn_traverse \
  -H "Content-Type: application/json" \
  -d '{
    "label": "Person",
    "vector": [0.1, 0.2, 0.3, ...], # 替换为实际的向量
    "k": 10
  }'

3. MCP协议集成 (LLM调用工具示例)

LLM客户端可以通过MCP协议调用Nexus提供的工具,例如生成代码库的调用图:

curl -X POST http://localhost:15474/mcp \
  -H "Content-Type: application/json" \
  -d '{
    "tool": "graph_generate",
    "params": {
      "graph_type": "call_graph",
      "scope": {
        "collections": ["codebase", "functions"],
        "file_patterns": ["*.rs"]
      }
    }
  }'

此命令将请求Nexus服务器执行'graph_generate'工具,生成一个Rust代码库的调用图。LLM客户端可以利用这些工具来获取结构化上下文信息,从而增强其对代码结构和功能理解。

信息

分类

数据库与文件