乐于分享
好东西不私藏

从0到1搭建AI智能支付风控助手Stage6: 生产化 — 从Demo到能上线的系统

从0到1搭建AI智能支付风控助手Stage6: 生产化 — 从Demo到能上线的系统

Stage 6: 生产化 — 从Demo到能上线的系统

你要学什么

前5步是让AI"能跑"。这一步是让AI"跑得稳"。真实生产环境和Demo的区别:

维度
Demo
生产环境
错误处理
报错就崩
兜底方案,永不崩溃
成本控制
不在意
每天算Token费用
安全
什么都让AI做
高风险操作必须人工确认
监控
出了问题才知道
实时告警,异常自动上报

运行代码

cat > /Users/salar/ai-risk-agent/stage6_prod.py << 'PYEOF'import osimport jsonimport timefrom datetime import datetimefrom llama_index.core import VectorStoreIndex, SimpleDirectoryReader, Settings, PromptTemplatefrom llama_index.core.node_parser import SentenceSplitterfrom llama_index.embeddings.huggingface import HuggingFaceEmbeddingfrom llama_index.llms.zhipuai import ZhipuAISettings.embed_model = HuggingFaceEmbedding(model_name=”/Users/salar/bge-small-zh-v1.5”)api_key = os.environ.get(”ZHIPUAI_API_KEY”)Settings.llm = ZhipuAI(model=”glm-4-flash”, temperature=0.1, api_key=api_key)# ====== 1. 构建知识库 ======print(”正在构建知识库...”)raw_docs = SimpleDirectoryReader(”/Users/salar/ai-risk-agent/docs”).load_data()nodes = SentenceSplitter(chunk_size=256, chunk_overlap=50).get_nodes_from_documents(raw_docs)index = VectorStoreIndex(nodes)# ====== 2. 生产化风控助手 ======# 日志系统class RiskLogger: def __init__(self): self.logs = [] def log(self, level, action, detail, merchant_id=None, txn_id=None): entry = { ”timestamp”: datetime.now().isoformat(), ”level”: level,# INFO / WARN / ERROR / CRITICAL ”action”: action, ”detail”: detail, ”merchant_id”: merchant_id, ”txn_id”: txn_id, } self.logs.append(entry) emoji = {”INFO”: ”ℹ️”, ”WARN”: ”⚠️”, ”ERROR”: ”❌”, ”CRITICAL”: ”🚨”}.get(level, ”📋”) print(f” {emoji} [{level}] {action}: {detail}”) return entry def summary(self): levels = {} for log in self.logs: levels[log[”level”]] = levels.get(log[”level”], 0) + 1 return levels# Token计数器class TokenCounter: def __init__(self): self.total_input = 0 self.total_output = 0 self.query_count = 0 def record(self, input_tokens, output_tokens): self.total_input += input_tokens self.total_output += output_tokens self.query_count += 1 def estimate_cost(self): ”””估算成本(GLM-4-Flash参考价)””” input_cost = self.total_input / 1_000_000 * 1.0 output_cost = self.total_output / 1_000_000 * 1.0 return {”input_cost”: input_cost, ”output_cost”: output_cost, ”total_cost”: input_cost + output_cost}logger = RiskLogger()token_counter = TokenCounter()# 安全策略DANGEROUS_ACTIONS = [”block_merchant”, ”freeze_account”, ”refund”]MAX_DAILY_QUERIES = 10000# 每日查询上限CONFIDENCE_THRESHOLD = 0.7# 置信度低于此值需人工复核HALLUCINATION_PATTERNS = [”我认为”, ”我猜测”, ”可能是”, ”大概”]# 疑似幻觉的模式词def production_risk_assessment(transaction: str) -> dict: ”””生产级风控评估:带完整异常处理和安全检查””” logger.log(”INFO”, ”开始评估”, f”交易: {transaction[:80]}”)# --- 安全检查1:速率限制 --- if token_counter.query_count >= MAX_DAILY_QUERIES: logger.log(”WARN”, ”速率限制”, f”已达日查询上限{MAX_DAILY_QUERIES}”) return {”risk_level”: ”无法判断”, ”reason”: ”已达日查询上限,请明日再试”, ”need_human”: True}# --- 安全检查2:输入验证 --- if not transaction or len(transaction) < 5: logger.log(”ERROR”, ”输入无效”, ”交易信息过短”) return {”risk_level”: ”无法判断”, ”reason”: ”交易信息不完整”, ”need_human”: True}# --- 执行RAG查询 --- try: start_time = time.time() engine = index.as_query_engine(similarity_top_k=3) response = engine.query( f”作为风控助手,请评估此交易的风险:{transaction}\n” f”请输出JSON:{{\”risk_level\”: \”低/中/高/极高\”, ” f”\”risk_factors\”: [...], \”action\”: \”...\”, \”confidence\”: 0.0-1.0}}” ) latency = time.time() - start_time answer = str(response).strip()# 估算Token消耗 est_input = len(transaction) * 2 + 500# 粗略估算 est_output = len(answer) * 2 token_counter.record(est_input, est_output) logger.log(”INFO”, ”LLM响应”, f”延迟{latency:.2f}s, 估算Token: 输入{est_input}/输出{est_output}”) except Exception as e: logger.log(”ERROR”, ”LLM调用失败”, str(e))# 兜底方案:返回保守的默认结果 return { ”risk_level”: ”中”, ”reason”: ”AI评估服务异常,默认中等风险”, ”action”: ”转人工审核”, ”need_human”: True, ”error”: str(e), }# --- 解析输出 ---# 去掉markdown标记 clean_answer = answer if clean_answer.startswith(”```”): clean_answer = clean_answer.split(”\n”, 1)[1if ”\n” in clean_answer else clean_answer[3:] clean_answer = clean_answer.rsplit(”```”, 1)[0] try: result = json.loads(clean_answer) except json.JSONDecodeError: logger.log(”WARN”, ”输出解析失败”, ”AI未输出有效JSON,尝试正则提取”)# 兜底:尝试从自然语言中提取风险等级 result = {”risk_level”: ”中”, ”raw_output”: answer} if ”高” in answer or ”极高” in answer: result[”risk_level”] = ”高” elif ”低” in answer: result[”risk_level”] = ”低”# --- 安全检查3:幻觉检测 --- hallucination_detected = any(pattern in answer for pattern in HALLUCINATION_PATTERNS) if hallucination_detected: logger.log(”WARN”, ”疑似幻觉”, ”AI输出包含不确定表达”) result[”hallucination_flag”] = True# --- 安全检查4:置信度检查 --- confidence = result.get(”confidence”, 0.5) if isinstance(confidence, str): try: confidence = float(confidence) except ValueError: confidence = 0.5 if confidence < CONFIDENCE_THRESHOLD: logger.log(”WARN”, ”低置信度”, f”置信度{confidence:.2f}低于阈值{CONFIDENCE_THRESHOLD}”) result[”need_human”] = True result[”action”] = f”[需人工复核] {result.get('action''')}”# --- 安全检查5:高风险操作拦截 --- action = result.get(”action”, ””) if any(da in action for da in DANGEROUS_ACTIONS): logger.log(”CRITICAL”, ”高风险操作”, f”AI建议: {action}”) result[”action”] = f”[需人工确认] {action}” result[”need_human”] = True logger.log(”CRITICAL”, ”安全拦截”, ”高风险操作已标记为需人工确认,AI不可自动执行”)# --- 延迟检查 --- if latency > 5.0: logger.log(”WARN”, ”延迟过高”, f”响应时间{latency:.2f}s超过5s阈值”) result[”latency_warning”] = True# 添加元信息 result[”latency”] = round(latency, 2) result[”token_estimate”] = {”input”: est_input, ”output”: est_output} result[”assessment_time”] = datetime.now().isoformat() return result# ====== 3. 测试生产化系统 ======print(”\n” + ”=”*60)print(”【生产化风控助手测试】”)print(”=”*60)test_cases = [ {”desc”: ”正常交易”, ”info”: ”商户M001,借记卡500元,正常营业时间”}, {”desc”: ”可疑交易”, ”info”: ”商户M002,贷记卡48000元,凌晨3点,退款率18%”}, {”desc”: ”高风险交易”, ”info”: ”商户M003,连续54999元,疑似拆分交易”}, {”desc”: ”空输入”, ”info”: ””},# 测试异常处理 {”desc”: ”超长输入”, ”info”: ”商户” + ”A” * 5000},# 测试输入验证]for case in test_cases: print(f”\n{'─'*50}”) print(f”💳 场景: {case['desc']}”) result = production_risk_assessment(case[”info”]) print(f”\n 📋 评估结果:”) for k, v in result.items(): if k not in [”raw_output”]: print(f” - {k}: {v}”)# ====== 4. 生成运营报告 ======print(”\n\n” + ”=”*60)print(”【运营报告】”)print(”=”*60)cost = token_counter.estimate_cost()log_summary = logger.summary()print(f””” 📊 本次测试统计: - 总查询数: {token_counter.query_count} - 估算Token消耗: 输入{token_counter.total_input} + 输出{token_counter.total_output} - 估算成本: ¥{cost['total_cost']:.4f} 📋 日志级别分布: - INFO: {log_summary.get('INFO'0)} - WARN: {log_summary.get('WARN'0)} - ERROR: {log_summary.get('ERROR'0)} - CRITICAL: {log_summary.get('CRITICAL'0)} 🔒 安全事件: - 高风险操作拦截: {log_summary.get('CRITICAL'0)}次 - 低置信度告警: {sum(1 for l in logger.logs if '低置信度' in l.get('detail'''))}次 - 疑似幻觉标记: {sum(1 for l in logger.logs if '幻觉' in l.get('detail'''))}次 💡 生产化关键决策: 1. 置信度<0.7 → 必须人工复核(不信任AI的模糊判断) 2. 冻结/退款操作 → 必须人工确认(AI只能建议,不能执行) 3. LLM调用失败 → 返回”中等风险”默认值(宁可误报不漏报) 4. 输出解析失败 → 正则提取兜底(不崩就行) 5. 延迟>5s → 标记告警(可能影响用户体验)”””)print(”💡 这就是AI PM的'最后一公里':Demo能跑不等于能上线。”)print(”💡 生产化思维:错误兜底 > 功能完善,安全拦截 > 智能输出,可观测 > 黑盒运行”)PYEOF
cd /Users/salar/ai-risk-agent && python stage6_prod.py

跑完后想一想

  1. 空输入和超长输入,系统怎么处理的?如果没有这些检查会怎样?
  2. AI建议"冻结商户",但系统拦截了——为什么不让AI自动执行?
  3. LLM调用失败时,返回"中等风险"默认值——这个决策对吗?如果返回"低风险"呢?
  4. 你能从日志级别分布看出什么?WARN和CRITICAL分别意味着什么?

总结下项目

你得知道DEMO级和生产究竟差多少,PM应该对生产一直抱有敬畏。你是这个产品的“父母”

说实话,DEMO级和生产的,比天差地别还大。但不是技术上的差距大,是思维方式的差距大。我用我熟悉的支付领域打个比方:

  1. Demo和生产的核心区别是:Demo是"正常情况下能用",生产是"任何情况下都不能出大事"。

举两个你刚才跑出来的真实例子:

  • 例子1:超长输入 → AI建议冻结账户
  • Demo思维:"哇,AI好聪明,还能识别异常商户名!"
  • 生产思维:"等等,它凭什么说冻结就冻结?它有证据吗?证据链完整吗?误冻结了商户投诉谁负责?"

所以生产环境必须有安全拦截层——AI可以建议冻结,但必须人工确认才能执行。这跟支付里的"风控系统触发高风险规则,必须人工审核才能冻结商户"是一个逻辑。

  • 例子2:LLM调用失败
  • Demo思维:"报错了,重启一下"
  • 生产思维:"如果现在是双11高峰期,LLM挂了怎么办?交易全卡住吗?"

所以生产环境必须有降级策略——LLM挂了就返回默认值(中等风险+转人工),宁可误报不能漏报,系统不能崩。这跟支付系统的"通道降级"是一个道理:主通道挂了切备通道,交易不能断。总结一下你现在应该记住的3句话

  • "RAG效果评估要分层看,检索准确率和生成准确率是两回事——小数据集上的高准确率很可能是虚高。"
  • "Agent最大的挑战不是能不能调用工具,而是'什么时候该调用、什么时候不该调用'——AI的工具调用意愿是不稳定的,生产环境必须有强制调用和兜底机制。"
  • "Demo和生产的差距不是功能多寡,而是容错能力——正常情况下都能跑,异常情况下谁不崩谁就是生产级。"

知识点

知识点
解决方案
"RAG效果不好怎么优化"
"实际对比过——加元数据过滤后检索命中率提升明显;另外分块策略从固定256字改成按语义边界切分,效果更好"
"Function Calling和MCP什么区别"
"FC是单次工具调用的协议,MCP是标准化的工具注册+发现协议。手动实现了FC的完整流程——LLM输出调用指令→代码解析执行→结果喂回,本质就是这个机制"
"Agent比普通LLM好在哪"
"Agent能多步推理、自主决策。实测发现高风险交易Agent会自动先查商户等级、再查交易历史,比单次调用判断更全面。代价是Token消耗更多、延迟更长"
"AI幻觉怎么处理"
"在Prompt里加了禁止幻觉的约束,效果评估时专门测了幻觉率。生产化版本还加了幻觉模式词检测和置信度阈值——低于0.7必须人工复核"
"成本怎么控制"
"做了Token消耗估算。GLM-4-Flash日1000次查询月成本约30元,用本地embedding免费。如果日查询10万次就要考虑缓存策略和换更小的模型"

跑完后回来看这张表

你做完的
对应AI PM能力
你现在能说
Stage 1
RAG
"我知道元数据过滤对检索精度的影响,实测过"
Stage 2
Prompt工程
"我设计了3版Prompt,对比了裸Prompt和Few-shot的差异"
Stage 3
Function Calling
"我手动实现了FC,知道LLM→解析→执行→喂回的完整机制"
Stage 4
Agent
"我实现了ReAct循环,知道Agent怎么自主规划和决策"
Stage 5
效果评估
"我建了三层评估体系,能量化检索命中率、生成准确率、幻觉率"
Stage 6
生产化
"我加了异常兜底、安全拦截、成本估算,知道Demo和上线的差距"

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-03 03:53:09 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/830636.html
  2. 运行时间 : 0.127071s [ 吞吐率:7.87req/s ] 内存消耗:4,746.21kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=da7d204f9d540acb2e643570dd60c85e
  1. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_static.php ( 6.05 KB )
  7. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/ralouphie/getallheaders/src/getallheaders.php ( 1.60 KB )
  10. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  11. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  12. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  13. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  14. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  15. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  16. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  17. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  18. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  19. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions_include.php ( 0.16 KB )
  21. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions.php ( 5.54 KB )
  22. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  23. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  24. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  25. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/provider.php ( 0.19 KB )
  26. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  27. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  28. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  29. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/common.php ( 0.03 KB )
  30. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  32. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/alipay.php ( 3.59 KB )
  33. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  34. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/app.php ( 0.95 KB )
  35. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cache.php ( 0.78 KB )
  36. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/console.php ( 0.23 KB )
  37. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cookie.php ( 0.56 KB )
  38. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/database.php ( 2.48 KB )
  39. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/filesystem.php ( 0.61 KB )
  40. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/lang.php ( 0.91 KB )
  41. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/log.php ( 1.35 KB )
  42. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/middleware.php ( 0.19 KB )
  43. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/route.php ( 1.89 KB )
  44. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/session.php ( 0.57 KB )
  45. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/trace.php ( 0.34 KB )
  46. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/view.php ( 0.82 KB )
  47. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/event.php ( 0.25 KB )
  48. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  49. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/service.php ( 0.13 KB )
  50. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/AppService.php ( 0.26 KB )
  51. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  52. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  53. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  54. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  55. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  56. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/services.php ( 0.14 KB )
  57. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  58. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  59. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  60. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  61. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  62. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  63. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  64. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  65. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  66. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  67. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  68. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  69. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  70. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  71. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  72. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  73. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  74. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  75. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  76. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  77. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  78. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  79. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  80. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  81. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  82. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  83. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  84. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  85. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  86. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  87. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/Request.php ( 0.09 KB )
  88. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  89. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/middleware.php ( 0.25 KB )
  90. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  91. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  92. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  93. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  94. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  95. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  96. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  97. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  98. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  99. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  100. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  101. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  102. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  103. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/route/app.php ( 3.94 KB )
  104. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  105. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  106. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Index.php ( 9.87 KB )
  108. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/BaseController.php ( 2.05 KB )
  109. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  110. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  111. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  112. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  113. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  114. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  115. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  116. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  117. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  118. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  119. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  120. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  121. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  122. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  123. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  124. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  125. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  126. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  127. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  128. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  129. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  130. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  131. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  132. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  133. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  134. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  135. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Es.php ( 3.30 KB )
  136. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  137. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  138. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  139. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  140. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  141. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  142. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  143. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  144. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/runtime/temp/c935550e3e8a3a4c27dd94e439343fdf.php ( 31.50 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000854s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000791s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000377s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000270s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000502s ]
  6. SELECT * FROM `set` [ RunTime:0.000199s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000623s ]
  8. SELECT * FROM `article` WHERE `id` = 830636 LIMIT 1 [ RunTime:0.000705s ]
  9. UPDATE `article` SET `lasttime` = 1783021989 WHERE `id` = 830636 [ RunTime:0.006434s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000279s ]
  11. SELECT * FROM `article` WHERE `id` < 830636 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000638s ]
  12. SELECT * FROM `article` WHERE `id` > 830636 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000393s ]
  13. SELECT * FROM `article` WHERE `id` < 830636 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.002961s ]
  14. SELECT * FROM `article` WHERE `id` < 830636 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.023909s ]
  15. SELECT * FROM `article` WHERE `id` < 830636 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.006190s ]
0.128759s