{"id":119750,"date":"2026-10-30T09:16:44","date_gmt":"2026-10-30T01:16:44","guid":{"rendered":"https:\/\/www.wsisp.com\/helps\/119750.html"},"modified":"2026-10-30T09:16:44","modified_gmt":"2026-10-30T01:16:44","slug":"%e7%bb%99%e5%b7%a5%e5%85%b7%e5%8a%a0%e4%b8%80%e4%b8%aa%e5%bf%85%e5%a1%ab%e5%8f%82%e6%95%b0%ef%bc%8c%e8%80%81%e5%ae%a2%e6%88%b7%e7%ab%af-7-%e6%ac%a1%e8%b0%83%e7%94%a8%e5%85%a8%e6%8c%82","status":"publish","type":"post","link":"https:\/\/www.wsisp.com\/helps\/119750.html","title":{"rendered":"\u7ed9\u5de5\u5177\u52a0\u4e00\u4e2a\u5fc5\u586b\u53c2\u6570\uff0c\u8001\u5ba2\u6237\u7aef 7 \u6b21\u8c03\u7528\u5168\u6302"},"content":{"rendered":"<p>\u7248\u6743\u4e0e\u5185\u5bb9\u6765\u6e90\u58f0\u660e<br \/>\n\u672c\u6587\u4e3a\u539f\u521b\u6574\u7406\u3002\u6587\u4e2d\u6d89\u53ca\u5b98\u65b9\u6587\u6863\u3001\u5f00\u6e90\u4ed3\u5e93\u3001\u8bba\u6587\u4e0e\u516c\u5f00\u62a5\u9053\u7684\u5185\u5bb9&#xff0c;\u5747\u5728\u9644\u8868 A \u4e2d\u6807\u6ce8\u6765\u6e90&#xff1b;\u5f15\u7528\u5b98\u65b9\u539f\u6587\u4fdd\u6301\u539f\u6837&#xff0c;\u4e0d\u4f5c\u6539\u5199\u3002\u6587\u4e2d\u547d\u4ee4\u3001\u7248\u672c\u53f7\u4e0e\u754c\u9762\u622a\u56fe\u4ee5\u672c\u6587\u6210\u6587\u65f6\u7684\u5b9e\u6d4b\/\u6838\u9a8c\u7ed3\u679c\u4e3a\u51c6&#xff0c;\u6807\u6ce8\u300c\u5f85\u9a8c\u8bc1\u300d\u7684\u90e8\u5206\u8bf7\u4ee5\u4f60\u672c\u5730\u73af\u5883\u5b9e\u9645\u8f93\u51fa\u4e3a\u5224\u65ad\u4f9d\u636e\u3002\u672c\u6587\u4e0d\u63a8\u8350\u4efb\u4f55\u4e0d\u5408\u89c4\u7684\u8f6f\u4ef6\u83b7\u53d6\u65b9\u5f0f&#xff0c;\u4e5f\u4e0d\u5bf9\u4efb\u4f55\u6536\u76ca\u7ed3\u679c\u4f5c\u627f\u8bfa\u3002\u8f6c\u8f7d\u8bf7\u6ce8\u660e\u51fa\u5904\u3002<\/p>\n<h3>\u73b0\u573a&#xff1a;\u4e00\u6b21\u53ea\u52a0\u5fc5\u586b\u53c2\u6570\u7684\u53d8\u66f4&#xff0c;\u4e03\u6b21\u8c03\u7528\u5168\u6302<\/h3>\n<p>\u5468\u56db\u4e0a\u5348\u5341\u70b9&#xff0c;\u5de5\u5177\u5b9a\u4e49\u91cc\u591a\u4e86\u4e00\u4e2a\u53c2\u6570&#xff1a;days&#xff0c;\u6574\u6570&#xff0c;\u6807\u6210\u5fc5\u586b\u3002\u53d1\u5e03\u8bf4\u660e\u53ea\u6709\u4e00\u884c\u2014\u2014\u300c\u65b0\u589e\u5929\u6570\u53c2\u6570&#xff0c;\u652f\u6301\u591a\u65e5\u9884\u62a5\u300d\u3002<\/p>\n<p>\u5341\u70b9\u4e09\u5341\u56db\u5206&#xff0c;\u544a\u8b66\u54cd\u4e86\u3002\u4e09\u4e2a\u8fd8\u5728\u8dd1\u65e7\u7248\u5de5\u5177\u5b9a\u4e49\u7684\u8c03\u7528\u65b9\u5404\u53d1 7 \u6b21\u8bf7\u6c42&#xff0c;21 \u6b21\u5168\u90e8\u8fd4\u56de 400&#xff1a;missing required property: days\u3002\u56de\u6eda\u5728\u5341\u4e00\u70b9\u96f6\u4e8c\u5206\u5b8c\u6210&#xff0c;\u4e2d\u95f4\u8fd9 28 \u5206\u949f&#xff0c;\u8fd9\u4e2a\u5929\u6c14\u5de5\u5177\u5bf9\u8fd9\u6279\u8d26\u53f7\u5b8c\u5168\u4e0d\u53ef\u7528\u3002<\/p>\n<p>\u4e0a\u9762\u8fd9\u6bb5\u662f\u6309\u4e0b\u9762\u90a3\u5f20\u7248\u672c\u77e9\u9635\u8fd8\u539f\u51fa\u6765\u7684\u63a8\u6f14\u573a\u666f&#xff0c;\u4e0d\u662f\u67d0\u4e00\u6b21\u7ebf\u4e0a\u4e8b\u6545\u7684\u539f\u59cb\u65e5\u5fd7\u2014\u2014\u65f6\u95f4\u3001\u544a\u8b66\u6587\u6848\u6309\u5e38\u89c1\u5de5\u5355\u5f62\u6001\u5199&#xff0c;\u4f46\u6bcf\u4e00\u6b21\u5931\u8d25\u90fd\u80fd\u7528\u6587\u4e2d\u7684\u811a\u672c\u590d\u7b97\u51fa\u6765\u3002<\/p>\n<p>\u5b57\u6bb5\u662f\u65b0\u589e\u7684&#xff0c;\u8001\u5ba2\u6237\u7aef\u4ece\u6765\u6ca1\u542c\u8bf4\u8fc7\u5b83&#xff0c;\u800c\u670d\u52a1\u7aef\u628a\u5b83\u5217\u8fdb\u4e86 required\u3002JSON Schema \u91cc required \u7684\u8bed\u4e49\u662f\u300c\u8fd9\u4e2a\u952e\u5fc5\u987b\u51fa\u73b0\u300d&#xff0c;\u4e0d\u662f\u300c\u8fd9\u4e2a\u952e\u53ef\u4ee5\u6ca1\u6709\u503c\u300d&#xff1b;\u4e00\u4e2a\u4ece\u6ca1\u88ab\u4f20\u8fc7\u7684\u952e&#xff0c;\u548c\u4f20\u4e86 null \u662f\u4e24\u56de\u4e8b\u3002<\/p>\n<p>\u8fd9\u6b21\u53d8\u66f4\u5176\u5b9e\u53e0\u4e86\u4e94\u6b65&#xff1a;v1 \u521d\u7248\u53ea\u6709 city \u548c unit&#xff1b;v2 \u52a0\u53ef\u9009 days&#xff1b;v3 \u628a unit \u6539\u540d unit_system&#xff1b;v4 \u628a days \u6539\u6210\u5fc5\u586b&#xff1b;v5 \u628a unit_system \u7684\u53d6\u503c\u4ece {C, F} \u6536\u7d27\u6210 {C}\u3002\u4efb\u4f55\u4e00\u6b65\u5355\u72ec\u770b&#xff0c;\u90fd\u50cf\u4e00\u4e2a\u300c\u987a\u624b\u52a0\u7684\u5b57\u6bb5\u300d\u6216\u300c\u987a\u624b\u6536\u7684\u8303\u56f4\u300d\u3002<\/p>\n<h4>&#x1f9ea; \u5b9e\u6d4b&#xff1a;5 \u4e2a\u5ba2\u6237\u7aef\u7248\u672c \u00d7 5 \u4e2a\u670d\u52a1\u7aef\u7248\u672c&#xff0c;\u5404 7 \u6b21\u8c03\u7528<\/h4>\n<p>\u73af\u5883&#xff1a;Python 3.13.12 \/ macOS arm64 \/ \u4ec5\u6807\u51c6\u5e93\u3002\u811a\u672c\u628a\u4e0a\u9762\u4e94\u6b65\u5199\u6210\u4e00\u5f20\u7248\u672c\u8868&#xff0c;\u6bcf\u4e2a\u5ba2\u6237\u7aef\u7248\u672c\u5bf9\u6bcf\u4e2a\u670d\u52a1\u7aef\u7248\u672c\u5404\u53d1 7 \u6b21\u8c03\u7528&#xff0c;\u6821\u9a8c\u5668\u53ea\u5224\u56db\u4ef6\u4e8b&#xff1a;\u5fc5\u586b\u7f3a\u5931\u3001\u591a\u4f59\u5b57\u6bb5\u3001\u7c7b\u578b\u4e0d\u7b26\u3001\u679a\u4e3e\u8d8a\u754c\u3002<\/p>\n<p>V <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token number\">1<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">[<\/span><span class=\"token string\">&#034;city&#034;<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token punctuation\">{<\/span><span class=\"token string\">&#034;city&#034;<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;s&#034;<\/span><span class=\"token punctuation\">,<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;unit&#034;<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;s&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;C&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;F&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    <span class=\"token number\">2<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">[<\/span><span class=\"token string\">&#034;city&#034;<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token punctuation\">{<\/span><span class=\"token string\">&#034;city&#034;<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;s&#034;<\/span><span class=\"token punctuation\">,<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;unit&#034;<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;s&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;C&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;F&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;days&#034;<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;i&#034;<\/span><span class=\"token punctuation\">,<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    <span class=\"token number\">3<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">[<\/span><span class=\"token string\">&#034;city&#034;<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token punctuation\">{<\/span><span class=\"token string\">&#034;city&#034;<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;s&#034;<\/span><span class=\"token punctuation\">,<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;unit_system&#034;<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;s&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;C&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;F&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;days&#034;<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;i&#034;<\/span><span class=\"token punctuation\">,<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    <span class=\"token number\">4<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">[<\/span><span class=\"token string\">&#034;city&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;days&#034;<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token punctuation\">{<\/span><span class=\"token string\">&#034;city&#034;<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;s&#034;<\/span><span class=\"token punctuation\">,<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;unit_system&#034;<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;s&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;C&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;F&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;days&#034;<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;i&#034;<\/span><span class=\"token punctuation\">,<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    <span class=\"token number\">5<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">[<\/span><span class=\"token string\">&#034;city&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;days&#034;<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token punctuation\">{<\/span><span class=\"token string\">&#034;city&#034;<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;s&#034;<\/span><span class=\"token punctuation\">,<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;unit_system&#034;<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;s&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;C&#034;<\/span><span class=\"token punctuation\">,<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;days&#034;<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;i&#034;<\/span><span class=\"token punctuation\">,<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><br \/>\nNAME <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">{<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token string\">&#034;v1 \u521d\u7248&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token string\">&#034;v2 \u52a0\u53ef\u9009 days&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">3<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token string\">&#034;v3 unit \u6539\u540d&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">4<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token string\">&#034;v4 days \u53d8\u5fc5\u586b&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">5<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token string\">&#034;v5 \u679a\u4e3e\u6536\u7d27&#034;<\/span><span class=\"token punctuation\">}<\/span><br \/>\nPY <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">{<\/span><span class=\"token string\">&#034;s&#034;<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token builtin\">str<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;i&#034;<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token builtin\">int<\/span><span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token keyword\">def<\/span> <span class=\"token function\">check<\/span><span class=\"token punctuation\">(<\/span>ver<span class=\"token punctuation\">,<\/span> args<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">:<\/span><br \/>\n    req<span class=\"token punctuation\">,<\/span> props <span class=\"token operator\">&#061;<\/span> V<span class=\"token punctuation\">[<\/span>ver<span class=\"token punctuation\">]<\/span><br \/>\n    err <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">[<\/span><span class=\"token string\">&#034;\u7f3a\u5fc5\u586b &#034;<\/span> <span class=\"token operator\">&#043;<\/span> k <span class=\"token keyword\">for<\/span> k <span class=\"token keyword\">in<\/span> req <span class=\"token keyword\">if<\/span> k <span class=\"token keyword\">not<\/span> <span class=\"token keyword\">in<\/span> args<span class=\"token punctuation\">]<\/span><br \/>\n    <span class=\"token keyword\">for<\/span> k<span class=\"token punctuation\">,<\/span> v <span class=\"token keyword\">in<\/span> args<span class=\"token punctuation\">.<\/span>items<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">:<\/span><br \/>\n        <span class=\"token keyword\">if<\/span> k <span class=\"token keyword\">not<\/span> <span class=\"token keyword\">in<\/span> props<span class=\"token punctuation\">:<\/span><br \/>\n            err<span class=\"token punctuation\">.<\/span>append<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u591a\u4f59\u5b57\u6bb5 &#034;<\/span> <span class=\"token operator\">&#043;<\/span> k<span class=\"token punctuation\">)<\/span><br \/>\n            <span class=\"token keyword\">continue<\/span><br \/>\n        <span class=\"token keyword\">if<\/span> <span class=\"token keyword\">not<\/span> <span class=\"token builtin\">isinstance<\/span><span class=\"token punctuation\">(<\/span>v<span class=\"token punctuation\">,<\/span> PY<span class=\"token punctuation\">[<\/span>props<span class=\"token punctuation\">[<\/span>k<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">[<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">:<\/span><br \/>\n            err<span class=\"token punctuation\">.<\/span>append<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u7c7b\u578b\u9519 &#034;<\/span> <span class=\"token operator\">&#043;<\/span> k<span class=\"token punctuation\">)<\/span><br \/>\n        <span class=\"token keyword\">if<\/span> <span class=\"token builtin\">len<\/span><span class=\"token punctuation\">(<\/span>props<span class=\"token punctuation\">[<\/span>k<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&gt;<\/span> <span class=\"token number\">1<\/span> <span class=\"token keyword\">and<\/span> v <span class=\"token keyword\">not<\/span> <span class=\"token keyword\">in<\/span> props<span class=\"token punctuation\">[<\/span>k<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">[<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">:<\/span><br \/>\n            err<span class=\"token punctuation\">.<\/span>append<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u679a\u4e3e\u8d8a\u754c %s&#061;%s&#034;<\/span> <span class=\"token operator\">%<\/span> <span class=\"token punctuation\">(<\/span>k<span class=\"token punctuation\">,<\/span> v<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><br \/>\n    <span class=\"token keyword\">return<\/span> err<\/p>\n<p><span class=\"token keyword\">def<\/span> <span class=\"token function\">calls<\/span><span class=\"token punctuation\">(<\/span>ver<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">:<\/span><br \/>\n    key <span class=\"token operator\">&#061;<\/span> <span class=\"token string\">&#034;unit&#034;<\/span> <span class=\"token keyword\">if<\/span> ver <span class=\"token operator\">&lt;&#061;<\/span> <span class=\"token number\">2<\/span> <span class=\"token keyword\">else<\/span> <span class=\"token string\">&#034;unit_system&#034;<\/span><br \/>\n    out <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span><br \/>\n    <span class=\"token keyword\">for<\/span> u <span class=\"token keyword\">in<\/span> <span class=\"token punctuation\">[<\/span><span class=\"token string\">&#034;C&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;C&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;C&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;F&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;F&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token boolean\">None<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token boolean\">None<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">:<\/span><br \/>\n        a <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">{<\/span><span class=\"token string\">&#034;city&#034;<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token string\">&#034;Shanghai&#034;<\/span><span class=\"token punctuation\">}<\/span><br \/>\n        <span class=\"token keyword\">if<\/span> u<span class=\"token punctuation\">:<\/span><br \/>\n            a<span class=\"token punctuation\">[<\/span>key<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> u<br \/>\n        <span class=\"token keyword\">if<\/span> ver <span class=\"token operator\">&gt;&#061;<\/span> <span class=\"token number\">4<\/span><span class=\"token punctuation\">:<\/span><br \/>\n            a<span class=\"token punctuation\">[<\/span><span class=\"token string\">&#034;days&#034;<\/span><span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">3<\/span><br \/>\n        out<span class=\"token punctuation\">.<\/span>append<span class=\"token punctuation\">(<\/span>a<span class=\"token punctuation\">)<\/span><br \/>\n    <span class=\"token keyword\">return<\/span> out<\/p>\n<p><span class=\"token keyword\">print<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u5931\u8d25\u6b21\u6570\u77e9\u9635&#xff08;\u884c&#061;\u5ba2\u6237\u7aef\u7248\u672c&#xff0c;\u5217&#061;\u670d\u52a1\u7aef\u5f53\u5929\u7248\u672c&#xff0c;\u5404 7 \u6b21\u8c03\u7528&#xff09;&#034;<\/span><span class=\"token punctuation\">)<\/span><br \/>\n<span class=\"token keyword\">print<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;          &#034;<\/span> <span class=\"token operator\">&#043;<\/span> <span class=\"token string\">&#034;&#034;<\/span><span class=\"token punctuation\">.<\/span>join<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;%9s&#034;<\/span> <span class=\"token operator\">%<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u670d\u52a1\u7aefv%d&#034;<\/span> <span class=\"token operator\">%<\/span> s<span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">for<\/span> s <span class=\"token keyword\">in<\/span> <span class=\"token builtin\">range<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">6<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><br \/>\ntot <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">0<\/span><br \/>\n<span class=\"token keyword\">for<\/span> c <span class=\"token keyword\">in<\/span> <span class=\"token builtin\">range<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">6<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">:<\/span><br \/>\n    row <span class=\"token operator\">&#061;<\/span> <span class=\"token string\">&#034;\u5ba2\u6237\u7aefv%d &#034;<\/span> <span class=\"token operator\">%<\/span> c<br \/>\n    <span class=\"token keyword\">for<\/span> s <span class=\"token keyword\">in<\/span> <span class=\"token builtin\">range<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">6<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">:<\/span><br \/>\n        b <span class=\"token operator\">&#061;<\/span> <span class=\"token builtin\">sum<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">1<\/span> <span class=\"token keyword\">for<\/span> a <span class=\"token keyword\">in<\/span> calls<span class=\"token punctuation\">(<\/span>c<span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">if<\/span> check<span class=\"token punctuation\">(<\/span>s<span class=\"token punctuation\">,<\/span> a<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><br \/>\n        tot <span class=\"token operator\">&#043;&#061;<\/span> b<br \/>\n        row <span class=\"token operator\">&#043;&#061;<\/span> <span class=\"token string\">&#034;%9d&#034;<\/span> <span class=\"token operator\">%<\/span> b<br \/>\n    <span class=\"token keyword\">print<\/span><span class=\"token punctuation\">(<\/span>row<span class=\"token punctuation\">)<\/span><br \/>\n<span class=\"token keyword\">print<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;  \u5408\u8ba1 %d\/175 \u6b21\u8c03\u7528\u5931\u8d25&#xff08;%.0f%%&#xff09;&#034;<\/span> <span class=\"token operator\">%<\/span> <span class=\"token punctuation\">(<\/span>tot<span class=\"token punctuation\">,<\/span> <span class=\"token number\">100<\/span> <span class=\"token operator\">*<\/span> tot <span class=\"token operator\">\/<\/span> <span class=\"token number\">175<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><br \/>\n<span class=\"token keyword\">print<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><br \/>\n<span class=\"token keyword\">print<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u8001\u5ba2\u6237\u7aef\u649e\u4e0a\u65b0\u670d\u52a1\u7aef&#xff0c;\u9996\u4e2a\u9519\u8bef\u662f\u4ec0\u4e48&#034;<\/span><span class=\"token punctuation\">)<\/span><br \/>\n<span class=\"token keyword\">for<\/span> c<span class=\"token punctuation\">,<\/span> s <span class=\"token keyword\">in<\/span> <span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">3<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">4<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">3<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token number\">3<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">4<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token number\">4<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">5<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">:<\/span><br \/>\n    b <span class=\"token operator\">&#061;<\/span> <span class=\"token builtin\">sum<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">1<\/span> <span class=\"token keyword\">for<\/span> a <span class=\"token keyword\">in<\/span> calls<span class=\"token punctuation\">(<\/span>c<span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">if<\/span> check<span class=\"token punctuation\">(<\/span>s<span class=\"token punctuation\">,<\/span> a<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><br \/>\n    <span class=\"token keyword\">print<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;  \u5ba2\u6237\u7aefv%d -&gt; \u670d\u52a1\u7aefv%d  %d\/7  \u9996\u9519&#xff1a;%s&#034;<\/span><br \/>\n          <span class=\"token operator\">%<\/span> <span class=\"token punctuation\">(<\/span>c<span class=\"token punctuation\">,<\/span> s<span class=\"token punctuation\">,<\/span> b<span class=\"token punctuation\">,<\/span> <span class=\"token punctuation\">(<\/span>check<span class=\"token punctuation\">(<\/span>s<span class=\"token punctuation\">,<\/span> calls<span class=\"token punctuation\">(<\/span>c<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">[<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">or<\/span> <span class=\"token punctuation\">[<\/span><span class=\"token string\">&#034;\u65e0&#034;<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">[<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p>\u5931\u8d25\u6b21\u6570\u77e9\u9635&#xff08;\u884c&#061;\u5ba2\u6237\u7aef\u7248\u672c&#xff0c;\u5217&#061;\u670d\u52a1\u7aef\u5f53\u5929\u7248\u672c&#xff0c;\u5404 7 \u6b21\u8c03\u7528&#xff09;<br \/>\n              \u670d\u52a1\u7aefv1    \u670d\u52a1\u7aefv2    \u670d\u52a1\u7aefv3    \u670d\u52a1\u7aefv4    \u670d\u52a1\u7aefv5<br \/>\n\u5ba2\u6237\u7aefv1         0        0        5        7        7<br \/>\n\u5ba2\u6237\u7aefv2         0        0        5        7        7<br \/>\n\u5ba2\u6237\u7aefv3         5        5        0        7        7<br \/>\n\u5ba2\u6237\u7aefv4         7        5        0        0        2<br \/>\n\u5ba2\u6237\u7aefv5         7        5        0        0        2<br \/>\n  \u5408\u8ba1 90\/175 \u6b21\u8c03\u7528\u5931\u8d25&#xff08;51%&#xff09;<\/p>\n<p>\u8001\u5ba2\u6237\u7aef\u649e\u4e0a\u65b0\u670d\u52a1\u7aef&#xff0c;\u9996\u4e2a\u9519\u8bef\u662f\u4ec0\u4e48<br \/>\n  \u5ba2\u6237\u7aefv1 -&gt; \u670d\u52a1\u7aefv2  0\/7  \u9996\u9519&#xff1a;\u65e0<br \/>\n  \u5ba2\u6237\u7aefv1 -&gt; \u670d\u52a1\u7aefv3  5\/7  \u9996\u9519&#xff1a;\u591a\u4f59\u5b57\u6bb5 unit<br \/>\n  \u5ba2\u6237\u7aefv1 -&gt; \u670d\u52a1\u7aefv4  7\/7  \u9996\u9519&#xff1a;\u7f3a\u5fc5\u586b days<br \/>\n  \u5ba2\u6237\u7aefv2 -&gt; \u670d\u52a1\u7aefv3  5\/7  \u9996\u9519&#xff1a;\u591a\u4f59\u5b57\u6bb5 unit<br \/>\n  \u5ba2\u6237\u7aefv3 -&gt; \u670d\u52a1\u7aefv4  7\/7  \u9996\u9519&#xff1a;\u7f3a\u5fc5\u586b days<br \/>\n  \u5ba2\u6237\u7aefv4 -&gt; \u670d\u52a1\u7aefv5  2\/7  \u9996\u9519&#xff1a;\u65e0<\/p>\n<p>\u77e9\u9635\u91cc\u6709\u4e24\u5904\u503c\u5f97\u505c\u4e0b\u6765\u770b\u3002<\/p>\n<p>v1\u3001v2 \u4e24\u884c\u5728\u670d\u52a1\u7aef v3 \u90a3\u4e00\u5217\u662f 5 \u800c\u4e0d\u662f 7\u3002\u8fd9 7 \u6b21\u8c03\u7528\u91cc\u6709 2 \u6b21\u6839\u672c\u6ca1\u4f20\u5355\u4f4d&#xff0c;\u6ca1\u6709 unit \u8fd9\u4e2a\u952e&#xff0c;\u4e5f\u5c31\u8c08\u4e0d\u4e0a\u300c\u591a\u4f59\u5b57\u6bb5\u300d\u3002\u5931\u8d25\u6b21\u6570\u4e0d\u662f\u300c\u5ba2\u6237\u7aef\u6570 \u00d7 \u8c03\u7528\u6b21\u6570\u300d&#xff0c;\u5b83\u53d6\u51b3\u4e8e\u8fd9\u6279\u8c03\u7528\u91cc\u6709\u591a\u5c11\u6b21\u5e26\u7740\u4f1a\u88ab\u5224\u9519\u7684\u90a3\u4e2a\u952e\u3002<\/p>\n<p>v4 \u90a3\u4e00\u5217&#xff0c;\u6240\u6709\u8001\u5ba2\u6237\u7aef\u90fd\u662f 7\/7\u3002\u7f3a days \u548c\u5ba2\u6237\u7aef\u4f20\u4e86\u4ec0\u4e48\u65e0\u5173&#xff0c;\u53ea\u8981\u8fd9\u4e2a\u952e\u4e0d\u5728\u8bf7\u6c42\u91cc&#xff0c;\u6bcf\u4e00\u6b21\u90fd\u5224\u4e0d\u8fc7\u3002\u8fd9\u5c31\u662f\u300c\u52a0\u5fc5\u586b\u300d\u548c\u5176\u4f59\u51e0\u7c7b\u6539\u52a8\u5728\u91cf\u4e0a\u7684\u533a\u522b&#xff1a;\u5b83\u6253\u7684\u662f\u5168\u90e8\u3002<\/p>\n<p>\u5bf9\u89d2\u7ebf\u5168\u662f 0&#xff0c;\u8bf4\u660e\u6bcf\u4e2a\u7248\u672c\u548c\u81ea\u5df1\u81ea\u6d3d&#xff1b;\u81ea\u6d3d\u4e0d\u4ee3\u8868\u517c\u5bb9\u3002\u8981\u770b\u4e24\u4e2a\u4e09\u89d2&#xff1a;\u53f3\u4e0a\u89d2\u662f\u300c\u8001\u5ba2\u6237\u7aef\u649e\u65b0\u670d\u52a1\u7aef\u300d&#xff0c;\u5de6\u4e0b\u89d2\u662f\u300c\u56de\u6eda\u540e\u65b0\u5ba2\u6237\u7aef\u649e\u65e7\u670d\u52a1\u7aef\u300d&#xff0c;\u4e24\u8fb9\u90fd\u4e0d\u662f 0\u3002<\/p>\n<hr \/>\n<h3>\u7b2c\u4e00\u9053&#xff1a;\u53ea\u52a0\u53ef\u9009\u5b57\u6bb5\u2014\u2014\u52a0\u5b57\u6bb5\u4e0d\u7b49\u4e8e\u6539\u5951\u7ea6<\/h3>\n<p>\u52a0\u5b57\u6bb5\u672c\u8eab\u4e0d\u7834\u574f\u5951\u7ea6&#xff0c;\u7834\u574f\u5951\u7ea6\u7684\u662f\u300c\u52a0\u5b8c\u4e4b\u540e&#xff0c;\u670d\u52a1\u7aef\u600e\u4e48\u5bf9\u5f85\u6ca1\u4f20\u8fd9\u4e2a\u5b57\u6bb5\u7684\u8bf7\u6c42\u300d\u3002\u8fd9\u9053\u95f8\u95e8\u62e6\u7684&#xff0c;\u662f\u628a\u65b0\u589e\u5b57\u6bb5\u987a\u624b\u585e\u8fdb required \u8fd9\u4e2a\u52a8\u4f5c\u3002<\/p>\n<p>&#x1f9ea; \u6570\u636e\u5b9e\u6d4b&#xff1a;\u628a\u4e94\u6b21\u6539\u52a8\u6309\u7834\u574f\u9762\u91cd\u6392&#xff0c;\u5f97\u5230\u4e0b\u9762\u8fd9\u5f20\u8868\u3002\u53e3\u5f84\u5148\u8bf4\u6e05\u2014\u20147 \u6b21\u8c03\u7528 &#061; 3 \u6b21\u4f20 C\u30012 \u6b21\u4f20 F\u30012 \u6b21\u4e0d\u4f20\u5355\u4f4d&#xff1b;\u6821\u9a8c\u5668\u53ea\u68c0\u67e5 required\u3001\u591a\u4f59\u5b57\u6bb5\u3001\u7c7b\u578b\u3001\u679a\u4e3e\u56db\u9879&#xff0c;\u4e0d\u6a21\u62df\u771f\u5b9e\u670d\u52a1\u7aef\u53ef\u80fd\u5b58\u5728\u7684\u5176\u4ed6\u6821\u9a8c\u3002<\/p>\n<table>\n<tr>\u6539\u52a8\u8001\u5ba2\u6237\u7aef\u4f1a\u649e\u4e0a\u4ec0\u4e487 \u6b21\u8c03\u7528\u91cc\u6302\u51e0\u6b21<\/tr>\n<tbody>\n<tr>\n<td>\u52a0\u53ef\u9009\u5b57\u6bb5&#xff08;v1\u2192v2&#xff09;<\/td>\n<td>\u8bf7\u6c42\u5f62\u72b6\u4e0d\u53d8&#xff0c;\u670d\u52a1\u7aef\u6309\u7f3a\u7701\u503c\u5904\u7406<\/td>\n<td>0<\/td>\n<\/tr>\n<tr>\n<td>\u6536\u7d27\u679a\u4e3e&#xff08;v4\u2192v5&#xff09;<\/td>\n<td>\u4f20 F \u7684\u8c03\u7528\u88ab\u5224\u679a\u4e3e\u8d8a\u754c<\/td>\n<td>2<\/td>\n<\/tr>\n<tr>\n<td>\u5b57\u6bb5\u6539\u540d&#xff08;v2\u2192v3&#xff09;<\/td>\n<td>\u65e7\u5b57\u6bb5\u540d\u88ab\u5224\u6210\u591a\u4f59\u5b57\u6bb5<\/td>\n<td>5<\/td>\n<\/tr>\n<tr>\n<td>\u52a0\u5fc5\u586b\u5b57\u6bb5&#xff08;v3\u2192v4&#xff09;<\/td>\n<td>\u6240\u6709\u8c03\u7528\u90fd\u7f3a\u8fd9\u4e2a\u952e<\/td>\n<td>7<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u6392\u5e8f\u53cd\u76f4\u89c9\u7684\u5730\u65b9\u5728\u7b2c\u4e09\u3001\u56db\u884c&#xff1a;\u6539\u540d\u6302 5 \u6b21&#xff0c;\u52a0\u5fc5\u586b\u6302 7 \u6b21\u3002\u6539\u540d\u7684\u7834\u574f\u9762\u53d6\u51b3\u4e8e\u300c\u6709\u591a\u5c11\u8c03\u7528\u5e26\u4e86\u90a3\u4e2a\u952e\u300d&#xff0c;\u52a0\u5fc5\u586b\u7684\u7834\u574f\u9762\u7b49\u4e8e\u5168\u90e8\u3002\u53d1\u5e03\u65b9\u5bf9\u4e24\u8005\u7684\u9884\u671f\u6070\u597d\u76f8\u53cd\u2014\u2014\u6539\u540d\u88ab\u5f53\u6210\u5927\u4e8b\u53cd\u590d\u8ba8\u8bba&#xff0c;\u52a0\u5fc5\u586b\u88ab\u5f53\u6210\u5c0f\u4e8b&#xff0c;\u4e00\u53e5\u300c\u65b0\u589e\u5b57\u6bb5\u300d\u5c31\u53d1\u4e86\u3002<\/p>\n<p>\u4e00\u9053\u300c\u53ea\u52a0\u53ef\u9009\u300d\u7684\u95f8\u95e8\u8981\u540c\u65f6\u6ee1\u8db3\u4e09\u4e2a\u6761\u4ef6&#xff1a;\u65b0\u5b57\u6bb5\u4e0d\u51fa\u73b0\u5728 required&#xff1b;\u670d\u52a1\u7aef\u5bf9\u7f3a\u5931\u6709\u786e\u5b9a\u7684\u7f3a\u7701\u884c\u4e3a&#xff0c;\u5e76\u628a\u8fd9\u4ef6\u4e8b\u5199\u8fdb\u54cd\u5e94&#xff0c;\u6bd4\u5982 {&#034;days_used&#034;: 1, &#034;days_defaulted&#034;: true}&#xff1b;\u65b0\u5b57\u6bb5\u4e0d\u53c2\u4e0e\u4efb\u4f55\u8de8\u5b57\u6bb5\u7ea6\u675f\u3002\u7b2c\u4e09\u6761\u6700\u5bb9\u6613\u6f0f\u2014\u2014\u5b57\u6bb5\u672c\u8eab\u53ef\u9009&#xff0c;\u53ef\u4e00\u65e6\u88ab\u653e\u8fdb oneOf \u7684\u67d0\u4e2a\u5206\u652f&#xff0c;\u5b83\u5728\u90a3\u6761\u5206\u652f\u91cc\u5c31\u53d8\u6210\u5fc5\u586b\u4e86&#xff0c;\u7b49\u4e8e\u7ed5\u8fc7\u524d\u4e24\u6761\u3002<\/p>\n<p><span class=\"token punctuation\">{<\/span><br \/>\n  <span class=\"token string-property property\">&#034;type&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token string\">&#034;object&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n  <span class=\"token string-property property\">&#034;properties&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token string-property property\">&#034;city&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token punctuation\">{<\/span> <span class=\"token string-property property\">&#034;type&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token string\">&#034;string&#034;<\/span> <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    <span class=\"token string-property property\">&#034;unit&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token punctuation\">{<\/span> <span class=\"token string-property property\">&#034;type&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token string\">&#034;string&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string-property property\">&#034;enum&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token punctuation\">[<\/span><span class=\"token string\">&#034;C&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;F&#034;<\/span><span class=\"token punctuation\">]<\/span> <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    <span class=\"token string-property property\">&#034;days&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token punctuation\">{<\/span> <span class=\"token string-property property\">&#034;type&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token string\">&#034;integer&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string-property property\">&#034;minimum&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string-property property\">&#034;maximum&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token number\">7<\/span> <span class=\"token punctuation\">}<\/span><br \/>\n  <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">,<\/span><br \/>\n  <span class=\"token string-property property\">&#034;required&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token punctuation\">[<\/span><span class=\"token string\">&#034;city&#034;<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">,<\/span><br \/>\n  <span class=\"token string-property property\">&#034;additionalProperties&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token boolean\">false<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p>\u8fd9\u91cc\u8fd8\u6709\u4e00\u5c42\u5bb9\u6613\u6df7\u6dc6&#xff1a;\u5de5\u5177\u5b9a\u4e49\u5c42\u7684\u300c\u53ef\u9009\u300d\u548c\u6a21\u578b\u751f\u6210\u5c42\u7684\u300c\u5fc5\u586b\u300d\u4e0d\u662f\u540c\u4e00\u4e2a\u5f00\u5173\u3002<\/p>\n<p>\u622a\u81f3 2026-10-30&#xff0c;OpenAI \u7ed3\u6784\u5316\u8f93\u51fa\u6587\u6863\u5bf9\u8fd9\u9879\u80fd\u529b\u7684\u63cf\u8ff0\u662f Structured Outputs is a feature that ensures the model will always generate responses that adhere to your supplied JSON Schema, so you don&#039;t need to worry about the model omitting a required key, or hallucinating an invalid enum value. \u540c\u4e00\u9875\u7684\u4e25\u683c\u6a21\u5f0f\u793a\u4f8b\u91cc&#xff0c;\u6bcf\u4e2a\u5bf9\u8c61\u90fd\u5e26 &#034;additionalProperties&#034;: false&#xff0c;\u6240\u6709\u5b57\u6bb5\u90fd\u5217\u8fdb required&#xff1b;\u60f3\u8868\u8fbe\u300c\u53ef\u4ee5\u4e0d\u586b\u300d&#xff0c;\u5199\u6cd5\u662f\u628a\u7c7b\u578b\u5199\u6210 &#034;type&#034;: [&#034;string&#034;, &#034;null&#034;] \u4f46\u4ecd\u7559\u5728 required \u91cc\u3002\u6a21\u578b\u4fa7\u6ca1\u6709\u300c\u7f3a\u7701\u952e\u300d\u8fd9\u4e2a\u72b6\u6001&#xff0c;\u53ea\u6709\u300c\u952e\u5728\u3001\u503c\u4e3a null\u300d\u3002<\/p>\n<p>\u540c\u4e00\u9875\u8fd8\u6709\u4e00\u53e5\u5173\u4e8e\u5ef6\u8fdf\u7684&#xff1a;the first request you make with any schema will have additional latency as our API processes the schema, but subsequent requests with the same schema will not have additional latency. \u54ea\u6015\u662f\u6700\u5b89\u5168\u7684\u8fd9\u7c7b\u6539\u52a8&#xff0c;\u4e5f\u6709\u4e00\u6b21\u6027\u4ee3\u4ef7\u2014\u2014schema \u53d8\u4e86&#xff0c;\u4e4b\u524d\u5904\u7406\u8fc7\u7684\u90a3\u4efd\u7ed3\u679c\u7528\u4e0d\u4e0a&#xff0c;\u4e0b\u4e00\u6b21\u91cd\u65b0\u4ed8\u4e00\u6b21\u3002\u6240\u4ee5 schema \u53d8\u66f4\u8981\u548c\u6d41\u91cf\u9ad8\u5cf0\u9519\u5f00\u3002<\/p>\n<p>\u6ca1\u6709\u8fd9\u9053\u95f8\u95e8\u4f1a\u600e\u6837&#xff1a;\u8981\u4e48\u4efb\u4f55\u5b57\u6bb5\u65b0\u589e\u90fd\u8d70\u7248\u672c\u5347\u7ea7\u3001\u8ba9\u8c03\u7528\u65b9\u6539\u4ee3\u7801&#xff1b;\u8981\u4e48\u628a\u300c\u52a0\u5b57\u6bb5\u300d\u7edf\u7edf\u5f53\u6210\u65e0\u5bb3\u64cd\u4f5c&#xff0c;\u8fdf\u65e9\u8d70\u5230 v3\u2192v4 \u90a3\u4e00\u6b65\u3002<\/p>\n<hr \/>\n<h3>\u7b2c\u4e8c\u9053&#xff1a;\u5b57\u6bb5\u6539\u540d\u5fc5\u987b\u53cc\u5199\u522b\u540d<\/h3>\n<p>\u6539\u540d\u662f\u8fd9\u51e0\u7c7b\u6539\u52a8\u91cc\u552f\u4e00\u4e00\u7c7b\u300c\u53ef\u80fd\u4e0d\u62a5\u9519\u3001\u4f46\u5728\u8bed\u4e49\u4e0a\u51fa\u9519\u300d\u7684\u3002\u8fd9\u9053\u95f8\u95e8\u62e6\u7684&#xff0c;\u5c31\u662f\u628a unit \u539f\u5730\u91cd\u547d\u540d\u6210 unit_system\u3002\u672c\u6587\u7684\u6821\u9a8c\u5668\u628a\u65e7\u5b57\u6bb5\u540d\u5224\u6210\u591a\u4f59\u5b57\u6bb5&#xff0c;\u6240\u4ee5 5 \u6b21\u660e\u786e\u62a5\u9519&#xff0c;\u770b\u8d77\u6765\u8fd8\u7b97\u6e29\u548c&#xff1b;\u771f\u5b9e\u670d\u52a1\u7aef\u66f4\u5e38\u89c1\u7684\u5904\u7406\u662f\u5ffd\u7565\u672a\u77e5\u5b57\u6bb5&#xff0c;\u8bf7\u6c42\u7167\u6536&#xff0c;unit \u88ab\u6084\u6084\u4e22\u6389&#xff0c;\u670d\u52a1\u7aef\u6309\u9ed8\u8ba4\u7684 C \u8fd4\u56de\u3002<\/p>\n<p>\u4e8e\u662f\u51fa\u73b0\u4e00\u4e2a\u5f88\u522b\u626d\u7684\u5c40\u9762&#xff1a;\u5931\u8d25\u7387\u5f52\u96f6&#xff0c;\u9519\u7b54\u7387\u4e0a\u5347&#xff0c;\u4e24\u4e2a\u6307\u6807\u671d\u76f8\u53cd\u65b9\u5411\u8d70&#xff0c;\u800c\u9519\u7684\u90a3\u4e00\u534a\u5728\u65e5\u5fd7\u91cc\u6ca1\u6709\u75d5\u8ff9\u3002\u8c03\u7528\u65b9\u62ff\u5230 200&#xff0c;\u62ff\u5230\u4e00\u4e2a\u683c\u5f0f\u5b8c\u5168\u6b63\u786e\u7684\u54cd\u5e94&#xff0c;\u53ea\u662f\u6e29\u5ea6\u5355\u4f4d\u4e0d\u662f\u4ed6\u8981\u7684\u90a3\u4e2a\u3002<\/p>\n<p>\u4e3a\u4ec0\u4e48\u662f 5 \u800c\u4e0d\u662f 7&#xff0c;\u539f\u56e0\u548c\u4e0a\u4e00\u7ae0\u4e00\u6837&#xff1a;\u90a3 2 \u6b21\u6ca1\u4f20\u5355\u4f4d\u7684\u8c03\u7528\u901a\u8fc7\u4e86&#xff0c;\u5b83\u4eec\u672c\u6765\u5c31\u6ca1\u6709 unit \u53ef\u4ee5\u4e22\u3002\u62a5\u9519\u7684\u90a3 5 \u6b21\u53cd\u800c\u662f\u5e78\u8fd0\u7684&#xff0c;\u81f3\u5c11\u5b83\u4eec\u77e5\u9053\u81ea\u5df1\u9519\u4e86\u3002<\/p>\n<p>\u53cc\u5199\u522b\u540d\u662f\u8fd9\u9053\u95f8\u95e8\u7684\u505a\u6cd5&#xff0c;\u4e09\u6761\u8981\u6c42&#xff1a;\u670d\u52a1\u7aef\u540c\u65f6\u63a5\u53d7\u65b0\u65e7\u4e24\u4e2a\u5b57\u6bb5\u540d&#xff0c;\u65e7\u540d\u6620\u5c04\u5230\u65b0\u540d&#xff1b;\u4e24\u4e2a\u90fd\u4f20\u4e14\u503c\u4e0d\u4e00\u81f4\u65f6\u62a5\u9519&#xff0c;\u4e0d\u8981\u731c&#xff0c;\u731c\u9519\u6bd4\u62a5\u9519\u96be\u67e5\u5f97\u591a&#xff1b;\u54cd\u5e94\u91cc\u56de\u663e\u5b9e\u9645\u751f\u6548\u7684\u5b57\u6bb5\u540d\u548c\u6765\u6e90&#xff0c;\u6bd4\u5982 {&#034;applied&#034;: {&#034;unit_system&#034;: &#034;F&#034;, &#034;source&#034;: &#034;alias:unit&#034;}}\u3002<\/p>\n<p><span class=\"token punctuation\">{<\/span><br \/>\n  <span class=\"token string-property property\">&#034;type&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token string\">&#034;object&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n  <span class=\"token string-property property\">&#034;properties&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token string-property property\">&#034;city&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token punctuation\">{<\/span> <span class=\"token string-property property\">&#034;type&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token string\">&#034;string&#034;<\/span> <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    <span class=\"token string-property property\">&#034;unit&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token punctuation\">{<\/span> <span class=\"token string-property property\">&#034;type&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token string\">&#034;string&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string-property property\">&#034;enum&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token punctuation\">[<\/span><span class=\"token string\">&#034;C&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;F&#034;<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string-property property\">&#034;deprecated&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token boolean\">true<\/span> <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    <span class=\"token string-property property\">&#034;unit_system&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token punctuation\">{<\/span> <span class=\"token string-property property\">&#034;type&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token string\">&#034;string&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string-property property\">&#034;enum&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token punctuation\">[<\/span><span class=\"token string\">&#034;C&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;F&#034;<\/span><span class=\"token punctuation\">]<\/span> <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    <span class=\"token string-property property\">&#034;days&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token punctuation\">{<\/span> <span class=\"token string-property property\">&#034;type&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token string\">&#034;integer&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string-property property\">&#034;minimum&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string-property property\">&#034;maximum&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token number\">7<\/span> <span class=\"token punctuation\">}<\/span><br \/>\n  <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">,<\/span><br \/>\n  <span class=\"token string-property property\">&#034;required&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token punctuation\">[<\/span><span class=\"token string\">&#034;city&#034;<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">,<\/span><br \/>\n  <span class=\"token string-property property\">&#034;additionalProperties&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token boolean\">false<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p>deprecated \u53ea\u662f\u7ed9\u4eba\u770b\u7684\u6ce8\u91ca&#xff0c;\u4e0d\u6539\u53d8\u6821\u9a8c\u8bed\u4e49\u3002\u771f\u6b63\u8ba9\u522b\u540d\u751f\u6548\u7684&#xff0c;\u662f properties \u91cc\u540c\u65f6\u7559\u7740\u4e24\u4e2a\u540d\u5b57\u2014\u2014\u914d\u5408 additionalProperties: false&#xff0c;\u6ca1\u5217\u8fdb\u53bb\u7684\u952e\u624d\u4f1a\u88ab\u5224\u6210\u591a\u4f59\u5b57\u6bb5\u3002<\/p>\n<p>\u522b\u540d\u671f\u8be5\u591a\u957f&#xff0c;\u4e0d\u80fd\u7528\u65e5\u5386\u4f30\u3002\u4f9d\u636e\u662f\u89c2\u6d4b&#xff1a;\u8fde\u7eed 7 \u5929\u65e7\u540d\u5b57\u547d\u4e2d\u6b21\u6570\u5f52\u96f6&#xff0c;\u4e14\u8fd9\u6bb5\u65f6\u95f4\u6ca1\u6709\u65b0\u7684\u65e7\u7248\u672c\u5ba2\u6237\u7aef\u5192\u51fa\u6765&#xff0c;\u624d\u53ef\u4ee5\u5220\u3002\u5220\u4e4b\u524d\u7559\u4e00\u6bb5 source: &#034;alias:unit&#034; \u7684\u8ba1\u6570\u3002<\/p>\n<p>\u26a0\ufe0f \u5f85\u9a8c\u8bc1&#xff1a;\u8865\u4e0a\u8fd9\u5c42\u522b\u540d\u518d\u8dd1\u540c\u4e00\u7ec4\u8c03\u7528&#xff0c;\u9884\u671f\u662f 0\/21\u30010\/28\u30010\/35&#xff08;3\u30014\u30015 \u4e2a\u5ba2\u6237\u7aef\u7248\u672c\u5404 7 \u6b21&#xff09;\u3002\u8fd9\u4e00\u7ec4\u5c5e\u4e8e\u5f85\u9a8c\u8bc1\u2014\u2014\u672c\u6587\u811a\u672c\u53ea\u8dd1\u5230\u7b2c 5 \u7248\u670d\u52a1\u7aef&#xff0c;\u6ca1\u6709\u5355\u72ec\u8d77\u5e26\u517c\u5bb9\u5c42\u7684\u7248\u672c\u53bb\u6d4b&#xff0c;\u8bf7\u4ee5\u4f60\u672c\u5730\u8865\u5b8c\u540e\u7684\u5b9e\u9645\u8f93\u51fa\u4e3a\u51c6\u3002<\/p>\n<p>\u6ca1\u6709\u8fd9\u9053\u95f8\u95e8\u4f1a\u600e\u6837&#xff1a;\u6539\u540d\u53ea\u5269\u4e24\u6761\u8def&#xff0c;\u7b49\u6240\u6709\u8c03\u7528\u65b9\u5347\u7ea7&#xff08;\u4e0d\u77e5\u9053\u7b49\u5230\u54ea\u5929&#xff09;&#xff0c;\u6216\u8005\u63a5\u53d7\u4e00\u6bb5\u9759\u9ed8\u4e22\u53c2\u7684\u7a97\u53e3&#xff08;\u4e0d\u77e5\u9053\u4e22\u4e86\u4ec0\u4e48&#xff09;\u3002\u524d\u8005\u62d6\u4f4f\u53d1\u5e03&#xff0c;\u540e\u8005\u628a\u9519\u8bef\u63a8\u8fdb\u8c03\u7528\u65b9\u7684\u4e1a\u52a1\u7ed3\u679c\u91cc&#xff0c;\u4e24\u8fb9\u90fd\u4e0d\u4f1a\u6709\u4eba\u4e3b\u52a8\u6765\u8ba4\u3002<\/p>\n<p>\u8fd9\u4efd\u8d44\u6599\u662f\u4ec0\u4e48&#xff1a;\u628a\u5de5\u5177\u5b9a\u4e49\u4ece\u300c\u4e00\u5f20 schema\u300d\u6f14\u8fdb\u5230\u300c\u4e00\u5957\u5e26\u7248\u672c\u77e9\u9635\u7684\u5951\u7ea6\u300d&#xff0c;\u4e2d\u95f4\u8981\u8865\u7684\u5c01\u88c5\u3001\u8bc4\u4f30\u4e0e\u7070\u5ea6\u73af\u8282&#xff0c;\u6574\u7406\u6210\u4e86\u4e00\u4efd\u6309\u987a\u5e8f\u770b\u7684\u6e05\u5355\u3002\u653e\u5728\u8d44\u6599\u5305\u91cc&#xff0c;\u626b\u7801\u5373\u53ef\u83b7\u53d6&#xff1a;<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/10\/20261030011639-6ae3eff7479e8.png\" alt=\"\u914d\u5957\u8d44\u6599\u83b7\u53d6\" \/><\/p>\n<hr \/>\n<h3>\u7b2c\u4e09\u9053&#xff1a;\u65b0\u5fc5\u586b\u5148\u7ed9\u9ed8\u8ba4\u503c<\/h3>\n<p>\u5fc5\u586b\u5b57\u6bb5\u6ca1\u6709\u300c\u5e73\u6ed1\u300d\u7684\u52a0\u6cd5&#xff0c;\u53ea\u6709\u300c\u5148\u5f53\u53ef\u9009\u3001\u518d\u6536\u7d27\u300d&#xff0c;\u4e2d\u95f4\u90a3\u6bb5\u65f6\u95f4\u9760\u670d\u52a1\u7aef\u7684\u9ed8\u8ba4\u503c\u6491\u7740\u3002\u8fd9\u9053\u95f8\u95e8\u62e6\u7684&#xff0c;\u662f\u628a\u65b0\u589e\u5b57\u6bb5\u76f4\u63a5\u6807\u6210 required \u7136\u540e\u53d1\u5e03\u3002<\/p>\n<p>\u5b83\u6bd4\u6539\u540d\u66f4\u72e0&#xff0c;\u77e9\u9635\u5199\u5f97\u5f88\u6e05\u695a&#xff1a;\u6539\u540d\u53ea\u6253\u4e2d\u300c\u4f20\u4e86\u65e7\u540d\u5b57\u300d\u7684\u90a3\u90e8\u5206\u8c03\u7528&#xff0c;\u52a0\u5fc5\u586b\u6253\u4e2d\u5168\u90e8&#xff0c;v4 \u90a3\u4e00\u5217\u4e94\u4e2a\u5ba2\u6237\u7aef\u7248\u672c\u9f50\u5237\u5237 7\/7\u3002\u53d1\u5e03\u65b9\u7684\u76f4\u89c9\u5728\u8fd9\u91cc\u5931\u6548\u5f97\u6700\u5f7b\u5e95\u2014\u2014\u4ed6\u4eec\u773c\u91cc\u8fd9\u662f\u300c\u52a0\u4e86\u4e2a\u5b57\u6bb5\u300d&#xff0c;\u8c03\u7528\u65b9\u773c\u91cc\u8fd9\u662f\u300c\u5951\u7ea6\u53d8\u4e86&#xff0c;\u800c\u4e14\u6211\u4e0d\u77e5\u60c5\u300d\u3002<\/p>\n<p>\u505a\u6cd5\u5206\u4e09\u6b65&#xff0c;\u6bcf\u4e00\u6b65\u90fd\u7559\u4e0b\u53ef\u67e5\u7684\u75d5\u8ff9\u3002<\/p>\n<p>\u5b57\u6bb5\u6309\u53ef\u9009\u53d1\u5e03&#xff0c;\u7f3a\u7701\u503c\u5199\u5728\u670d\u52a1\u7aef&#xff0c;\u5e76\u628a\u300c\u7528\u4e86\u7f3a\u7701\u503c\u300d\u5199\u8fdb\u54cd\u5e94&#xff1a;{&#034;days_used&#034;: 1, &#034;days_defaulted&#034;: true}\u3002\u5c11\u4e86\u8fd9\u4e2a\u56de\u663e&#xff0c;\u9ed8\u8ba4\u503c\u5c31\u6210\u4e86\u4e00\u4e2a\u770b\u4e0d\u89c1\u7684\u5206\u652f&#xff0c;\u8c01\u90fd\u8bf4\u4e0d\u6e05\u67d0\u6b21\u8c03\u7528\u7528\u7684\u662f\u8c03\u7528\u65b9\u7ed9\u7684\u503c\u8fd8\u662f\u670d\u52a1\u7aef\u8865\u7684\u503c\u3002<\/p>\n<p>\u6309\u5ba2\u6237\u7aef\u7248\u672c\u7edf\u8ba1 days_defaulted \u7684\u6bd4\u4f8b\u3002\u8fd9\u662f\u4e00\u4e2a\u80fd\u76f4\u63a5\u67e5\u7684\u6307\u6807&#xff0c;\u4e0d\u9700\u8981\u53bb\u95ee\u63a5\u5165\u65b9\u300c\u4f60\u4eec\u5347\u7ea7\u4e86\u5417\u300d\u3002<\/p>\n<p>\u5f53\u67d0\u4e2a\u7248\u672c\u6700\u8fd1 7 \u5929 days_defaulted &#061; 0&#xff0c;\u4e14\u8fd9\u6bb5\u65f6\u95f4\u8c03\u7528\u6b21\u6570\u4e0d\u5c11\u4e8e 200&#xff0c;\u624d\u628a\u5b83\u4ece\u517c\u5bb9\u8303\u56f4\u91cc\u79fb\u51fa\u3001\u6807\u6210\u5fc5\u586b\u3002\u95e8\u69db\u6309\u4f60\u4eec\u7684\u8c03\u7528\u91cf\u8c03&#xff0c;\u5b83\u6321\u4f4f\u4e00\u79cd\u8bef\u5224&#xff1a;\u67d0\u7248\u672c\u4e00\u5468\u53ea\u8c03\u4e86 3 \u6b21&#xff0c;\u6070\u597d\u90fd\u6ca1\u89e6\u53d1\u7f3a\u7701&#xff0c;\u5c31\u88ab\u5f53\u6210\u300c\u9002\u914d\u5b8c\u6210\u300d\u2014\u2014\u6837\u672c\u592a\u5c11\u65f6&#xff0c;\u300c\u6ca1\u51fa\u73b0\u300d\u548c\u300c\u4e0d\u4f1a\u51fa\u73b0\u300d\u662f\u4e24\u4ef6\u4e8b\u3002<\/p>\n<p>\u9ed8\u8ba4\u503c\u4e0d\u80fd\u53ea\u5199\u5728\u6587\u6863\u91cc\u3002\u5de5\u5177\u5b9a\u4e49\u662f\u7ed9\u6a21\u578b\u770b\u7684&#xff0c;\u6a21\u578b\u4e0d\u8bfb changelog&#xff1b;\u53c2\u6570\u662f\u4eba\u5199\u7684\u4ee3\u7801\u62fc\u7684&#xff0c;\u4eba\u4e5f\u5e38\u4e0d\u8bfb\u3002\u5199\u5728\u54cd\u5e94\u91cc&#xff0c;\u4e24\u8fb9\u90fd\u80fd\u770b\u89c1\u3002<\/p>\n<p>\u8fd8\u6709\u4e2a\u8fb9\u754c\u3002\u5b98\u65b9\u6587\u6863\u5bf9\u4e0d\u5b8c\u6574\u54cd\u5e94\u6709\u4e13\u95e8\u8bf4\u660e\u2014\u2014if for example you reach a max tokens limit and the response is incomplete\u3002\u4e25\u683c\u6a21\u5f0f\u4fdd\u8bc1\u7684\u662f\u300c\u5f62\u72b6\u7b26\u5408 schema\u300d&#xff0c;\u5b83\u4e0d\u4fdd\u8bc1\u300c\u4e00\u5b9a\u5b8c\u6574\u8d70\u5230\u7ed3\u675f\u300d\u3002\u6240\u4ee5\u670d\u52a1\u7aef\u5728\u6d88\u8d39\u6a21\u578b\u8fd4\u56de\u65f6&#xff0c;schema \u6821\u9a8c\u901a\u8fc7\u4e4b\u540e\u8fd8\u8981\u518d\u770b\u4e00\u773c\u7ed3\u675f\u539f\u56e0\u3002<\/p>\n<p>\u6ca1\u6709\u8fd9\u9053\u95f8\u95e8\u4f1a\u600e\u6837&#xff1a;\u52a0\u5fc5\u586b\u53ea\u80fd\u5728\u4e24\u4e2a\u574f\u9009\u9879\u91cc\u6311\u4e00\u4e2a&#xff0c;\u53d1\u5e03\u5373\u5d29&#xff0c;\u6216\u8005\u6c38\u8fdc\u4e0d\u52a0\u3001\u5728\u670d\u52a1\u7aef\u628a\u503c\u786c\u7f16\u7801\u6b7b\u3002\u524d\u8005\u5c31\u662f 7\/7 \u90a3\u4e2a\u6837\u5b50&#xff0c;\u540e\u8005\u4f1a\u8ba9\u5de5\u5177\u6084\u6084\u5931\u53bb\u4e00\u534a\u8868\u8fbe\u529b&#xff0c;\u800c\u4e14\u6ca1\u4eba\u4f1a\u4e3a\u4e00\u4e2a\u6ca1\u52a0\u4e0a\u7684\u53c2\u6570\u5199\u4e8b\u6545\u62a5\u544a\u3002<\/p>\n<hr \/>\n<h3>\u7b2c\u56db\u9053&#xff1a;\u6536\u7d27\u679a\u4e3e\u8981\u5728\u670d\u52a1\u7aef\u6362\u7b97<\/h3>\n<p>\u679a\u4e3e\u662f\u503c\u57df\u4e0a\u7684\u5951\u7ea6&#xff0c;\u6536\u7d27\u5b83\u7b49\u4e8e\u5ba3\u5e03\u4e00\u6279\u6628\u5929\u8fd8\u5408\u6cd5\u7684\u503c\u4eca\u5929\u975e\u6cd5\u3002\u8fd9\u9053\u95f8\u95e8\u62e6\u7684&#xff0c;\u662f\u5728\u670d\u52a1\u7aef\u76f4\u63a5\u5220\u6389\u4e00\u4e2a\u679a\u4e3e\u503c\u3002<\/p>\n<p>v4\u2192v5 \u7684\u5931\u8d25\u9762\u662f 2\/7&#xff0c;\u4e0d\u662f 7\/7&#xff0c;\u539f\u56e0\u8fd8\u662f\u90a3 7 \u6b21\u8c03\u7528\u7684\u6784\u6210&#xff1a;3 \u6b21 C\u30012 \u6b21 F\u30012 \u6b21\u4e0d\u4f20\u3002\u88ab\u6536\u7d27\u6389\u7684\u53ea\u6709 F \u90a3\u4e24\u6b21\u3002<\/p>\n<p>\u8fd9\u4e2a\u6570\u5b57\u5c0f&#xff0c;\u5bb9\u6613\u8ba9\u4eba\u653e\u677e&#xff0c;\u4f46\u6709\u4e24\u4ef6\u4e8b\u8981\u540c\u65f6\u770b\u5230\u3002\u5b83\u6253\u4e2d\u7684\u662f\u300c\u7528\u4e86\u88ab\u6536\u7d27\u90a3\u4e2a\u503c\u300d\u7684\u8c03\u7528&#xff0c;\u800c\u8fd9\u6279\u8c03\u7528\u5f80\u5f80\u96c6\u4e2d\u5728\u5c11\u6570\u51e0\u4e2a\u63a5\u5165\u65b9\u8eab\u4e0a\u2014\u2014\u5bf9\u4ed6\u4eec\u6765\u8bf4\u4e0d\u662f 2\/7&#xff0c;\u662f\u5168\u90e8\u3002\u53e6\u5916&#xff0c;\u679a\u4e3e\u6536\u7d27\u7ecf\u5e38\u548c\u300c\u65b0\u589e\u4e00\u4e2a\u66f4\u7cbe\u786e\u7684\u503c\u300d\u4e00\u8d77\u505a&#xff0c;\u65b0\u589e\u90a3\u4e2a\u503c\u53c8\u4f1a\u56de\u5230\u7b2c\u4e00\u9053\u95f8\u95e8&#xff0c;\u4e24\u6b21\u6539\u52a8\u53e0\u5728\u4e00\u6b21\u53d1\u5e03\u91cc&#xff0c;\u7834\u574f\u9762\u4e0d\u662f\u76f8\u52a0\u800c\u662f\u76f8\u4e58\u3002<\/p>\n<p>\u670d\u52a1\u7aef\u6362\u7b97\u7684\u505a\u6cd5\u662f&#xff1a;\u63a5\u53d7\u65e7\u503c&#xff0c;\u5185\u90e8\u6620\u5c04\u5230\u65b0\u503c&#xff0c;\u54cd\u5e94\u91cc\u540c\u65f6\u56de\u663e requested \u548c returned\u3002\u5355\u4f4d\u6362\u7b97\u662f\u786e\u5b9a\u6027\u6620\u5c04&#xff0c;C \u548c F \u4e4b\u95f4\u53ef\u4ee5\u65e0\u635f\u5f80\u8fd4&#xff08;\u6d6e\u70b9\u6570\u9664\u5916&#xff09;&#xff0c;\u8fd9\u4e00\u5c42\u7ad9\u5f97\u4f4f\u2014\u2014\u8c03\u7528\u65b9\u8981 F&#xff0c;\u4f60\u7ed9\u4ed6 C \u518d\u52a0\u4e00\u53e5\u300c\u8fd9\u662f\u6309 C \u7b97\u7684\u300d&#xff0c;\u4ed6\u80fd\u81ea\u5df1\u6362\u56de\u53bb\u3002<\/p>\n<p>\u6362\u7b97\u5c42\u6709\u4e2a\u524d\u63d0&#xff1a;\u65b0\u65e7\u503c\u5fc5\u987b\u662f\u540c\u4e00\u4e2a\u91cf\u7684\u4e0d\u540c\u523b\u5ea6\u3002\u5982\u679c\u679a\u4e3e\u503c\u4e4b\u95f4\u4e0d\u53ef\u6362\u7b97&#xff0c;\u6bd4\u5982 mode: fast \/ accurate \/ cheap&#xff0c;\u4e09\u8005\u4e0d\u662f\u540c\u4e00\u628a\u5c3a\u5b50\u7684\u4e0d\u540c\u6863\u4f4d&#xff0c;\u6362\u7b97\u5c31\u4e0d\u6210\u7acb&#xff0c;\u53ea\u80fd\u8d70\u7248\u672c\u5316\u2014\u2014\u65b0\u5f00\u53c2\u6570\u540d&#xff0c;\u65e7\u53c2\u6570\u4fdd\u7559&#xff0c;\u8ba9\u8c03\u7528\u65b9\u81ea\u5df1\u9009\u3002\u786c\u505a\u6620\u5c04\u7b49\u4e8e\u66ff\u8c03\u7528\u65b9\u731c\u610f\u56fe\u3002<\/p>\n<p>\u6ca1\u6709\u8fd9\u9053\u95f8\u95e8\u4f1a\u600e\u6837&#xff1a;\u6536\u7d27\u679a\u4e3e\u53d8\u6210\u5355\u65b9\u9762\u5220\u503c\u3002\u6307\u671b\u300c\u53d1\u516c\u544a\u8ba9\u8c03\u7528\u65b9\u6539\u300d\u5728\u5de5\u5177\u573a\u666f\u91cc\u6548\u679c\u6709\u9650&#xff0c;\u53c2\u6570\u662f\u6a21\u578b\u5728\u8fd0\u884c\u65f6\u6309 schema \u6311\u7684&#xff0c;\u4e0d\u662f\u4eba\u5199\u6b7b\u7684\u5e38\u91cf&#xff0c;\u8c03\u7528\u65b9\u751a\u81f3\u4e0d\u77e5\u9053\u81ea\u5df1\u7528\u5230\u4e86\u90a3\u4e2a\u88ab\u5220\u7684\u503c\u3002<\/p>\n<hr \/>\n<h3>\u8fd9\u5957\u95f8\u95e8\u7684\u6700\u5c0f\u57fa\u5efa&#xff1a;\u4e00\u5f20\u7248\u672c\u77e9\u9635\u52a0\u4e00\u7ec4\u5951\u7ea6\u6d4b\u8bd5<\/h3>\n<p>\u56db\u9053\u95f8\u95e8\u7684\u987a\u5e8f\u662f\u5951\u7ea6\u5c42\u3001\u547d\u540d\u5c42\u3001\u9ed8\u8ba4\u503c\u5c42\u3001\u53d6\u503c\u5c42&#xff0c;\u8fd9\u4e2a\u987a\u5e8f\u4e0d\u80fd\u6362\u3002<\/p>\n<p>\u6bcf\u4e00\u9053\u90fd\u7ed9\u540e\u4e00\u9053\u63d0\u4f9b\u524d\u63d0\u3002\u7b2c\u56db\u9053\u5728\u503c\u57df\u4e0a\u505a\u6536\u7f29&#xff0c;\u5b83\u9ed8\u8ba4\u5b57\u6bb5\u540d\u548c\u5fc5\u586b\u6027\u90fd\u7a33\u5b9a&#xff1b;\u5148\u505a\u7b2c\u56db\u9053\u518d\u505a\u7b2c\u4e8c\u9053&#xff0c;\u4f60\u4f1a\u540c\u65f6\u6536\u5230\u300c\u5b57\u6bb5\u88ab\u4e22\u5f03\u300d\u548c\u300c\u503c\u88ab\u62d2\u7edd\u300d\u4e24\u7c7b\u9519\u8bef&#xff0c;\u65e5\u5fd7\u91cc\u957f\u5f97\u5b8c\u5168\u4e0d\u540c&#xff0c;\u6839\u56e0\u5374\u662f\u540c\u4e00\u6b21\u6f14\u8fdb&#xff0c;\u6392\u67e5\u6210\u672c\u7ffb\u500d\u3002\u7b2c\u4e00\u9053\u662f\u5176\u4f59\u4e09\u9053\u7684\u5730\u57fa&#xff1a;\u8fd9\u6761\u8def\u8d70\u4e0d\u901a&#xff0c;\u540e\u9762\u4e09\u9053\u5168\u90e8\u9000\u5316\u6210\u7248\u672c\u5347\u7ea7&#xff0c;\u8c03\u7528\u65b9\u5fc5\u987b\u6539\u4ee3\u7801\u3002<\/p>\n<p>\u8981\u843d\u5730\u53ea\u9700\u8981\u4e24\u4ef6\u4e1c\u897f&#xff1a;\u4e00\u5f20\u7248\u672c\u77e9\u9635&#xff0c;\u4e00\u7ec4\u5951\u7ea6\u6d4b\u8bd5\u3002\u77e9\u9635\u56de\u7b54\u300c\u8c01\u548c\u8c01\u7ec4\u5408\u4f1a\u51fa\u4e8b\u300d&#xff0c;\u5951\u7ea6\u6d4b\u8bd5\u56de\u7b54\u300c\u8fd9\u6b21\u6539\u52a8\u6709\u6ca1\u6709\u8ba9\u67d0\u4e2a\u683c\u5b50\u4ece 0 \u53d8\u6210\u975e 0\u300d\u3002<\/p>\n<table>\n<tr>\u9879\u8c01\u7ef4\u62a4\u4ec0\u4e48\u65f6\u5019\u66f4\u65b0\u51fa\u95ee\u9898\u627e\u8c01<\/tr>\n<tbody>\n<tr>\n<td>\u670d\u52a1\u7aef schema \u7248\u672c\u53f7<\/td>\n<td>\u5de5\u5177\u5b9a\u4e49\u8d1f\u8d23\u4eba<\/td>\n<td>\u6bcf\u6b21\u6539 properties \/ required \/ enum<\/td>\n<td>\u5de5\u5177\u5b9a\u4e49\u8d1f\u8d23\u4eba<\/td>\n<\/tr>\n<tr>\n<td>\u5ba2\u6237\u7aef\u7248\u672c\u767b\u8bb0\u8868<\/td>\n<td>\u5404\u63a5\u5165\u65b9<\/td>\n<td>\u65b0\u63a5\u5165\u3001\u4e0b\u7ebf\u3001\u5f3a\u5236\u5347\u7ea7\u65f6<\/td>\n<td>\u63a5\u5165\u65b9<\/td>\n<\/tr>\n<tr>\n<td>\u517c\u5bb9\u77e9\u9635\u7ed3\u679c<\/td>\n<td>CI \u6bcf\u665a\u8dd1&#xff0c;\u7ed3\u679c\u5165\u5e93<\/td>\n<td>\u6bcf\u6b21\u670d\u52a1\u7aef\u53d1\u5e03\u524d<\/td>\n<td>\u5f53\u5468\u503c\u73ed<\/td>\n<\/tr>\n<tr>\n<td>\u5951\u7ea6\u6d4b\u8bd5\u7528\u4f8b<\/td>\n<td>\u670d\u52a1\u7aef\u4e0e\u63a5\u5165\u65b9\u5171\u540c<\/td>\n<td>\u6bcf\u65b0\u589e\u5b57\u6bb5\u3001\u6bcf\u6536\u7d27\u679a\u4e3e<\/td>\n<td>\u670d\u52a1\u7aef\u8d1f\u8d23\u4eba<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u5951\u7ea6\u6d4b\u8bd5\u8981\u653e\u5728\u670d\u52a1\u7aef\u7684 PR \u95e8\u7981\u4e0a&#xff0c;\u4e0d\u662f\u653e\u5728\u96c6\u6210\u6d4b\u8bd5\u91cc\u3002\u653e\u5728\u96c6\u6210\u6d4b\u8bd5\u91cc&#xff0c;\u5b83\u8dd1\u5728\u5408\u5e76\u4e4b\u540e&#xff0c;\u53d1\u73b0\u95ee\u9898\u65f6\u6539\u52a8\u843d\u5728\u4e3b\u5e72\u4e0a&#xff1b;\u653e\u5728\u95e8\u7981\u4e0a&#xff0c;schema \u6587\u4ef6\u4e00\u52a8&#xff0c;CI \u5c31\u62ff\u767b\u8bb0\u5728\u518c\u7684\u5ba2\u6237\u7aef\u6837\u672c\u8dd1\u4e00\u904d\u77e9\u9635&#xff0c;\u4efb\u4f55\u4e00\u4e2a\u683c\u5b50\u4ece 0 \u53d8\u6210\u975e 0&#xff0c;\u8fd9\u4e2a PR \u5408\u4e0d\u8fdb\u53bb\u3002<\/p>\n<p><span class=\"token shebang important\">#!\/usr\/bin\/env bash<\/span><br \/>\n<span class=\"token builtin class-name\">set<\/span> <span class=\"token parameter variable\">-euo<\/span> pipefail<\/p>\n<p><span class=\"token assign-left variable\">SERVER<\/span><span class=\"token operator\">&#061;<\/span><span class=\"token string\">&#034;<span class=\"token variable\">${SERVER<span class=\"token operator\">:-<\/span>http<span class=\"token operator\">:<\/span><span class=\"token operator\">\/<\/span><span class=\"token operator\">\/<\/span>127.0.0.1<span class=\"token operator\">:<\/span>8080}<\/span>&#034;<\/span><br \/>\n<span class=\"token assign-left variable\">FIXTURES<\/span><span class=\"token operator\">&#061;<\/span><span class=\"token string\">&#034;tests\/contract\/fixtures&#034;<\/span><br \/>\n<span class=\"token assign-left variable\">fail<\/span><span class=\"token operator\">&#061;<\/span><span class=\"token number\">0<\/span><br \/>\n<span class=\"token assign-left variable\">total<\/span><span class=\"token operator\">&#061;<\/span><span class=\"token number\">0<\/span><\/p>\n<p><span class=\"token keyword\">for<\/span> <span class=\"token for-or-select variable\">client_dir<\/span> <span class=\"token keyword\">in<\/span> <span class=\"token string\">&#034;<span class=\"token variable\">$FIXTURES<\/span>&#034;<\/span>\/client_v*<span class=\"token punctuation\">;<\/span> <span class=\"token keyword\">do<\/span><br \/>\n  <span class=\"token assign-left variable\">client<\/span><span class=\"token operator\">&#061;<\/span><span class=\"token string\">&#034;<span class=\"token variable\"><span class=\"token variable\">$(<\/span><span class=\"token function\">basename<\/span> <span class=\"token string\">&#034;<span class=\"token variable\">$client_dir<\/span>&#034;<\/span><span class=\"token variable\">)<\/span><\/span>&#034;<\/span><br \/>\n  <span class=\"token keyword\">for<\/span> <span class=\"token for-or-select variable\">payload<\/span> <span class=\"token keyword\">in<\/span> <span class=\"token string\">&#034;<span class=\"token variable\">$client_dir<\/span>&#034;<\/span>\/*.json<span class=\"token punctuation\">;<\/span> <span class=\"token keyword\">do<\/span><br \/>\n    <span class=\"token assign-left variable\">total<\/span><span class=\"token operator\">&#061;<\/span><span class=\"token variable\"><span class=\"token variable\">$((<\/span>total <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">1<\/span><span class=\"token variable\">))<\/span><\/span><br \/>\n    <span class=\"token assign-left variable\">code<\/span><span class=\"token operator\">&#061;<\/span><span class=\"token string\">&#034;<span class=\"token variable\"><span class=\"token variable\">$(<\/span><span class=\"token function\">curl<\/span> <span class=\"token parameter variable\">-s<\/span> <span class=\"token parameter variable\">-o<\/span> \/tmp\/contract_body.json <span class=\"token parameter variable\">-w<\/span> <span class=\"token string\">&#039;%{http_code}&#039;<\/span> <span class=\"token punctuation\">\\\\<\/span><br \/>\n      <span class=\"token parameter variable\">-X<\/span> POST <span class=\"token string\">&#034;<span class=\"token variable\">$SERVER<\/span>\/tools\/get_weather&#034;<\/span> <span class=\"token punctuation\">\\\\<\/span><br \/>\n      <span class=\"token parameter variable\">-H<\/span> <span class=\"token string\">&#039;content-type: application\/json&#039;<\/span> <span class=\"token punctuation\">\\\\<\/span><br \/>\n      <span class=\"token parameter variable\">-H<\/span> <span class=\"token string\">&#034;x-client-version: <span class=\"token variable\">${client<span class=\"token operator\">#<\/span>client_}<\/span>&#034;<\/span> <span class=\"token punctuation\">\\\\<\/span><br \/>\n      &#8211;data-binary <span class=\"token string\">&#034;&#064;<span class=\"token variable\">$payload<\/span>&#034;<\/span><span class=\"token variable\">)<\/span><\/span>&#034;<\/span><br \/>\n    <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">[<\/span> <span class=\"token string\">&#034;<span class=\"token variable\">$code<\/span>&#034;<\/span> <span class=\"token operator\">!&#061;<\/span> <span class=\"token string\">&#034;200&#034;<\/span> <span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token keyword\">then<\/span><br \/>\n      <span class=\"token assign-left variable\">fail<\/span><span class=\"token operator\">&#061;<\/span><span class=\"token variable\"><span class=\"token variable\">$((<\/span>fail <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">1<\/span><span class=\"token variable\">))<\/span><\/span><br \/>\n      <span class=\"token builtin class-name\">printf<\/span> <span class=\"token string\">&#039;FAIL %s %s -&gt; %s\\\\n&#039;<\/span> <span class=\"token string\">&#034;<span class=\"token variable\">$client<\/span>&#034;<\/span> <span class=\"token string\">&#034;<span class=\"token variable\"><span class=\"token variable\">$(<\/span><span class=\"token function\">basename<\/span> <span class=\"token string\">&#034;<span class=\"token variable\">$payload<\/span>&#034;<\/span><span class=\"token variable\">)<\/span><\/span>&#034;<\/span> <span class=\"token string\">&#034;<span class=\"token variable\">$code<\/span>&#034;<\/span><br \/>\n    <span class=\"token keyword\">fi<\/span><br \/>\n  <span class=\"token keyword\">done<\/span><br \/>\n<span class=\"token keyword\">done<\/span><\/p>\n<p><span class=\"token builtin class-name\">printf<\/span> <span class=\"token string\">&#039;contract: %d\/%d passed\\\\n&#039;<\/span> <span class=\"token string\">&#034;<span class=\"token variable\"><span class=\"token variable\">$((<\/span>total <span class=\"token operator\">&#8211;<\/span> fail<span class=\"token variable\">))<\/span><\/span>&#034;<\/span> <span class=\"token string\">&#034;<span class=\"token variable\">$total<\/span>&#034;<\/span><br \/>\n<span class=\"token punctuation\">[<\/span> <span class=\"token string\">&#034;<span class=\"token variable\">$fail<\/span>&#034;<\/span> <span class=\"token parameter variable\">-eq<\/span> <span class=\"token number\">0<\/span> <span class=\"token punctuation\">]<\/span><\/p>\n<p>\u8fd9\u6bb5\u811a\u672c\u7684\u9aa8\u67b6\u5c31\u662f\u4e0a\u9762\u90a3\u5f20\u77e9\u9635&#xff1a;\u5916\u5c42\u904d\u5386\u5ba2\u6237\u7aef\u7248\u672c&#xff0c;\u5185\u5c42\u904d\u5386\u8bf7\u6c42\u6837\u672c&#xff0c;\u4efb\u4f55\u4e00\u4e2a\u6837\u672c\u62ff\u4e0d\u5230 200&#xff0c;\u6574\u4e2a job \u4ee5\u975e\u96f6\u9000\u51fa\u3002\u63a5\u8fdb CI \u4e4b\u540e&#xff0c;\u300c\u8fd9\u6b21\u6539\u52a8\u4f1a\u4e0d\u4f1a\u6253\u7834\u8c01\u300d\u5f53\u573a\u5c31\u6709\u7b54\u6848\u3002<\/p>\n<p>\u5f3a\u5236\u5347\u7ea7\u8981\u6709\u53ef\u6267\u884c\u7684\u5224\u65ad&#xff0c;\u4e0d\u80fd\u53ea\u6709\u300c\u8bc4\u4f30\u5f71\u54cd\u9762\u300d\u8fd9\u53e5\u8bdd\u3002\u4e09\u6761\u540c\u65f6\u6ee1\u8db3\u624d\u5141\u8bb8\u5f3a\u5236&#xff1a;\u8be5\u7248\u672c\u6700\u8fd1 30 \u5929\u8c03\u7528\u5360\u6bd4\u4f4e\u4e8e 1%&#xff08;\u524d\u63d0\u662f\u6309\u7248\u672c\u57cb\u4e86\u70b9&#xff0c;\u6ca1\u6709\u57cb\u70b9\u5c31\u65e0\u4ece\u5224\u65ad&#xff09;&#xff1b;\u8be5\u7248\u672c\u6700\u540e\u4e00\u6b21\u8c03\u7528\u8ddd\u4eca\u8d85\u8fc7 90 \u5929&#xff1b;\u9488\u5bf9\u8be5\u7248\u672c\u53d1\u51fa\u8fc7\u4e24\u6b21\u4e66\u9762\u901a\u77e5&#xff0c;\u95f4\u9694\u4e0d\u5c11\u4e8e 14 \u5929\u3002\u7f3a\u4e00\u6761&#xff0c;\u5c31\u53ea\u80fd\u7559\u5728\u77e9\u9635\u91cc&#xff0c;\u517c\u5bb9\u5c42\u7ee7\u7eed\u4fdd\u7559\u3002<\/p>\n<p>\u4fdd\u7559\u662f\u8981\u82b1\u94b1\u7684\u3002\u6bcf\u591a\u7559\u4e00\u4e2a\u7248\u672c&#xff0c;\u77e9\u9635\u591a\u4e00\u884c&#xff0c;CI \u591a\u8dd1\u4e00\u8f6e&#xff0c;\u517c\u5bb9\u5c42\u591a\u4e00\u4e2a\u5206\u652f&#xff0c;\u5206\u652f\u4e4b\u95f4\u8fd8\u4f1a\u4e92\u76f8\u5e72\u6270\u3002\u6240\u4ee5\u7248\u672c\u77e9\u9635\u8be5\u8bbe\u300c\u9000\u5f79\u6761\u4ef6\u300d\u800c\u4e0d\u662f\u300c\u4fdd\u7559\u51e0\u4e2a\u7248\u672c\u300d\u2014\u2014\u6309\u6570\u91cf\u4fdd\u7559&#xff0c;\u4e00\u6b21\u5927\u7248\u672c\u4e4b\u540e\u5c31\u5806\u51fa\u5341\u51e0\u4e2a\u5206\u652f&#xff0c;\u8c01\u4e5f\u4e0d\u6562\u5220\u3002<\/p>\n<p>\u8fd9\u4efd\u8d44\u6599\u662f\u4ec0\u4e48&#xff1a;\u5de5\u5177\u5b9a\u4e49\u6f14\u8fdb\u3001schema \u7248\u672c\u7ba1\u7406\u4e0e\u5951\u7ea6\u6d4b\u8bd5\u7684\u843d\u5730\u987a\u5e8f&#xff0c;\u8fde\u540c\u51e0\u4e2a\u53ef\u4ee5\u76f4\u63a5\u5bf9\u7167\u7684\u5199\u6cd5\u6837\u4f8b&#xff0c;\u6253\u5305\u5728\u8d44\u6599\u5305\u91cc&#xff0c;\u626b\u7801\u5373\u53ef\u83b7\u53d6&#xff1a;<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/10\/20261030011639-6ae3eff7479e8.png\" alt=\"\u914d\u5957\u8d44\u6599\u83b7\u53d6\" \/><\/p>\n<h3>\u9644\u8868 A&#xff1a;\u672c\u6587\u5f15\u7528\u4e8b\u5b9e\u4e0e\u51fa\u5904\u5bf9\u7167\u8868<\/h3>\n<table>\n<tr>\u4e8b\u5b9e\u51fa\u5904&#xff08;URL&#xff0c;\u53d6\u6570 2026-10-30&#xff09;\u672c\u6587\u4f4d\u7f6e<\/tr>\n<tbody>\n<tr>\n<td>\u7ed3\u6784\u5316\u8f93\u51fa\u4fdd\u8bc1\u54cd\u5e94\u9075\u5faa\u6240\u7ed9 JSON Schema&#xff0c;\u4e0d\u6f0f\u5fc5\u586b\u952e\u3001\u4e0d\u7f16\u9020\u975e\u6cd5\u679a\u4e3e\u503c&#xff08;\u539f\u6587\u9010\u5b57\u5f15\u7528&#xff09;<\/td>\n<td>https:\/\/developers.openai.com\/api\/docs\/guides\/structured-outputs &#xff08;\u53d6\u6570 2026-10-30&#xff09;<\/td>\n<td>\u7b2c\u4e00\u9053<\/td>\n<\/tr>\n<tr>\n<td>\u4e25\u683c\u6a21\u5f0f\u4e0b\u6bcf\u4e2a\u5bf9\u8c61\u90fd\u5e26 &#034;additionalProperties&#034;: false&#xff0c;\u5168\u90e8\u5b57\u6bb5\u5217\u5165 required&#xff0c;\u53ef\u7a7a\u5b57\u6bb5\u5199\u6210 &#034;type&#034;: [&#034;string&#034;, &#034;null&#034;] \u5e76\u7559\u5728 required<\/td>\n<td>https:\/\/developers.openai.com\/api\/docs\/guides\/structured-outputs &#xff08;\u53d6\u6570 2026-10-30&#xff09;<\/td>\n<td>\u7b2c\u4e00\u9053<\/td>\n<\/tr>\n<tr>\n<td>\u540c\u4e00 schema \u7684\u9996\u6b21\u8bf7\u6c42\u4f1a\u56e0 schema \u5904\u7406\u589e\u52a0\u5ef6\u8fdf&#xff0c;\u540e\u7eed\u540c schema \u8bf7\u6c42\u4e0d\u518d\u589e\u52a0&#xff08;\u539f\u6587\u9010\u5b57\u5f15\u7528&#xff09;<\/td>\n<td>https:\/\/developers.openai.com\/api\/docs\/guides\/structured-outputs &#xff08;\u53d6\u6570 2026-10-30&#xff09;<\/td>\n<td>\u7b2c\u4e00\u9053<\/td>\n<\/tr>\n<tr>\n<td>\u54cd\u5e94\u53ef\u80fd\u56e0\u8fbe\u5230 max tokens \u4e0a\u9650\u800c\u4e0d\u5b8c\u6574&#xff0c;\u6587\u6863\u5bf9\u6b64\u6709\u5355\u72ec\u8bf4\u660e&#xff08;\u539f\u6587\u9010\u5b57\u5f15\u7528&#xff09;<\/td>\n<td>https:\/\/developers.openai.com\/api\/docs\/guides\/structured-outputs &#xff08;\u53d6\u6570 2026-10-30&#xff09;<\/td>\n<td>\u7b2c\u4e09\u9053<\/td>\n<\/tr>\n<tr>\n<td>required \u8868\u793a\u5217\u51fa\u7684\u952e\u5fc5\u987b\u51fa\u73b0&#xff1b;additionalProperties \u63a7\u5236\u672a\u58f0\u660e\u5b57\u6bb5\u662f\u5426\u5141\u8bb8\u51fa\u73b0<\/td>\n<td>https:\/\/json-schema.org\/understanding-json-schema\/reference\/object &#xff08;\u53d6\u6570 2026-10-30&#xff09;<\/td>\n<td>\u73b0\u573a\u3001\u7b2c\u4e8c\u9053<\/td>\n<\/tr>\n<tr>\n<td>5 \u4e2a\u5ba2\u6237\u7aef\u7248\u672c \u00d7 5 \u4e2a\u670d\u52a1\u7aef\u7248\u672c\u3001\u5404 7 \u6b21\u8c03\u7528\u7684\u5931\u8d25\u77e9\u9635&#xff0c;\u5408\u8ba1 90\/175<\/td>\n<td>\u672c\u6587\u5b9e\u6d4b&#xff0c;\u811a\u672c\u89c1\u73b0\u573a\u7ae0\u7684 python \u4ee3\u7801\u5757&#xff08;2026-10-30&#xff09;<\/td>\n<td>\u73b0\u573a<\/td>\n<\/tr>\n<tr>\n<td>\u4e94\u7c7b\u6539\u52a8\u6309\u7834\u574f\u9762\u6392\u5e8f&#xff1a;\u52a0\u53ef\u9009 0\/7\u3001\u6536\u7d27\u679a\u4e3e 2\/7\u3001\u6539\u540d 5\/7\u3001\u52a0\u5fc5\u586b 7\/7<\/td>\n<td>\u672c\u6587\u5b9e\u6d4b&#xff0c;\u53e3\u5f84\u4e3a 3 \u6b21 C\u30012 \u6b21 F\u30012 \u6b21\u4e0d\u4f20\u5355\u4f4d&#xff08;2026-10-30&#xff09;<\/td>\n<td>\u7b2c\u4e00\u9053<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr \/>\n<p>\u5199\u5728\u6700\u540e&#xff1a;\u8fd9\u7bc7\u7528\u5230\u7684\u8d44\u6599<\/p>\n<p>\u5199\u8fd9\u7bc7\u6587\u7ae0\u65f6&#xff0c;\u628a\u76f8\u5173\u7684\u5b98\u65b9\u6587\u6863\u548c\u6e90\u7801\u53c8\u7ffb\u4e86\u4e00\u904d&#xff0c;\u987a\u624b\u4e5f\u6574\u7406\u4e86\u51e0\u4efd\u914d\u5957\u7684\u4e1c\u897f&#xff1a;<\/p>\n<ul>\n<li>\u5927\u6a21\u578b\u5b66\u4e60\u8def\u7ebf\u56fe&#xff1a;\u4ece\u96f6\u57fa\u7840\u5230\u80fd\u81ea\u5df1\u52a8\u624b\u505a Agent&#xff0c;\u6309\u9636\u6bb5\u8bf4\u660e\u6bcf\u4e00\u6b65\u8be5\u5b66\u4ec0\u4e48\u3001\u54ea\u4e9b\u53ef\u4ee5\u5148\u8df3\u8fc7<\/li>\n<li>\u300aLangChain &#043; LangGraph &#043; MCP \u667a\u80fd\u4f53\u5f00\u53d1\u5b9e\u6218\u300b\u89c6\u9891\u8bfe&#xff1a;7 \u4e2a\u6a21\u5757&#xff0c;\u4ece\u79c1\u6709\u5316\u90e8\u7f72\u3001Embedding&#043;RAG \u5230 MCP&#043;Agent \u5168\u6d41\u7a0b<\/li>\n<li>AI \u5927\u6a21\u578b\u77e5\u8bc6\u5e93&#xff08;\u5728\u7ebf\u53ef\u67e5&#xff09;&#xff1a;Agent Skills \u4ece\u5165\u95e8\u5230\u843d\u5730\u3001Claude Skills \u5b8c\u5168\u6307\u5357\u7b49\u4e13\u9898&#xff0c;\u6309\u76ee\u5f55\u6d4f\u89c8\u5373\u53ef<\/li>\n<li>640 \u5957 AI \u5927\u6a21\u578b\u884c\u4e1a\u62a5\u544a &#043; \u7ecf\u5178 PDF \u4e66\u7c4d&#xff1a;\u770b\u884c\u4e1a\u843d\u5730\u6848\u4f8b\u548c\u522b\u4eba\u600e\u4e48\u505a\u7684\u65f6\u5019\u7528\u5f97\u4e0a<\/li>\n<li>\u5927\u6a21\u578b\u96f6\u57fa\u7840\u5230\u7cbe\u901a\u6559\u5b66\u89c6\u9891&#xff1a;\u8ddf\u7740\u6572\u4e00\u904d&#xff0c;\u6bd4\u53ea\u8bfb\u6587\u6863\u5feb\u5f97\u591a<\/li>\n<\/ul>\n<p>\u8d44\u6599\u662f\u6211\u81ea\u5df1\u6574\u7406\u7684&#xff0c;\u653e\u5728\u4e0b\u9762\u8fd9\u4e2a\u7801\u4e0a&#xff0c;\u626b\u7801\u5373\u53ef\u83b7\u53d6&#xff1a;<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/10\/20261030011639-6ae3eff7479e8.png\" alt=\"\u914d\u5957\u8d44\u6599\u83b7\u53d6\" \/><br \/>\n<img decoding=\"async\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/10\/20261030011640-6ae3eff80eaf8.png\" alt=\"\u8bfe\u7a0b\u76ee\u5f55\uff1a\u79c1\u6709\u5316\u90e8\u7f72\u4e0e LangChain\" \/><br \/>\n<img decoding=\"async\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/10\/20261030011640-6ae3eff8b6c9f.png\" alt=\"\u8bfe\u7a0b\u603b\u76ee\u5f55\uff1a7 \u4e2a\u6a21\u5757\" \/><br \/>\n<img decoding=\"async\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/10\/20261030011641-6ae3eff952678.png\" alt=\"\u5728\u7ebf\u77e5\u8bc6\u5e93\uff1aAgent Skills \u521b\u5efa\u5168\u6d41\u7a0b\" \/><br \/>\n<img decoding=\"async\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/10\/20261030011642-6ae3effa24ff8.png\" alt=\"\u8bfe\u7a0b\u76ee\u5f55\uff1aLangGraph \u5f00\u53d1\u667a\u80fd\u4f53\" \/><br \/>\n<img decoding=\"async\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/10\/20261030011642-6ae3effa925fb.png\" alt=\"\u5728\u7ebf\u77e5\u8bc6\u5e93\uff1aClaude Skills \u5b8c\u5168\u6307\u5357\" \/><\/p>\n<p>\u6dfb\u52a0\u65f6\u5907\u6ce8\u300cAI\u300d&#xff0c;\u4f18\u5148\u901a\u8fc7\u3002<\/p>\n<p>\u8d44\u6599\u6309\u300c\u5148\u8def\u7ebf\u3001\u518d\u52a8\u624b\u3001\u6700\u540e\u67e5\u6f0f\u300d\u7684\u987a\u5e8f\u6574\u7406\u597d\u4e86&#xff0c;\u5efa\u8bae\u5148\u770b\u5b66\u4e60\u8def\u7ebf\u90a3\u4e00\u4efd&#xff0c;\u7167\u7740\u5b83\u6311\u4e00\u6761\u9002\u5408\u81ea\u5df1\u5f53\u524d\u57fa\u7840\u7684\u8def\u5f84\u518d\u5f80\u4e0b\u770b\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u7248\u6743\u4e0e\u5185\u5bb9\u6765\u6e90\u58f0\u660e<br \/>\n\u672c\u6587\u4e3a\u539f\u521b\u6574\u7406\u3002\u6587\u4e2d\u6d89\u53ca\u5b98\u65b9\u6587\u6863\u3001\u5f00\u6e90\u4ed3\u5e93\u3001\u8bba\u6587\u4e0e\u516c\u5f00\u62a5\u9053\u7684\u5185\u5bb9&#xff0c;\u5747\u5728\u9644\u8868 A \u4e2d\u6807\u6ce8\u6765\u6e90&#xff1b;\u5f15\u7528\u5b98\u65b9\u539f\u6587\u4fdd\u6301\u539f\u6837&#xff0c;\u4e0d\u4f5c\u6539\u5199\u3002\u6587\u4e2d\u547d\u4ee4\u3001\u7248\u672c\u53f7\u4e0e\u754c\u9762\u622a\u56fe\u4ee5\u672c\u6587\u6210\u6587\u65f6\u7684\u5b9e\u6d4b\/\u6838\u9a8c\u7ed3\u679c\u4e3a\u51c6&#xff0c;\u6807\u6ce8\u300c\u5f85\u9a8c\u8bc1\u300d\u7684\u90e8\u5206\u8bf7\u4ee5\u4f60\u672c\u5730\u73af\u5883\u5b9e\u9645\u8f93\u51fa\u4e3a\u5224\u65ad\u4f9d\u636e\u3002\u672c\u6587\u4e0d\u63a8\u8350\u4efb\u4f55\u4e0d\u5408\u89c4\u7684\u8f6f\u4ef6\u83b7\u53d6\u65b9\u5f0f&#xff0c;\u4e5f\u4e0d\u5bf9\u4efb\u4f55\u6536\u76ca\u7ed3\u679c\u4f5c\u627f\u8bfa\u3002\u8f6c\u8f7d\u8bf7\u6ce8\u660e\u51fa\u5904\u3002\u73b0\u573a&#xff1a;\u4e00\u6b21\u53ea\u52a0\u5fc5\u586b\u53c2\u6570\u7684\u53d8\u66f4&#xff0c;\u4e03\u6b21\u8c03\u7528\u5168\u6302<br \/>\n\u5468<\/p>\n","protected":false},"author":2,"featured_media":119744,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[13675,13676,13677,7224,9907],"topic":[],"class_list":["post-119750","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-server","tag-json-schema","tag-13676","tag-13677","tag-7224","tag-9907"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u7ed9\u5de5\u5177\u52a0\u4e00\u4e2a\u5fc5\u586b\u53c2\u6570\uff0c\u8001\u5ba2\u6237\u7aef 7 \u6b21\u8c03\u7528\u5168\u6302 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.wsisp.com\/helps\/119750.html\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u7ed9\u5de5\u5177\u52a0\u4e00\u4e2a\u5fc5\u586b\u53c2\u6570\uff0c\u8001\u5ba2\u6237\u7aef 7 \u6b21\u8c03\u7528\u5168\u6302 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\" \/>\n<meta property=\"og:description\" content=\"\u7248\u6743\u4e0e\u5185\u5bb9\u6765\u6e90\u58f0\u660e \u672c\u6587\u4e3a\u539f\u521b\u6574\u7406\u3002\u6587\u4e2d\u6d89\u53ca\u5b98\u65b9\u6587\u6863\u3001\u5f00\u6e90\u4ed3\u5e93\u3001\u8bba\u6587\u4e0e\u516c\u5f00\u62a5\u9053\u7684\u5185\u5bb9&#xff0c;\u5747\u5728\u9644\u8868 A \u4e2d\u6807\u6ce8\u6765\u6e90&#xff1b;\u5f15\u7528\u5b98\u65b9\u539f\u6587\u4fdd\u6301\u539f\u6837&#xff0c;\u4e0d\u4f5c\u6539\u5199\u3002\u6587\u4e2d\u547d\u4ee4\u3001\u7248\u672c\u53f7\u4e0e\u754c\u9762\u622a\u56fe\u4ee5\u672c\u6587\u6210\u6587\u65f6\u7684\u5b9e\u6d4b\/\u6838\u9a8c\u7ed3\u679c\u4e3a\u51c6&#xff0c;\u6807\u6ce8\u300c\u5f85\u9a8c\u8bc1\u300d\u7684\u90e8\u5206\u8bf7\u4ee5\u4f60\u672c\u5730\u73af\u5883\u5b9e\u9645\u8f93\u51fa\u4e3a\u5224\u65ad\u4f9d\u636e\u3002\u672c\u6587\u4e0d\u63a8\u8350\u4efb\u4f55\u4e0d\u5408\u89c4\u7684\u8f6f\u4ef6\u83b7\u53d6\u65b9\u5f0f&#xff0c;\u4e5f\u4e0d\u5bf9\u4efb\u4f55\u6536\u76ca\u7ed3\u679c\u4f5c\u627f\u8bfa\u3002\u8f6c\u8f7d\u8bf7\u6ce8\u660e\u51fa\u5904\u3002\u73b0\u573a&#xff1a;\u4e00\u6b21\u53ea\u52a0\u5fc5\u586b\u53c2\u6570\u7684\u53d8\u66f4&#xff0c;\u4e03\u6b21\u8c03\u7528\u5168\u6302 \u5468\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.wsisp.com\/helps\/119750.html\" \/>\n<meta property=\"og:site_name\" content=\"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-30T01:16:44+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/10\/20261030011639-6ae3eff7479e8.png\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/119750.html\",\"url\":\"https:\/\/www.wsisp.com\/helps\/119750.html\",\"name\":\"\u7ed9\u5de5\u5177\u52a0\u4e00\u4e2a\u5fc5\u586b\u53c2\u6570\uff0c\u8001\u5ba2\u6237\u7aef 7 \u6b21\u8c03\u7528\u5168\u6302 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\",\"isPartOf\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/#website\"},\"datePublished\":\"2026-10-30T01:16:44+00:00\",\"dateModified\":\"2026-10-30T01:16:44+00:00\",\"author\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/119750.html#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.wsisp.com\/helps\/119750.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/119750.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.wsisp.com\/helps\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u7ed9\u5de5\u5177\u52a0\u4e00\u4e2a\u5fc5\u586b\u53c2\u6570\uff0c\u8001\u5ba2\u6237\u7aef 7 \u6b21\u8c03\u7528\u5168\u6302\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#website\",\"url\":\"https:\/\/www.wsisp.com\/helps\/\",\"name\":\"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\",\"description\":\"\u9999\u6e2f\u670d\u52a1\u5668_\u9999\u6e2f\u4e91\u670d\u52a1\u5668\u8d44\u8baf_\u670d\u52a1\u5668\u5e2e\u52a9\u6587\u6863_\u670d\u52a1\u5668\u6559\u7a0b\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.wsisp.com\/helps\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery\",\"contentUrl\":\"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery\",\"caption\":\"admin\"},\"sameAs\":[\"http:\/\/wp.wsisp.com\"],\"url\":\"https:\/\/www.wsisp.com\/helps\/author\/admin\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u7ed9\u5de5\u5177\u52a0\u4e00\u4e2a\u5fc5\u586b\u53c2\u6570\uff0c\u8001\u5ba2\u6237\u7aef 7 \u6b21\u8c03\u7528\u5168\u6302 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.wsisp.com\/helps\/119750.html","og_locale":"zh_CN","og_type":"article","og_title":"\u7ed9\u5de5\u5177\u52a0\u4e00\u4e2a\u5fc5\u586b\u53c2\u6570\uff0c\u8001\u5ba2\u6237\u7aef 7 \u6b21\u8c03\u7528\u5168\u6302 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","og_description":"\u7248\u6743\u4e0e\u5185\u5bb9\u6765\u6e90\u58f0\u660e \u672c\u6587\u4e3a\u539f\u521b\u6574\u7406\u3002\u6587\u4e2d\u6d89\u53ca\u5b98\u65b9\u6587\u6863\u3001\u5f00\u6e90\u4ed3\u5e93\u3001\u8bba\u6587\u4e0e\u516c\u5f00\u62a5\u9053\u7684\u5185\u5bb9&#xff0c;\u5747\u5728\u9644\u8868 A \u4e2d\u6807\u6ce8\u6765\u6e90&#xff1b;\u5f15\u7528\u5b98\u65b9\u539f\u6587\u4fdd\u6301\u539f\u6837&#xff0c;\u4e0d\u4f5c\u6539\u5199\u3002\u6587\u4e2d\u547d\u4ee4\u3001\u7248\u672c\u53f7\u4e0e\u754c\u9762\u622a\u56fe\u4ee5\u672c\u6587\u6210\u6587\u65f6\u7684\u5b9e\u6d4b\/\u6838\u9a8c\u7ed3\u679c\u4e3a\u51c6&#xff0c;\u6807\u6ce8\u300c\u5f85\u9a8c\u8bc1\u300d\u7684\u90e8\u5206\u8bf7\u4ee5\u4f60\u672c\u5730\u73af\u5883\u5b9e\u9645\u8f93\u51fa\u4e3a\u5224\u65ad\u4f9d\u636e\u3002\u672c\u6587\u4e0d\u63a8\u8350\u4efb\u4f55\u4e0d\u5408\u89c4\u7684\u8f6f\u4ef6\u83b7\u53d6\u65b9\u5f0f&#xff0c;\u4e5f\u4e0d\u5bf9\u4efb\u4f55\u6536\u76ca\u7ed3\u679c\u4f5c\u627f\u8bfa\u3002\u8f6c\u8f7d\u8bf7\u6ce8\u660e\u51fa\u5904\u3002\u73b0\u573a&#xff1a;\u4e00\u6b21\u53ea\u52a0\u5fc5\u586b\u53c2\u6570\u7684\u53d8\u66f4&#xff0c;\u4e03\u6b21\u8c03\u7528\u5168\u6302 \u5468","og_url":"https:\/\/www.wsisp.com\/helps\/119750.html","og_site_name":"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","article_published_time":"2026-10-30T01:16:44+00:00","og_image":[{"url":"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/10\/20261030011639-6ae3eff7479e8.png"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"admin","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"7 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.wsisp.com\/helps\/119750.html","url":"https:\/\/www.wsisp.com\/helps\/119750.html","name":"\u7ed9\u5de5\u5177\u52a0\u4e00\u4e2a\u5fc5\u586b\u53c2\u6570\uff0c\u8001\u5ba2\u6237\u7aef 7 \u6b21\u8c03\u7528\u5168\u6302 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","isPartOf":{"@id":"https:\/\/www.wsisp.com\/helps\/#website"},"datePublished":"2026-10-30T01:16:44+00:00","dateModified":"2026-10-30T01:16:44+00:00","author":{"@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41"},"breadcrumb":{"@id":"https:\/\/www.wsisp.com\/helps\/119750.html#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.wsisp.com\/helps\/119750.html"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.wsisp.com\/helps\/119750.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.wsisp.com\/helps"},{"@type":"ListItem","position":2,"name":"\u7ed9\u5de5\u5177\u52a0\u4e00\u4e2a\u5fc5\u586b\u53c2\u6570\uff0c\u8001\u5ba2\u6237\u7aef 7 \u6b21\u8c03\u7528\u5168\u6302"}]},{"@type":"WebSite","@id":"https:\/\/www.wsisp.com\/helps\/#website","url":"https:\/\/www.wsisp.com\/helps\/","name":"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","description":"\u9999\u6e2f\u670d\u52a1\u5668_\u9999\u6e2f\u4e91\u670d\u52a1\u5668\u8d44\u8baf_\u670d\u52a1\u5668\u5e2e\u52a9\u6587\u6863_\u670d\u52a1\u5668\u6559\u7a0b","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.wsisp.com\/helps\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41","name":"admin","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/image\/","url":"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery","contentUrl":"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery","caption":"admin"},"sameAs":["http:\/\/wp.wsisp.com"],"url":"https:\/\/www.wsisp.com\/helps\/author\/admin"}]}},"_links":{"self":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts\/119750","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/comments?post=119750"}],"version-history":[{"count":0,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts\/119750\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/media\/119744"}],"wp:attachment":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/media?parent=119750"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/categories?post=119750"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/tags?post=119750"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/topic?post=119750"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}