{"id":111128,"date":"2026-09-30T10:57:26","date_gmt":"2026-09-30T02:57:26","guid":{"rendered":"https:\/\/www.wsisp.com\/helps\/111128.html"},"modified":"2026-09-30T10:57:26","modified_gmt":"2026-09-30T02:57:26","slug":"5-3k-star%ef%bc%81%e6%8a%8a-a-%e8%82%a1%e9%87%8f%e5%8c%96%e5%b7%a5%e4%bd%9c%e5%8f%b0%e8%a3%85%e8%bf%9b-docker-%e5%9b%bd%e4%ba%a7%e5%bc%80%e6%ba%90-tsp%ef%bc%9a%e9%80%89%e8%82%a1","status":"publish","type":"post","link":"https:\/\/www.wsisp.com\/helps\/111128.html","title":{"rendered":"5.3k Star\uff01\u628a A \u80a1\u91cf\u5316\u5de5\u4f5c\u53f0\u88c5\u8fdb Docker\u2014\u2014\u56fd\u4ea7\u5f00\u6e90 TSP\uff1a\u9009\u80a1\u3001\u56de\u6d4b\u3001\u76d1\u63a7\u5168\u6709\uff0cAI \u4e00\u53e5\u8bdd\u95ee\u5168\u7ad9\u6570\u636e\uff0c\u8fd8\u81ea\u5e26 MCP"},"content":{"rendered":"<p>\u9879\u76ee\u540d&#xff1a;TSP \u00b7 A \u80a1\u667a\u80fd\u91cf\u5316\u5de5\u4f5c\u53f0&#xff08;tick-stock-panel&#xff09; GitHub&#xff1a;https:\/\/github.com\/shy3130\/tick-stock-panel \u534f\u8bae&#xff1a;MIT Star&#xff1a;5.3k&#043;&#xff08;Fork 1.3k&#xff0c;\u622a\u81f3 2026-09-30&#xff0c;GitHub API \u5b9e\u6293&#xff09; \u6280\u672f\u6808&#xff1a;FastAPI &#043; React &#043; Polars &#043; DuckDB&#xff0c;Parquet \u6587\u4ef6\u5b58\u50a8 \u90e8\u7f72&#xff1a;Docker \u5355\u5bb9\u5668&#xff0c;\u96f6\u5916\u90e8\u6570\u636e\u5e93&#xff0c;\u6570\u636e 100% \u843d\u672c\u5730 \u6d4b\u8bd5&#xff1a;2400&#043; \u6d4b\u8bd5\u5168\u7eff&#xff0c;CI \u81ea\u52a8\u6784\u5efa\u591a\u67b6\u6784\u955c\u50cf<\/p>\n<h3>\u5148\u8bf4\u75db\u70b9<\/h3>\n<p>\u60f3\u5728 A \u80a1\u641e\u70b9\u91cf\u5316&#xff0c;\u4f60\u5927\u6982\u7387\u7ecf\u5386\u8fc7\u8fd9\u51e0\u832c\u7f6a&#xff1a;<\/p>\n<li>\u4e1c\u62fc\u897f\u51d1&#xff1a;\u62c9\u6570\u636e\u4e00\u4e2a\u811a\u672c\u3001\u9009\u80a1\u4e00\u4e2a\u811a\u672c\u3001\u56de\u6d4b\u53c8\u4e00\u4e2a\u811a\u672c&#xff0c;\u9009\u80a1\u7528\u7684\u884c\u60c5\u53e3\u5f84\u548c\u56de\u6d4b\u5bf9\u4e0d\u4e0a&#xff0c;\u7ed3\u679c\u81ea\u5df1\u90fd\u4e0d\u6562\u4fe1&#xff1b;<\/li>\n<li>\u6570\u636e\u6e90\u7ed1\u6b7b&#xff1a;\u4ee3\u7801\u5168\u6309\u67d0\u4e00\u5bb6\u7684\u6570\u636e\u683c\u5f0f\u5199&#xff0c;\u60f3\u6362\u4e2a\u6570\u636e\u6e90&#xff0c;\u6574\u5957\u62c9\u6570\u903b\u8f91\u63a8\u5012\u91cd\u5199&#xff1b;<\/li>\n<li>\u76d8\u4e2d\u5f02\u52a8\u9760\u4eba\u8089\u76ef&#xff1a;\u6da8\u505c\u3001\u70b8\u677f\u3001\u653e\u91cf\u3001\u7ade\u4ef7\u5f02\u52a8&#xff0c;\u9519\u8fc7\u5c31\u662f\u9519\u8fc7&#xff0c;\u7b49\u4f60\u770b\u5230\u9ec4\u82b1\u83dc\u90fd\u51c9\u4e86&#xff1b;<\/li>\n<li>\u4ed8\u8d39\u7ec8\u7aef\u8d35&#xff0c;\u6570\u636e\u8fd8\u4e0d\u5728\u81ea\u5df1\u624b\u91cc&#xff1a;\u4e91\u7aef\u5e73\u53f0\u7b56\u7565\u548c\u6570\u636e\u90fd\u5728\u522b\u4eba\u670d\u52a1\u5668\u4e0a&#xff0c;\u5fc3\u91cc\u4e0d\u8e0f\u5b9e&#xff1b;<\/li>\n<li>AI \u53ea\u4f1a\u804a\u5929&#xff0c;\u4e0d\u4f1a\u7528\u4f60\u7684\u6570\u636e&#xff1a;\u95ee\u5b83\u300c\u6211\u81ea\u9009\u91cc\u4eca\u5929\u54ea\u4e9b\u653e\u91cf\u4e86\u300d&#xff0c;\u5b83\u6839\u672c\u770b\u4e0d\u5230\u4f60\u7684\u9762\u677f\u3002<\/li>\n<p>\u6700\u8fd1\u6316\u5230\u4e00\u4e2a\u56fd\u4ea7\u4e2a\u4eba\u5f00\u6e90\u9879\u76ee&#xff0c;\u628a\u8fd9\u4e9b\u95ee\u9898\u4e00\u6b21\u6027\u89e3\u51b3\u4e86\u2014\u2014TSP&#xff08;tick-stock-panel&#xff09;&#xff0c;\u4e00\u4e2a\u81ea\u6258\u7ba1\u3001\u96f6\u8fd0\u7ef4\u3001\u6838\u5fc3\u80fd\u529b\u5168\u90e8\u5f00\u653e\u6210\u63a5\u53e3\u7684 A \u80a1\u91cf\u5316\u5de5\u4f5c\u53f0\u3002<\/p>\n<p>\u4e00\u53e5\u8bdd&#xff1a;Docker \u4e00\u6761\u547d\u4ee4\u8dd1\u8d77\u6765&#xff0c;\u9009\u80a1\u3001\u56de\u6d4b\u3001\u56e0\u5b50\u3001\u76d1\u63a7\u3001\u590d\u76d8\u3001AI \u5bf9\u8bdd\u52a9\u624b\u300161 \u4e2a\u5f00\u653e API\u300112 \u4e2a MCP \u5de5\u5177&#xff0c;\u4e00\u4e2a\u5bb9\u5668\u5168\u7ed9\u4f60\u3002<\/p>\n<p>\u672c\u6587\u6309\u8001\u89c4\u77e9&#xff0c;\u4ece\u529f\u80fd\u3001\u67b6\u6784\u3001\u5b89\u88c5\u5230 AI\/MCP \u63a5\u5165\u5b8c\u6574\u8bb2\u6e05\u695a\u3002<\/p>\n<h3>\u76ee\u5f55<\/h3>\n<ul>\n<li>\u4e00\u3001TSP \u662f\u4ec0\u4e48<\/li>\n<li>\u4e8c\u3001\u6838\u5fc3\u529f\u80fd\u4e00\u89c8<\/li>\n<li>\u4e09\u3001\u67b6\u6784&#xff1a;\u6570\u636e\u5de5\u7a0b\u4f18\u5148\u7684\u672c\u5730\u5de5\u4f5c\u53f0<\/li>\n<li>\u56db\u3001\u5b89\u88c5&#xff1a;Docker \u4e00\u6761\u547d\u4ee4<\/li>\n<li>\u4e94\u3001AI \u5bf9\u8bdd\u52a9\u624b&#xff1a;\u4e00\u53e5\u8bdd\u95ee\u5168\u7ad9\u6570\u636e<\/li>\n<li>\u516d\u3001\u63a5\u5165 MCP&#xff1a;\u8ba9\u4efb\u610f AI \u5ba2\u6237\u7aef\u64cd\u4f5c\u4f60\u7684\u9762\u677f<\/li>\n<li>\u4e03\u3001\u8fb9\u754c\u4e0e\u98ce\u9669&#xff08;\u52a1\u5fc5\u770b&#xff09;<\/li>\n<li>\u603b\u7ed3\u4e0e\u9879\u76ee\u5730\u5740<\/li>\n<\/ul>\n<hr \/>\n<p><img decoding=\"async\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/09\/20260930025724-6abc7a94ca08d.png\" alt=\"\u5728\u8fd9\u91cc\u63d2\u5165\u56fe\u7247\u63cf\u8ff0\" \/><\/p>\n<h3>\u4e00\u3001TSP \u662f\u4ec0\u4e48<\/h3>\n<p>\u5b98\u65b9\u5b9a\u4f4d&#xff1a;<\/p>\n<p>\u81ea\u6258\u7ba1 \u00b7 \u96f6\u8fd0\u7ef4 \u00b7 \u6838\u5fc3\u80fd\u529b\u5168\u90e8\u5f00\u653e\u6210\u63a5\u53e3\u7684 A \u80a1\u91cf\u5316\u5de5\u4f5c\u53f0\u3002 \u9009\u80a1 \u00b7 \u56de\u6d4b \u00b7 \u76d1\u63a7 \u00b7 \u56e0\u5b50\u6316\u6398 \u00b7 AI \u52a9\u624b \u00b7 Open API \u00b7 MCP<\/p>\n<p>\u51e0\u4e2a\u5173\u952e\u6570\u5b57&#xff08;README \u539f\u6587&#xff09;&#xff1a;<\/p>\n<table>\n<tr>\u6307\u6807\u6570\u503c<\/tr>\n<tbody>\n<tr>\n<td>\u5f00\u653e API \u7aef\u70b9<\/td>\n<td align=\"right\">61<\/td>\n<\/tr>\n<tr>\n<td>Token \u6743\u9650\u6863<\/td>\n<td align=\"right\">6<\/td>\n<\/tr>\n<tr>\n<td>MCP \u5de5\u5177<\/td>\n<td align=\"right\">12<\/td>\n<\/tr>\n<tr>\n<td>\u6d4b\u8bd5\u7528\u4f8b<\/td>\n<td align=\"right\">2400&#043; \u5168\u7eff<\/td>\n<\/tr>\n<tr>\n<td>\u5168\u5e02\u573a\u7b56\u7565\u626b\u63cf<\/td>\n<td align=\"right\">\u6beb\u79d2\u7ea7&#xff08;Polars \u5f15\u64ce&#xff09;<\/td>\n<\/tr>\n<tr>\n<td>\u90e8\u7f72\u5f62\u6001<\/td>\n<td align=\"right\">1 \u4e2a\u5bb9\u5668&#xff0c;\u96f6\u5916\u90e8\u6570\u636e\u5e93<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u9700\u8981\u7279\u522b\u8bf4\u660e\u4f5c\u8005\u5728 README \u6700\u4e0a\u65b9\u5c31\u9ad8\u4eae\u7684\u7acb\u573a&#xff08;\u8fd9\u4e5f\u662f\u6211\u5bf9\u8fd9\u4e2a\u9879\u76ee\u6709\u597d\u611f\u7684\u539f\u56e0\u4e4b\u4e00&#xff09;&#xff1a;<\/p>\n<p>\u26a0\ufe0f \u672c\u9879\u76ee\u8c28\u4f5c\u4e3a\u672c\u5730\u91cf\u5316\u63d0\u4f9b\u89e3\u51b3\u601d\u8def\u4e0e\u65b9\u6848&#xff0c;\u4e0d\u4f5c\u4e3a\u6295\u8d44\u8f6f\u4ef6\u6216\u8005\u770b\u76d8\u8f6f\u4ef6\u3002 \u660e\u786e\u4e0d\u505a&#xff1a;\u4e0d\u5bf9\u6807\u540c\u82b1\u987a\/\u901a\u8fbe\u4fe1&#xff0c;\u4e0d\u5185\u7f6e\u300cAI \u8350\u80a1\/\u6da8\u505c\u9884\u6d4b\u300d\u3002 \u6570\u636e\u6e90\u5df2\u63d2\u4ef6\u5316&#xff0c;\u53ef\u4efb\u610f\u63a5\u5165\u7b2c\u4e09\u65b9\u6570\u636e\u6e90\u3002\u4ec5\u4f9b\u5b66\u4e60\u7814\u7a76\u4f7f\u7528\u3002<\/p>\n<p>\u4e0d\u5439\u6536\u76ca\u3001\u4e0d\u641e\u8350\u80a1&#xff0c;\u5728\u91cf\u5316\u7c7b\u5f00\u6e90\u9879\u76ee\u91cc\u5c5e\u4e8e\u96be\u5f97\u7684\u6e05\u9192\u3002<\/p>\n<h3>\u4e8c\u3001\u6838\u5fc3\u529f\u80fd\u4e00\u89c8<\/h3>\n<p>\u529f\u80fd\u975e\u5e38\u591a&#xff0c;\u6311\u6700\u6709\u4ef7\u503c\u7684\u8bb2&#xff1a;<\/p>\n<h4>&#x1f50d; \u9009\u80a1\u5f15\u64ce&#xff1a;25 \u4e2a\u5185\u7f6e\u7b56\u7565 &#043; \u81ea\u5b9a\u4e49 &#043; AI \u751f\u6210<\/h4>\n<p>Polars \u6beb\u79d2\u7ea7\u626b\u5b8c\u5168 A \u80a1&#xff0c;\u65e5\u7ebf\/\u5206\u949f\u7b56\u7565\u7edf\u4e00\u4e00\u4e2a\u7b56\u7565\u6c60&#xff0c;\u6309\u7b56\u7565\u58f0\u660e\u7684\u5468\u671f\u81ea\u52a8\u8def\u7531\u6267\u884c\u3002\u4fe1\u53f7\u5e93\u91cc\u6709\u9884\u5b9a\u4e49\u4fe1\u53f7\u3001\u81ea\u5b9a\u4e49\u6761\u4ef6\u4fe1\u53f7&#xff08;\u542b\u56e0\u5b50\u6761\u4ef6\u548c AI \u751f\u6210\u4fe1\u53f7&#xff09;&#xff0c;\u7b56\u7565\u3001\u56de\u6d4b\u3001\u76d1\u63a7\u5403\u540c\u4e00\u4efd\u4fe1\u53f7\u3002<\/p>\n<h4>&#x1f9ea; \u56de\u6d4b\u7814\u7a76&#xff1a;\u56db\u79cd\u89c6\u56fe&#xff0c;\u675c\u7edd\u300c\u672a\u6765\u51fd\u6570\u300d<\/h4>\n<ul>\n<li>\u56e0\u5b50\u56de\u6d4b&#xff1a;IC\/IR\u3001\u5206\u5c42\u6536\u76ca\u3001\u591a\u7a7a\u7ec4\u5408&#xff0c;62&#043; \u56e0\u5b50\u76ee\u5f55\u5148\u5e2e\u4f60\u7b5b\u6389\u65e0\u6548\u6307\u6807&#xff1b;<\/li>\n<li>\u7b56\u7565\u56de\u6d4b&#xff1a;\u51c0\u503c\u66f2\u7ebf\u3001\u56de\u64a4\u3001\u590f\u666e\u3001\u80dc\u7387\u3001\u76c8\u4e8f\u6bd4\u3001\u8499\u5361\u56de\u64a4&#xff0c;T&#043;1\/\u624b\u7eed\u8d39\/\u6ed1\u70b9\/\u6b62\u635f\u9f50\u5168&#xff0c;SSE \u6d41\u5f0f\u8f93\u51fa\u8fdb\u5ea6&#xff1b;\u8bc4\u5206\u56e0\u5b50\u7b56\u7565\u8fd8\u5e26\u300c\u56e0\u5b50\u5f52\u56e0\u300d\u2014\u2014\u5bf9\u6bd4\u8d5a\u94b1\u5355\u548c\u4e8f\u94b1\u5355\u5165\u573a\u65e5\u7684\u56e0\u5b50\u5dee\u5f02&#xff1b;<\/li>\n<li>\u5206\u949f\u7b56\u7565\u56de\u6d4b&#xff1a;\u9010\u4ea4\u6613\u65e5\u56de\u653e\u3001\u5206\u949f\u6536\u76d8\u5165\u573a\u3001\u5206\u949f\u7ea7\u6210\u4ea4\u660e\u7ec6&#xff1b;<\/li>\n<li>\u9a8c\u8bc1&#xff1a;\u53c2\u6570\u654f\u611f\u6027 &#043; \u6eda\u52a8\u6837\u672c\u5916\u68c0\u9a8c\u3002<\/li>\n<\/ul>\n<p>\u7814\u7a76\u95ed\u73af\u505a\u5f97\u4e0d\u9519&#xff1a;\u7ed3\u679c\u53ef\u5bfc\u51fa CSV \u2192 \u4fdd\u5b58\u4e3a\u5019\u9009 \u2192 \u4e00\u952e\u8f7d\u5165\u590d\u6d4b\u3002<\/p>\n<h4>&#x1f52c; \u56e0\u5b50\u5e73\u53f0 &#043; \u26cf\ufe0f \u56e0\u5b50\u6316\u6398<\/h4>\n<ul>\n<li>\u56e0\u5b50\u9875&#xff1a;IC\u00b7\u5206\u5c42\u00b7Newey-West \u68c0\u9a8c&#xff0c;\u81ea\u5b9a\u4e49 DSL \u56e0\u5b50&#xff08;25 \u4e2a\u7b97\u5b50\u70b9\u9009\u3001\u53cc\u8bed\u5b57\u6bb5&#xff09;&#xff0c;\u7248\u672c\u4e0e\u751f\u547d\u5468\u671f\u7ba1\u7406&#xff1b;\u56e0\u5b50\u5e93\u53ef\u4e00\u952e\u751f\u6210\u6392\u540d\u7b56\u7565&#xff1b;<\/li>\n<li>\u6316\u6398\u9875&#xff1a;\u5d4c\u5957\u6837\u672c\u5916\u641c\u7d22\u2014\u2014\u8bad\u7ec3\u533a\u95f4\u91cd\u4f30\u56e0\u5b50\u65b9\u5411\u3001\u76f8\u5173\u6027\u53bb\u91cd\u3001\u591a\u56e0\u5b50\u7ec4\u5408\u641c\u7d22&#xff0c;\u5019\u9009\u5165\u5e93\u540e\u5fc5\u987b\u663e\u5f0f\u786e\u8ba4\u624d\u53d1\u5e03&#xff0c;\u6c38\u4e0d\u81ea\u52a8\u4e0a\u7ebf\u3002<\/li>\n<\/ul>\n<h4>&#x1f6a8; \u76d1\u63a7\u4e0e\u5f02\u52a8<\/h4>\n<ul>\n<li>\u76d1\u63a7\u4e2d\u5fc3&#xff1a;\u7b56\u7565\/\u4e2a\u80a1\u4fe1\u53f7\/\u4ef7\u683c\/\u5f02\u52a8\u56db\u7c7b\u89c4\u5219 AND\/OR \u7ec4\u5408&#xff0c;\u652f\u6301\u81ea\u9009\u5206\u7ec4\u4f5c\u7528\u57df&#xff0c;\u76d8\u4e2d\u5b9e\u65f6\u5f39\u7a97 &#043; \u8bed\u97f3\u64ad\u62a5\u4e2a\u80a1\u540d\u79f0\u548c\u4fe1\u53f7 &#043; \u98de\u4e66\u63a8\u9001&#xff0c;\u89e6\u53d1\u8bb0\u5f55\u6301\u4e45\u5316&#xff1b;<\/li>\n<li>\u5f02\u52a8\u76d1\u63a7\u6309\u4ea4\u6613\u65f6\u95f4\u7ebf\u5206\u4e09\u6bb5&#xff1a;\n<ul>\n<li>\u7ade\u4ef7\u5f02\u52a8&#xff1a;\u540c\u82b1\u987a\u76d8\u524d\u98ce\u5411\u6807&#xff08;\u542b\u5f53\u65e5\/\u6b21\u65e5\u771f\u5b9e\u6536\u76ca\u5bf9\u7167\u3001\u8ffd\u9ad8\u98ce\u9669\u6807\u8bb0&#xff09;&#043; \u5168\u5e02\u573a\u7ade\u4ef7\u626b\u63cf&#xff1b;<\/li>\n<li>\u76d8\u4e2d\u5f02\u52a8&#xff1a;\u6da8\u505c\/\u70b8\u677f\/\u7fd8\u677f\/\u8dcc\u505c\/\u65b0\u9ad8\/\u65b0\u4f4e\/\u653e\u91cf\u805a\u5408&#xff1b;<\/li>\n<li>\u504f\u79fb\u5f02\u52a8&#xff1a;\u4e25\u683c\u6309\u4ea4\u6613\u6240\u53e3\u5f84&#xff08;\u4e3b\u677f 3 \u65e5 \u00b120%\u3001\u521b\u4e1a\u677f\/\u79d1\u521b\u677f \u00b130%\u3001\u5317\u4ea4\u6240 \u00b140% \u7b49&#xff09;&#xff0c;\u5b9e\u65f6\u8ba1\u7b97\u63a5\u8fd1\u5ea6\u3002<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4>&#x1f321;\ufe0f \u5e02\u573a\u73af\u5883\u4e0e\u590d\u76d8<\/h4>\n<ul>\n<li>\u60c5\u7eea\u5468\u671f 6 \u9636\u6bb5&#xff1a;\u51b0\u70b9\/\u542f\u52a8\/\u4e3b\u5347\/\u9ad8\u6f6e\/\u9000\u6f6e\/\u4fee\u590d&#xff0c;\u8fde\u677f\u68af\u961f\u9a71\u52a8\u3001EMA \u5e73\u6ed1 &#043; 2 \u65e5\u786e\u8ba4&#xff1b;<\/li>\n<li>\u8fde\u677f\u68af\u961f&#xff1a;\u8fde\u677f\u5c42\u7ea7\u7edf\u8ba1\u3001\u6982\u5ff5\/\u884c\u4e1a\u5206\u5e03\u3001\u5c01\u5355\u76d1\u63a7&#xff1b;<\/li>\n<li>\u76d8\u540e AI \u81ea\u52a8\u590d\u76d8&#xff0c;\u6ce8\u5165\u9f99\u864e\u699c\u8d44\u91d1\u52a8\u5411\u548c\u76d8\u524d\u98ce\u5411\u6807\u5bf9\u7167&#xff0c;\u53ef\u5b9a\u65f6\u6267\u884c\u3001\u63a8\u98de\u4e66\u3001\u4e0b\u8f7d Markdown\u3002<\/li>\n<\/ul>\n<h4>&#x1f4c8; \u4e2a\u80a1\u5206\u6790<\/h4>\n<p>\u65e5 K &#043; 9 \u7c7b\u5173\u952e\u4ef7\u4f4d &#043; AI \u56db\u7ef4\u5206\u6790&#xff08;\u6280\u672f\/\u57fa\u672c\u9762\/\u8d22\u52a1\/\u6d88\u606f\u9762&#xff09;&#xff1b;\u8d22\u52a1\u9875\u652f\u6301\u5229\u6da6\u8868\/\u8d44\u8d1f\u8868\/\u73b0\u91d1\u6d41\/\u5173\u952e\u6307\u6807&#xff08;\u591a\u6e90\u5408\u5e76\u3001fuyao \u8d22\u52a1\u56db\u8868\u9002\u914d&#xff09;&#043; AI \u89e3\u8bfb\u3002<\/p>\n<h4>&#x1f310; \u5f00\u653e API &#043; &#x1f50c; MCP &#043; &#x1f9e0; AI \u52a9\u624b<\/h4>\n<p>\u8fd9\u4e09\u4ef6\u662f TSP \u533a\u522b\u4e8e\u666e\u901a\u91cf\u5316\u9762\u677f\u7684\u7075\u9b42&#xff0c;\u540e\u9762\u5355\u72ec\u5c55\u5f00\u3002<\/p>\n<h3>\u4e09\u3001\u67b6\u6784&#xff1a;\u6570\u636e\u5de5\u7a0b\u4f18\u5148\u7684\u672c\u5730\u5de5\u4f5c\u53f0<\/h3>\n<p>README \u91cc\u6709\u53e5\u8bdd\u603b\u7ed3\u5f97\u5230\u4f4d&#xff1a;TSP \u662f\u4e00\u4e2a\u300c\u6570\u636e\u5de5\u7a0b\u4f18\u5148\u300d\u7684\u672c\u5730\u91cf\u5316\u5de5\u4f5c\u53f0\u2014\u2014\u6570\u636e\u6e90\u3001\u53e3\u5f84\u3001\u6267\u884c\u3001\u5f00\u653e\u901a\u9053\u505a\u6210\u4e00\u5957\u81ea\u6d3d\u67b6\u6784&#xff0c;\u529f\u80fd\u53ea\u662f\u957f\u5728\u4e0a\u9762\u7684\u5e94\u7528\u3002<\/p>\n<p>\u516b\u4e2a\u67b6\u6784\u7279\u70b9&#xff1a;<\/p>\n<table>\n<tr>\u7279\u70b9\u8bf4\u660e<\/tr>\n<tbody>\n<tr>\n<td>&#x1f500; \u80fd\u529b\u8def\u7531\u77e9\u9635<\/td>\n<td>6 \u7c7b\u6570\u636e\u96c6\u6309\u6e90\u58f0\u660e\u7684\u80fd\u529b\u72ec\u7acb\u8def\u7531\u2014\u2014\u6362\u6570\u636e\u6e90\u4e0d\u6362\u53e3\u5f84&#xff0c;\u6307\u6807\u548c\u56de\u6d4b\u7ed3\u679c\u4e0d\u53d8<\/td>\n<\/tr>\n<tr>\n<td>&#x1f9ec; \u5355\u4e00 enriched \u53e3\u5f84<\/td>\n<td>\u53ea\u5b58 15 \u5217\u57fa\u7840\u6570\u636e\u3001\u73b0\u7b97 68 \u5217\u6307\u6807\u4fe1\u53f7&#xff1b;\u9009\u80a1\u2192\u56de\u6d4b\u2192\u76d1\u63a7\u2192\u590d\u76d8\u5403\u540c\u4e00\u4efd\u6570\u636e<\/td>\n<\/tr>\n<tr>\n<td>&#x1f4c1; \u6587\u4ef6\u578b\u96f6\u8fd0\u7ef4\u5b58\u50a8<\/td>\n<td>Parquet &#043; DuckDB&#xff0c;\u5355\u5bb9\u5668\u96f6\u5916\u90e8\u6570\u636e\u5e93&#xff0c;\u6570\u636e 100% \u843d\u672c\u5730<\/td>\n<\/tr>\n<tr>\n<td>&#x1f501; \u56de\u6d4b &#061; \u5b9e\u76d8\u540c\u8def\u5f84<\/td>\n<td>\u7b56\u7565\u6267\u884c\u53ea\u6709 StrategyEngine.run \u4e00\u6761\u8def\u5f84&#xff1b;\u5206\u949f\u7b56\u7565\u9010\u65e5\u56de\u653e &#043;\u300c\u5f53\u65e5\u5df2\u77e5\u300d\u7eaa\u5f8b&#xff0c;\u4ece\u673a\u5236\u4e0a\u675c\u7edd\u672a\u6765\u51fd\u6570<\/td>\n<\/tr>\n<tr>\n<td>&#x1f3db;\ufe0f \u7f51\u5173\u5c45\u4e2d\u7684\u5f00\u653e\u5355\u4f53<\/td>\n<td>\u9762\u677f\u5bc6\u7801\u4f1a\u8bdd\u548c Token \u7f51\u5173\u53cc\u901a\u9053\u5e76\u884c&#xff1b;61 \u7aef\u70b9\u5951\u7ea6\u5feb\u7167 &#043; CI \u5b88\u62a4&#xff0c;SSE \u4e8b\u4ef6\u6d41\u4e0e MCP \u5e73\u7b49\u5f00\u653e<\/td>\n<\/tr>\n<tr>\n<td>&#x1f9e9; \u6838\u5fc3\u57df\/\u6269\u5c55\u57df\u8fb9\u754c<\/td>\n<td>8 \u4e2a\u6838\u5fc3\u57df\u62e5\u6709\u6570\u636e\u4e0e\u8bed\u4e49&#xff0c;5 \u6761\u6269\u5c55\u901a\u9053\u53ea\u6d88\u8d39\u5951\u7ea6\u2014\u2014\u5220\u9664\u76ee\u5f55\u5373\u6574\u4f53\u5378\u8f7d&#xff0c;\u96f6\u6838\u5fc3\u6539\u52a8<\/td>\n<\/tr>\n<tr>\n<td>&#x1f680; \u91cd\u6d3b\u8fdb\u7a0b\u9694\u79bb<\/td>\n<td>\u56de\u6d4b\u8dd1\u5728 spawn worker \u5b50\u8fdb\u7a0b&#xff0c;\u5237\u65b0\u5207\u9875\u91cd\u8fde\u4e0d\u4e22\u4efb\u52a1&#xff0c;\u4e3b\u670d\u52a1\u6c38\u4e0d\u88ab\u8ba1\u7b97\u5361\u4f4f<\/td>\n<\/tr>\n<tr>\n<td>&#x1f4c5; \u4ea4\u6613\u65e5\u63a2\u9488<\/td>\n<td>\u8282\u5047\u65e5\u81ea\u52a8\u505c\u6389\u5b9e\u65f6\u8f6e\u8be2\u548c\u5206\u949f\u589e\u91cf&#xff0c;\u96f6\u65e0\u6548\u8bf7\u6c42<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u4f5c\u4e3a\u5199\u4e86\u591a\u5e74 Java \u7684\u4eba&#xff0c;\u6211\u770b\u8fd9\u5957\u67b6\u6784\u7684\u611f\u53d7&#xff1a;\u5206\u5c42\u514b\u5236\u3001\u8fb9\u754c\u6e05\u6670\u3001\u6269\u5c55\u70b9\u660e\u786e&#xff0c;\u6ca1\u6709\u4e0a\u6765\u5c31\u5fae\u670d\u52a1\u90a3\u4e00\u5957\u2014\u2014\u5355\u673a\u672c\u5730\u5de5\u5177&#xff0c;\u5355\u5bb9\u5668 &#043; \u6587\u4ef6\u5b58\u50a8\u5c31\u662f\u6700\u4f18\u89e3\u3002\u503c\u5f97\u4e00\u63d0\u7684\u662f\u300c\u6838\u5fc3\u57df \/ \u6269\u5c55\u57df\u300d\u7684\u5212\u7ebf\u4f9d\u636e\u662f\u6570\u636e\u4e0e\u8bed\u4e49\u7684\u5f52\u5c5e\u3001\u4f9d\u8d56\u7bad\u5934\u7684\u65b9\u5411&#xff0c;\u800c\u4e0d\u662f\u9875\u9762\u597d\u4e0d\u597d\u770b&#xff0c;\u8fd9\u4e2a\u5212\u5206\u539f\u5219\u5f88\u4e13\u4e1a\u3002<\/p>\n<h3>\u56db\u3001\u5b89\u88c5&#xff1a;Docker \u4e00\u6761\u547d\u4ee4<\/h3>\n<h4>\u65b9\u5f0f A&#xff1a;GHCR \u73b0\u6210\u955c\u50cf&#xff08;\u591a\u6570\u4eba\u63a8\u8350&#xff09;<\/h4>\n<p>\u6709 Docker \u7684\u8bdd&#xff0c;\u771f\u7684\u5c31\u4e00\u6761\u547d\u4ee4&#xff1a;<\/p>\n<p><span class=\"token function\">docker<\/span> run <span class=\"token parameter variable\">-d<\/span> <span class=\"token parameter variable\">&#8211;name<\/span> tsp <span class=\"token parameter variable\">-p<\/span> <span class=\"token number\">3018<\/span>:3018 <span class=\"token parameter variable\">-v<\/span> <span class=\"token variable\">${<span class=\"token environment constant\">PWD<\/span>}<\/span>\/data:\/app\/data ghcr.io\/shy3130\/tick-stock-panel:latest<\/p>\n<p>\u6253\u5f00 http:\/\/localhost:3018 \u5373\u53ef\u4f7f\u7528\u3002\u591a\u67b6\u6784\u955c\u50cf&#xff08;amd64\/arm64&#xff09;\u7531 CI \u81ea\u52a8\u53d1\u5e03&#xff0c;\u672c\u673a\u8fde Python\/Node \u90fd\u4e0d\u7528\u88c5\u3002<\/p>\n<p>\u9700\u8981\u914d\u7f6e\u65f6&#xff1a;\u4ece\u4ed3\u5e93 .env.example \u590d\u5236 .env&#xff0c;\u547d\u4ee4\u52a0 &#8211;env-file .env\u3002<\/p>\n<h4>\u65b9\u5f0f B&#xff1a;Docker Compose&#xff08;\u672c\u5730\u6784\u5efa&#xff0c;\u5168\u5957\u6302\u8f7d&#xff09;<\/h4>\n<p><span class=\"token function\">cp<\/span> .env.example .env<br \/>\n<span class=\"token function\">docker<\/span> compose up <span class=\"token parameter variable\">&#8211;build<\/span><br \/>\n<span class=\"token comment\"># \u6253\u5f00 http:\/\/localhost:3018<\/span><\/p>\n<p>Windows \u7528\u6237\u6ce8\u610f\u4e00\u4e2a\u5751&#xff1a;\u7eaf PowerShell\/CMD \u4e0b HOME \u73af\u5883\u53d8\u91cf\u901a\u5e38\u6ca1\u8bbe\u7f6e&#xff0c;\u4f1a\u5bfc\u81f4 Codex \u767b\u5f55\u6001\u76ee\u5f55\u6302\u8f7d\u5931\u8d25\u3002\u9700\u8981\u5728 .env \u91cc\u663e\u5f0f\u6307\u5b9a&#xff1a;<\/p>\n<p><span class=\"token assign-left variable\">CODEX_HOME_HOST<\/span><span class=\"token operator\">&#061;<\/span>C:<span class=\"token punctuation\">\\\\<\/span>Users<span class=\"token punctuation\">\\\\<\/span>\u4f60\u7684\u7528\u6237\u540d<span class=\"token punctuation\">\\\\<\/span>.codex<\/p>\n<h4>\u65b9\u5f0f C&#xff1a;\u8ba9\u672c\u673a AI \u5e2e\u4f60\u90e8\u7f72<\/h4>\n<p>README \u8fd8\u63d0\u4f9b\u4e86\u4e00\u4e2a\u5f88\u7b26\u5408\u5f53\u4e0b\u73a9\u6cd5\u7684\u65b9\u5f0f\u2014\u2014\u628a\u8fd9\u6bb5\u8bdd\u539f\u6837\u53d1\u7ed9 Trae\/Codex\/OpenCode \u7b49 AI \u52a9\u624b&#xff1a;<\/p>\n<p>\u5e2e\u6211\u90e8\u7f72\u5f00\u6e90\u9879\u76ee https:\/\/github.com\/shy3130\/tick-stock-panel \u5230\u672c\u673a:<br \/>\n\u514b\u9686\u5230\u5f53\u524d\u6587\u4ef6\u5939;\u6709 Docker \u4f18\u5148\u62c9 ghcr.io\/shy3130\/tick-stock-panel:latest \u73b0\u6210\u955c\u50cf,\u6ca1\u6709\u5c31\u8d70 Dev \u6a21\u5f0f;<br \/>\n\u7f3a\u5c11\u7684\u4f9d\u8d56\u5e2e\u6211\u4e00\u8d77\u88c5\u597d;\u6700\u540e\u544a\u8bc9\u6211\u6d4f\u89c8\u5668\u6253\u5f00\u54ea\u4e2a\u5730\u5740\u3001\u9700\u8981\u586b\u54ea\u4e9b Key\u3002<\/p>\n<h4>\u8dd1\u8d77\u6765\u540e\u7684\u7b2c\u4e00\u6b21\u4f7f\u7528<\/h4>\n<li>\u8bbe\u7f6e \u2192 \u51ed\u636e\u4e0e\u80fd\u529b \u2192 \u70b9\u300c\u91cd\u65b0\u68c0\u6d4b\u300d&#xff0c;\u786e\u8ba4\u6863\u4f4d\u6807\u7b7e\u548c\u80fd\u529b\u8def\u7531\u77e9\u9635&#xff1b;<\/li>\n<li>\u8bbe\u7f6e \u2192 \u7acb\u5373\u8dd1\u76d8\u540e\u7ba1\u9053&#xff1a;\u62c9\u65e5 K &#043; \u8ba1\u7b97 enriched \u8868&#xff08;None\/Free \u6863\u8d70 free-api&#xff0c;\u5f53\u65e5\u6570\u636e\u76d8\u540e 1-2 \u5c0f\u65f6\u53ef\u7528&#xff09;&#xff1b;<\/li>\n<li>\u81ea\u9009\u9875\u52a0\u6807\u7684 \u2192 \u9009\u80a1\u9875\u70b9\u7b56\u7565\u5361\u7247\u626b\u63cf&#xff1b;<\/li>\n<li>\u56de\u6d4b\u9875\u9009\u7b56\u7565\u548c\u533a\u95f4 \u2192 \u770b\u51c0\u503c\u66f2\u7ebf\u3002<\/li>\n<h3>\u4e94\u3001AI \u5bf9\u8bdd\u52a9\u624b&#xff1a;\u4e00\u53e5\u8bdd\u95ee\u5168\u7ad9\u6570\u636e<\/h3>\n<p>\u8fd9\u662f TSP \u91cc\u6700\u300c2026\u300d\u7684\u90e8\u5206\u3002\u5165\u53e3\u662f\u60ac\u6d6e\u7403 \/ \u4fa7\u680f AI \u5fbd\u6807 \/ \u2318K \u547c\u51fa\u3002<\/p>\n<p>21 \u4e2a\u67e5\u8be2\u5de5\u5177 &#043; 4 \u4e2a\u52a8\u4f5c\u5de5\u5177&#xff1a;<\/p>\n<table>\n<tr>\u7c7b\u522b\u80fd\u529b<\/tr>\n<tbody>\n<tr>\n<td>\u884c\u60c5\u4e0e\u5927\u76d8<\/td>\n<td>\u6da8\u8dcc\u5bb6\u6570\u3001\u6210\u4ea4\u989d\u3001\u6da8\u505c\u8fde\u677f\u3001\u60c5\u7eea\u3001\u6307\u6570<\/td>\n<\/tr>\n<tr>\n<td>\u6211\u7684\u4e0e\u4e2a\u80a1<\/td>\n<td>\u81ea\u9009\u3001\u6301\u4ed3\u6279\u6b21\u3001\u4e2a\u80a1 K \u7ebf\u3001\u5173\u952e\u4ef7\u4f4d<\/td>\n<\/tr>\n<tr>\n<td>\u7b56\u7565\u4e0e\u56e0\u5b50<\/td>\n<td>\u7b56\u7565\u76ee\u5f55\u3001\u6267\u884c\u9009\u80a1\u3001\u56e0\u5b50\u76ee\u5f55\u3001\u56e0\u5b50\u5168\u5e02\u573a\u6392\u540d<\/td>\n<\/tr>\n<tr>\n<td>\u6269\u5c55\u5185\u5bb9<\/td>\n<td>\u6269\u5c55\u6570\u636e\u8868\u67e5\u8be2\u3001\u81ea\u5b9a\u4e49\u7b56\u7565\u4e0e\u4fe1\u53f7<\/td>\n<\/tr>\n<tr>\n<td>\u6570\u636e\u5065\u5eb7<\/td>\n<td>\u5b8c\u6574\u6027\u68c0\u67e5\u3001\u540c\u6b65\u4efb\u52a1\u8fdb\u5ea6<\/td>\n<\/tr>\n<tr>\n<td>\u52a8\u4f5c&#xff08;\u987b\u786e\u8ba4&#xff09;<\/td>\n<td>\u751f\u6210\u4fe1\u53f7\u7b56\u7565\u3001\u8fd0\u884c\u56de\u6d4b\u3001\u52a0\u5165\u81ea\u9009\u3001\u6570\u636e\u8865\u5168<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u51e0\u4e2a\u8bbe\u8ba1\u7ec6\u8282&#xff0c;\u6211\u8ba4\u4e3a\u662f\u505a AI \u5de5\u5177\u7684\u6b63\u786e\u59ff\u52bf&#xff1a;<\/p>\n<ul>\n<li>\u5de5\u5177\u8db3\u8ff9\u5361&#xff1a;\u6bcf\u6b21\u8c03\u7528\u7684\u5de5\u5177\u540d\u3001\u53c2\u6570\u3001\u8017\u65f6\u3001\u7ed3\u679c\u6458\u8981\u90fd\u80fd\u5c55\u5f00\u6838\u5bf9\u2014\u2014\u300c\u53d6\u6570\u5fc5\u987b\u53ef\u6838\u5bf9\u300d\u662f\u8bbe\u8ba1\u94c1\u5f8b&#xff1b;<\/li>\n<li>\u52a8\u4f5c\u786e\u8ba4\u5361&#xff1a;\u751f\u6210\u4fe1\u53f7\/\u56de\u6d4b\/\u52a0\u81ea\u9009\/\u6570\u636e\u8865\u5168\u7b49\u5199\u64cd\u4f5c&#xff0c;\u5148\u5f39\u5361\u7247\u663e\u793a\u5b8c\u6574\u5f85\u6267\u884c\u53c2\u6570&#xff0c;\u4f60\u70b9\u786e\u8ba4\u624d\u6267\u884c&#xff1b;\u62d2\u7edd\u6216 120 \u79d2\u8d85\u65f6\u81ea\u52a8\u53d6\u6d88&#xff0c;\u4e14\u6a21\u578b\u88ab\u660e\u786e\u544a\u77e5\u4e0d\u5f97\u91cd\u8bd5&#xff1b;<\/li>\n<li>\u8d70\u52bf\u53cc\u56fe&#xff1a;\u95ee\u4e2a\u80a1\u65f6\u81ea\u52a8\u9644\u4e0a\u5de5\u5177\u771f\u5b9e\u8fd4\u56de\u6570\u636e\u7684\u65e5 K \u8721\u70db &#043; \u5f53\u65e5\u5206\u65f6\u5c0f\u5361&#xff0c;\u800c\u4e0d\u662f\u8ba9\u6a21\u578b\u778e\u7f16\u8d70\u52bf&#xff1b;<\/li>\n<li>\u8f6e\u6b21\u68c0\u67e5\u70b9&#xff1a;\u8fde\u7eed N \u8f6e\u6ca1\u5b8c\u6210\u65f6\u5f39\u300c\u7ee7\u7eed\/\u505c\u6b62\u300d&#xff08;\u9ed8\u8ba4 100 \u8f6e&#xff0c;\u53ef\u914d&#xff09;&#xff0c;120 \u79d2\u4e0d\u9009\u81ea\u52a8\u505c&#xff1b;<\/li>\n<li>\u56fa\u5b9a\u5408\u89c4\u63d0\u793a&#xff1a;\u6bcf\u6761\u56de\u7b54\u672b\u5c3e\u90fd\u9644\u98ce\u9669\u4e0e\u6570\u636e\u53e3\u5f84\u63d0\u793a\u3002<\/li>\n<\/ul>\n<p>\u52a9\u624b\u672c\u8eab\u662f\u9879\u76ee\u6269\u5c55\u7cfb\u7edf\u7684\u53c2\u8003\u5b9e\u73b0&#xff1a;\u540e\u7aef app\/custom\/assistant\/&#xff08;\u542f\u52a8\u81ea\u52a8\u53d1\u73b0\u6ce8\u518c\u8def\u7531&#xff09;\u548c\u524d\u7aef src\/custom\/assistant\/&#xff08;\u6784\u5efa\u81ea\u52a8\u6302\u8f7d\u63d2\u69fd&#xff09;\u5404\u81ea\u72ec\u7acb&#xff0c;\u5220\u76ee\u5f55\u5373\u5378\u8f7d\u3002\u6ca1\u914d AI Key \u6216\u4f9b\u5e94\u5546\u4e0d\u652f\u6301\u5de5\u5177\u8c03\u7528\u65f6 fail-closed&#xff0c;\u76f4\u63a5\u63d0\u793a\u53bb\u8bbe\u7f6e\u9875\u3002<\/p>\n<p>\u26a0\ufe0f \u52a9\u624b\u53ea\u505a\u6570\u636e\u5206\u6790&#xff0c;\u4e0d\u63d0\u4f9b\u4e70\u5356\u6307\u4ee4&#xff1b;\u6d89\u53ca\u4ea4\u6613\u51b3\u7b56\u7684\u95ee\u9898\u4f1a\u8f6c\u6362\u6210\u5ba2\u89c2\u7684\u6280\u672f\/\u8d22\u52a1\u72b6\u6001\u3001\u5173\u952e\u4ef7\u4f4d\u548c\u6761\u4ef6\u60c5\u666f\u3002<\/p>\n<h3>\u516d\u3001\u63a5\u5165 MCP&#xff1a;\u8ba9\u4efb\u610f AI \u5ba2\u6237\u7aef\u64cd\u4f5c\u4f60\u7684\u9762\u677f<\/h3>\n<p>TSP \u81ea\u5e26\u72ec\u7acb\u7684 MCP \u670d\u52a1\u5668&#xff0c;\u539f\u7406\u662f\u4e00\u5c42\u8584\u6865&#xff1a;<\/p>\n<p>AI \u5ba2\u6237\u7aef \u21c4 MCP stdio \u21c4 HTTP &#043; Bearer Token \u21c4 \u9762\u677f\u5f00\u653e\u7f51\u5173<\/p>\n<p>\u6743\u9650\u3001\u9650\u6d41\u3001\u5951\u7ea6\u5168\u90e8\u590d\u7528\u9762\u677f\u5f00\u653e\u63a5\u53e3\u5c42&#xff0c;\u9762\u677f\u4fa7\u7684 Token scope \u624d\u662f\u6700\u7ec8\u6743\u5a01\u2014\u2014\u8fd9\u5c42\u4e0d\u5199\u4e1a\u52a1\u903b\u8f91&#xff0c;\u9762\u677f\u5347\u7ea7\u81ea\u52a8\u53d7\u76ca\u3002<\/p>\n<h4>\u914d\u7f6e\u6b65\u9aa4<\/h4>\n<li>\u9762\u677f \u2192 \u8bbe\u7f6e \u2192 \u5f00\u653e\u63a5\u53e3 \u2192 \u65b0\u5efa Token&#xff0c;\u52fe\u9009\u6240\u9700 scope&#xff1b;<\/li>\n<li>\u8bb0\u4e0b tsp_ \u5f00\u5934\u7684\u660e\u6587&#xff08;\u53ea\u663e\u793a\u4e00\u6b21&#xff09;&#xff1b;<\/li>\n<li>\u5728 Claude Desktop \/ Cursor \/ \u4efb\u610f\u652f\u6301 stdio MCP \u7684\u5ba2\u6237\u7aef\u4e2d\u914d\u7f6e&#xff1a;<\/li>\n<p><span class=\"token punctuation\">{<\/span><br \/>\n  <span class=\"token string-property property\">&#034;mcpServers&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token string-property property\">&#034;tick-stock-panel&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n      <span class=\"token string-property property\">&#034;command&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token string\">&#034;uv&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n      <span class=\"token string-property property\">&#034;args&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token punctuation\">[<\/span><span class=\"token string\">&#034;&#8211;directory&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;E:\/tick-stock-panel\/mcp-server&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;run&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;tsp-mcp-server&#034;<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">,<\/span><br \/>\n      <span class=\"token string-property property\">&#034;env&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token string-property property\">&#034;TSP_BASE&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token string\">&#034;http:\/\/127.0.0.1:3018&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n        <span class=\"token string-property property\">&#034;TSP_TOKEN&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token string\">&#034;tsp_xxxx&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n        <span class=\"token string-property property\">&#034;TSP_SCOPES&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token string\">&#034;read:market,read:ext,read:analysis&#034;<\/span><br \/>\n      <span class=\"token punctuation\">}<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n  <span class=\"token punctuation\">}<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p>TSP_SCOPES \u51b3\u5b9a\u66b4\u9732\u54ea\u4e9b\u5de5\u5177&#xff0c;\u58f0\u660e\u4e86\u4f46\u6ca1\u6388\u6743\u7684 scope&#xff0c;\u8c03\u7528\u65f6\u62ff 403&#xff0c;AI \u770b\u5230\u9519\u8bef\u4f1a\u81ea\u5df1\u505c\u4e0b\u6765\u3002<\/p>\n<h4>12 \u4e2a\u5de5\u5177\u6e05\u5355&#xff08;\u6309\u6743\u9650\u6863&#xff09;<\/h4>\n<table>\n<tr>scope\u5de5\u5177\u8bf4\u660e<\/tr>\n<tbody>\n<tr>\n<td>read:market<\/td>\n<td>search_instrument<\/td>\n<td>\u4ee3\u7801\/\u540d\u79f0\/\u62fc\u97f3\u641c\u6807\u7684<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>get_kline<\/td>\n<td>\u65e5 K&#xff08;\u524d\u590d\u6743&#xff09;<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>get_index_kline<\/td>\n<td>\u6307\u6570\u65e5 K<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>get_market_overview<\/td>\n<td>\u6da8\u8dcc\u5bb6\u6570\/\u6210\u4ea4\u989d\/\u6da8\u505c\u8fde\u677f\/\u60c5\u7eea<\/td>\n<\/tr>\n<tr>\n<td>read:analysis<\/td>\n<td>get_regime_state<\/td>\n<td>\u6700\u65b0\u5e02\u573a\u73af\u5883\u9636\u6bb5<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>list_strategies \/ get_strategy_detail<\/td>\n<td>\u7b56\u7565\u6e05\u5355\u4e0e\u5b9a\u4e49<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>get_recent_alerts<\/td>\n<td>\u6700\u8fd1\u544a\u8b66<\/td>\n<\/tr>\n<tr>\n<td>read:ext<\/td>\n<td>list_ext_tables \/ query_ext_table<\/td>\n<td>\u81ea\u6709\u6570\u636e\u8868\u67e5\u8be2<\/td>\n<\/tr>\n<tr>\n<td>write:ext<\/td>\n<td>write_ext_rows<\/td>\n<td>\u5199\u5165\u6269\u5c55\u8868&#xff08;\u8fdb\u5165\u7b56\u7565\u6570\u636e\u9762&#xff0c;\u614e\u6388&#xff09;<\/td>\n<\/tr>\n<tr>\n<td>run:backtest<\/td>\n<td>run_backtest<\/td>\n<td>\u7b56\u7565\u56de\u6d4b&#xff08;\u7eaf Polars \u5f15\u64ce&#xff09;<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u6ce8\u610f&#xff1a;\u6a21\u62df\u76d8\u4ea4\u6613\u7c7b\u7aef\u70b9\u6ca1\u6709\u88ab\u5305\u6210 MCP \u5de5\u5177\u2014\u2014\u4f5c\u8005\u660e\u786e\u4e0d\u5efa\u8bae\u628a\u4e0b\u5355\u80fd\u529b\u4ea4\u7ed9 AI&#xff0c;\u9700\u8981\u65f6\u81ea\u5df1\u6309\u540c\u6837\u6a21\u5f0f\u8865\u3002\u8fd9\u4e00\u70b9\u6211\u4e3e\u53cc\u624b\u8d5e\u6210\u3002<\/p>\n<p>\u516d\u6863 Token \u6743\u9650 &#043; 120 \u6b21\/\u5206\u949f\u9650\u6d41 &#043; SSE \u4e8b\u4ef6\u6d41&#xff0c;\u610f\u5473\u7740\u4f60\u5b8c\u5168\u53ef\u4ee5\u5728\u81ea\u5df1\u7684\u811a\u672c\u3001\u673a\u5668\u4eba\u91cc\u628a TSP \u5f53\u4e00\u4e2a\u672c\u5730\u91cf\u5316\u6570\u636e\u4e2d\u53f0\u6765\u7528\u3002<\/p>\n<h3>\u4e03\u3001\u8fb9\u754c\u4e0e\u98ce\u9669&#xff08;\u52a1\u5fc5\u770b&#xff09;<\/h3>\n<li>\n<p>\u4e0d\u63d0\u4f9b\u4efb\u4f55\u6295\u8d44\u5efa\u8bae\u3002\u5b83\u660e\u786e\u4e0d\u505a AI \u8350\u80a1\u3001\u6da8\u505c\u9884\u6d4b&#xff1b;\u6240\u6709\u7b56\u7565\u548c\u56e0\u5b50\u53ea\u662f\u300c\u7814\u7a76\u5de5\u5177\u300d&#xff0c;\u5386\u53f2\u56de\u6d4b\u597d\u4e0d\u4ee3\u8868\u672a\u6765\u8d5a\u94b1&#xff0c;\u8fd9\u662f\u91cf\u5316\u7684\u57fa\u672c\u5e38\u8bc6\u3002<\/p>\n<\/li>\n<li>\n<p>\u6570\u636e\u6863\u4f4d\u6709\u5dee\u5f02\u3002None\/Free \u6863\u8d70\u514d\u8d39\u6570\u636e\u6e90&#xff08;free-api&#xff09;&#xff0c;\u5f53\u65e5\u6570\u636e\u76d8\u540e 1-2 \u5c0f\u65f6\u624d\u53ef\u7528&#xff0c;\u76d8\u4e2d\u548c\u5b9e\u65f6\u80fd\u529b\u53d7\u6570\u636e\u6e90\u9650\u5236&#xff1b;\u60f3\u8981\u66f4\u5f3a\u80fd\u529b\u9700\u63a5\u5165\u5bf9\u5e94\u6570\u636e\u6e90&#xff08;\u63d2\u4ef6\u5316&#xff0c;\u81ea\u5df1\u914d&#xff09;\u3002<\/p>\n<\/li>\n<li>\n<p>\u73b0\u6210\u955c\u50cf\u4e0d\u542b stock-sdk \u63d2\u4ef6\u548c\u8001 CPU \u517c\u5bb9\u5185\u6838&#xff08;\u5408\u89c4\u4e0e\u4f53\u79ef\u8003\u8651&#xff09;&#xff0c;\u6709\u9700\u6c42\u8981\u81ea\u5df1\u7528 Compose \u52a0 &#8211;build-arg INCLUDE_STOCKSDK&#061;1 \u6784\u5efa\u3002<\/p>\n<\/li>\n<li>\n<p>\u5b9e\u76d8\u4ea4\u6613\u4e0d\u5728\u5f00\u6e90\u8303\u56f4\u5185\u3002\u9879\u76ee\u5b9a\u4f4d\u662f\u7814\u7a76\u4e0e\u76d1\u63a7\u5de5\u4f5c\u53f0&#xff0c;\u522b\u6307\u671b\u62ff\u5b83\u76f4\u63a5\u81ea\u52a8\u4e0b\u5355&#xff08;\u4e5f\u4e0d\u5e94\u8be5&#xff09;\u3002<\/p>\n<\/li>\n<li>\n<p>\u4e2a\u4eba\u5f00\u6e90\u9879\u76ee\u3002\u4f5c\u8005\u7559\u4e86\u90ae\u7bb1\u7ef4\u62a4\u793e\u533a&#xff0c;\u8fed\u4ee3\u5f88\u6d3b\u8dc3&#xff08;\u6700\u8fd1\u4e00\u6b21\u63a8\u9001\u5c31\u5728\u6628\u5929&#xff09;&#xff0c;\u4f46\u4f01\u4e1a\u7ea7\u4f7f\u7528\u8981\u8bc4\u4f30\u81ea\u5df1\u957f\u671f\u7ef4\u62a4\u7684\u80fd\u529b\u3002<\/p>\n<\/li>\n<li>\n<p>A \u80a1\u6709\u98ce\u9669&#xff0c;\u5165\u5e02\u9700\u8c28\u614e\u3002\u518d\u5f3a\u8c03\u4e00\u6b21&#xff1a;\u672c\u6587\u4ecb\u7ecd\u7684\u662f\u8f6f\u4ef6\u5de5\u5177&#xff0c;\u4e0d\u662f\u4efb\u4f55\u5f62\u5f0f\u7684\u6536\u76ca\u627f\u8bfa\u3002<\/p>\n<\/li>\n<hr \/>\n<h3>\u603b\u7ed3\u4e0e\u9879\u76ee\u5730\u5740<\/h3>\n<p>TSP \u7ed9\u6211\u7559\u4e0b\u6700\u6df1\u5370\u8c61\u7684\u4e0d\u662f\u529f\u80fd\u591a&#xff0c;\u800c\u662f\u5b83\u7684\u514b\u5236\u4e0e\u5de5\u7a0b\u5ba1\u7f8e&#xff1a;<\/p>\n<ul>\n<li>\u5355\u5bb9\u5668 &#043; Parquet\/DuckDB&#xff0c;\u96f6\u8fd0\u7ef4\u3001\u6570\u636e\u5b8c\u5168\u672c\u5730&#xff1b;<\/li>\n<li>\u9009\u80a1 \u2192 \u56de\u6d4b \u2192 \u76d1\u63a7 \u2192 \u590d\u76d8&#xff0c;\u5168\u7ad9\u5403\u540c\u4e00\u4e2a enriched \u53e3\u5f84&#xff1b;<\/li>\n<li>\u6570\u636e\u6e90\u63d2\u4ef6\u5316\u3001\u80fd\u529b\u8def\u7531&#xff0c;\u6362\u6e90\u4e0d\u6362\u53e3\u5f84&#xff1b;<\/li>\n<li>AI \u52a9\u624b\u53d6\u6570\u5168\u7a0b\u53ef\u6838\u5bf9\u3001\u5199\u64cd\u4f5c\u5fc5\u987b\u786e\u8ba4&#xff1b;<\/li>\n<li>61 \u7aef\u70b9 &#043; 12 MCP \u5de5\u5177&#xff0c;\u6743\u9650\u6700\u5c0f\u5316&#xff0c;\u4e0b\u5355\u80fd\u529b\u575a\u51b3\u4e0d\u4ea4 AI\u3002<\/li>\n<\/ul>\n<p>\u60f3\u7cfb\u7edf\u5b66\u4e60 A \u80a1\u91cf\u5316\u3001\u60f3\u8981\u4e00\u4e2a\u6570\u636e\u5728\u81ea\u5df1\u624b\u91cc\u7684\u672c\u5730\u5de5\u4f5c\u53f0\u3001\u6216\u8005\u60f3\u7814\u7a76\u300cAI &#043; \u91cf\u5316 &#043; MCP\u300d\u600e\u4e48\u843d\u5730\u7684\u670b\u53cb&#xff0c;\u8fd9\u4e2a\u9879\u76ee\u503c\u5f97\u5468\u672b\u82b1\u4e00\u5c0f\u65f6\u8dd1\u4e00\u8dd1\u3002<\/p>\n<p>\u9879\u76ee\u5730\u5740&#xff1a;https:\/\/github.com\/shy3130\/tick-stock-panel \u955c\u50cf\u5730\u5740&#xff1a;ghcr.io\/shy3130\/tick-stock-panel:latest \u534f\u8bae&#xff1a;MIT&#xff0c;Star 5.3k&#043; \u4e14\u4ecd\u5728\u5feb\u901f\u4e0a\u6da8&#xff08;\u6570\u636e\u622a\u81f3 2026-09-30&#xff09;\u3002<\/p>\n<p>\u4e0a\u4e00\u7bc7\u804a\u7684\u662f\u628a\u6240\u6709 AI \u7f16\u7a0b Agent \u6536\u7f16\u7684\u5143\u6846\u67b6 Omnigent&#xff08;https:\/\/github.com\/omnigent-ai\/omnigent&#xff09;&#xff0c;\u8fd8\u6ca1\u770b\u7684\u670b\u53cb\u63a8\u8350\u4e00\u8d77\u670d\u7528\u2014\u2014\u4e00\u4e2a\u7ba1\u300cAI \u5de5\u7a0b\u56e2\u961f\u300d&#xff0c;\u4e00\u4e2a\u7ba1\u300cAI \u91cf\u5316\u7814\u7a76\u300d&#xff0c;\u90fd\u662f\u4eca\u5e74 Agent \u5de5\u7a0b\u5316\u601d\u8def\u4e0b\u975e\u5e38\u503c\u5f97\u5b66\u7684\u5f00\u6e90\u9879\u76ee\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u9879\u76ee\u540d&#xff1a;TSP \u00b7 A \u80a1\u667a\u80fd\u91cf\u5316\u5de5\u4f5c\u53f0&#xff08;tick-stock-panel&#xff09; GitHub&#xff1a;https:\/\/github.com\/shy3130\/tick-stock-panel \u534f\u8bae&#xff1a;MIT Star&#xff1a;5.3k&#xff08;Fork 1.3k&#xff0c;\u622a\u81f3 2026-09-30&#xff0c;GitHub API \u5b9e\u6293&#xff09; \u6280\u672f\u6808&#xff1a;FastAPI  Reac<\/p>\n","protected":false},"author":2,"featured_media":111127,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[12640,27,50,227,4393],"topic":[],"class_list":["post-111128","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-server","tag-a","tag-docker","tag-50","tag-227","tag-4393"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>5.3k Star\uff01\u628a A \u80a1\u91cf\u5316\u5de5\u4f5c\u53f0\u88c5\u8fdb Docker\u2014\u2014\u56fd\u4ea7\u5f00\u6e90 TSP\uff1a\u9009\u80a1\u3001\u56de\u6d4b\u3001\u76d1\u63a7\u5168\u6709\uff0cAI \u4e00\u53e5\u8bdd\u95ee\u5168\u7ad9\u6570\u636e\uff0c\u8fd8\u81ea\u5e26 MCP - \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\/111128.html\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"5.3k Star\uff01\u628a A \u80a1\u91cf\u5316\u5de5\u4f5c\u53f0\u88c5\u8fdb Docker\u2014\u2014\u56fd\u4ea7\u5f00\u6e90 TSP\uff1a\u9009\u80a1\u3001\u56de\u6d4b\u3001\u76d1\u63a7\u5168\u6709\uff0cAI \u4e00\u53e5\u8bdd\u95ee\u5168\u7ad9\u6570\u636e\uff0c\u8fd8\u81ea\u5e26 MCP - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\" \/>\n<meta property=\"og:description\" content=\"\u9879\u76ee\u540d&#xff1a;TSP \u00b7 A \u80a1\u667a\u80fd\u91cf\u5316\u5de5\u4f5c\u53f0&#xff08;tick-stock-panel&#xff09; GitHub&#xff1a;https:\/\/github.com\/shy3130\/tick-stock-panel \u534f\u8bae&#xff1a;MIT Star&#xff1a;5.3k&#xff08;Fork 1.3k&#xff0c;\u622a\u81f3 2026-09-30&#xff0c;GitHub API \u5b9e\u6293&#xff09; \u6280\u672f\u6808&#xff1a;FastAPI Reac\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.wsisp.com\/helps\/111128.html\" \/>\n<meta property=\"og:site_name\" content=\"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-30T02:57:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/09\/20260930025724-6abc7a94ca08d.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=\"4 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/111128.html\",\"url\":\"https:\/\/www.wsisp.com\/helps\/111128.html\",\"name\":\"5.3k Star\uff01\u628a A \u80a1\u91cf\u5316\u5de5\u4f5c\u53f0\u88c5\u8fdb Docker\u2014\u2014\u56fd\u4ea7\u5f00\u6e90 TSP\uff1a\u9009\u80a1\u3001\u56de\u6d4b\u3001\u76d1\u63a7\u5168\u6709\uff0cAI \u4e00\u53e5\u8bdd\u95ee\u5168\u7ad9\u6570\u636e\uff0c\u8fd8\u81ea\u5e26 MCP - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\",\"isPartOf\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/#website\"},\"datePublished\":\"2026-09-30T02:57:26+00:00\",\"dateModified\":\"2026-09-30T02:57:26+00:00\",\"author\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/111128.html#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.wsisp.com\/helps\/111128.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/111128.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.wsisp.com\/helps\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"5.3k Star\uff01\u628a A \u80a1\u91cf\u5316\u5de5\u4f5c\u53f0\u88c5\u8fdb Docker\u2014\u2014\u56fd\u4ea7\u5f00\u6e90 TSP\uff1a\u9009\u80a1\u3001\u56de\u6d4b\u3001\u76d1\u63a7\u5168\u6709\uff0cAI \u4e00\u53e5\u8bdd\u95ee\u5168\u7ad9\u6570\u636e\uff0c\u8fd8\u81ea\u5e26 MCP\"}]},{\"@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":"5.3k Star\uff01\u628a A \u80a1\u91cf\u5316\u5de5\u4f5c\u53f0\u88c5\u8fdb Docker\u2014\u2014\u56fd\u4ea7\u5f00\u6e90 TSP\uff1a\u9009\u80a1\u3001\u56de\u6d4b\u3001\u76d1\u63a7\u5168\u6709\uff0cAI \u4e00\u53e5\u8bdd\u95ee\u5168\u7ad9\u6570\u636e\uff0c\u8fd8\u81ea\u5e26 MCP - \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\/111128.html","og_locale":"zh_CN","og_type":"article","og_title":"5.3k Star\uff01\u628a A \u80a1\u91cf\u5316\u5de5\u4f5c\u53f0\u88c5\u8fdb Docker\u2014\u2014\u56fd\u4ea7\u5f00\u6e90 TSP\uff1a\u9009\u80a1\u3001\u56de\u6d4b\u3001\u76d1\u63a7\u5168\u6709\uff0cAI \u4e00\u53e5\u8bdd\u95ee\u5168\u7ad9\u6570\u636e\uff0c\u8fd8\u81ea\u5e26 MCP - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","og_description":"\u9879\u76ee\u540d&#xff1a;TSP \u00b7 A \u80a1\u667a\u80fd\u91cf\u5316\u5de5\u4f5c\u53f0&#xff08;tick-stock-panel&#xff09; GitHub&#xff1a;https:\/\/github.com\/shy3130\/tick-stock-panel \u534f\u8bae&#xff1a;MIT Star&#xff1a;5.3k&#xff08;Fork 1.3k&#xff0c;\u622a\u81f3 2026-09-30&#xff0c;GitHub API \u5b9e\u6293&#xff09; \u6280\u672f\u6808&#xff1a;FastAPI Reac","og_url":"https:\/\/www.wsisp.com\/helps\/111128.html","og_site_name":"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","article_published_time":"2026-09-30T02:57:26+00:00","og_image":[{"url":"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/09\/20260930025724-6abc7a94ca08d.png"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"admin","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"4 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.wsisp.com\/helps\/111128.html","url":"https:\/\/www.wsisp.com\/helps\/111128.html","name":"5.3k Star\uff01\u628a A \u80a1\u91cf\u5316\u5de5\u4f5c\u53f0\u88c5\u8fdb Docker\u2014\u2014\u56fd\u4ea7\u5f00\u6e90 TSP\uff1a\u9009\u80a1\u3001\u56de\u6d4b\u3001\u76d1\u63a7\u5168\u6709\uff0cAI \u4e00\u53e5\u8bdd\u95ee\u5168\u7ad9\u6570\u636e\uff0c\u8fd8\u81ea\u5e26 MCP - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","isPartOf":{"@id":"https:\/\/www.wsisp.com\/helps\/#website"},"datePublished":"2026-09-30T02:57:26+00:00","dateModified":"2026-09-30T02:57:26+00:00","author":{"@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41"},"breadcrumb":{"@id":"https:\/\/www.wsisp.com\/helps\/111128.html#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.wsisp.com\/helps\/111128.html"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.wsisp.com\/helps\/111128.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.wsisp.com\/helps"},{"@type":"ListItem","position":2,"name":"5.3k Star\uff01\u628a A \u80a1\u91cf\u5316\u5de5\u4f5c\u53f0\u88c5\u8fdb Docker\u2014\u2014\u56fd\u4ea7\u5f00\u6e90 TSP\uff1a\u9009\u80a1\u3001\u56de\u6d4b\u3001\u76d1\u63a7\u5168\u6709\uff0cAI \u4e00\u53e5\u8bdd\u95ee\u5168\u7ad9\u6570\u636e\uff0c\u8fd8\u81ea\u5e26 MCP"}]},{"@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\/111128","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=111128"}],"version-history":[{"count":0,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts\/111128\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/media\/111127"}],"wp:attachment":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/media?parent=111128"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/categories?post=111128"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/tags?post=111128"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/topic?post=111128"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}