hermes atlas
250·repos hermes·v0.21.5 ★ star this repo

jiawood2006/ai-project-advisor

工程项目 AI 顾问(AI Project Advisor)——微信对话式工程管理:记忆图谱/多群接入/规则+大模型混合/风险雷达。Construction project AI advisor: memory graph, multi-group, rule+LLM hybrid engine.

★ 1 langPython licenseMIT updated2026-10-01

AI Project Advisor is a construction management tool that integrates with enterprise messaging platforms to convert chat messages, images, and voice into structured project records. It utilizes a hybrid engine combining rule-based processing for data entry and a large language model for general inquiries and summaries.

  • Supports WeCom, DingTalk, and H5 web platforms.
  • Uses a reversible masking layer to desensitize data before LLM processing.
  • Maintains isolated SQLite databases for each tenant.
full readme from github

工程项目 AI 顾问 · AI Project Advisor

License: MIT Python Platform PRs Welcome

把 AI 顾问装进企业微信/钉钉:项目群里正常说话,它负责记录一切、盯节点、盯回款、提醒风险、出报告。

不是软件,没有菜单按钮——会用企业微信就会用。记录用文字/语音/图片随手发,顾问在后台把内容变成结构化档案,并且每天主动找您一次(早报/日报/预警)。

企微群 · 老板单聊 · 钉钉 · H5 网页
        │
        ▼
适配器层  adapters/{wecom_app, wecom_aibot, dingtalk, h5}
        │   同客户同库 · msg_id 去重 · 群聊才带 group_id
        ▼
统一接入层  gateway/core.py        ← 一客户一租户一 SQLite
        │
        ▼
脱敏中间层  masking.py             ← 手机号/金额/单位/人名 → 占位符,本地金库可逆
        │
        ▼
顾问引擎  advisor_engine.py
   ├─ 规则命令层(建档/节点/签证/材料/回款…)  ← 不调大模型,零 token
   ├─ 记忆图谱(项目-事件-承诺-资源方,可回溯"谁在什么时候说了什么")
   ├─ 8 个顾问(进度/回款/变更/资料/风险/巡检/复盘/新人)
   └─ LLM 兜底(自由问答、行业知识注入)
        │
        ▼
回复 / 早报 / 日报 / 驾驶舱看板

能力

你能说 它做什么
「新建项目:XX大厦装修,合同80万,工期3个月,负责人王经理」 6 步建档 → 自动生成付款计划与节点
「钢筋验收过了吗?」 查档案回答(谁/何时/依据),不看资料不编
「回款情况」/「现金流怎么样」 应收台账 + 逾期提醒 + 催款话术(附对话依据)
「签证:外墙增加保温 2.8万」 登记签证台账 → 结算前自动提示未签/已签/已付
「材料:XX 100台 1750元」/「材料到货」 材料台账 + 到货跟踪 + 名称/数量/单价解析
「有什么风险」 风险雷达:甲方被执行/失信、对接人变动、资源方异常
「生成周报」/「项目总结」 基于全量数据生成周报、复盘材料并归档
群里随手说的承诺 自动归档(谁/何时/原话),换人/赖账时调得出记录
  • 多租户:客户各自独立库,A 项目群看不到 B 项目群;老板单聊看全局。
  • 多平台:企业微信自建应用、企微智能机器人、钉钉、H5 网页版共用同一个引擎与数据模型。
  • 省 token:命令类走规则引擎(0 token),只有自由问答/总结才调模型;知识库走关键词检索而非向量库。
  • 每日主动:早报预警 7:30、日报推送 8:00、日报生成 22:00(cron)。

对外红线(写进 prompt 的硬约束)

  1. 只记录事实、盯节点、提醒风险、给建议 —— 不替客户做商业决策(不比价、不选型、不定价)。
  2. 不自动测算时间节点 —— 只标注合同/文件里写明的、以及客户口述提供的(避免责任风险)。
  3. 需签章成果由持证人签署(借人不借资质)。
  4. 数据隔离:一租户一库;对外脱敏后才送模型。

目录

advisor_engine.py     顾问引擎(规则命令 + 记忆图谱 + LLM 兜底)
advisor_llm.py        LLM 调用封装(OpenAI 兼容;key 走环境变量)
masking.py            脱敏中间层(可逆,本地金库,fail-closed)
gateway/
  core.py             统一接入层:租户路由 / 去重 / 分发
  onboard.py          扫码接入:专属码 → 开通 → 绑定租户
  adapters/           wecom_app / wecom_aibot / dingtalk / h5
h5/                   网页版对话页 + 服务
wecom_bot.py          企业微信机器人(单租户长连接版)
advisor_alerts.py     早报预警      advisor_daily_summary.py  日报生成/推送
test_*.py             测试(不调大模型,可离线跑)

快速开始

# 引擎自带 sqlite,无第三方依赖;测试可离线跑
python3 test_advisor.py      # 27 项
python3 test_gateway.py      # 29 项(4 平台报文 → 同一引擎 → 同一库)
python3 test_masking.py      # 16 项(脱敏可逆性/不泄漏/一致性/容错)
python3 test_onboard.py      # 30 项(扫码接入/专属码/限流)
python3 test_masking_e2e.py  # 2 项(端到端 + 金库权限 600)

实测(2026-10-01):5 个测试文件、104 项断言、全部通过。

配置(环境变量):

变量 说明
ADVISOR_DB / 租户 db 路径 数据文件位置(默认按租户分库)
LLM_BASE_URL / LLM_API_KEY / LLM_MODEL 模型接入(key 只走环境变量,不写死)
ADVISOR_MASK=0 关闭脱敏中间层
ASR_FIX_DICT(见姊妹项目) 语音转写纠错表

文档

English

An AI project advisor that lives inside WeCom/DingTalk: chat normally in a project group and it turns messages into structured records (milestones, payments, visa/change orders, material ledgers, promises), watches deadlines and receivables, pushes a daily briefing, and answers questions with citations back to the original conversation. Rule-engine first (zero tokens) with an LLM fallback; a reversible masking layer strips phones/amounts/orgs/names before anything leaves the box; one SQLite DB per tenant behind a unified multi-platform gateway (WeCom app/bot, DingTalk, H5).


如果这个项目对你有用,欢迎点个 ⭐ Star —— 这是我们继续打磨的动力。

License

MIT(见 LICENSE)。