juank115/Ticket-Intelligence-Assistant

GitHub: juank115/Ticket-Intelligence-Assistant

面向 L2 支持工程师的 AI 驱动工单分析工具,将原始支持工单自动转化为结构化摘要、根因分析、相似历史事件和可发送的首次回复。

Stars: 0 | Forks: 0

# 工单智能助手 面向 L2 支持工程师的 AI 驱动工单分析工具。粘贴原始支持工单,即可立即获得通俗易懂的英文摘要、根本原因分析、相似的历史事件以及可直接发送的首次回复。 ## 设置(< 2 分钟) ``` # 1. Clone 和安装 git clone https://github.com/juank115/Ticket-Intelligence-Assistant.git cd ticket-intel-assistant npm install # 2. 配置 API key cp .env.example .env # Edit .env → ANTHROPIC_API_KEY=sk-ant-your-key-here # 3. Run (启动 Vite + CORS proxy) npm run dev:all # → http://localhost:5173 ``` **备选方案:** 在两个终端中分别运行 Vite 和代理: ``` npm run dev # Terminal 1 — Vite on :5173 npm run proxy # Terminal 2 — CORS proxy on :3001 ``` ## API 密钥 两种选项: 1. **`.env` 文件**(推荐):在 `.env` 文件中设置 `ANTHROPIC_API_KEY=sk-ant-...`。代理服务器会自动读取此配置。 2. **UI 设置**:点击页眉中的 ⚙️ API Key 并粘贴您的密钥。密钥将存储在 `localStorage` 中。 ## 架构 ``` Browser (React + Vite) │ ├── Ticket Input → Weighted Token Scoring (local, ~0ms) │ → Similar Incidents panel │ └── POST /api/claude → Vite Dev Proxy → Express CORS Proxy (:3001) → Anthropic API (streaming) ← SSE stream piped back ← Parsed XML → Summary, Root Causes, First Response ``` ### 为什么需要 CORS 代理? Anthropic API 不允许直接的浏览器请求(未设置 CORS 头)。`server/proxy.js` 中的 Express 代理大约只有 20 行代码,并且没有任何业务逻辑——它只负责转发请求并将流式响应透传回去。 ## 检索策略 **算法:** 加权 Token 评分(TF×IDF 结合字段权重) 1. 对工单文本进行分词(转小写、去除标点、移除停用词) 2. 计算查询中每个 token 的 TF(词频) 3. 计算包含 40 个事件的语料库中的 IDF(逆文档频率) 4. 对每个事件进行评分:`score = Σ(TF × IDF × field_weight)` - Tags: ×1.5(信号密度最高的字段) - Category: ×1.2 - Title/Description: ×1.0 5. 将分数归一化到 0–1 之间,过滤掉低于 0.10 阈值的,返回前 3 个结果 ### 为什么不使用 embeddings? | 标准 | Token 评分 | Embeddings | |-----------|--------------|------------| | 延迟 | ~0ms | 300–500ms | | 成本 | $0 | ~$0.002/query | | 准确度 (40 条记录) | 足够 | 更好的语义理解 | | **决策** | ✅ 已采用 | 未来改进方向 | 对于 40 条记录而言,embedding API 调用的延迟和成本并不划算。对于这种规模的语料库,带有字段权重的 token 评分能够产生相关的结果。 ## 技术栈 - **Frontend:** React 19 + Vite 8 - **Styling:** Tailwind CSS v4 - **LLM:** Claude Sonnet 4 (`claude-sonnet-4-20250514`),通过 Anthropic API - **CORS Proxy:** Express 5 + cors - **Retrieval:** 自定义加权 token 评分(浏览器内运行) ## 如果有更多时间我会改进的地方 1. **语义 embeddings** — 在 Web Worker 中运行 `@xenova/transformers`,以提高检索准确度,特别是对于意译或特定领域的查询 2. **分析历史记录** — 持久化存储在 `localStorage` 中,以便工程师回顾过去的工单分析 3. **移除 CORS 代理** — 通过部署在支持服务端渲染的平台(Next.js、Remix)上来实现 4. **工单分类** — 自动检测工单类型(身份验证、性能、数据等)并预筛选知识库 (KB) 5. **多语言支持** — 检测工单语言并使用相同语言进行回复
标签:AI助手, Anthropic, CIS基准, Claude API, CORS代理, Express, GNU通用公共许可证, ITSM, IT运维, L2运维支持, NLP, Node.js, RCA, React, Server-Sent Events, Socks5代理, SSE流式传输, Syscalls, TF-IDF, Vite, 人工智能, 客户服务, 工单分析, 工单响应草稿, 工单摘要, 工单系统, 技术支持, 数据可视化, 智能客服, 根本原因分析, 用户模式Hook绕过, 相似事件检索, 网络研究, 自定义脚本