一个基于 LangChain 和 FastAPI 构建的智能代码分析与助手工具,支持代码分析、测试生成和文档生成功能。
- 🔍 智能代码分析 - 自动识别代码风险、安全漏洞和性能问题
- 🧪 自动化测试生成 - 基于代码逻辑生成完整的 pytest 单元测试
- 📚 智能文档生成 - 自动创建规范的 API 文档和代码注释
- ⚡ 高性能缓存 - 基于 Redis 的智能缓存系统,提升响应速度
- 🌐 现代化界面 - 响应式 Web 界面,支持文件上传和拖拽操作
- 🔒 安全可靠 - 支持跨域请求,文件内容安全处理
- Python 3.8+
- Redis 服务器
- Ollama (本地 LLM 服务)
- 克隆项目
git clone https://github.com/your-username/devops-code-assistant.git
cd devops-code-assistant- 安装依赖
uv sync- 启动 Redis 服务
# Ubuntu/Debian
sudo apt update
sudo apt install redis-server
sudo systemctl start redis
# 或者使用 Docker
docker run -d -p 6379:6379 redis:alpine- 配置 Ollama
# 安装 Ollama (参考: https://ollama.ai/)
# 拉取模型 (推荐使用代码模型)
ollama pull codellama:7b
ollama pull llama3.1:8b- 启动应用
python app.py- 访问应用
- 前端界面: http://localhost:8000
- API 文档: http://localhost:8000/docs
devops-code-assistant/
├── app.py # 主 API 服务(支持文件上传)
├── utils/
│ └── core_tools.py # 代码分析工具 + 测试生成工具 + 文档生成工具
├── templates/
│ └── index.html # 前端界面
├── static/ # 静态资源目录
├── uploads/ # 临时文件目录
├── pyproject.toml # Python 依赖
└── README.md # 项目说明
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
- 访问 http://localhost:8000
- 选择功能标签(代码分析/测试生成/文档生成)
- 上传代码文件(点击选择或拖拽)
- 填写相关参数(可选)
- 点击执行按钮查看结果
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())# 使用 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为硬编码,缺乏灵活性
## 改进建议
- 添加输入类型验证
- 使用可配置的长度限制
- 添加异常处理机制-
Ollama 连接失败
# 检查 Ollama 服务状态 ollama list # 重启 Ollama 服务 ollama serve
-
Redis 连接失败
# 检查 Redis 服务状态 redis-cli ping # 应该返回 PONG
-
端口冲突
# 修改启动端口 python upload_api.py --port 8080
应用日志会显示在控制台,包含:
- 任务执行状态
- 缓存命中情况
- 错误信息详情
欢迎提交 Issue 和 Pull Request!
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
如有问题或建议,请通过以下方式联系:
- 提交 Issue
⭐ 如果这个项目对你有帮助,请给它一个 Star!
