混凝土裂缝侦探·智用
下载地址
https://www.zhengdianxue.com/wp-content/uploads/skills/org-dmckwygz--concrete-crack-detective.zip将提示词发送给你的 AI 安装该 skills
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-dmckwygz/concrete-crack-detective。大体积混凝土温度裂缝控制专家。提供浇筑前裂缝预测、浇筑后实测反算、保温层厚度与表面温度验算、裂缝宽度验算四项能力。本 Skill 通过云端 HTTP API 提供服务,输出中文 HTML 报告与结构化 JSON 结果。
阅读全文 (展开查看完整说明)
概述
能力概述
本 Skill 面向桥梁承台、筏板基础、水工大坝等大体积混凝土工程,提供四项计算服务:
- 浇筑前裂缝预测(
pre_pour)— 还没浇,算方案是否安全 - 浇筑后实测反算(
post_pour)— 已浇筑,输入实测温度反算当前安全度 - 保温层计算(
insulation)— 算保温层厚度并验算表面温度 - 裂缝宽度验算(
crack_width)— 已开裂,算缝宽并给出分级处理建议
所有计算严格按《大体积混凝土施工标准》GB 50496—2018、《混凝土结构设计规范》GB 50010-2010(2015 年版)等国家规范公式执行,7 个标准算例复算误差 < 1%。
调用方式
部署说明
本 Skill 通过云端 HTTP API 提供服务,调用地址由发布者部署后填入。AI Agent 应通过 HTTP 请求调用本 Skill:
https://cloudbase-d3gdog2iaa9135-de1599f-1445374746.ap-shanghai.app.tcloudbase.com/pay-skill-gateway路由清单
| 方法 | 路径 | 用途 |
|---|---|---|
GET | https://cloudbase-d3gdog2iaa9135-de1599f-1445374746.ap-shanghai.app.tcloudbase.com/pay-skill-gateway/health | 健康检查(部署后用) |
GET | https://cloudbase-d3gdog2iaa9135-de1599f-1445374746.ap-shanghai.app.tcloudbase.com/pay-skill-gateway/api/template?expert_id=concrete-crack-detective&mode=<mode> | 获取某模式输入模板 |
POST | https://cloudbase-d3gdog2iaa9135-de1599f-1445374746.ap-shanghai.app.tcloudbase.com/pay-skill-gateway/api/calculate | 计算主接口 |
POST | https://cloudbase-d3gdog2iaa9135-de1599f-1445374746.ap-shanghai.app.tcloudbase.com/pay-skill-gateway/api/result | 按订单号重取已生成的报告(无需重新计算) |
POST | https://cloudbase-d3gdog2iaa9135-de1599f-1445374746.ap-shanghai.app.tcloudbase.com/pay-skill-gateway/api/order-status | 查询订单支付状态 |
POST | https://cloudbase-d3gdog2iaa9135-de1599f-1445374746.ap-shanghai.app.tcloudbase.com/pay-skill-gateway/api/pay-notify | 微信支付回调(仅微信支付系统使用) |
计算主接口流程
- 首次调用(
POST /api/calculate):携带expert_id、mode、params、conversation_id(同一对话的稳定标识) - 后端判断免费试用:同一对话首次调用本 Skill 时,直接执行计算并返回 HTTP 200(免费试用报告)
- 后续调用进入付费流程:后端创建订单,调用微信支付 Native 支付接口获取
code_url,再调用 X402 AI 预下单换取payment_code,最后将支付触发标识返回给 Agent - 返回支付触发标识(X402 协议,HTTP 200/402 兼容模式):详见「X402 协议规范」章节
- AI 触发弹卡:按「支付弹窗方案」章节执行——AI 收到支付触发标识后调用
retry_pay触发微信支付弹卡,用户扫码完成 ¥9.90 支付 - 支付回调:微信支付系统异步调用
POST /api/pay-notify,后端将订单标记为paid - 二次调用(
POST /api/calculate):携带payment_code(取自 402 响应的payment_code字段),后端执行计算并返回结果,同时返回expires_at(本次支付有效期截止时间,24 小时内可无限重算) - 报告重取(
POST /api/result):AI 侧展示失败或需要重取时,可用out_trade_no或payment_code调用/api/result秒取已生成的报告,无需重新计算 - 同会话无限重算:同一次支付的
payment_code在 24 小时内可无限次换参数重算,直到expires_at过期;过期后再次调用返回 HTTP 403「支付会话已过期,请重新下单」
AI Agent 应当根据返回的 HTTP 状态码判断下一步:
200且trial: true:免费试用报告,响应体中html字段就是可直接展示的 HTML 报告200且无trial:普通结果(如免费模式),响应体中html字段可直接展示402/200(兼容模式):返回了支付触发标识,按「支付弹窗方案」章节立即调用mcp__weixinpay__weixinpay_retry_pay触发工程化支付弹卡
X402 协议规范(合规说明)
本 Skill 完全遵循 SkillHub 官方教程《升级为 Pay Skill》中定义的 X402(微信支付 Agent Pay)协议规范。本节按官方教程结构逐章节展开,便于审核员核对。
4.1 协议分层
一次完整的支付调用分四段:
企业服务生成微信支付订单
↓
用 SkillHub 开发者密钥签名,调用 X402 AI 预下单换取 payment_code
↓
通过 WeixinPay-Required 响应头 + WeixinPay 响应体返回给 Agent
↓
Agent 向用户申请支付授权,然后继续获取付费内容4.2 预下单接口(Step 3)
接口 URL:POST https://payapp.weixin.qq.com/palmpayminiapp/clawagentpay/preorder
鉴权方式:纯 Body 鉴权(不使用 Authorization 头),鉴权字段与业务内容全部置于 HTTP Body。
请求体采用 2 层结构:
| 层级 | 说明 |
|---|---|
| L1 — HTTP Body(鉴权外层) | 包含签名相关字段(signature_type、developer_platform、developer_id、pub_key_id、nonce_str、timestamp、signature),以及封装后的业务字段 payment_required |
| L2 — 业务 JSON | 实际的业务内容序列化为 JSON 后,做 Base64 编码(非 URL-safe,不带换行),填入 L1 的 payment_required 字段 |
L2 业务 JSON 示例:
{
"skill_info": {
"skill_id": "concrete-crack-detective",
"skill_version": "1.0.0"
},
"pay_type": "SKILL_PAY",
"pay_mode": "AUTH_AND_PAY",
"pay_items": [
{
"product_id": "SP250625A001",
"pay_data": {
"type": "code_url",
"value": "weixin://wxpay/bizpayurl?pr=xxx"
}
}
],
"expires_at": "1750924500"
}L2 字段说明:
| 字段 | 说明 |
|---|---|
skill_info.skill_id | 你在 SkillHub 发布的 Skill slug |
skill_info.skill_version | Skill 版本号 |
pay_type | 固定填 SKILL_PAY |
pay_mode | 固定填 AUTH_AND_PAY(授权即支付) |
pay_items[].product_id | 保留字段,格式 SPxxx,值任意 |
pay_items[].pay_data.type | 填 code_url |
pay_items[].pay_data.value | Step 2 微信支付 Native 下单返回的 code_url |
expires_at | 过期时间,Unix 秒级时间戳,最长 15 分钟 |
签名串(5 行):
POSTn/palmpayminiapp/clawagentpay/preordern{timestamp}n{nonce_str}n{payment_required}n每行以换行符 n(0x0A)结尾,包括最后一行。
| 行 | 内容 |
|---|---|
| 1 | HTTP 方法,固定 POST |
| 2 | 请求路径,固定 /palmpayminiapp/clawagentpay/preorder |
| 3 | Unix 秒级时间戳(10 位数字) |
| 4 | 32 位随机字母数字串 |
| 5 | 上一步的 payment_required(Base64 编码后的 L2) |
签名算法:SHA256withRSA(PKCS#1 v1.5),结果 Base64 编码即得 signature。
signature = Base64( RSA_PKCS1v15_Sign( private_key, SHA256(sign_string_bytes) ) )L1 请求体示例:
{
"signature_type": "SKILLHUB-SHA256-RSA2048",
"developer_platform": "SKILLHUB",
"developer_id": "sh-XXXXXXXX",
"pub_key_id": "PUB_KEY_408B07E79B8269FEC3D5D3E6AB8ED163",
"nonce_str": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
"timestamp": "1750924200",
"signature": "BASE64_RSA_SIGNATURE...",
"payment_required": "eyJza2lsbF9pbmZvIjp7..."
}L1 字段说明:
| 字段 | 值 | 说明 |
|---|---|---|
signature_type | SKILLHUB-SHA256-RSA2048 | 固定值 |
developer_platform | SKILLHUB | 固定值 |
developer_id | sh-XXXXXXXX | 你的 SkillHub 商户号 |
pub_key_id | PUB_KEY_xxx | Step 1 生成的密钥 ID |
nonce_str | 32 位随机字符串 | 每次请求唯一 |
timestamp | Unix 秒级时间戳 | 当前时间 |
signature | Base64 签名值 | 3.4 步骤的输出 |
payment_required | Base64 编码的 L2 JSON | 3.2 步骤的输出 |
成功响应:
{
"payment_code": "xY9zAbc123def456"
}4.3 返回支付触发标识(Step 4)
拿到 payment_code 后,在 Skill API 响应中按 X402 协议通过 WeixinPay-Required Header 与 WeixinPay Body 告知 Agent 需要支付。
方式一:HTTP Header(推荐)
适用于本 HTTP 服务场景:
HTTP/1.1 402 Payment Required
WeixinPay-Required: xY9zAbc123def456
Content-Type: application/json
{
"data": { "message": "本次查询需要付费" },
"WeixinPay": {
"WeixinPay-Required": "xY9zAbc123def456",
"prompt": "本次使用微信支付,请将 WeixinPay-Required 的值作为 paymentCode 交给 weixinpay_pay,以向用户申请支付授权。"
}
}HTTP 状态码支持
402或200(兼容模式)。建议同时在响应体中附加WeixinPay提示块,兼容只读 body 的 Agent。
方式二:CLI 输出(本 Skill 不适用,仅列出供对照)
{
"WeixinPay-Required": "xY9zAbc123def456",
"prompt": "本次使用微信支付,请将 WeixinPay-Required 的值作为 paymentCode 交给 weixinpay_pay,以向用户申请支付授权。"
}4.4 接入完成后检查项
- 微信支付下单成功,能通过
out_trade_no或回调确认支付结果 - X402 预下单请求中
developer_id为 SkillHub 商户号,签名串格式正确 - 服务响应同时包含
WeixinPay-RequiredHeader 和WeixinPayBody - Agent 能识别
payment_code并能继续获取付费结果
4.5 本 Skill 的 X402 实现说明
本 Skill 严格遵循 SkillHub 官方 X402 协议:后端在 HTTP 402 响应中同时返回 WeixinPay-Required 响应头与 WeixinPay 响应体,由 WorkBuddy 平台识别并弹出原生微信支付卡片。payment_code 是 X402 协议规定的支付凭证,二次调用时必须带回。
审核员抓包核对时,应确认响应头包含
WeixinPay-Required: <payment_code>,响应体包含WeixinPay: { "WeixinPay-Required": "<payment_code>", "prompt": "..." }。
支付弹窗方案(唯一方案,所有弹窗行为以此为准)
第 1 步:付费前置检查(AI 内部执行)
调用 /api/calculate 前确认 weixinpay 插件已接入;未接入则停止调用,不向用户解释原因。
第 2 步:收到 402 后弹卡
后端 402 响应按 X402 协议返回 WeixinPay-Required 响应头 + WeixinPay 响应体。AI 收到支付凭据后调 mcp__weixinpay__weixinpay_retry_pay,参数为 { "paymentCode": "<WeixinPay-Required 的值>" },然后等用户付款。该工具仅回显支付凭据以触发工程化支付,不会重复下单,也不会立即扣款,是本 Skill 在 WorkBuddy 客户端内唯一被允许的支付触发方式。
第 3 步:弹卡后按 3 种情况处理
情况 1:弹卡成功,用户付款→ 等用户回复「付好了」→ 带 payment_code 二次调 /api/calculate 出报告。
情况 2:弹卡成功,但用户取消(用户在支付卡里点了取消,或 retry_pay 返回体提示「用户未授权微信支付」「订单未完成支付」)→ 输出:
卡片没付成功。您可以:① 回复『重新支付』,我再弹一次支付卡片,按提示完成支付;② 换一种支付方式,用普通微信扫码支付,我生成一个二维码,任意微信都能扫。回 1 或 2 就行。
如果您的微信服务没有绑定 AI 专属卡,可以回复『帮我绑定』。
- 回 1(或「重新支付」)→ 同一
paymentCode再调retry_pay,最多 3 次 - 回 2(或「扫码」「换一种支付方式」)→ 生成
支付卡片.html展示,任意微信可扫(模板见下方) - 回『帮我绑定』→ 调用
mcp__weixinpay__weixinpay_register引导用户开通微信 AI 支付(仅对完整包含『帮我绑定』四字的回复触发,问「怎么绑定」等闲聊意图不触发)
情况 3:弹卡失败(retry_pay 调用出错)→ 静默重试,最多 3 次,每次都重调 retry_pay→ 3 次全败 → 输出与情况 2 相同的话术(含『帮我绑定』分支),并按用户选择继续
铁律
- 弹卡成功等付款时,只输出固定台词:「本次查询需要支付 ¥9.90。系统正在唤起微信支付卡片,请按提示完成支付;付款成功后回复『付好了』,我立即出报告。」,不加任何括号备注、不提前提取消/降级
- 任何情况下不向用户输出「系统繁忙」「支付失败」等平台内部信息
请求格式
{
"expert_id": "concrete-crack-detective",
"mode": "pre_pour",
"conversation_id": "wb_conversation_xxx",
"params": {
"strength_grade": "C25",
"cement_type": "矿渣水泥",
"cement_grade": 425,
"mc": 275,
"Q": 335,
"wc_ratio": 0.6,
"fineness": 300,
"slurry_pct": 20,
"curing_days": 15,
"humidity": 80,
"r": 0.2,
"rebar_ratio": 0.05,
"slag_pct": 30,
"fly_ash_pct": 0,
"water_reducer": "无",
"T0": 14,
"T_env_avg": 15,
"T_env_min": 3,
"S": 0.3,
"R": 0.32,
"m_heat": 0.3,
"calc_day": 15,
"thickness_m": 2.5,
"width_m": 10,
"length_m": 30,
"nu": 0.15,
"foundation": "软黏土"
}
}响应格式
当前免费模式(HTTP 200):
{
"success": true,
"mode": "pre_pour",
"result": { /* 结构化计算结果 */ },
"html": "<html>...</html>",
"html_base64": "PGh0bWw+..."
}result:结构化计算结果(JSON)html:原始 HTML 报告字符串,优先直接展示(无需解码,避免 base64 搬运延迟)html_base64:Base64 编码的中文 HTML 报告,兼容旧展示方式
免费试用首次调用(HTTP 200,带 trial: true):
同一对话首次调用本 Skill 时,后端直接返回计算结果,不创建订单、不扣费。
{
"success": true,
"mode": "pre_pour",
"trial": true,
"message": "本次报告已为您免费生成。同一对话内再次计算或换参数重算,需开通 24 小时无限次重算权限(¥9.90)。",
"result": { /* 结构化计算结果 */ },
"html": "<html>...</html>",
"html_base64": "PGh0bWw+...",
"docx_base64": "UEsDBBQ...",
"docx_filename": "混凝土裂缝侦探报告.docx"
}AI 展示完免费试用报告后,应提示用户:「这是本对话的免费试用报告。如果您想换参数再算、换模式再算,或 24 小时内反复调整,回复『换参数』或『再算一次』即可触发 ¥9.90 的 24 小时无限次重算权限。」
收费模式首次调用(HTTP 402):
响应头:
WeixinPay-Required: PAYMENT_CODE_FROM_SKILLHUB响应体:
{
"data": { "message": "本次查询需要付费" },
"out_trade_no": "skillpay_20260730123456_xxx",
"amount_fen": 990,
"code_url": "weixin://wxpay/bizpayurl?pr=xxx",
"payment_code": "PAYMENT_CODE_FROM_SKILLHUB",
"WeixinPay": {
"WeixinPay-Required": "PAYMENT_CODE_FROM_SKILLHUB",
"prompt": "本次使用微信支付,请将 WeixinPay-Required 的值作为 paymentCode 交给 weixinpay_pay,以向用户申请支付授权。"
}
}字段说明:
| 字段 | 说明 |
|---|---|
out_trade_no | 商户订单号,退款/对账时使用 |
amount_fen | 支付金额,990 分 = ¥9.90 |
code_url | 微信支付 Native 支付二维码链接(weixin:// 协议)。仅供系统检测,AI 不得将其渲染给用户。 |
payment_code | X402 协议规定的支付凭证,二次调用时必须带回作为 payment_code 字段 |
WeixinPay | X402 协议规范对象,含 WeixinPay-Required 与 prompt |
后端同时通过 HTTP 响应头
WeixinPay-Required与响应体WeixinPay对象告知 Agent 需要支付。WorkBuddy 平台识别后会自动弹出微信支付卡片。
用户扫码付款后,再次调用(可携带新的 params 换参数重算):
{
"expert_id": "concrete-crack-detective",
"payment_code": "PAYMENT_CODE_FROM_SKILLHUB",
"params": { /* 可选:新的参数,会与订单原参数合并 */ }
}报告重取接口(POST /api/result):
当 /api/calculate 已返回 HTTP 200 但 AI 侧未能直接展示 html 字段时,用此接口按订单号秒取已生成的报告,无需重新计算。
请求体:
{
"payment_code": "PAYMENT_CODE_FROM_SKILLHUB"
}或:
{
"out_trade_no": "skillpay_20260730123456_xxx"
}响应体(HTTP 200,与 /api/calculate 二次调用成功时格式一致):
{
"success": true,
"out_trade_no": "skillpay_20260730123456_xxx",
"expert_id": "concrete-crack-detective",
"mode": "pre_pour",
"result": { /* 结构化计算结果 */ },
"html": "<html>...</html>",
"html_base64": "PGh0bWw+...",
"docx_base64": "UEsDBBQ...",
"docx_filename": "混凝土裂缝侦探报告.docx",
"expires_at": "2026-08-03T16:23:00.000Z"
}该接口只返回已落库的报告;若报告尚未生成,返回 HTTP 404「报告尚未生成」。
异常处理
| 状态码 | 含义 | AI 应如何处理 |
|---|---|---|
400 | 请求参数错误 | 详见下方「400 错误处理原则」 |
402 | 需要支付(仅收费模式) | 按「支付弹窗方案」章节执行 |
403 | 支付会话已过期 | 提示用户重新下单 |
404 | 专家不存在 / 订单不存在 | 提示用户检查 expert_id |
500 | 服务端错误 | 提示用户稍后重试 |
400 错误处理原则
后端书表校验返回 400 时,AI 必须按以下顺序处理:
- AI 内部字段问题(冗余、字段映射错误)→ AI 自己修复后重试,不告诉用户:
- 典型场景:「未知参数 W」—— 这是 AI 误传或字段映射没做对,AI 默默去掉后重新调用即可。
- 用户不需要知道 AI 内部修复了哪个字段,不要把"去掉冗余字段""字段映射由 X 表达"等等细节告诉用户。
- 重试成功后照常展示结果即可。
- AI 内部操作日志不要展示给用户:
- 类似于「修改 / 运行校验:crack_payload.json」「写入临时文件 / 删除」这种开发者向日志,AI 内部处理就行。
- 仅当 AI 自己调试时可在思维链里出现,用户对话窗口里看不到这些字眼。
- AI 内部无法修复 → 简洁告诉用户:
- 只有用户参数真的越界(比如强度等级填了 C100、超出 C15~C80 范围),AI 才简洁告诉用户。
- 提示风格:「参数有点问题:xxx 字段需要 C15~C80 之间的值,麻烦您确认一下。」—— 一句话讲清楚字段 + 范围 + 期望值,不解释技术细节。
总结:用户看到的应该是「参数有问题 → 改好后调用成功」,而不是「AI 错误的内部修复过程」。
500/5xx 错误处理原则
后端返回 500 / 502 / 503 / 504 等 5xx 时,代表 SkillHub 预下单服务或网关内部出现短暂异常。AI 必须按以下原则处理:
- 绝不暴露内部错误细节:
- 不要把后端返回的任何原始错误信息、错误码、堆栈、响应片段展示给用户。
- 禁止说「SkillHub 预下单失败」「X402 预下单失败」「微信支付返回系统繁忙」等内部归因词汇。
- 不向用户归因具体原因:
- 不要告诉用户「微信支付失败了」「系统繁忙」「服务器挂了」——这些判断可能不准确,会让用户误解为钱已扣走或支付链路断了。
- 5xx 只是后端响应异常,不代表用户扫码付款一定失败。
- 不向用户输出任何平台内部信息:5xx 时不归因原因,弹卡相关按「支付弹窗方案」章节执行。
- 区分场景:
- 首次调用即返回 5xx:不归因原因,引导用户重新触发计算。
- 已看到支付卡片并完成扫码付款,二次调用返回 5xx:安抚用户「您的付款仍然有效」,引导回复「重试」;若连续失败,调用
POST /api/order-status查询真实订单状态。
总结:用户看到的永远只是「看不到二维码就回复看不到二维码」这类简单提示,任何内部错误细节和归因都不允许出现。
退款说明
| 场景 | 处理方式 |
|---|---|
| 支付成功但未收到计算结果(重调用仍失败) | 用户可联系开发者提供商户订单号,经核实后退款 |
| 重复扣费(同商户订单号检测到多次扣款) | 经核实后全额原路退回 |
实际收费 ¥9.90/次(一次付费后 24 小时内无限次重算)。以下退款规则按微信支付商户协议执行。
支持的 mode 与关键参数
| mode | 说明 | 关键参数(除通用项外) |
|---|---|---|
pre_pour | 浇筑前裂缝预测 | 配合比、尺寸、地基、环境温湿度 |
post_pour | 浇筑后实测反算 | 同左 + temperatures(各龄期实测中心温度) |
insulation | 保温层计算 | 厚度、大气温度、保温材料、风速 |
crack_width | 裂缝宽度验算 | 结构尺寸、温差/温度、弹性模量 |
调用前可先用 GET /api/template?mode=<mode> 获取该模式完整模板(含参数名、必填项、默认值)。
AI Agent 工作流程(v3.0 — 弹窗/表格双模式)
以下流程是给 AI Agent 看的"操作手册"。当用户说"想算个混凝土裂缝"时,AI 应严格按本流程执行。
本版本采用「平台自适应双版本」交互模式:每个交互步骤同时提供「弹窗版」和「表格版」两个版本,AI 根据当前平台能力自动选择其一发给用户。两版选项内容完全一致,仅输出格式不同。
平台识别与交互模式
AI 在开始参数收集前,必须先识别当前平台是否支持 AskUserQuestion 弹窗:
- 支持弹窗(如 WorkBuddy)→ 使用「弹窗版」输出格式(原生点选体验)
- 不支持弹窗(大多数其他 AI 平台)→ 使用「表格版」输出格式(Markdown 表格 + 用户回复数字/名称)
以下每个交互步骤同时给出两个版本。AI 根据当前平台只选一个版本发给用户,不要两个版本都发。两版的选项内容完全一致,仅输出格式不同。
核心原则
- 平台自适应:先识别平台支持哪种交互方式,选弹窗版或表格版,每轮只发一个版本。
- 校验放最后:收集阶段只管收集不打断,校验统一在最终确认环节。
- AI 不算公式:所有计算交给云端 Python 引擎,AI 只负责问参数、确认参数、调用接口、展示报告。
- 不抛 JSON:全程用弹窗或 Markdown 表格和简短文字与用户交互,组装 JSON 是 AI 自己的事,不暴露给用户。
- 规范名称完整:提到任何规范时必须使用完整规范名称+编号,例如"《大体积混凝土施工标准》GB 50496—2018",不能只写编号"GB 50496—2018"。
- 支付弹窗按「支付弹窗方案」章节执行:收到 402 响应后按该章节调用
retry_pay触发弹卡,不得自渲染任何支付卡片或二维码。
三层参数分级
| 层级 | 来源 | 处理方式 |
|---|---|---|
| 🔵 用户输入 | 弹窗/表格选择或"其他"自由填写 | 逐轮收集 |
| 🟢 系统查表 | 引擎自动查 | 不显示给用户(Q/E₀/f_tk/λ/β/M1~M11/R/Cx/λ_i/K_b/β_u 等) |
| 🟣 算法计算 | Python 秒算 | 不显示给用户(温升/T_y/应力/缝宽等) |
第 0 步:模式选择
用户说明来意后,先用一段话向用户介绍四个模式(不要直接弹窗或弹表),再输出选项:
计算由云端 Python 引擎完成,严格按《大体积混凝土施工标准》GB 50496—2018 等国家规范公式执行。
我有四招,您看哪种是您的情况:
① 浇筑前预测(还没浇) — 混凝土还没浇,先算"这样浇会不会裂"。做方案、报审、浇筑前都用它,防患于未然。算完给您安全度 K(≥1.15 安全),不安全还会告诉您怎么改配方和工艺。
② 浇筑后反算(已经浇) — 混凝土已经浇了,把现场每天测的温度输进来,算现在安不安全。养护期间每天盯温度就用它,用真实温度说话,不安全会提示您怎么加强保温养护。
③ 保温层计算(怕冷着) — 冬天施工或温差大时,算两件事:保温"被子"要铺多厚、铺完表面温度达不达标(里表温差≤25℃)。
④ 裂缝宽度验算(已经裂) — 结构已经发现裂缝了,算这条缝会张开多宽、要不要紧。混凝土降温收缩时被地基拉住,裂口宽度是能算出来的:算出来和实际缝宽对比,就知道缝会不会继续发展;再按宽度给您分级处理建议(小缝表面封闭、中缝灌浆、大缝请专家)。
第 0 步:弹窗版
| header | question | 选项 |
|---|---|---|
| 计算模式 | 您是哪种情况? | ①还没浇:浇筑前预测(做方案防开裂,算安全度K)/ ②已经浇:浇筑后反算(输入实测温度,算当前安不安全)/ ③要保温:保温层计算(算保温层厚度+表面温度达标)/ ④已开裂:裂缝宽度验算(算缝宽+分级处理建议) |
第 0 步:表格版
请选择您的情况(回复数字或名称即可):
| 序号 | 模式 | 说明 |
|---|---|---|
| 1 | 浇筑前预测 | 做方案防开裂,算安全度 K |
| 2 | 浇筑后反算 | 输入实测温度,算当前安不安全 |
| 3 | 保温层计算 | 算保温层厚度 + 表面温度达标 |
| 4 | 裂缝宽度验算 | 算缝宽 + 分级处理建议 |
模式 A(浇筑前预测)
进入参数收集前,AI 在对话中输出:
接下来分 7 轮收集参数,每轮我会出一个弹窗或表格选项。有实际数据就选对应的,没有就在弹窗"其他"或表格里自己填,最后我会汇总让您逐项确认。
第 1 轮:配合比参数
弹窗版
| # | header | question | 选项 |
|---|---|---|---|
| 1 | 强度等级 | 强度等级?书表共14级(C15~C80),大体积常规用C25/C30——抗拉够、水化热适中 | C25 / C30 / C35 / C40 |
| 2 | 水泥品种 | 水泥品种?书表共5种。推荐矿渣水泥(水化热最低,书例全部采用);普通水泥次之。注意:低热/火山灰/抗硫酸盐水泥在本书无水化热数据,选了需后续补试验值 | 矿渣水泥 / 普通水泥 / 低热水泥 / 火山灰水泥 |
| 3 | 水泥标号 | 水泥标号?书表共5档(225/275/325/425/525),大体积最常用425 | 325 / 425 / 525 / 275 |
| 4 | 水泥用量 | 水泥用量(kg/m³)?大体积常规250~350,用量越低水化热越小 | 250 / 275 / 300 / 350 |
表格版
① 强度等级(书表共 14 级 C15~C80,大体积常规用 C25/C30——抗拉够、水化热适中)
| 序号 | 选项 | 说明 |
|---|---|---|
| 1 | C25 | 大体积最常用 |
| 2 | C30 | 抗拉够、水化热适中 |
| 3 | C35 | 较高强度 |
| 4 | C40 | 高强度(注意水化热偏高) |
② 水泥品种(书表共 5 种。推荐矿渣水泥——水化热最低;普通水泥次之。注意:低热/火山灰/抗硫酸盐水泥在本书无水化热数据)
| 序号 | 选项 | 说明 |
|---|---|---|
| 1 | 矿渣水泥 | 推荐,水化热最低 |
| 2 | 普通水泥 | 次选 |
| 3 | 低热水泥 | ⚠️ 本书无水化热数据 |
| 4 | 火山灰水泥 | ⚠️ 本书无水化热数据 |
③ 水泥标号(书表共 5 档 225/275/325/425/525,大体积最常用 425)
| 序号 | 选项 |
|---|---|
| 1 | 325 |
| 2 | 425(推荐) |
| 3 | 525 |
| 4 | 275 |
④ 水泥用量(kg/m³,大体积常规 250~350,用量越低水化热越小)
| 序号 | 选项 |
|---|---|
| 1 | 250 |
| 2 | 275(推荐) |
| 3 | 300 |
| 4 | 350 |
第 2 轮:水胶比
弹窗版
| # | header | question | 选项 |
|---|---|---|---|
| 1 | 水胶比 | 水胶比?书表共4档(0.3/0.4/0.5/0.6),大体积防裂常规取0.5~0.6;要更高强度选0.4以下。0.45等中间值填"其他",引擎自动线性插值 | 0.4 / 0.5 / 0.6 / 0.3 |
表格版
① 水胶比(书表共 4 档 0.3/0.4/0.5/0.6,大体积防裂常规取 0.5~0.6;要更高强度选 0.4 以下。0.45 等中间值填"其他",引擎自动线性插值)
| 序号 | 选项 | 说明 |
|---|---|---|
| 1 | 0.4 | 较高强度 |
| 2 | 0.5 | 防裂常规 |
| 3 | 0.6 | 大体积常规 |
| 4 | 0.3 | 高强混凝土 |
第 3 轮:掺合料与外加剂
弹窗版
| # | header | question | 选项 |
|---|---|---|---|
| 1 | 粉煤灰掺量 | 粉煤灰掺量(%)?书表共5档(0/20/30/40/50)。推荐20~30%:降热(k₁=0.95/0.93)又减缩(M10=0.90/0.86)。注意:超40%时抗拉调整系数λ₁无书表数据,引擎按40%取值 | 0(不掺) / 20 / 30 / 40 |
| 2 | 矿渣粉掺量 | 矿渣粉掺量(%)?书表共5档(0/20/30/40/50)。推荐20~30%:降热(k₂=0.93/0.92)又提高抗拉(λ₂=1.13/1.09)。注意:超40%时λ₂无书表数据,引擎按40%取值 | 0(不掺) / 20 / 30 / 40 |
| 3 | 减水剂 | 是否使用减水剂?大体积基本都掺,注意按书表它会增大收缩修正M9=1.30(不掺M9=1.00) | 有(M9=1.30) / 无(M9=1.00) |
| 4 | 水化热Q | 水化热总量怎么定?新版手册要求优先试验值,或按3d/7d试验值推算公式 Q₀=4/(7/Q₇−3/Q₃);都没试验值才用参考表(仅普通和矿渣两个品种×标号,掺合料自动折算k) | 自动参考 / 有试验值直接给Q / 有3天7天试验值推算 |
表格版
① 粉煤灰掺量(%,书表共 5 档 0/20/30/40/50。推荐 20~30%——降热又减缩。注意:超 40% 时抗拉调整系数 λ₁ 无书表数据,引擎按 40% 取值)
| 序号 | 选项 | 说明 |
|---|---|---|
| 1 | 0(不掺) | — |
| 2 | 20 | 推荐下限 |
| 3 | 30 | 推荐上限 |
| 4 | 40 | ⚠️ 超 40% 后 λ₁ 按 40% 截断 |
② 矿渣粉掺量(%,书表共 5 档 0/20/30/40/50。推荐 20~30%——降热又提高抗拉。注意:超 40% 时 λ₂ 无书表数据,引擎按 40% 取值)
| 序号 | 选项 | 说明 |
|---|---|---|
| 1 | 0(不掺) | — |
| 2 | 20 | 推荐下限 |
| 3 | 30 | 推荐上限 |
| 4 | 40 | ⚠️ 超 40% 后 λ₂ 按 40% 截断 |
③ 减水剂(大体积基本都掺,按书表它会增大收缩修正 M9=1.30;不掺 M9=1.00)
| 序号 | 选项 | 说明 |
|---|---|---|
| 1 | 有 | M9=1.30(收缩增大) |
| 2 | 无 | M9=1.00 |
④ 水化热 Q(新版手册要求优先试验值,或按 3d/7d 试验值推算公式 Q₀=4/(7/Q₇−3/Q₃);都没试验值才用参考表)
| 序号 | 选项 | 说明 |
|---|---|---|
| 1 | 自动参考 | 引擎按书表 + 掺合料自动折算 |
| 2 | 有试验值直接给 Q | 直接提供 Q 值(kJ/kg) |
| 3 | 有 3 天 7 天试验值 | 提供 Q3、Q7 让引擎推算 |
第 4 轮:环境与地基
弹窗版
| # | header | question | 选项 |
|---|---|---|---|
| 1 | 入模温度 | 入模温度 T₀(℃)?按施工方案或实测,规范要求≤30℃,夏季建议≤25℃ | 10(冬季) / 15(春秋) / 20(常规) / 25(夏季) |
| 2 | 年均温度 | 当地年平均气温(℃)?查当地气象资料(气象局官网或天气App查年平均) | 5 / 10 / 15 / 20 |
| 3 | 最低温度 | 养护期月平均最低气温(℃)?养护期当月的平均最低温度,查天气预报 | -5 / 0 / 5 / 10 |
| 4 | 地基类型 | 地基类型?模式A用外约束系数R查表。推荐砂质黏土(最常见,R=0.35);R表共5种:岩石地基(R=1)/可滑动垫层(R=0)/软黏土/砂质黏土/硬黏土 | 砂质黏土 / 软黏土 / 硬黏土 / 岩石地基 |
表格版
① 入模温度 T₀(℃,按施工方案或实测,规范要求 ≤30℃,夏季建议 ≤25℃)
| 序号 | 选项 | 说明 |
|---|---|---|
| 1 | 10 | 冬季 |
| 2 | 15 | 春秋 |
| 3 | 20 | 常规 |
| 4 | 25 | 夏季 |
② 年平均气温(℃,查当地气象资料或天气 App)
| 序号 | 选项 |
|---|---|
| 1 | 5 |
| 2 | 10 |
| 3 | 15 |
| 4 | 20 |
③ 养护期月平均最低气温(℃,查天气预报)
| 序号 | 选项 |
|---|---|
| 1 | -5 |
| 2 | 0 |
| 3 | 5 |
| 4 | 10 |
④ 地基类型(模式 A 用外约束系数 R 查表。推荐砂质黏土——最常见 R=0.35。R 表共 5 种)
| 序号 | 选项 | 说明 |
|---|---|---|
| 1 | 砂质黏土 | 推荐,最常见 |
| 2 | 软黏土 | R=0.32 |
| 3 | 硬黏土 | R=0.40 |
| 4 | 岩石地基 | R=1.0 |
第 5 轮:结构尺寸
直接用一段话追问(无预设选项,必须按图纸填):
「结构尺寸:长、宽、厚分别是多少米?按施工图纸填写(如:长 30、宽 10、厚 2)」
⚠️ 适用范围检查:本专家公式按实心大体积混凝土建立(新规范定义:最小断面尺寸 >1m)。
- 厚度 ≤1m 的薄壁结构 → 提示"不属于大体积混凝土范畴,本书公式不适用,建议专业工程师另行分析",确认后再继续
- 箱梁等空心结构 → 同上提示。若用户坚持只做收缩估算,可继续但报告中注明"空心截面按净截面近似,仅供收缩参考"
第 6 轮:施工与材料条件
弹窗版
| # | header | question | 选项 |
|---|---|---|---|
| 1 | 水泥细度 | 水泥细度(m²/kg)?书表共4档(300/400/500/600)。普通工程水泥没特别注明细度就选500 | 300 / 400 / 500 / 600 |
| 2 | 胶浆量 | 胶浆量(%)?书表共7档(20/25/30/35/40/45/50)。常规取20,泵送混凝土浆量偏大可填25 | 20 / 25 / 30 / 35 |
| 3 | 养护时间 | 计划养护时间(d)?书表共9档:1/2/3/4/5/7/10/14/28天,推荐14天(规范常规);掺了粉煤灰/矿渣粉建议21天以上。注意11~13天书表无数据,引擎按10天取值 | 14 / 7 / 10 / 28 |
| 4 | 环境湿度 | 环境相对湿度(%)?书表共8档(25/30/40/50/60/70/80/90)。常规施工环境取50,北方干燥选30~40,南方梅雨选70~90 | 50 / 70 / 90 / 30 |
表格版
① 水泥细度(m²/kg,书表共 4 档 300/400/500/600。普通工程水泥没特别注明细度就选 500)
| 序号 | 选项 |
|---|---|
| 1 | 300 |
| 2 | 400 |
| 3 | 500(推荐) |
| 4 | 600 |
② 胶浆量(%,书表共 7 档 20/25/30/35/40/45/50。常规取 20,泵送混凝土浆量偏大可填 25)
| 序号 | 选项 |
|---|---|
| 1 | 20(推荐) |
| 2 | 25 |
| 3 | 30 |
| 4 | 35 |
③ 养护时间(天,书表共 9 档:1/2/3/4/5/7/10/14/28,推荐 14 天。掺粉煤灰/矿渣粉建议 21 天以上。注意 11~13 天书表无数据,引擎按 10 天取值)
| 序号 | 选项 | 说明 |
|---|---|---|
| 1 | 7 | 短期 |
| 2 | 14 | 推荐 |
| 3 | 21 | 掺合料时建议 |
| 4 | 28 | 长期 |
④ 环境湿度(%,书表共 8 档 25/30/40/50/60/70/80/90。常规施工取 50,北方干燥 30~40,南方梅雨 70~90)
| 序号 | 选项 | 说明 |
|---|---|---|
| 1 | 30 | 北方干燥 |
| 2 | 50 | 常规施工 |
| 3 | 70 | 南方梅雨 |
| 4 | 90 | 高湿环境 |
第 7 轮:微调参数与计算龄期
弹窗版
| # | header | question | 选项 |
|---|---|---|---|
| 1 | 配筋率 | 广义配筋率 E_sF_s/E_cF_c?书表共6档(0/0.05/0.10/0.15/0.20/0.25)。大体积常规无配筋填0,有配筋按图纸让技术人员算 | 0(无配筋) / 0.05 / 0.10 / 0.15 |
| 2 | 松弛系数 | 松弛系数 S?建议0.3(浇筑前预测常用值,偏安全),书上一般取0.3~0.5 | 0.3 / 0.4 / 0.5 |
| 3 | 计算天数 | 计算第几天的应力?建议15天(规范推荐的常规检查龄期) | 7天 / 15天 / 28天 |
表格版
① 配筋率(E_sF_s/E_cF_c,书表共 6 档 0/0.05/0.10/0.15/0.20/0.25。大体积常规无配筋填 0)
| 序号 | 选项 | 说明 |
|---|---|---|
| 1 | 0(无配筋) | 大体积常规 |
| 2 | 0.05 | 低配筋 |
| 3 | 0.10 | 中配筋 |
| 4 | 0.15 | 较高配筋 |
② 松弛系数 S(建议 0.3——浇筑前预测常用值,偏安全;书上一般取 0.3~0.5)
| 序号 | 选项 | 说明 |
|---|---|---|
| 1 | 0.3 | 推荐,偏安全 |
| 2 | 0.4 | 常用 |
| 3 | 0.5 | 偏松 |
③ 计算天数(算第几天的应力?建议 15 天——规范推荐的常规检查龄期)
| 序号 | 选项 | 说明 |
|---|---|---|
| 1 | 7 | 早期应力 |
| 2 | 15 | 推荐,常规检查 |
| 3 | 28 | 中后期应力 |
模式 B(浇筑后反算)
进入参数收集前,AI 在对话中输出:
接下来分 9 轮收集参数,每轮我会出一个弹窗或表格选项。有实际数据就选对应的,没有就在弹窗"其他"或表格里自己填,最后我会汇总让您逐项确认。
第 1~7 轮:与模式 A 相同
配合比 → 水胶比 → 掺合料 → 环境与地基 → 结构尺寸 → 施工材料 → 配筋率微调。
⚠️ 模式 B 不需要"松弛系数"和"计算天数"两题——模式 B 按龄期自动处理。
⚠️ 地基类型选项模式 B 与模式 A 不同(模式 B 查 Cx 变形刚度表,键集不同):
弹窗版(第 4 轮"地基类型"题)
| # | header | question | 选项 |
|---|---|---|---|
| 1 | 地基类型 | 地基类型?模式B用地基变形刚度Cx查表。推荐砂质黏土(最常见,Cx=0.045)。Cx表共6种:软黏土/砂质黏土/硬黏土/风化岩/低强度素混凝土垫层/配筋混凝土垫层 | 砂质黏土 / 软黏土 / 硬黏土 / 风化岩 |
表格版(第 4 轮"地基类型"题)
④ 地基类型(模式 B 用地基变形刚度 Cx 查表。推荐砂质黏土——最常见 Cx=0.045。Cx 表共 6 种)
| 序号 | 选项 | 说明 |
|---|---|---|
| 1 | 砂质黏土 | 推荐,最常见 |
| 2 | 软黏土 | Cx=0.03 |
| 3 | 硬黏土 | Cx=0.06 |
| 4 | 风化岩 | Cx=0.10 |
第 8 轮:实测中心温度(第 3~21 天)
逐轮提问(按现场测温记录填,名称带含义说明。选项为书上算例参考值,实测值请填"其他"):
弹窗版
| # | header | question | 选项 |
|---|---|---|---|
| 1 | 第3天温度 | 第3天实测中心温度(℃)?(升温峰值,一般3~5天达到最高,书例 52) | 50 / 52(书例值) / 55 / 48 |
| 2 | 第9天温度 | 第9天实测中心温度(℃)?(开始降温,书例 46) | 45 / 46(书例值) / 48 / 42 |
| 3 | 第15天温度 | 第15天实测中心温度(℃)?(书例 39.5) | 38 / 39.5(书例值) / 42 / 35 |
| 4 | 第21天温度 | 第21天实测中心温度(℃)?(书例 35.7) | 34 / 35.7(书例值) / 38 / 32 |
表格版
① 第 3 天实测中心温度(℃,升温峰值,一般 3~5 天达到最高,书例 52)
| 序号 | 选项 |
|---|---|
| 1 | 50 |
| 2 | 52(书例值) |
| 3 | 55 |
| 4 | 48 |
② 第 9 天实测中心温度(℃,开始降温,书例 46)
| 序号 | 选项 |
|---|---|
| 1 | 45 |
| 2 | 46(书例值) |
| 3 | 48 |
| 4 | 42 |
③ 第 15 天实测中心温度(℃,书例 39.5)
| 序号 | 选项 |
|---|---|
| 1 | 38 |
| 2 | 39.5(书例值) |
| 3 | 42 |
| 4 | 35 |
④ 第 21 天实测中心温度(℃,书例 35.7)
| 序号 | 选项 |
|---|---|
| 1 | 34 |
| 2 | 35.7(书例值) |
| 3 | 38 |
| 4 | 32 |
第 9 轮:实测中心温度(第 27~30 天)+ 松弛系数
弹窗版
| # | header | question | 选项 |
|---|---|---|---|
| 1 | 第27天温度 | 第27天实测中心温度(℃)?(书例 33.5) | 32 / 33.5(书例值) / 35 / 30 |
| 2 | 第30天温度 | 第30天实测中心温度(℃)?(接近环境温度,书例 32) | 30 / 32(书例值) / 34 / 28 |
| 3 | 松弛系数 | 各龄期松弛系数 S 怎么取?建议自动按规范表取值,一般不用改 | 自动按表取值 / 按书上算例经验值 / 手动指定 |
表格版
① 第 27 天实测中心温度(℃,书例 33.5)
| 序号 | 选项 |
|---|---|
| 1 | 32 |
| 2 | 33.5(书例值) |
| 3 | 35 |
| 4 | 30 |
② 第 30 天实测中心温度(℃,接近环境温度,书例 32)
| 序号 | 选项 |
|---|---|
| 1 | 30 |
| 2 | 32(书例值) |
| 3 | 34 |
| 4 | 28 |
③ 各龄期松弛系数 S 怎么取?(建议自动按规范表取值,一般不用改)
| 序号 | 选项 | 说明 |
|---|---|---|
| 1 | 自动按表取值 | 推荐 |
| 2 | 按书上算例经验值 | — |
| 3 | 手动指定 | 自己给一个固定值 |
实测温度数据不够 6 个龄期时:告诉引擎实际有哪些龄期(如只有 3/9/15/21/27 天),引擎按实际龄期自动计算。
各台阶水化热降温差不用填:引擎自动按相邻实测中心温度之差计算(如 52→46 就是 6.0℃,与书上算例一致)。
模式 C(保温层计算)
进入参数收集前,AI 在对话中输出:
接下来分 5 轮收集参数,每轮我会出一个弹窗或表格选项。有实际数据就选对应的,没有就在弹窗"其他"或表格里自己填,最后我会汇总让您逐项确认。
第 C1 轮:计算内容与导热系数
弹窗版
| # | header | question | 选项 |
|---|---|---|---|
| 1 | 计算内容 | 要算什么? | 验算表面温度(已有保温方案) / 算保温层厚度(还没铺) / 两个都算 |
| 2 | 中心温度来源 | 中心最高温度怎么来? | 直接输入(实测或预估) / 按配合比计算(引擎自动算) |
| 3 | 混凝土类型 | 混凝土类型(决定导热系数λ₀)?书表共7类。推荐普通混凝土·花岗岩/玄武岩集料(最常见,λ₀=2.3)。其它:白云岩集料λ₀=3.2、石英岩集料λ₀=3.5、流纹岩集料λ₀=2.09、重混凝土λ₀=2.7、轻混凝土λ₀=0.6、泡沫混凝土λ₀=0.23 | 普通·花岗岩/玄武岩 / 普通·白云岩 / 普通·石英岩 / 轻混凝土 |
| 4 | 风速 | 现场风速(m/s)?书表共12档(0~10)。按现场实际,室内/无风填0 | 0(无风/室内) / 2 / 4 / 5 |
表格版
① 要算什么?
| 序号 | 选项 | 说明 |
|---|---|---|
| 1 | 验算表面温度 | 已有保温方案,验算里表温差 |
| 2 | 算保温层厚度 | 还没铺,反推厚度 |
| 3 | 两个都算 | — |
② 中心最高温度怎么来?
| 序号 | 选项 | 说明 |
|---|---|---|
| 1 | 直接输入 | 实测或预估 |
| 2 | 按配合比计算 | 引擎自动算 |
③ 混凝土类型(决定导热系数 λ₀,书表共 7 类。推荐普通·花岗岩/玄武岩集料——最常见 λ₀=2.3)
| 序号 | 选项 | 说明 |
|---|---|---|
| 1 | 普通·花岗岩/玄武岩 | 推荐,λ₀=2.3 |
| 2 | 普通·白云岩 | λ₀=3.2 |
| 3 | 普通·石英岩 | λ₀=3.5 |
| 4 | 轻混凝土 | λ₀=0.6 |
④ 风速(m/s,书表共 12 档 0~10,按现场实际,室内/无风填 0)
| 序号 | 选项 |
|---|---|
| 1 | 0(无风/室内) |
| 2 | 2 |
| 3 | 4 |
| 4 | 5 |
第 C2 轮:基本条件
弹窗版
| # | header | question | 选项 |
|---|---|---|---|
| 1 | 结构厚度 | 结构实际厚度(m)?按施工图纸,常见1.5~3.0 | 1.5 / 2.0 / 2.5 / 3.0 |
| 2 | 大气温度 | 大气平均温度(℃)?浇筑后3~5天混凝土达温峰时的平均气温,查天气预报 | -5(严寒) / 0(冬季) / 5(初冬) / 10(春秋) |
| 3 | 目标表面温度 | 目标表面温度(℃)?建议大气+15℃:书上建议15~20℃里的常规取法,保温投入适中 | 大气+15℃ / 大气+18℃ / 大气+20℃ / 直接输入具体温度 |
| 4 | 中心最高温度 | (仅"直接输入"路径问)中心最高温度(℃)?有实测按实测;估算≈入模温度+绝热温升。书例 51 / 64.3 | 45 / 51(书例值) / 60 / 65 |
表格版
① 结构实际厚度(m,按施工图纸,常见 1.5~3.0)
| 序号 | 选项 |
|---|---|
| 1 | 1.5 |
| 2 | 2.0 |
| 3 | 2.5 |
| 4 | 3.0 |
② 大气平均温度(℃,浇筑后 3~5 天混凝土达温峰时的平均气温,查天气预报)
| 序号 | 选项 | 说明 |
|---|---|---|
| 1 | -5 | 严寒 |
| 2 | 0 | 冬季 |
| 3 | 5 | 初冬 |
| 4 | 10 | 春秋 |
③ 目标表面温度(℃,建议大气+15℃——书上建议 15~20℃ 里的常规取法)
| 序号 | 选项 | 说明 |
|---|---|---|
| 1 | 大气+15℃ | 推荐 |
| 2 | 大气+18℃ | — |
| 3 | 大气+20℃ | 偏保守 |
| 4 | 直接输入 | 自己给一个温度值 |
④ 中心最高温度(仅"直接输入"路径问,℃,有实测按实测;估算≈入模温度+绝热温升。书例 51 / 64.3)
| 序号 | 选项 |
|---|---|
| 1 | 45 |
| 2 | 51(书例值) |
| 3 | 60 |
| 4 | 65 |
第 C3 轮:配合比(仅"按配合比计算"路径)
弹窗版
| # | header | question | 选项 |
|---|---|---|---|
| 1 | 水泥品种 | 水泥品种?推荐矿渣水泥(水化热低,大体积首选)。注意:低热/火山灰/抗硫酸盐水泥在本书无水化热数据,选了需后续补试验值 | 矿渣水泥 / 普通水泥 / 低热水泥 / 火山灰水泥 |
| 2 | 水泥标号 | 水泥标号?书表共5档(225/275/325/425/525),推荐425最常用 | 325 / 425 / 525 / 275 |
| 3 | 水泥用量 | 水泥用量(kg/m³)?大体积常规250~350 | 250 / 275 / 300 / 350 |
| 4 | 粉煤灰掺量 | 粉煤灰掺量(%)?推荐20~30%:降热又减缩。注意:超40%时λ₁无书表数据 | 0(不掺) / 20 / 30 / 40 |
表格版
① 水泥品种(推荐矿渣水泥——水化热低,大体积首选。注意:低热/火山灰/抗硫酸盐水泥在本书无水化热数据)
| 序号 | 选项 | 说明 |
|---|---|---|
| 1 | 矿渣水泥 | 推荐 |
| 2 | 普通水泥 | — |
| 3 | 低热水泥 | ⚠️ 本书无水化热数据 |
| 4 | 火山灰水泥 | ⚠️ 本书无水化热数据 |
② 水泥标号(书表共 5 档 225/275/325/425/525,推荐 425 最常用)
| 序号 | 选项 |
|---|---|
| 1 | 325 |
| 2 | 425(推荐) |
| 3 | 525 |
| 4 | 275 |
③ 水泥用量(kg/m³,大体积常规 250~350)
| 序号 | 选项 |
|---|---|
| 1 | 250 |
| 2 | 275(推荐) |
| 3 | 300 |
| 4 | 350 |
④ 粉煤灰掺量(%,推荐 20~30%——降热又减缩。注意:超 40% 时 λ₁ 无书表数据)
| 序号 | 选项 |
|---|---|
| 1 | 0(不掺) |
| 2 | 20 |
| 3 | 30 |
| 4 | 40 |
第 C4 轮:掺合料(仅"按配合比计算"路径)
弹窗版
| # | header | question | 选项 |
|---|---|---|---|
| 1 | 矿渣粉掺量 | 矿渣粉掺量(%)?推荐20~30%:降热又提高抗拉。注意:超40%时λ₂无书表数据 | 0(不掺) / 20 / 30 / 40 |
表格版
① 矿渣粉掺量(%,推荐 20~30%——降热又提高抗拉。注意:超 40% 时 λ₂ 无书表数据)
| 序号 | 选项 |
|---|---|
| 1 | 0(不掺) |
| 2 | 20 |
| 3 | 30 |
| 4 | 40 |
用户若直接掌握其它胶凝材料的用量和水化热试验值,可文字补充,引擎按 Σ(W×Q)/(cρ) 精确计算。
第 C5 轮:保温方案
弹窗版
| # | header | question | 选项 |
|---|---|---|---|
| 1 | 保温材料 | 主要保温材料?书表共22种。推荐草袋(λ=0.14,书例采用值,养护最常用);要求高的用泡沫塑料(0.04)/挤塑板(0.028~0.034) | 草袋 / 油毡 / 泡沫塑料制品 / 土工布 |
| 2 | 保温层构造 | 保温层构造类型?书表共4种。推荐不易透风材料组成(K_b最小1.3/1.5,如油毡、帆布、棉麻毡、胶合板,最容易达标)。风速≤4用K_b1,>4用K_b2 | 不易透风材料组成 / 易透风+一层不透风 / 易透风+面层不透风 / 易透风上下各一层不透风 |
| 3 | 表面类型 | 混凝土表面类型?木模/裸面选粗糙(常规);钢模成型选光滑。影响空气传热系数β_u | 粗糙 / 光滑 |
表格版
① 主要保温材料(书表共 22 种。推荐草袋——λ=0.14,书例采用值,养护最常用)
| 序号 | 选项 | 说明 |
|---|---|---|
| 1 | 草袋 | 推荐,λ=0.14 |
| 2 | 油毡 | — |
| 3 | 泡沫塑料制品 | 保温要求高,λ=0.04 |
| 4 | 土工布 | — |
② 保温层构造类型(书表共 4 种。推荐不易透风材料组成——K_b 最小 1.3/1.5,最容易达标)
| 序号 | 选项 | 说明 |
|---|---|---|
| 1 | 不易透风材料组成 | 推荐,K_b=1.3/1.5 |
| 2 | 易透风+一层不透风 | K_b=1.6/2.0 |
| 3 | 易透风+面层不透风 | K_b=2.1/2.4 |
| 4 | 易透风上下各一层不透风 | K_b=4.0 |
③ 混凝土表面类型(木模/裸面选粗糙——常规;钢模成型选光滑。影响空气传热系数 β_u)
| 序号 | 选项 | 说明 |
|---|---|---|
| 1 | 粗糙 | 木模/裸面,常规 |
| 2 | 光滑 | 钢模成型 |
验算表面温度时追问保温层组成(无预设选项,按实际铺法说):
「保温层怎么铺的?格式:材料名+厚度,如 塑料薄膜 1mm + 草袋 1cm;多层逐层说」
模式 D(裂缝宽度验算)
进入参数收集前,AI 在对话中输出:
接下来分 4 轮收集参数,每轮我会出一个弹窗或表格选项。有实际数据就选对应的,没有就在弹窗"其他"或表格里自己填,最后我会汇总让您逐项确认。
第 D1 轮:基本参数
弹窗版
| # | header | question | 选项 |
|---|---|---|---|
| 1 | 弹模来源 | 弹性模量怎么定? | 直接输入(如实测值) / 按强度等级+龄期计算(引擎自动算) |
| 2 | 地基类型 | 地基类型?模式D用地基变形刚度Cx查表。推荐砂质黏土(最常见,Cx=0.045)。Cx表共6种:软黏土/砂质黏土/硬黏土/风化岩/低强度素混凝土垫层/配筋混凝土垫层 | 砂质黏土 / 软黏土 / 硬黏土 / 风化岩 |
| 3 | 温差来源 | 综合温差 T 怎么定? | 直接输入(已知综合温差) / 水化热温差+收缩自动算 |
表格版
① 弹性模量怎么定?
| 序号 | 选项 | 说明 |
|---|---|---|
| 1 | 直接输入 | 如有实测值 |
| 2 | 按强度等级+龄期计算 | 引擎自动算 |
② 地基类型(模式 D 用地基变形刚度 Cx 查表。推荐砂质黏土——最常见 Cx=0.045。Cx 表共 6 种)
| 序号 | 选项 | 说明 |
|---|---|---|
| 1 | 砂质黏土 | 推荐,最常见 |
| 2 | 软黏土 | Cx=0.03 |
| 3 | 硬黏土 | Cx=0.06 |
| 4 | 风化岩 | Cx=0.10 |
③ 综合温差 T 怎么定?
| 序号 | 选项 | 说明 |
|---|---|---|
| 1 | 直接输入 | 已知综合温差 |
| 2 | 水化热温差+收缩自动算 | 引擎自动算 |
第 D2 轮:结构与龄期
弹窗版
| # | header | question | 选项 |
|---|---|---|---|
| 1 | 结构厚度 | 结构厚度(m)?按施工图纸,常见1.0~2.5。书例1.5 | 1.0 / 1.5(书例值) / 2.0 / 2.5 |
| 2 | 结构长度 | 结构长度(m)?裂缝间距或结构全长,按实际情况。书例裂缝间距13 | 13(书例值) / 15 / 30 / 60 |
| 3 | 强度等级 | 强度等级?书表共14级(C15~C80),弹模自动算时需要。推荐C25/C30 | C25 / C30 / C35 / C40 |
| 4 | 计算龄期 | 计算龄期(天)?用于弹性模量和收缩计算。书例常用15天 | 7 / 15(书例值) / 28 / 30 |
表格版
① 结构厚度(m,按施工图纸,常见 1.0~2.5,书例 1.5)
| 序号 | 选项 |
|---|---|
| 1 | 1.0 |
| 2 | 1.5(书例值) |
| 3 | 2.0 |
| 4 | 2.5 |
② 结构长度(m,裂缝间距或结构全长,按实际情况,书例裂缝间距 13)
| 序号 | 选项 |
|---|---|
| 1 | 13(书例值) |
| 2 | 15 |
| 3 | 30 |
| 4 | 60 |
③ 强度等级(书表共 14 级 C15~C80,弹模自动算时需要。推荐 C25/C30)
| 序号 | 选项 | 说明 |
|---|---|---|
| 1 | C25 | 推荐 |
| 2 | C30 | 推荐 |
| 3 | C35 | — |
| 4 | C40 | — |
④ 计算龄期(天,用于弹性模量和收缩计算。书例常用 15 天)
| 序号 | 选项 |
|---|---|
| 1 | 7 |
| 2 | 15(书例值) |
| 3 | 28 |
| 4 | 30 |
第 D3 轮:弹模/温差数值(按路径二选一)
路径 A:选"直接输入弹模"时
弹窗版
| # | header | question | 选项 |
|---|---|---|---|
| 1 | 弹性模量 | 弹性模量 E(MPa)?书例取 1.0×10⁴ / 1.93×10⁴ | 10000 / 19300 / 22200 / 26400 |
表格版
① 弹性模量 E(MPa,书例取 1.0×10⁴ / 1.93×10⁴)
| 序号 | 选项 |
|---|---|
| 1 | 10000 |
| 2 | 19300 |
| 3 | 22200 |
| 4 | 26400 |
路径 B:选"水化热温差+收缩自动算"时(只问两个温度,×2/3 由引擎自动算,绝不让用户自己算)
弹窗版
| # | header | question | 选项 |
|---|---|---|---|
| 1 | 中心最高温度 | 混凝土内部中心部位的水化热温度峰值(℃)?(从测温记录查,一般浇筑后3~5天出现;不是表面温度。书例59.5) | 45 / 50 / 55 / 59.5(书例值) |
| 2 | 中心当前温度 | 现在混凝土内部中心部位的测温读数(℃)?(从最新测温记录查;不是表面温度。书例30) | 25 / 30(书例值) / 35 / 40 |
表格版
① 中心最高温度(℃,混凝土内部中心部位的水化热温度峰值。从测温记录查,一般浇筑后 3~5 天出现;不是表面温度。书例 59.5)
| 序号 | 选项 |
|---|---|
| 1 | 45 |
| 2 | 50 |
| 3 | 55 |
| 4 | 59.5(书例值) |
② 中心当前温度(℃,现在混凝土内部中心部位的测温读数。从最新测温记录查;不是表面温度。书例 30)
| 序号 | 选项 |
|---|---|
| 1 | 25 |
| 2 | 30(书例值) |
| 3 | 35 |
| 4 | 40 |
引擎自动完成:水化热平均温差 =(中心最高温度 − 中心当前温度)× 2/3,再加收缩当量温差得到综合温差。若用户没有测温记录,引导其改用"直接输入综合温差"路径按经验估算。
第 D4 轮:配合比(仅"自动算温差"路径,用于 M 系数算收缩)
弹窗版
| # | header | question | 选项 |
|---|---|---|---|
| 1 | 水泥品种 | 水泥品种?推荐矿渣水泥(水化热较低,书例均采用)。注意:低热/火山灰/抗硫酸盐水泥在本书无水化热数据,选了需后续补试验值 | 矿渣水泥 / 普通水泥 / 低热水泥 / 火山灰水泥 |
| 2 | 水胶比 | 水胶比?书表共4档(0.3/0.4/0.5/0.6),大体积防裂常规取0.5~0.6。0.45等中间值填"其他",引擎自动线性插值 | 0.4 / 0.5 / 0.6 / 0.3 |
| 3 | 粉煤灰掺量 | 粉煤灰掺量(%)?推荐20~30%:降热又减缩。注意:超40%时λ₁无书表数据 | 0(不掺) / 20 / 30 / 40 |
| 4 | 矿渣粉掺量 | 矿渣粉掺量(%)?推荐20~30%:降热又提高抗拉。注意:超40%时λ₂无书表数据 | 0(不掺) / 20 / 30 / 40 |
表格版
① 水泥品种(推荐矿渣水泥——水化热较低,书例均采用。注意:低热/火山灰/抗硫酸盐水泥在本书无水化热数据)
| 序号 | 选项 | 说明 |
|---|---|---|
| 1 | 矿渣水泥 | 推荐 |
| 2 | 普通水泥 | — |
| 3 | 低热水泥 | ⚠️ 本书无水化热数据 |
| 4 | 火山灰水泥 | ⚠️ 本书无水化热数据 |
② 水胶比(书表共 4 档 0.3/0.4/0.5/0.6,大体积防裂常规取 0.5~0.6。0.45 等中间值填"其他",引擎自动线性插值)
| 序号 | 选项 | 说明 |
|---|---|---|
| 1 | 0.4 | 较高强度 |
| 2 | 0.5 | 防裂常规 |
| 3 | 0.6 | 大体积常规 |
| 4 | 0.3 | 高强混凝土 |
③ 粉煤灰掺量(%,推荐 20~30%——降热又减缩。注意:超 40% 时 λ₁ 无书表数据)
| 序号 | 选项 |
|---|---|
| 1 | 0(不掺) |
| 2 | 20 |
| 3 | 30 |
| 4 | 40 |
④ 矿渣粉掺量(%,推荐 20~30%——降热又提高抗拉。注意:超 40% 时 λ₂ 无书表数据)
| 序号 | 选项 |
|---|---|
| 1 | 0(不掺) |
| 2 | 20 |
| 3 | 30 |
| 4 | 40 |
M 系数的其余条件——水泥细度、胶浆量、养护时间、环境湿度、配筋率——引擎按默认值处理;用户有明确要求时在汇总确认前补充。
汇总确认 → 调用接口
全部对话轮收完后,必须按以下编号逐项完成确认,不可跳过任何一步,完成后才可调用 API:
确认清单(强制逐项执行)
□ 1. 展示参数汇总表
用简短 Markdown 表格展示所有已收集参数,让用户确认数值是否正确。如有误,退回去修改。
□ 2. 列出"其他"自填参数的处理方式
如有参数是通过"其他"自填的(不是选的预设值),必须逐项说明引擎如何处理:
您有 N 个参数是自己填的,引擎会这样处理:
- 水胶比 0.45 → 书表标准值无 0.45,引擎将在 0.4~0.5 之间线性插值 ✓
- 粉煤灰掺量 45% → 抗拉调整系数 λ₁ 只到 40%,将按 40% 截断取值 ⚠️
- ……
□ 3. 两层校验(核心环节,不可省略)
第一层:参数本身是否在书表标准值中
筛选所有通过"其他"自填的参数。对于连续量参数(可插值的),告知插值方式即可,不追问。对于离散分类参数(不可插值的),不在书表中时必须逐项让用户选择:
以下参数您填的值不在书表标准选项中(书表全部可选值见下),请逐项确认:
1. 强度等级「C47」 → 书表仅有 C15/C20/C25/C30/C35/C40/C45/C50/C55/C60/C65/C70/C75/C80
① 改为 C45(最接近,弹性模量 E₀=3.35×10⁴ MPa)
② 改为 C50(E₀=3.45×10⁴ MPa)
③ 保持 C47(引擎将按 C45 查表,报告中会标注近似处理)
2. 水泥品种「XX」 → 书表仅有 矿渣水泥/普通水泥/低热水泥/火山灰水泥/抗硫酸盐水泥
① 改为 矿渣水泥(推荐,水化热低)
② 改为 普通水泥
③ 保持「XX」(引擎将按普通水泥近似取值,报告中会标注)
第二层:关联查表参数是否缺数据
筛选所有参数(无论选的还是自填的),检查其关联的查表是否有对应数据。缺数据时逐项让用户选择:
以下参数的关联查表中没有对应数据,请逐项确认:
1. 水泥品种「低热水泥」(书表有此品种,但水化热 Q 表仅普通和矿渣两个品种有参考值):
① 提供试验水化热值(填数字),或提供 3d/7d 累积水化热让引擎按 Q₀=4/(7/Q₇−3/Q₃) 推算
② 确认按近似值 335 kJ/kg 计算(报告中会标注"水化热按近似值,非本书数据")
2. 地基「岩石地基」+ 模式 B(岩石地基在 R 表有值,但 Cx 表仅有软黏土/砂质黏土/硬黏土/风化岩/低强度素混凝土/配筋混凝土):
① 提供实测 Cx 值(N/mm³)
② 确认按砂质黏土近似(Cx=0.045 N/mm³,报告中会标注)
3. 粉煤灰掺量 45%(掺量本身在书表范围内,但抗拉强度调整系数 λ₁ 仅到 40%):
① 改为 40%
② 确认按 40% 截断取值(λ₁ 按 0.92,报告中会标注)
□ 4. 等待用户逐项确认
用户必须明确回复每项选择(①或②或③)后,才能进入下一步。□3 两层校验未完成确认前,绝对禁止调用 API。
□ 5. 付费前置检查(仅收费模式)
按「支付弹窗方案」章节第 1 步执行。
□ 5.1 中文编码规范(强制)
⛔ 严禁在 curl 命令行
-d参数里直接写中文 JSON。Windows Git Bash 等 shell 会把 UTF-8 中文转成 GBK,导致「矿渣水泥」变成乱码,后端无法识别。
- 正确做法:把 JSON 请求体保存为 UTF-8 编码的文件,用
curl --data @file.json提交;或在 Python 中用requests/urllib直接传字典 - 错误示例:
curl -d '{"cement_type":"矿渣水泥"}' ...(中文会被 shell 转码) - 正确示例:
curl -H "Content-Type: application/json" --data @params.json ... - 后端收到乱码参数时会返回 HTTP 400,并提示「参数编码异常,请用 UTF-8 文件提交」
□ 5.2 后端书表强校验(最后一道防线,不替代 □3)
后端会对所有传入参数做机械校验,拒绝明显越界、乱造、未知字段。它不替代 □3 的 AI 端两层校验,也不阻断用户坚持的自填值、试验值、范围内插值。
校验规则:
- 离散枚举参数(如强度等级、水泥品种、水泥标号、地基类型等):值必须严格在书表枚举列表中,否则返回 HTTP 400
- 连续范围参数(如水胶比、水泥用量、掺量、温度、养护时间、计算龄期等):值必须在书表/物理允许范围内,范围内允许引擎自行插值或按最近档近似;超出范围返回 HTTP 400
- 占位值清理:
"auto"、""、null、undefined等会被后端自动清除,引擎按自己的默认值/查表逻辑处理 - 未知参数:不在书表参数列表中的字段,后端直接拒绝
- 试验值允许:用户提供的
Q、Q3、Q7等试验水化热值,只要在合理物理范围内就允许通过
AI 仍然必须执行 □3 两层校验:
- 第一层:自填参数是否在书表标准值中——连续量告知插值方式,离散分类让用户选择(改最接近/改次接近/保持原值)
- 第二层:关联查表参数是否缺数据——让用户提供试验值或确认近似值
AI 收到 HTTP 400 时的处理:
参数校验失败(以下值不在书表范围内):……
AI 必须把具体错误展示给用户,并引导用户修改参数(如「强度等级 C47 不在书表中,请改为 C45 或 C50」),禁止绕过校验直接重试。
□ 6. 根据确认结果更新参数
- 用户选 ① 提供实际值 → 将实际值写入参数 JSON
- 用户选 ②/③ 确认近似 → 保留引擎默认值,报告中会标注来源
- 更新后再次展示最终参数表(简洁版),确认无误
□ 7. 调用接口
确认完毕后:
- 将参数组装为 JSON 格式
- 生成/复用一个稳定的
conversation_id(用于判断免费试用,同一对话内必须保持不变):- 如果当前平台能拿到对话 ID,优先用平台对话 ID,同一对话内始终用这个 ID。
- 如果拿不到,在当前对话内生成一个随机字符串(如
wb_trial_<随机>),本次对话后续所有调用都必须复用同一个值。 - 换参数、换模式、重新计算都属于同一对话,不得更换
conversation_id。 - 只有用户开启新对话窗口时,才生成新的
conversation_id。
- 发送 POST 请求到
https://cloudbase-d3gdog2iaa9135-de1599f-1445374746.ap-shanghai.app.tcloudbase.com/pay-skill-gateway/api/calculate:- 请求体:
{"expert_id": "concrete-crack-detective", "mode": "<mode>", "conversation_id": "<当前对话ID>", "params": {...}}
- 请求体:
- 收到响应后按状态码处理:
- HTTP 200 且
trial: true:免费试用报告,响应体中html字段是可直接展示的 HTML 报告,直接渲染给用户,并提示后续重算需付费。展示完报告后追加一句:「如需 Word 版报告,请回复『Word』」。 - HTTP 200 无
trial:响应体中html字段是可直接展示的 HTML 报告,直接渲染给用户。展示完报告后追加一句:「如需 Word 版报告,请回复『Word』」。 - HTTP 402(收费模式):按「支付弹窗方案」章节执行。
- HTTP 200 且
生成 HTML 支付卡片的 Python 代码模板(扫码降级时使用)
收到 402 响应后,用户选择扫码降级时,AI 取出 code_url、payment_code、out_trade_no、amount_fen,执行:
import qrcode
import base64
from io import BytesIO
from datetime import datetime, timedelta
def build_payment_html(code_url, out_trade_no, amount_fen, expires_hours=24):
qr = qrcode.QRCode(version=None, error_correction=qrcode.constants.ERROR_CORRECT_L, box_size=8, border=2)
qr.add_data(code_url)
qr.make(fit=True)
img = qr.make_image(fill_color='black', back_color='white').convert('RGB')
buf = BytesIO()
img.save(buf, format='PNG')
qr_b64 = base64.b64encode(buf.getvalue()).decode('ascii')
expires_at = (datetime.now() + timedelta(hours=expires_hours)).strftime('%Y-%m-%d %H:%M')
price = f"{amount_fen / 100:.2f}"
html = f"""<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><title>混凝土裂缝侦探 - 支付卡片</title>
<style>
body{{margin:0;padding:16px;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;background:#f5f6f8;}}
.card{{max-width:360px;margin:0 auto;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 12px rgba(0,0,0,0.08);}}
.header{{background:#1AAD19;color:#fff;padding:20px 20px 24px;}}
.header h1{{margin:0;font-size:20px;font-weight:600;}}
.header .sub{{margin-top:4px;font-size:13px;opacity:0.9;}}
.body{{padding:24px 20px;}}
.price{{text-align:center;font-size:40px;font-weight:700;color:#1AAD19;}}
.price-unit{{font-size:18px;vertical-align:top;margin-right:4px;}}
.price-desc{{text-align:center;font-size:13px;color:#888;margin-top:4px;}}
.info{{background:#f7f8fa;border-radius:8px;padding:14px 16px;margin-top:18px;}}
.info-row{{display:flex;justify-content:space-between;font-size:13px;line-height:22px;color:#555;}}
.info-row .k{{color:#888;}}
.info-row .v{{color:#222;font-family:ui-monospace,"SF Mono",Menlo,monospace;}}
.qr-title{{text-align:center;font-size:14px;font-weight:600;color:#333;margin-top:22px;}}
.qr-box{{display:flex;justify-content:center;padding:12px 0 8px;}}
.qr-box img{{width:200px;height:200px;display:block;}}
.qr-tip{{text-align:center;font-size:12px;color:#888;margin-bottom:4px;}}
.footer{{background:#fffbea;color:#ad6800;font-size:13px;padding:12px 20px;text-align:center;}}
</style></head>
<body>
<div class="card">
<div class="header"><h1>混凝土裂缝侦探</h1><div class="sub">一次付费 · 24 小时内无限次重算</div></div>
<div class="body">
<div class="price"><span class="price-unit">¥</span>{price}</div>
<div class="price-desc">单次付费 · 24 小时有效</div>
<div class="info">
<div class="info-row"><span class="k">订单号</span><span class="v">{out_trade_no}</span></div>
<div class="info-row"><span class="k">支付方式</span><span class="v">微信支付(普通扫码)</span></div>
<div class="info-row"><span class="k">有效期至</span><span class="v">{expires_at}</span></div>
</div>
<div class="qr-title">微信扫码支付</div>
<div class="qr-box"><img src="data:image/png;base64,{qr_b64}" alt="支付二维码"></div>
<div class="qr-tip">打开微信 → 扫一扫 → 对准二维码</div>
</div>
<div class="footer">付款成功后回复「付好了」,我立即出报告</div>
</div>
</body></html>"""
return html
# out_path = os.path.abspath("支付卡片.html")
# with open(out_path, "w", encoding="utf-8") as f:
# f.write(build_payment_html(code_url, out_trade_no, amount_fen))
# present_files(files=[out_path])后续流程:
- 用户付款后回复「付好了」→ AI 用
payment_code二次调用 API - 收到 HTTP 200 → AI 输出:
支付成功!正在计算中,预计 5~15 秒出结果…
报告已出!本次支付有效期至 YYYY-MM-DD HH:mm(24 小时内可无限次换参数重算)。
📄 [点击下载 Word 版报告](data:application/vnd.openxmlformats-officedocument.wordprocessingml.document;base64,<docx_base64>)
- 如果二次调用返回
500且提示「报告生成遇到一点问题,但您的支付仍然有效,请回复「重试」继续出报告」→ 让用户回复「重试」,AI 用同一个payment_code再次调用/api/calculate - 如果二次调用返回 HTTP 200 但 AI 侧未能直接展示
html字段,不要反复重新计算,直接调用POST /api/result(参数:payment_code或out_trade_no)秒取已生成的报告 - 如果二次调用返回
400 订单状态异常: failed或402 订单尚未支付,但用户确认已付款 → AI 调用POST /api/order-status(参数:payment_code),若返回status: paid,立即用payment_code再次调/api/calculate - 如果二次调用返回
403 支付会话已过期→ 提示用户会话已过期,需要重新下单
引擎 mode 字段映射:
- 模式 A →
pre_pour - 模式 B →
post_pour - 模式 C →
insulation - 模式 D →
crack_width
关键参数说明
下面列出对结果影响最大、最容易填错的参数,AI 必须在汇总确认环节特别提示用户:
| 参数 | 取值范围 | 推荐值 | 风险提示 |
|---|---|---|---|
| 强度等级 | C15~C80(共 14 级) | C25/C30 | 选高强度等级,水化热会升高 |
| 水泥品种 | 矿渣/普通/低热/火山灰/抗硫酸盐 | 矿渣水泥 | 选低热/火山灰/抗硫酸盐,本书无水化热数据 |
| 水泥用量 | 250~350 kg/m³ | 275 | 用量越高水化热越大 |
| 粉煤灰掺量 | 0/20/30/40/50% | 20~30% | 超过 40% 时 λ₁ 无书表数据 |
| 矿渣粉掺量 | 0/20/30/40/50% | 20~30% | 超过 40% 时 λ₂ 无书表数据 |
| 水胶比 | 0.3/0.4/0.5/0.6 | 0.5~0.6 | 0.45 等中间值自动线性插值 |
| 入模温度 | 10~25℃ | 春秋 15℃、夏季 25℃ | 超过 30℃ 违规 |
| 养护时间 | 1/2/3/4/5/7/10/14/28 天 | 14 天 | 11~13 天无书表数据,按 10 天取 |
| 结构厚度 | >1m | 2.0~3.0m | 厚度 ≤1m 不属于大体积混凝土 |
风险提示清单
以下情况必须主动告知用户:
- 水泥品种"低热水泥/火山灰水泥/抗硫酸盐水泥":水化热参考表仅收录普通和矿渣两个品种,需补试验值或确认按近似值。
- 地基"岩石地基"用于模式 B/D:Cx 表无岩石地基,需提供实测 Cx 值或确认按砂质黏土近似。
- 粉煤灰掺量 >40% 或 矿渣粉掺量 >40%:λ₁/λ₂ 调整系数仅到 40%,按 40% 截断。
- 养护时间 11~13 天:书表无数据,按 10 天取值(偏保守)。
- 结构厚度 ≤1m:不属于大体积混凝土,本书公式不适用,建议专业工程师另行分析。
- 箱梁等空心结构:按净截面近似,仅供收缩参考,注明后继续。
输出规范
- 参数收集:AI 自适应平台能力——支持弹窗就用 AskUserQuestion,不支持就用 Markdown 表格;每轮只发一个版本,不用 JSON、不用编号清单。
- 计算:由云端 Python 引擎执行,AI 不手工计算。
- 结果:用 HTML 报告呈现(自动生成),包含判定卡片、指标、参数表格、计算过程、专业建议。
- 口头总结:
- 模式 A/B → "安全度 K=?满足/不满足"
- 模式 C → "温差是否 ≤25℃"
- 模式 D → "缝宽多少 mm 及处理建议"
- 一句话概述
注意事项
- AI 不算公式:始终调用云端引擎,不手工算。
- 平台自适应:能识别弹窗就用弹窗,不能就用 Markdown 表格;两版选项内容一致。
- 查表全自动:Q、E₀、f_tk、λ、β、M1~M11、R、Cx、λ_i、K_b、β_u 等引擎自动查表,不暴露给用户。
- 掺合料是新规范核心参数:粉煤灰/矿渣粉掺量同时影响水化热(k)、弹性模量(β)、抗拉强度(λ)和收缩修正(M10/M11),模式 A/B 第 3 轮必问。
- 模式 B 的水化热降温差自动算:引擎按相邻实测中心温度之差自动计算各台阶降温差,不用问用户。
- 汇总确认:全部参数收集完后,用表格汇总让用户最终确认,再调用 API。
- 适用范围:本书公式按实心大体积混凝土建立(新规范定义:最小断面尺寸 >1m,如承台、筏板、坝体)。箱梁等薄壁空心结构不属于此范畴,无对应公式,应明确告知用户并建议专业工程师另行分析,不得硬套公式。
- 支付流程:
- 当前为付费模式(¥9.90/次,一次付费后 24 小时内可无限次换参数重算)。
- 每个对话首次调用本 Skill 直接免费出报告(HTTP 200,
trial: true)。AI 在调用/api/calculate时必须携带稳定的conversation_id。 - 免费试用后,再次调用进入付费流程,后端返回 HTTP 402 +
WeixinPay-Required响应头 +WeixinPay响应体,按「支付弹窗方案」章节执行。 - 付款成功后,AI 带
payment_code二次调用即可拿到计算结果。 - AI 展示完 HTML 报告后,只追加一句提示词即可:「如需 Word 版报告,请回复『Word』」。
- 当用户回复「Word」「下载 Word」「要 Word 版」等关键字时,AI 再把响应里的
docx_base64用 data URL 形式渲染成下载链接给用户。 - 用户换参数可继续调用(同一
payment_code),直到expires_at过期;过期后调用返回 HTTP 403「支付会话已过期,请重新下单」。 - 二次调用返回 HTTP 200 但 AI 侧未能直接展示
html字段时,调用POST /api/result(参数:payment_code或out_trade_no)秒取已生成的报告,不要反复重新计算。 - 二次调用返回「订单尚未支付」但用户确认已付款时,调用
POST /api/order-status查询真实状态;查到status: paid后立即再次调/api/calculate出报告。 - 禁止回复"我也没办法"或让用户自行联系客服,禁止让用户换设备。
价格
- 计费模式:按会话计费
- 单次价格:990 分(9.90 元人民币)
- 计费方式:一次付费获得 24 小时无限次重算权限(用户可换参数反复出多份,算到满意为止)
- 免费试用:每个对话首次调用本 Skill 出报告免费(不创建订单、不扣费)
- 有效期:从支付成功时刻起 24 小时,过期后需重新下单
- 结算:通过微信支付商户号结算
计算依据与知识产权
本工具基于以下公开规范与参考资料独立实现:
国家标准
- 《大体积混凝土施工标准》GB 50496—2018(国家标准,不享有著作权)— 主线规范,提供温度收缩应力计算公式(公式 1-2-147~163)、M1~M11 修正系数、外约束系数 R、地基变形刚度 Cx、温升与温差计算、保温层厚度与表面温度验算
- 《混凝土结构设计规范》GB 50010-2010(2015 年版)(国家标准,不享有著作权)— 提供混凝土弹性模量 E₀(表 4.1.5)、混凝土抗拉强度标准值 f_tk(表 4.1.3-2)
独立整理
- 各参数的查表数据(M1~M11 系数、R、Cx、λ、β、K_b 等)由本工作室根据上述规范与公开工程资料独立整理,与原书编排不同
- 计算公式由本工作室用 Python 独立实现,源码归属本工作室
本工具所采用的公式为客观数学表达(不受著作权法保护),所有查表数据均来源于公开发布的国家标准与工程资料。如有著作权方认为本工具引用其资料超出合理使用范围,请通过下方邮箱联系,我们将依法处理。
免责声明
- 计算结果仅供参考,不构成任何工程设计或施工依据。
- 任何混凝土工程的浇筑、保温、裂缝处理方案,施工前必须由具备相应资质的专业结构工程师复核确认。
- 本工具开发者与发布者不承担因使用本工具计算结果而产生的任何直接或间接损失,包括但不限于:工程事故、质量缺陷、经济损失、法律纠纷等。
- 用户使用本工具即视为同意以上条款。
版权
- 本工具的代码、文档、界面设计等著作权归开发者所有
- 禁止未授权转载、修改后重新发布、删除版权信息