# enterprise-qa-skill **Repository Path**: MoBinMing/enterprise-qa-skill ## Basic Information - **Project Name**: enterprise-qa-skill - **Description**: claude code 问答系统 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-06-04 - **Last Updated**: 2026-06-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Enterprise QA — 企业智能问答助手 企业智能问答系统,支持对员工信息、考勤、绩效、项目、制度政策、会议纪要等结构化与非结构化数据的自然语言查询。 ## 环境准备 ```bash pip install -r requirements.txt ``` > 要求 Python 3.10+,支持 Windows / macOS / Linux --- ## 🚀 三种运行方式 ### 方式一:Streamlit 聊天界面(推荐) 带分类标签、一键提问的可视化聊天界面,底层同样走 `python run.py`,不绕过安全检查。 ![Streamlit 聊天界面](img.png) ```bash streamlit run ui.py ``` 浏览器自动打开 **http://localhost:8501**,侧边栏按标签分类选择测试用例一键提问,也支持自由输入。 ### 方式二:Claude Code Skill 本项目已内置 Claude Code Skill(`.claude/skills/qa/SKILL.md`)。在 Claude Code 中打开本项目后,直接用自然语言提问即可,Claude 会自动调用 `python run.py` 执行查询并原样返回结果。 ```bash # 在 Claude Code 中打开项目目录 cd <项目根目录> # 然后直接提问,例如: # "张三的部门是什么?" ``` > Skill 会自动拦截数据库直连、SQL 注入等危险操作,所有查询强制走 `run.py`。 ### 方式三:Python 命令行直接运行 最轻量的方式,适合脚本调用或快速验证: ```bash python run.py "张三的部门是什么?" python run.py "年假怎么计算?" python run.py "王五符合晋升条件吗?" python run.py "查一下 EMP-999" python run.py "最近有什么事?" ``` --- ## 测试验证 ```bash # 单元测试(92 个用例) python -m pytest tests/ -v # 集成测试(T01-T12) python -m pytest tests/test_integration.py -v # Smoke test driver(18 个场景) python .claude/skills/qa/driver.py # 全量考试合规验证(55 项) python .claude/skills/qa/verify_all.py ``` ## T01-T12 测试用例速查 | ID | 问题 | 预期 | |----|------|------| | T01 | 张三的部门是什么? | 研发部 | | T02 | 李四的上级是谁? | CEO (EMP-000) | | T03 | 年假怎么计算? | 满1年5天,每年+1,上限15天 | | T04 | 迟到几次扣钱? | 4-6次开始扣,50元/次 | | T05 | 张三负责哪些项目? | 4个项目及各自角色 | | T06 | 研发部有多少人? | 4人 | | T07 | 王五符合P5→P6条件吗? | 不符合 | | T08 | 张三2月迟到几次? | 2次 | | T09 | 查一下 EMP-999 | 明确告知无此员工 | | T10 | 最近有什么事? | 返回会议+项目动态 | | T11 | SELECT注入 | 拦截并返回错误 | | T12 | xyzabc123 怎么报销 | 告知无相关信息 | ## 项目结构 ``` enterprise-qa-skill/ ├── run.py # 命令行入口 ├── ui.py # Streamlit 聊天界面 ├── config.yaml # 配置文件 ├── requirements.txt # 依赖清单 ├── enterprise.db # SQLite 数据库 ├── enterprise-qa-exam.md # 考试要求文档 ├── enterprise_qa/ # 核心模块 │ ├── main.py # 调用链入口 │ ├── intent.py # 意图识别 │ ├── db.py # 数据库层(参数化查询) │ ├── kb_search.py # 知识库检索 │ ├── fusion.py # 结果融合 │ └── config.py # 配置管理 ├── data/knowledge/ # 知识库文档 │ ├── hr_policies.md │ ├── promotion_rules.md │ ├── finance_rules.md │ ├── faq.md │ ├── tech_docs.md │ └── meeting_notes/ ├── tests/ # 单元 & 集成测试 │ ├── test_intent.py │ ├── test_db.py │ ├── test_kb_search.py │ ├── test_fusion.py │ └── test_integration.py └── .claude/skills/qa/ # Claude Code Skill ├── SKILL.md ├── driver.py └── verify_all.py ``` ## 常见问题 | 问题 | 解决方案 | |------|----------| | `ModuleNotFoundError: No module named 'enterprise_qa'` | 确保在项目根目录下运行 | | GBK 编码错误 | 设置环境变量 `PYTHONIOENCODING=utf-8` | | jieba 首次加载慢 | 正常现象,构建词典缓存后后续会加快 | | SQL 注入被拦截 | 安全机制,问题中避免包含 SQL 关键词 |