AI代码问题解决助手

CodeWhisper Forge是一款智能开发者助手,通过分析代码问题、预测解决方案成功率并自动生成修复代码,帮助开发者高效解决问题。

  • by Blebot0
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 Blebot0/TAMU-MCP-NSDK

使用说明

🛠️ CodeWhisper Forge

基于人工智能的问题解决与成功率预测

CodeWhisper Forge是一个智能开发人员助手,可以分析代码问题,根据历史数据预测解决方案的成功率,并可以自动生成修复程序。它使用Node.js和Python构建,结合了多种AI模型和数据源,提供全面的问题解决指导。


✨ 特性

🎯 问题解决预测器(IRP)

  • 分析类似的已关闭GitHub问题
  • 计算不同解决方案的成功率
  • 提供基于证据的建议和置信度评分

🤖 自动修复生成器(AFG)

  • 使用AI自动生成代码修复
  • 创建拉取就绪文件更改
  • 支持测试的干运行模式

🔍 智能查询分析

  • 使用Google Gemini AI进行智能查询理解
  • 自动提取关键字、技术堆栈和严重性
  • AI不可用时增强的回退系统

🌐 多源上下文

  • GitHub集成:问题、提交、存储库信息、存储库趋势
  • 堆栈溢出:与投票分数相关的问答
  • AI增强响应:包含代码示例的全面解决方案

🏗️ 建筑

┌─────────────────┐
│  Streamlit UI   │  (Python - app.py)
│   Port: 8501    │
└────────┬────────┘
         │ HTTP POST
         ▼
┌─────────────────┐
│  Express API    │  (Node.js - server.js)
│   Port: 3000    │
└────────┬────────┘
         │
         ├──► 🤖 Gemini AI (Query Analysis + Fix Generation)
         ├──► 🐙 GitHub API (Issues, Commits, Repos)
         ├──► 💡 Stack Overflow API (Q&A Search)
         └──► 🧠 Hugging Face (Optional)

📋 先决条件

  • Node.js >=18.x
  • python >= 3.8
  • npm 或 纱线
  • 点 (Python包管理器)

🚀 快速开始

1.️⃣ 克隆存储库

git clone <repository-url>
cd TAMU-MCP-NSDK

2.️⃣ 安装后端依赖关系

npm install

3.️⃣ 安装前端依赖项

pip install -r requirements.txt

4.️⃣ 配置环境变量

创建一个 .env 根目录中的文件:

cp .env.example .env

编辑 .env 使用API密钥:

# Required for AI features
GEMINI_API_KEY=your_gemini_api_key_here

# Optional but recommended
GITHUB_TOKEN=your_github_personal_access_token

# Optional
HF_TOKEN=your_huggingface_token
PORT=3000

5.️⃣ 启动后端服务器

node server.js

您应该看到:

🔥 CodeWhisper Forge v9 - WINNING EDITION
📡 Server: http://localhost:3000
✨ Features: Issue Resolution Predictor + Auto-Fix Generator

6.️⃣ 启动前端用户界面

在其中 新终端窗口:

streamlit run app.py

UI将在以下时间自动打开 http://localhost:8501


🔑 获取API密钥

Gemini API密钥(AI功能所需)

  1. 访问 谷歌人工智能工作室
  2. 使用您的Google帐户登录
  3. 单击“创建API密钥”
  4. 复制密钥并将其添加到您的 .env 文件

GitHub Token(可选但推荐)

  1. 首选 GitHub设置>开发者设置>个人访问令牌
  2. 点击“生成新令牌(经典)”
  3. 选择范围: public_repo, read:org
  4. 生成并复制令牌
  5. 将其添加到您的 .env 文件

备注:如果没有GitHub令牌,您将被限制为每小时60个API请求。

拥抱脸令牌(可选)

  1. 访问 拥抱面部设置
  2. 创建新的访问令牌
  3. 将其添加到您的 .env 文件

📖 用法

Web界面(推荐)

  1. 打开 http://localhost:8501 在浏览器中
  2. 输入您的查询(例如,“节点22获取时内存泄漏”)
  3. 指定GitHub存储库(所有者+名称)
  4. 启用功能:
    • ✅ 国际比较方案:问题解决预测器
    • 🤖 任意函数发生器:自动修复生成器
  5. 点击“⚡ 使用CodeWhisper Forge进行分析

API端点

发布 http://localhost:3000/mcp

请求正文:

{
  "query": "Memory leak with Node 22 fetch",
  "repoOwner": "vercel",
  "repoName": "next.js",
  "enableIRP": true,
  "enableAFG": {
    "dryRun": true,
    "base": "main"
  }
}

答复:

{
  "success": true,
  "analysis": { ... },
  "context": { ... },
  "predictions": { ... },
  "prPlan": { ... },
  "ai_response": "...",
  "metadata": { ... }
}

健康检查

获取 http://localhost:3000/health

{
  "status": "healthy",
  "gemini": true,
  "github_token": true,
  "now": "2025-11-09T12:00:00.000Z"
}

🎨 查询示例

查询 存储库 预期结果
“节点22读取时内存泄漏” vercel/next.js 性能分析、内存优化提示
“OAuth身份验证失败” supabase/auth 身份验证相关问题,智威汤逊解决方案
“webpack 5生成错误” webpack/webpack 构建配置修复
“反应水合不匹配” facebook/react SSR/水合溶液

📁 项目结构

TAMU-MCP-NSDK/
├── server.js              # Node.js Express backend
├── app.py                 # Python Streamlit frontend
├── package.json           # Node.js dependencies
├── requirements.txt       # Python dependencies
├── .env                   # Environment variables (create this)
├── .env.example          # Environment template
├── .gitignore            # Git ignore rules
└── README.md             # This file

🔧 配置

后端(server.js)

  • 端口:通过设置 PORT env变量(默认值:3000)
  • 缓存TTL:300秒(5分钟)
  • 超时:
    • GitHub API:10秒
    • 堆栈溢出:10秒
    • 人工智能生成:60秒

前端(app.py)

  • 基本URL:硬编码为 http://localhost:3000
  • 请求超时:90秒
  • 布局:宽模式,扩展侧边栏

🧪 功能深潜

问题解决预测器(IRP)

分析多达30个类似的已解决问题,以确定成功的解决方案模式:

  1. 成功指标:“此方法有效”、“已修复”、“解决”、“已经解决”

  2. 故障指示器:“不起作用”、“仍然损坏”、“同样的问题”

  3. 解决方案类型:

    • 升级依赖关系
    • 降级依赖性
    • 配置更改
    • 代码修复
    • 变通方案
  4. 置信水平:

    • 高:3+类似案例
    • 中等:2起类似案件
    • 低:1例或更少

自动修复生成器(AFG)

使用AI生成代码修复:

  1. 干运行模式 (默认):显示建议的更改,而不创建PR
  2. 直播模式:创建实际的GitHub分支和PR(需要 GITHUB_TOKEN)
  3. 输出:Base64编码文件内容、行数、更改原因

🐛 故障排除

后端无法启动

# Check if port 3000 is already in use
lsof -i :3000

# Kill the process if needed
kill -9 <PID>

“未配置Gemini API”

  • 验证 GEMINI_API_KEY 在 .env
  • 重新启动服务器: node server.js

“超过了GitHub API速率限制”

  • 添加 GITHUB_TOKEN 到 .env 将限制从每小时60个请求增加到5000个请求
  • 等待一小时以重置速率限制

前端无法连接到后端

  • 确保后端在端口3000上运行
  • 检查防火墙设置
  • 尝试 http://127.0.0.1:3000/health 在浏览器中

Python依赖项安装失败

# Upgrade pip first
pip install --upgrade pip

# Install with verbose output
pip install -r requirements.txt -v

🔒 安全说明

  • 永不承诺 .env 文件到版本控制
  • 对所有敏感数据使用环境变量
  • GitHub令牌应具有最小的所需作用域
  • 定期旋转API键
  • 应用前查看自动修复生成器更改

🚀 性能提示

  1. 启用GitHub令牌:大幅提高API限值
  2. 有选择地使用IRP:禁用简单查询以加快响应速度
  3. 缓存结果:后端对重复查询使用5分钟缓存
  4. 优化查询:要具体,以获得更好、更快的结果

🤝 贡献

这个项目是为TAMU黑客马拉松而建的。欢迎投稿!

开发环境设置

  1. 分叉存储库
  2. 创建要素分支: git checkout -b feature/amazing-feature
  3. 进行更改
  4. 彻底测试
  5. 承诺: git commit -m 'Add amazing feature'
  6. 推: git push origin feature/amazing-feature
  7. 打开拉取请求

📝 许可证

ISC许可证-请参阅 package.json 了解详情。


🙏 致谢

  • 谷歌双子座:AI驱动的查询分析
  • GitHub API:存储库和问题数据
  • 堆栈溢出API:社区解决方案
  • 溪流:漂亮的Python UI框架
  • Express.js:快速Node.js web框架

📞 支持

对于问题、疑问或反馈:

  1. 检查 故障排除 章节
  2. 审查API密钥配置
  3. 在GitHub上打开一个问题

🎯 路线图

  • []支持更多AI模型(Claude,GPT-4)
  • []GitLab和Bitbucket集成
  • []定制解决方案模式培训
  • []实时协作功能
  • []浏览器扩展
  • []VS代码扩展名

内置❤️ 对于开发人员,由开发人员