Skip to content

codewithwu/devops-code-assistant

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DevOps 智能代码助手

一个基于 LangChain 和 FastAPI 构建的智能代码分析与助手工具,支持代码分析、测试生成和文档生成功能。

🌟 项目特性

alt text

  • 🔍 智能代码分析 - 自动识别代码风险、安全漏洞和性能问题
  • 🧪 自动化测试生成 - 基于代码逻辑生成完整的 pytest 单元测试
  • 📚 智能文档生成 - 自动创建规范的 API 文档和代码注释
  • ⚡ 高性能缓存 - 基于 Redis 的智能缓存系统,提升响应速度
  • 🌐 现代化界面 - 响应式 Web 界面,支持文件上传和拖拽操作
  • 🔒 安全可靠 - 支持跨域请求,文件内容安全处理

🚀 快速开始

环境要求

  • Python 3.8+
  • Redis 服务器
  • Ollama (本地 LLM 服务)

安装步骤

  1. 克隆项目
git clone https://github.com/your-username/devops-code-assistant.git
cd devops-code-assistant
  1. 安装依赖
uv sync
  1. 启动 Redis 服务
# Ubuntu/Debian
sudo apt update
sudo apt install redis-server
sudo systemctl start redis

# 或者使用 Docker
docker run -d -p 6379:6379 redis:alpine
  1. 配置 Ollama
# 安装 Ollama (参考: https://ollama.ai/)
# 拉取模型 (推荐使用代码模型)
ollama pull codellama:7b
ollama pull llama3.1:8b
  1. 启动应用
python app.py
  1. 访问应用

📁 项目结构

devops-code-assistant/
├── app.py              # 主 API 服务(支持文件上传)
├── utils/
│   └── core_tools.py  # 代码分析工具 + 测试生成工具 + 文档生成工具
├── templates/
│   └── index.html            # 前端界面
├── static/                   # 静态资源目录
├── uploads/                  # 临时文件目录
├── pyproject.toml          # Python 依赖
└── README.md                # 项目说明

🔧 API 接口

代码分析

POST /api/analyze
Content-Type: multipart/form-data

Body:
- file: 代码文件 (.py, .js, .java, .cpp, .c, .html, .css)
- instruction: 分析要求 (可选)

测试生成

POST /api/generate-tests
Content-Type: multipart/form-data

Body:
- file: 代码文件 (.py, .txt)
- target: 测试目标 (可选,默认"所有函数")

文档生成

POST /api/generate-docs
Content-Type: multipart/form-data

Body:
- file: 代码文件 (.py, .txt)
- target: 文档目标 (可选,默认"所有函数")

缓存管理

GET /cache/status      # 查看缓存状态
DELETE /cache/clear    # 清空缓存
GET /health           # 健康检查

🛠️ 配置说明

环境变量

# Redis 配置
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_DB=0

# Ollama 配置
OLLAMA_BASE_URL=http://localhost:11434
DEFAULT_MODEL= llama3.1:8b

支持的代码文件类型

  • 代码分析: .py, .js, .java, .cpp, .c, .html, .css
  • 测试生成: .py, .txt
  • 文档生成: .py, .txt

💡 使用示例

1. 通过 Web 界面使用

  1. 访问 http://localhost:8000
  2. 选择功能标签(代码分析/测试生成/文档生成)
  3. 上传代码文件(点击选择或拖拽)
  4. 填写相关参数(可选)
  5. 点击执行按钮查看结果

2. 通过 API 调用

import requests

# 代码分析示例
url = "http://localhost:8000/api/analyze"
files = {'file': open('example.py', 'rb')}
data = {'instruction': '分析潜在风险和性能问题'}

response = requests.post(url, files=files, data=data)
print(response.json())

3. 命令行使用

# 使用 curl 进行代码分析
curl -X POST "http://localhost:8000/api/analyze" \
  -F "file=@/path/to/your/code.py" \
  -F "instruction=分析安全漏洞"

🔄 缓存机制

项目实现了基于文件内容的智能缓存系统:

  • 缓存键生成: 基于文件内容 MD5 哈希,确保相同内容总是命中缓存
  • 缓存时效:
    • 代码分析: 1 小时
    • 测试生成: 2 小时
    • 文档生成: 2 小时
  • 自动失效: 文件内容变化后自动失效旧缓存

🎯 功能演示

代码分析结果示例

输入 Python 代码:

def validate_input(text):
    if len(text) > 100:
        return False
    return True

输出分析结果(Markdown 格式):

# 功能描述
该函数用于验证输入文本长度是否超过100个字符。

## 风险分析
1. **空输入风险** - 未处理空字符串输入,可能导致异常
2. **类型安全** - 未验证输入类型,非字符串输入会报错
3. **硬编码限制** - 长度限制100为硬编码,缺乏灵活性

## 改进建议
- 添加输入类型验证
- 使用可配置的长度限制
- 添加异常处理机制

🐛 故障排除

常见问题

  1. Ollama 连接失败

    # 检查 Ollama 服务状态
    ollama list
    # 重启 Ollama 服务
    ollama serve
  2. Redis 连接失败

    # 检查 Redis 服务状态
    redis-cli ping
    # 应该返回 PONG
  3. 端口冲突

    # 修改启动端口
    python upload_api.py --port 8080

日志查看

应用日志会显示在控制台,包含:

  • 任务执行状态
  • 缓存命中情况
  • 错误信息详情

🤝 贡献指南

欢迎提交 Issue 和 Pull Request!

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

🙏 致谢

📞 联系方式

如有问题或建议,请通过以下方式联系:


⭐ 如果这个项目对你有帮助,请给它一个 Star!

About

一个基于 LangChain 和 FastAPI 构建的智能代码分析与助手工具,支持代码分析、测试生成和文档生成功能。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors