╔══════════════════════════════════════╗
║ ║
║ 🧠 NexusMind 🧠 ║
║ ║
║ 智能科学推理通过思维图谱 ║
║ ║
╚══════════════════════════════════════╝
关于NexusMind的全面信息,包括详细的安装指南、使用指南、配置选项、API参考、贡献指南以及项目路线图,请访问我们的完整文档网站:
➡️ NexusMind 文档网站 (注意:此链接将在GitHub Pages站点通过新工作流部署后生效。)
NexusMind利用Neo4j图数据库执行复杂的科学推理,在其流水线阶段中管理图操作。它实现了**模型上下文协议(MCP)**以与AI应用程序如Claude Desktop集成,提供了一个高级科学推理思维图谱(ASR-GoT)框架,专为复杂的研究任务设计。
关键亮点:
项目组织如下(更多详情请参阅文档网站):
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.create.addLabels,apoc.merge.node)。没有APOC,应用程序将无法正常工作。您可以在APOC官方网站找到安装说明。config/settings.yaml(或相应的环境变量)正确指向您的Neo4j实例URI、用户名和密码。注意:提供的docker-compose.yml(用于开发)和docker-compose.prod.yml(用于生产)已经包含了一个带有预配置APOC库的Neo4j服务,当使用Docker Compose时满足此要求。
pyproject.toml中指定,例如Docker镜像使用Python 3.11.x或3.12.x,3.13.x)克隆仓库:
git clone https://github.com/SaptaDey/NexusMind.git
cd NexusMind
使用Poetry安装依赖:
poetry install
这会创建一个虚拟环境并安装pyproject.toml中指定的所有必要包。
激活虚拟环境:
poetry shell
配置应用程序:
# 复制示例配置
cp config/settings.example.yaml config/settings.yaml
# 根据需要编辑配置
vim config/settings.yaml
设置环境变量(可选):
# 创建.env文件用于敏感配置
echo "LOG_LEVEL=DEBUG" > .env
echo "API_HOST=0.0.0.0" >> .env
echo "API_PORT=8000" >> .env
运行开发服务器:
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可用。
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
快速启动Docker Compose:
# 构建并运行所有服务
docker-compose up --build
# 用于分离模式(后台)
docker-compose up --build -d
# 查看日志
docker-compose logs -f nexusmind
单独的Docker容器:
# 构建镜像
docker build -t nexusmind:latest .
# 运行容器
docker run -p 8000:8000 -v $(pwd)/config:/app/config nexusmind:latest
生产部署:
# 使用生产compose文件
docker-compose -f docker-compose.prod.yml up --build -d
APP_PORT覆盖的端口),因为这是FastAPI应用程序默认使用的端口。HEALTHCHECK指令,验证/health端点(例如http://localhost:8000/health)。确保Smithery.ai配置为使用此端点,如果需要特定的健康检查路径。Dockerfile和docker-compose.prod.yml作为理解容器设置的基础。根据Smithery.ai的要求进行调整。http://localhost:8000/docshttp://localhost:8000/healthhttp://localhost:8000/mcpNexusMind暴露的主要API端点是:
MCP协议端点:POST /mcp
asr_got.query方法的示例请求:
{
"jsonrpc": "2.0",
"method": "asr_got.query",
"params": {
"query": "分析微生物多样性与癌症进展之间的关系。",
"parameters": {
"include_reasoning_trace": true,
"include_graph_state": false
}
},
"id": "123"
}
initialize和shutdown。健康检查端点: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的一个潜在未来增强是实现持久会话。这将通过允许用户:
session_id关联,很可能存储在Neo4j数据库中。session_id,系统可以重新加载此保存的状态作为进一步处理的起点。实现持久会话将涉及开发强大的策略来:
这是一个显著的功能,可以极大地增强NexusMind的互动能力。欢迎社区成员参与设计和实现持久会话功能。
目前,NexusMind推理流水线的8个阶段是顺序执行的。为了优化复杂查询的性能或进一步优化性能,探索某些流水线部分的异步或并行执行是一个潜在的未来增强。
潜在的并行区域:
HypothesisStage为DecompositionStage识别的每个维度生成假设。为不同、独立的维度生成假设的过程可以潜在地并行化。例如,如果分解了三个维度,三个并行任务可以分别针对每个相应维度生成假设。EvidenceStage中,如果选择了多个假设进行评估,“计划执行”阶段(模拟证据收集)对于这些不同的假设可以并发执行。挑战和考虑因素:
实现并行阶段执行将引入需要仔细管理的复杂性:
GoTProcessor的整体控制流将变得更加复杂。尽管当前的顺序执行确保了清晰且易于管理的数据流,但在独立维度的假设生成等领域有针对性的并行化可能会为NexusMind未来的版本带来性能优势。这仍然是一个开放的研究和发展领域。
# 使用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)集成以及核心推理引擎的进一步改进。
有关我们计划的功能和长期目标的更多细节,请参