songzhouran/OnCallSlack

GitHub: songzhouran/OnCallSlack

基于 Playwright 浏览器自动化和大语言模型的 Slack 值班助手,在无官方 API 权限的环境下实现事件自动分诊与 AI 响应。

Stars: 0 | Forks: 0

# OnCallSlack AI 驱动的 Slack 助手,用于自动化事件分诊和值班响应。 ## 概述 OnCallSlack 是一款轻量级的 AI 自动化工具,旨在充当一线值班响应人员,协助运维 Slack 频道。 该系统通过浏览器自动化监控选定的 Slack 频道,检测触发消息,利用 LLM 生成上下文相关的 AI 响应,并直接在 Slack 内进行回复。 本项目适用于在无法获取官方 Slack App 权限的情况下,进行内部运维工作流、告警分诊和工程支持自动化。 ## 功能 * 自动化 Slack 消息监控 * AI 生成的上下文响应 * 基于触发器的告警处理 * 持久化的 Slack 登录会话 * 可配置的频道定位 * 可配置的触发关键词 * 模拟真人打字效果 * 重复消息保护机制 * 轻量级基于浏览器的架构 * 兼容 Groq / OpenAI 的 API ## 架构 ``` Slack Channel ↓ Playwright Listener ↓ Message Filtering ↓ LLM Processing ↓ AI Response Generation ↓ Slack Auto Reply ``` ## 技术栈 * Python 3.12+ * Playwright * Groq API / 兼容 OpenAI 的 API * Chromium 持久化上下文 * dotenv ## 安装 ### 克隆仓库 ``` git clone cd opspilot ``` ### 安装依赖 ``` pip install -r requirements.txt ``` ### 安装 Playwright 浏览器 ``` playwright install ``` ## 环境变量 创建一个 `.env` 文件: ``` GROQ_API_KEY=gsk_xxx CHANNEL_URL=https://app.slack.com/client/TXXXX/CXXXX TRIGGER_WORDS=@jack,bot,urgent ``` ## 运行 ``` python main.py ``` 首次启动时: 1. 手动登录 Slack 2. 打开目标频道 3. 会话数据将在本地 `./slack_profile` 中持久化保存 后续启动将自动复用现有的已验证会话。 ## 示例工作流 ``` User: @jack database latency increased ↓ OnCallSlack detects trigger word ↓ LLM generates contextual response ↓ Bot replies in Slack channel ``` ## 配置 ### 触发关键词 通过以下方式配置: ``` TRIGGER_WORDS=@jack,bot,urgent ``` ### Slack 频道 通过以下方式配置: ``` CHANNEL_URL=https://app.slack.com/client/TXXXX/CXXXX ``` ## 当前限制 * 基于浏览器自动化 * 针对单频道优化 * 无官方 Slack Events API 集成 * 需要持久的 Chromium 会话 * 适用于低频运维工作流 ## 路线图 * 话题回复 * 上下文感知记忆 * Runbook 检索 * 事件总结 * Jira 集成 * PagerDuty 集成 * 多频道支持 * 知识库检索 * 基于 RAG 的运维辅助 ## 安全说明 本项目使用浏览器自动化,而非官方 Slack API。 建议使用场景: * 仅限内部环境 * 低频运维工作流 * 专用的 Slack 账户/配置文件 * 在更大范围推广之前进行非生产环境的测试
标签:AIOps, AI助手, Chromium, DLL 劫持, LLM, OnCall轮值, OpenAI, Petitpotam, Playwright, Python, RPA, Slack API替代方案, Slack机器人, SRE, Sysdig, Unmanaged PE, 事件分诊, 人工智能, 偏差过滤, 关键词触发, 内存规避, 内部工具, 告警分类, 大语言模型, 工程效能, 持久化登录, 无后门, 无头浏览器, 浏览器自动化, 消息监控, 特征检测, 用户模式Hook绕过, 自动回复, 运维自动化, 逆向工具