rameshsurapathi/sre_agent

GitHub: rameshsurapathi/sre_agent

一个基于 LangChain 和 Google AI 的 SRE 专家对话助手,为运维团队提供监控设计、事件响应和系统可靠性方面的专业指导与最佳实践建议。

Stars: 2 | Forks: 0

# SRE Agent - 专家级站点可靠性工程助手 一款复杂的 AI 驱动的站点可靠性工程 (SRE) 助手,提供关于监控、可观测性、事件响应和系统可靠性的专家级指导。使用现代 Web 技术构建,并由先进的语言模型提供支持。 ## 🚀 项目概述 SRE Agent 旨在成为您解决站点可靠性工程挑战的首选专家。它专注于: - **SLI/SLO 设计**:服务等级指标和目标的实现 - **监控与可观测性**:使用 Prometheus、Grafana 和分布式追踪设计全面的监控技术栈 - **事件响应**:结构化的事件管理、无指责事后复盘和升级程序 - **系统可靠性**:混沌工程、容量规划和灾难恢复策略 - **最佳实践**:将 20 多年的 SRE 经验提炼为可操作的指南 ## 🛠️ 技术栈 ### 后端 - **FastAPI**:基于 Python 3.13+ 构建的现代、高性能 Web API 框架 - **LangChain**:用于开发语言模型应用程序的框架 - **LangGraph**:用于使用 LLMs 构建有状态、多参与者应用程序的库 - **Google Generative AI**:由 Google 先进的语言模型提供支持 - **Google Firestore**:用于响应缓存和数据持久化的 NoSQL 文档数据库 - **Uvicorn**:用于运行 FastAPI 应用程序的 ASGI Web 服务器 ### 前端 - **HTML5**:现代语义化标记 - **CSS3**:具有响应式设计和渐变背景的自定义样式 - **Vanilla JavaScript**:无框架依赖的简洁、现代 ES6+ JavaScript - **Font Awesome**:专业级图标库 - **响应式设计**:移动优先的灵活布局方法 ### 开发工具 - **Python 3.13+**:最新的 Python 特性和性能改进 - **Poetry/UV**:现代 Python 依赖管理工具 - **环境变量**:使用 python-dotenv 进行安全的配置管理 - **Git**:版本控制与协作 ## 🎨 核心功能 ### 交互式聊天界面 - 与 SRE 专家进行实时对话 - 带有正确代码语法高亮的 HTML 格式化响应 - 用于富内容显示的 Markdown 转 HTML 功能 - 平滑滚动和响应式设计 ### 预置问题模板 - 针对常见 SRE 场景的可点击示例问题 - 三大主要类别:监控与可观测性、事件响应、系统可靠性 - 快速将问题填入聊天输入框 ### 高级 UI/UX - 匹配 SRE 主题的精美渐变背景 - 用于问题类别的专业卡片式布局 - 打字指示器和平滑动画 - 移动端响应式设计 ### 后端功能 - 防止滥用的速率限制 - 用于缩短响应时间和数据持久化的 Firestore 缓存 - 全面的错误处理 - 用于跨域请求的 CORS 支持 ## 🏗️ 架构 ``` ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ Frontend │ │ FastAPI │ │ AI Services │ │ (HTML/CSS/JS) │────│ Backend │────│ (LangChain/ │ │ │ │ │ │ Google AI) │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ ┌─────────────────┐ │ Google Firestore│ │ (Caching) │ └─────────────────┘ ``` ## 📁 项目结构 ``` sre_agent/ ├── app.py # FastAPI application entry point ├── templates/ │ └── index.html # Main HTML template ├── static/ │ ├── styles.css # CSS styling │ └── script.js # JavaScript functionality ├── src/ │ ├── ai_agent.py # AI agent implementation │ └── prompts.py # System prompts and AI configuration ├── pyproject.toml # Python dependencies and project config ├── .env.example # Environment variables template └── README.md # This file ``` ## 🚀 入门指南 ### 前置条件 - Python 3.13+ - 启用了 Firestore 的 Google Cloud 项目 - 用于 Generative AI 的 Google API 密钥 - 用于访问 Firestore 的 Google Cloud 凭据 ### 安装说明 1. **克隆仓库** git clone cd sre_agent 2. **安装依赖** pip install -r requirements.txt # 或使用现代 Python 包管理器 uv sync 3. **设置环境变量** 在项目根目录下创建一个 `.env` 文件并填入您的配置信息。示例: GOOGLE_API_KEY=your_google_api_key_here LLM_MODEL=google-genai GOOGLE_APPLICATION_CREDENTIALS=path/to/your/service-account-key.json FIRESTORE_PROJECT_ID=your-gcp-project-id ## 🆕 新增与增强功能 (2025-07-08) - **保存为 PDF**:只需单击一下,即可将任何 AI 回复即时导出为排版精美的 PDF。该按钮会直接显示在每条 AI 消息的下方。 - **聊天历史与上下文记忆**:所有聊天历史和上下文都会按用户(使用浏览器指纹/localStorage)保存在 Firestore 中,缓存保留 1 个月,聊天历史保留 1 周。 - **聊天控制**:用于新建聊天、查看历史记录和删除历史记录的现代响应式控件,现已移至聊天页眉处以提供更好的用户体验。 - **确认对话框**:用于删除所有聊天历史记录和开始新聊天的友好确认对话框(“这将清除当前对话。是否继续?”)。 - **聊天历史模态框**:在美观、可滚动的模态框中查看您过去 7 天的聊天历史记录,支持折叠 AI 回复并显示时间戳。 - **会话持久化**:系统会自动为返回的用户加载最近 5 次聊天交互记录。 - **增强的问候语**:初始问候语现在会询问您的名字(“顺便问一下,今天有幸与谁交谈?”),使聊天更加友好和个性化。 - **UI/UX 优化**:改进了聊天控件、PDF 按钮和模态框的 CSS。所有控件均适配移动端并在视觉上保持一致。 - **稳健的错误处理**:改进了所有聊天和历史记录操作的错误消息和处理机制。 - **示例问题**:针对常见 SRE 主题的可点击问题卡片,支持平滑滚动并即时填入聊天输入框。 - **无 .env.example**:安装说明现已反映您必须自行创建 `.env` 文件(未提供模板)。 4. **配置您的环境** GOOGLE_API_KEY=your_google_api_key_here LLM_MODEL=google-genai GOOGLE_APPLICATION_CREDENTIALS=path/to/your/service-account-key.json FIRESTORE_PROJECT_ID=your-gcp-project-id 5. **设置 Google Cloud Firestore** - 创建一个 Google Cloud 项目 - 启用 Firestore API - 创建一个服务账号并下载 JSON 密钥文件 - 设置 `GOOGLE_APPLICATION_CREDENTIALS` 环境变量 6. **运行应用** uvicorn app:app --host 0.0.0.0 --port 8000 --reload 7. **访问应用** 打开浏览器并访问 `http://localhost:8000` ## 🔧 配置说明 ### 环境变量 - `GOOGLE_API_KEY`:您的 Google Generative AI API 密钥 - `LLM_MODEL`:要使用的语言模型 (默认:google-genai) - `GOOGLE_APPLICATION_CREDENTIALS`:您的 Google Cloud 服务账号 JSON 密钥文件的路径 - `FIRESTORE_PROJECT_ID`:您的 Google Cloud 项目 ID - `DEBUG`:启用调试模式 (默认:true) ### 速率限制 该应用程序内置了速率限制功能: - 每个 IP 地址每分钟 5 个请求 - 可在 `app.py` 中进行配置 ## 📚 API 接口 ### GET / 返回主 HTML 界面 ### POST /api/chat 用于与 SRE Agent 交互的聊天接口 **请求体:** ``` { "message": "How do I implement SLI/SLO monitoring?" } ``` **响应:** ``` { "response": "HTML-formatted response from the SRE expert" } ``` ## 🎯 应用场景 ### 面向 SRE 团队 - **事件响应规划**:获取关于构建操作手册和升级程序的指导 - **监控策略**:设计全面的可观测性解决方案 - **容量规划**:了解负载测试和扩展策略 ### 面向 DevOps 工程师 - **工具选择**:比较监控工具和可观测性平台 - **最佳实践**:学习行业标准 SRE 实践 - **故障排查**:获取有关系统可靠性挑战的帮助 ### 面向工程经理 - **团队建设**:了解 SRE 角色要求和团队结构 - **流程实施**:了解如何在组织中实施 SRE 实践 - **风险管理**:了解错误预算和可靠性目标 ## 📄 许可证 本项目基于 MIT 许可证授权 - 有关详细信息,请参阅 [LICENSE](LICENSE) 文件。 ## 📞 支持 如有任何问题、议题或想要贡献,请: - 在 GitHub 上开启一个 Issue - 查看 `src/prompts.py` 文件中的文档以了解系统行为 - 阅读代码注释以了解实现细节 **用 ❤️ 为 SRE 社区而作**
标签:AIOps, AI助手, AI编程, API集成, AV绕过, CMS安全, CSS3, DLL 劫持, ES6, FastAPI, Gemini, Google Firestore, Google Generative AI, Grafana, HTML5, JavaScript, LangChain, LangGraph, LLM, NoSQL数据库, Poetry, Python, RESTful API, Site Reliability Engineering, SLI, SLO, SRE, Syscall, Unmanaged PE, Uvicorn, Web开发, 事后总结, 事故响应, 依赖管理, 偏差过滤, 分布式追踪, 可观测性, 响应式设计, 复盘, 大语言模型, 容灾恢复, 容量规划, 提示词优化, 数据可视化, 无后门, 智能运维, 服务级别目标, 混沌工程, 监控, 系统可靠性, 自定义脚本, 轻量级, 逆向工具