数学问题解决代理

一款智能数学问题解决代理,利用检索增强生成(RAG)和模型上下文协议(MCP)提供逐步解决方案并进行验证。

  • by SACHINBALHARA
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 SACHINBALHARA/Math-Routing-Agent-Agentic-RAG-with-MCP

使用说明

使用RAG和MCP的数学代理

一种智能数学问题解决代理,使用检索增强生成(RAG)和模型上下文协议(MCP)提供逐步解决方案并进行验证。

特性

  • 🔍 智能检索:基于FAISS的相关数学上下文语义搜索
  • 🔄 交叉注意力重新排序:使用交叉编码器改进上下文选择
  • ✍️ LaTeX格式:解决方案中的优美数学表达式
  • ✅ 符号验证:使用SymPy验证数学正确性
  • 🔒 AI网关:输入/输出验证和安全检查
  • 📝 MCP集成:完整的来源追踪和思维链记录
  • 🎯 信心评分:需要时自动标记以供人工审查

安装

  1. 克隆存储库
  2. 创建虚拟环境:
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
  1. 安装依赖项:
pip install -r requirements.txt

用法

命令行接口

使用CLI求解方程式:

python -m src.main solve "2x + 3 = 11"

为更详细的日志启用调试模式:

python -m src.main solve "x/2 + 4 = 7" --debug

Python API

from src.pipeline.enhanced_pipeline import EnhancedPipeline

# Initialize the pipeline
pipeline = EnhancedPipeline()

# Solve a math problem
result = pipeline.process_question("Solve: 3x - 6 = 9")

# Access the solution
steps = result["solution"]["steps"]
final_answer = result["solution"]["final_answer"]
confidence = result["solution"]["confidence"]

预热型号(可选)

如果您想在启动服务器之前预下载模型权重并初始化模型(建议用于稳定的首次请求),请运行预热脚本:

python scripts\warmup_models.py

或者用背景预热线程启动UI:

$env:PRELOAD_MODELS='1'; python src\ui\app.py

建筑

组件

  1. AI网关 (src/gateway/ai_gateway.py)

    • 输入净化
    • 个人身份信息检测
    • 输出验证
    • LaTeX格式强制
  2. 检索器 (src/retriever/retriever.py)

    • FAISS矢量存储集成
    • 语义相似度搜索
    • 批量检索支持
  3. 重排序器 (src/reranker/reranker.py)

    • 交叉注意力评分
    • 上下文相关性改进
    • Top-k选择
  4. 发电机 (src/generator/enhanced_generator.py)

    • 逐步生成解决方案
    • LaTeX格式化
    • 信心评分
  5. 符号验证器 (src/verification/symbolic_verifier.py)

    • 基于SymPy的方程验证
    • 步骤验证
    • 解决方案正确性检查

MCP实施

模型上下文协议(MCP)提供:

  • 组件之间的消息跟踪
  • 来源记录
  • 思维碎片链
  • 人工审查的证据标志

测试

运行测试套件:

python -m unittest discover tests

关于覆盖率报告:

pytest --cov=src tests/

局限性

  1. 目前支持:

    • 线性方程
    • 基本代数运算
    • 单变量方程
  2. 已知限制:

    • 尚不支持方程组
    • 复数处理有限
    • 方程式无图形输出

未来改进

  1. 交互式求解的Web界面
  2. 对方程组的支持
  3. 与计算机代数系统集成
  4. 增强的解释生成
  5. 学生技能水平适应

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 提交拉取请求

许可证

MIT许可证-有关详细信息,请参阅许可证文件