返回市场
纽克斯思维-2.0

纽克斯思维-2.0

作者:SaptaDey2 星标更新:2025-06-10

项目介绍

🧠 NexusMind

<div align="center">
                                              ╔══════════════════════════════════════╗
                                              ║                                      ║
                                              ║           🧠 NexusMind 🧠           ║
                                              ║                                      ║
                                              ║     智能科学推理通过思维图谱        ║
                                              ║                                      ║
                                              ╚══════════════════════════════════════╝

智能科学推理通过思维图谱

版本 Python License <!-- 假设 LICENSE 文件会被添加 --> Docker FastAPI neo4j 最后更新

<!-- 添加一个 GitHub Actions 徽章,用于文档构建,一旦激活 --> <!-- [![文档](https://github.com/sapta-dey/NexusMind-2.0/actions/workflows/gh-pages.yml/badge.svg)](https://github.com/sapta-dey/NexusMind-2.0/actions/workflows/gh-pages.yml) --> </div> <div align="center"> <p><strong>🚀 下一代人工智能推理框架用于科学研究</strong></p> <p><em>利用图结构改变AI系统处理科学推理的方式</em></p> </div>

📚 文档

关于NexusMind的全面信息,包括详细的安装指南、使用指南、配置选项、API参考、贡献指南以及项目路线图,请访问我们的完整文档网站:

➡️ NexusMind 文档网站 (注意:此链接将在GitHub Pages站点通过新工作流部署后生效。)

🔍 概览

NexusMind利用Neo4j图数据库执行复杂的科学推理,在其流水线阶段中管理图操作。它实现了**模型上下文协议(MCP)**以与AI应用程序如Claude Desktop集成,提供了一个高级科学推理思维图谱(ASR-GoT)框架,专为复杂的研究任务设计。

关键亮点:

  • 使用基于图的推理处理复杂的科学查询
  • 动态置信度评分,具有多维评估
  • 使用现代Python和FastAPI构建,性能高
  • Docker化,便于部署
  • 模块化设计,易于扩展和定制
  • 通过MCP协议与Claude Desktop集成

📂 项目结构

项目组织如下(更多详情请参阅文档网站):

NexusMind/
├── 📁 .github/                           # GitHub特定文件(工作流程)
├── 📁 config/                             # 配置文件(settings.yaml)
├── 📁 docs_src/                           # MkDocs文档源文件
├── 📁 src/                                # 源代码
│   └── 📁 asr_got_reimagined/            # 主应用包
├── 📁 tests/                             # 测试套件
├── Dockerfile                            # Docker容器定义
├── docker-compose.yml                    # 开发用Docker Compose
├── docker-compose.prod.yml               # 生产用Docker Compose
├── mkdocs.yml                            # MkDocs配置
├── poetry.lock                           # Poetry依赖锁定文件
├── pyproject.toml                        # Python项目配置(Poetry)
├── pyrightconfig.json                    # Pyright类型检查器配置
├── README.md                             # 此文件
└── setup_claude_connection.py            # 设置Claude Desktop连接脚本(手动运行)

🚀 快速开始

部署前提条件

在运行NexusMind之前(无论是本地还是通过Docker,如果未使用提供的docker-compose.prod.yml,该文件已包含Neo4j),确保您有:

  • 正在运行的Neo4j实例:NexusMind需要连接到一个Neo4j图数据库。

    • APOC库:至关重要的是,Neo4j实例必须安装了APOC(Cypher上的精彩过程)库。应用程序推理阶段中的多个Cypher查询使用APOC过程(例如,apoc.create.addLabelsapoc.merge.node)。没有APOC,应用程序将无法正常工作。您可以在APOC官方网站找到安装说明。
    • 配置:确保您的config/settings.yaml(或相应的环境变量)正确指向您的Neo4j实例URI、用户名和密码。
    • 索引:为了最佳性能,确保创建适当的Neo4j索引。详情请参阅Neo4j索引策略

    注意:提供的docker-compose.yml(用于开发)和docker-compose.prod.yml(用于生产)已经包含了一个带有预配置APOC库的Neo4j服务,当使用Docker Compose时满足此要求。

前提条件

  • Python 3.11+(如pyproject.toml中指定,例如Docker镜像使用Python 3.11.x或3.12.x,3.13.x)
  • Poetry:用于依赖管理
  • DockerDocker Compose:用于容器化部署

安装和设置(本地开发)

  1. 克隆仓库

    git clone https://github.com/SaptaDey/NexusMind.git
    cd NexusMind
    
  2. 使用Poetry安装依赖

    poetry install
    

    这会创建一个虚拟环境并安装pyproject.toml中指定的所有必要包。

  3. 激活虚拟环境

    poetry shell
    
  4. 配置应用程序

    # 复制示例配置
    cp config/settings.example.yaml config/settings.yaml
    
    # 根据需要编辑配置
    vim config/settings.yaml
    
  5. 设置环境变量(可选):

    # 创建.env文件用于敏感配置
    echo "LOG_LEVEL=DEBUG" > .env
    echo "API_HOST=0.0.0.0" >> .env
    echo "API_PORT=8000" >> .env
    
  6. 运行开发服务器

    python src/asr_got_reimagined/main.py
    

    或者,为了更多的控制:

    uvicorn asr_got_reimagined.main:app --reload --host  0.0.0.0 --port 8000
    

    API将在http://localhost:8000可用。

Docker部署

graph TB
    subgraph "开发环境"
        A[👨‍💻 开发者] --> B[🐳 Docker Compose]
    end
    
    subgraph "容器编排"
        B --> C[📦 NexusMind 容器]
        B --> D[📊 监控容器]
        B --> E[🗄️ 数据库容器]
    end
    
    subgraph "NexusMind 应用程序"
        C --> F[⚡ FastAPI 服务器]
        F --> G[🧠 ASR-GoT 引擎]
        F --> H[🔌 MCP 协议]
    end
    
    subgraph "外部集成"
        H --> I[🤖 Claude Desktop]
        H --> J[🔗 其他AI客户端]
    end
    
    style A fill:#e1f5fe
    style B fill:#f3e5f5
    style C fill:#e8f5e8
    style F fill:#fff3e0
    style G fill:#ffebee
    style H fill:#f1f8e9
  1. 快速启动Docker Compose

    # 构建并运行所有服务
    docker-compose up --build
    
    # 用于分离模式(后台)
    docker-compose up --build -d
    
    # 查看日志
    docker-compose logs -f nexusmind
    
  2. 单独的Docker容器

    # 构建镜像
    docker build -t nexusmind:latest .
    
    # 运行容器
    docker run -p 8000:8000 -v $(pwd)/config:/app/config nexusmind:latest
    
  3. 生产部署

    # 使用生产compose文件
    docker-compose -f docker-compose.prod.yml up --build -d
    

特定部署平台注意事项

  • Smithery.ai:部署到Smithery.ai平台通常涉及直接使用提供的Docker镜像。
    • 查阅Smithery.ai的具体文档,了解如何部署自定义Docker镜像。
    • 端口配置:确保平台配置为公开端口8000(或通过APP_PORT覆盖的端口),因为这是FastAPI应用程序默认使用的端口。
    • 健康检查:Smithery.ai可能使用健康检查来监控容器状态。NexusMind的Docker镜像包含一个HEALTHCHECK指令,验证/health端点(例如http://localhost:8000/health)。确保Smithery.ai配置为使用此端点,如果需要特定的健康检查路径。
    • 提供的Dockerfiledocker-compose.prod.yml作为理解容器设置的基础。根据Smithery.ai的要求进行调整。
  1. 访问服务
    • API文档http://localhost:8000/docs
    • 健康检查http://localhost:8000/health
    • MCP端点http://localhost:8000/mcp

🔌 API端点

NexusMind暴露的主要API端点是:

  • MCP协议端点POST /mcp

    • 此端点用于与MCP客户端(如Claude Desktop)通信。
    • asr_got.query方法的示例请求:
      {
        "jsonrpc": "2.0",
        "method": "asr_got.query",
        "params": {
          "query": "分析微生物多样性与癌症进展之间的关系。",
          "parameters": {
            "include_reasoning_trace": true,
            "include_graph_state": false
          }
        },
        "id": "123"
      }
      
    • 支持的其他MCP方法包括initializeshutdown
  • 健康检查端点GET /health

    • 提供应用程序的简单健康状态。
    • 示例响应:
      {
        "status": "healthy",
        "version": "0.1.0" 
      }
      
      (注意:先前显示的时间戳字段不是当前健康检查响应的一部分。)

先前列出的高级API端点(例如/api/v1/graph/query)在当前版本中尚未实现,并预留用于未来开发。

会话处理(session_id

目前,API请求(例如asr_got.query)和响应中可用的session_id参数主要用于标识和跟踪单个完整的查询-响应周期。它还用于关联进度通知(如got/queryProgress)与原始查询。

虽然系统生成并使用session_id,但NexusMind目前不支持真正的多轮对话连续性,即从以前查询中自动加载和重用详细图状态或推理上下文的相同session_id。目前每个查询都是独立处理的。

未来增强:持久会话

NexusMind的一个潜在未来增强是实现持久会话。这将通过允许用户:

  1. 持久状态:存储来自查询生成的图状态和相关推理上下文,与session_id关联,很可能存储在Neo4j数据库中。
  2. 重新加载状态:当提交新的查询时,如果使用现有的session_id,系统可以重新加载此保存的状态作为进一步处理的起点。
  3. 细化和扩展:允许新查询与加载的图交互——例如,通过细化之前的假设、向现有结构添加新证据,或基于建立的上下文探索替代推理路径。

实现持久会话将涉及开发强大的策略来:

  • 在Neo4j中高效地存储和检索会话特定的图数据。
  • 管理会话数据的生命周期(例如,创建、更新、过期)。
  • 设计复杂的逻辑,以确定新查询如何合并、修改或扩展预先存在的会话上下文和图。

这是一个显著的功能,可以极大地增强NexusMind的互动能力。欢迎社区成员参与设计和实现持久会话功能。

未来增强:异步和并行阶段执行

目前,NexusMind推理流水线的8个阶段是顺序执行的。为了优化复杂查询的性能或进一步优化性能,探索某些流水线部分的异步或并行执行是一个潜在的未来增强。

潜在的并行区域:

  • 假设生成HypothesisStageDecompositionStage识别的每个维度生成假设。为不同、独立的维度生成假设的过程可以潜在地并行化。例如,如果分解了三个维度,三个并行任务可以分别针对每个相应维度生成假设。
  • 证据整合(部分):在EvidenceStage中,如果选择了多个假设进行评估,“计划执行”阶段(模拟证据收集)对于这些不同的假设可以并发执行。

挑战和考虑因素:

实现并行阶段执行将引入需要仔细管理的复杂性:

  • 数据一致性:并发操作,特别是写入Neo4j数据库的操作(例如,同时创建多个假设节点或证据节点),必须小心处理以确保数据完整性并避免竞态条件。并行执行的唯一ID生成方案需要稳健。
  • 事务管理:Neo4j事务需要适当管理并发写入。
  • 依赖管理:确保真正依赖于其他阶段输出的阶段(或阶段的部分)被正确排序至关重要。
  • 资源利用率:并行执行可能会增加资源需求(CPU、内存、数据库连接)。
  • 复杂性GoTProcessor的整体控制流将变得更加复杂。

尽管当前的顺序执行确保了清晰且易于管理的数据流,但在独立维度的假设生成等领域有针对性的并行化可能会为NexusMind未来的版本带来性能优势。这仍然是一个开放的研究和发展领域。

🧪 测试与质量保证

<div align="center"> <table> <tr> <td align="center">🧪<br><b>测试</b></td> <td align="center">🔍<br><b>类型检查</b></td> <td align="center">✨<br><b>代码格式化</b></td> <td align="center">📊<br><b>覆盖率</b></td> </tr> <tr> <td align="center"> <pre>poetry run pytest</pre> <pre>make test</pre> </td> <td align="center"> <pre>poetry run mypy src/</pre> <pre>pyright src/</pre> </td> <td align="center"> <pre>poetry run ruff check .</pre> <pre>poetry run ruff format .</pre> </td> <td align="center"> <pre>poetry run pytest --cov=src</pre> <pre>coverage html</pre> </td> </tr> </table> </div>

开发命令

# 使用Poetry运行全测试套件并生成覆盖率报告
poetry run pytest --cov=src --cov-report=html --cov-report=term

# 或使用Makefile进行默认测试运行
make test

# 运行特定测试类别(使用poetry)
poetry run pytest tests/unit/stages/          # 阶段特定测试
poetry run pytest tests/integration/         # 集成测试
poetry run pytest -k "test_confidence"       # 匹配模式的测试

# 类型检查和代码格式化(也可以通过Makefile目标运行:make lint,make check-types)
poetry run mypy src/ --strict                # 严格的类型检查
poetry run ruff check . --fix                # 自动修复代码格式问题
poetry run ruff format .                     # 格式化代码

# 前提交钩子(推荐)
poetry run pre-commit install                # 安装钩子
poetry run pre-commit run --all-files       # 运行所有钩子

# 查看Makefile中的其他有用目标,如'all-checks'。

🗺️ 路线图和未来方向

我们对NexusMind的未来有着令人兴奋的愿景!我们的路线图包括增强图可视化、与更多数据源(如Arxiv)集成以及核心推理引擎的进一步改进。

有关我们计划的功能和长期目标的更多细节,请参阅我们的路线图(也可在文档网站上查看)。

🗺️ 路线图和未来方向

我们对NexusMind的未来有着令人兴奋的愿景!我们的路线图包括增强图可视化、与更多数据源(如Arxiv)集成以及核心推理引擎的进一步改进。

有关我们计划的功能和长期目标的更多细节,请参