{"id":1548,"date":"2026-06-17T17:57:33","date_gmt":"2026-06-17T09:57:33","guid":{"rendered":"https:\/\/www.livetops.com\/?p=1548"},"modified":"2026-06-17T17:57:34","modified_gmt":"2026-06-17T09:57:34","slug":"%e6%90%ad%e5%bb%ba%e7%a7%81%e6%9c%89%e6%90%9c%e7%b4%a2%e4%bb%a3%e7%90%86%e6%9c%8d%e5%8a%a1%ef%bc%9aopenwebui-%e5%90%8e%e7%ab%af%e6%a8%a1%e6%8b%9f-searxng-%e6%9c%ac%e5%9c%b0%e6%90%9c%e7%b4%a2","status":"publish","type":"post","link":"https:\/\/www.livetops.com\/en\/archives\/1548","title":{"rendered":"Setting Up a Private Search Proxy Service: OpenWebUI + Backend Simulating SearXNG Local Search"},"content":{"rendered":"<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\u7528 Python + Flask \u5b9e\u73b0\u4e00\u4e2a\u517c\u5bb9 SearXNG \u63a5\u53e3\u7684\u672c\u5730\u641c\u7d22\u670d\u52a1\uff0c\u652f\u6301\u6df1\u5ea6\u7f51\u9875\u6293\u53d6<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">\u80cc\u666f<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u5728\u642d\u5efa\u4e2a\u4eba AI \u52a9\u624b\u65f6\uff0c\u5e38\u9047\u5230\u4e00\u4e2a\u95ee\u9898\uff1a\u5927\u6a21\u578b\u7684\u77e5\u8bc6\u6709\u622a\u6b62\u65e5\u671f\uff0c\u65e0\u6cd5\u83b7\u53d6\u6700\u65b0\u4fe1\u606f\u3002\u867d\u7136\u53ef\u4ee5\u63a5\u5165\u641c\u7d22\u5f15\u64ce API\uff0c\u4f46\u5546\u7528\u670d\u52a1\u4ef7\u683c\u4e0d\u83f2\uff0c\u514d\u8d39\u7248\u53c8\u6709\u8c03\u7528\u6b21\u6570\u9650\u5236\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e8e\u662f\u6211\u5199\u4e86\u4e00\u4e2a\u8f7b\u91cf\u7ea7\u7684\u672c\u5730\u641c\u7d22\u4ee3\u7406\u670d\u52a1\uff0c\u5b83\u672c\u8d28\u4e0a\u662f\u628a<strong>\u767e\u5ea6\u641c\u7d22<\/strong>\u5305\u88c5\u6210 <strong>SearXNG \u517c\u5bb9\u7684 API \u63a5\u53e3<\/strong>\uff0c\u540c\u65f6\u52a0\u5165<strong>\u6df1\u5ea6\u7f51\u9875\u6293\u53d6<\/strong>\u80fd\u529b\u2014\u2014\u4e0d\u4ec5\u8fd4\u56de\u641c\u7d22\u7ed3\u679c\uff0c\u8fd8\u80fd\u81ea\u52a8\u6293\u53d6\u6392\u540d\u9760\u524d\u7684\u9875\u9762\u6b63\u6587\uff0c\u8ba9 AI \u76f4\u63a5\u9605\u8bfb\u539f\u6587\u5185\u5bb9\u3002<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u529f\u80fd\u6982\u89c8<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u529f\u80fd<\/th><th>instructions<\/th><\/tr><\/thead><tbody><tr><td>\u767e\u5ea6\u641c\u7d22<\/td><td>\u57fa\u4e8e <code>baidu_serp_api<\/code> \u6a21\u62df\u767e\u5ea6\u641c\u7d22\uff0c\u83b7\u53d6\u6807\u9898\u3001\u94fe\u63a5\u3001\u6458\u8981<\/td><\/tr><tr><td>\u6df1\u5ea6\u6293\u53d6<\/td><td>\u5f02\u6b65\u5e76\u53d1\u6293\u53d6 Top N \u4e2a\u7ed3\u679c\u9875\u9762\uff0c\u63d0\u53d6\u6b63\u6587\u5e76\u9644\u52a0\u5230\u6458\u8981\u4e2d<\/td><\/tr><tr><td>\u591a\u63d0\u53d6\u5668<\/td><td>\u81ea\u52a8\u964d\u7ea7\u4f7f\u7528 trafilatura \/ readability \/ goose3<\/td><\/tr><tr><td>\u7f13\u5b58\u673a\u5236<\/td><td>\u641c\u7d22\u7ed3\u679c\u7f13\u5b58 1 \u5c0f\u65f6\uff0c\u964d\u4f4e\u91cd\u590d\u8bf7\u6c42<\/td><\/tr><tr><td>\u9650\u9891\u4fdd\u62a4<\/td><td>\u968f\u673a\u5ef6\u8fdf + \u51b7\u5374\u673a\u5236\uff0c\u964d\u4f4e\u98ce\u63a7\u6982\u7387<\/td><\/tr><tr><td>API \u517c\u5bb9<\/td><td>\u8f93\u51fa\u683c\u5f0f\u4e0e SearXNG \u4fdd\u6301\u4e00\u81f4\uff0c\u53ef\u76f4\u63a5\u5bf9\u63a5\u5404\u7c7b AI \u5e94\u7528<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u5de5\u4f5c\u6d41\u7a0b<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>\u7528\u6237\u8bf7\u6c42 \u2192 Flask\u670d\u52a1 \u2192 \u767e\u5ea6\u641c\u7d22API \u2192 \u83b7\u53d6\u7ed3\u679c\u5217\u8868\n                              \u2193\n                    \uff08\u53ef\u9009\uff09\u6df1\u5ea6\u6293\u53d6 Top N\n                              \u2193\n                    \u5e76\u53d1\u63d0\u53d6\u6b63\u6587\u5185\u5bb9\n                              \u2193\n                    \u8d28\u91cf\u8bc4\u5206 + \u5185\u5bb9\u9644\u52a0\n                              \u2193\n                    \u8fd4\u56deSearXNG\u517c\u5bb9JSON<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u5feb\u901f\u4e0a\u624b<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1. \u5b89\u88c5\u4f9d\u8d56<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>pip install flask baidu-serp-api trafilatura readability-lxml aiohttp fake-useragent<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u53ef\u9009\u5b89\u88c5\uff08\u63d0\u9ad8\u63d0\u53d6\u6210\u529f\u7387\uff09\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pip install goose3<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">2. \u542f\u52a8\u670d\u52a1<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>python SearxBaiduService.py<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u6216\u8005\u76f4\u63a5\u53cc\u51fb <code>RunSearcher.bat<\/code>\uff08Windows\uff09\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u670d\u52a1\u9ed8\u8ba4\u8fd0\u884c\u5728 <code>http:\/\/localhost:8888<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3. \u8c03\u7528\u793a\u4f8b<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># \u666e\u901a\u641c\u7d22\ncurl \"http:\/\/localhost:8888\/search?q=\u4eba\u5de5\u667a\u80fd\u6700\u65b0\u8fdb\u5c55\"\n\n# \u9650\u5236\u8fd4\u56de\u6761\u6570\ncurl \"http:\/\/localhost:8888\/search?q=\u6df1\u5ea6\u5b66\u4e60&amp;count=4\"\n\n# \u7981\u7528\u6df1\u5ea6\u6293\u53d6\ncurl \"http:\/\/localhost:8888\/search?q=Transformer&amp;deep_crawl=false\"\n\n# \u6307\u5b9a\u6df1\u5ea6\u6293\u53d6\u6761\u6570\ncurl \"http:\/\/localhost:8888\/search?q=\u5927\u6a21\u578b&amp;deep_count=2\"<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">4. \u8fd4\u56de\u683c\u5f0f\uff08SearXNG \u517c\u5bb9\uff09<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"query\": \"\u4eba\u5de5\u667a\u80fd\",\n  \"number_of_results\": 6,\n  \"results\": &#91;\n    {\n      \"title\": \"\u6587\u7ae0\u6807\u9898\",\n      \"url\": \"https:\/\/...\",\n      \"content\": \"\u6458\u8981\u4fe1\u606f\\n\\n\u3010\u6df1\u5ea6\u6293\u53d6\u5185\u5bb9\u3011\\n\u6b63\u6587\u5185\u5bb9...\",\n      \"source\": \"baidu\",\n      \"engine\": \"baidu\"\n    }\n  ]\n}<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u5173\u952e\u53c2\u6570\u8c03\u4f18<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u5728\u4ee3\u7801\u5f00\u5934\u7684\u300c\u53ef\u8c03\u53c2\u6570\u533a\u300d\u53ef\u4ee5\u8c03\u6574\u4ee5\u4e0b\u53c2\u6570\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u53c2\u6570<\/th><th>default value<\/th><th>instructions<\/th><\/tr><\/thead><tbody><tr><td><code>DEFAULT_RESULT_COUNT<\/code><\/td><td>6<\/td><td>\u9ed8\u8ba4\u8fd4\u56de\u7ed3\u679c\u6570<\/td><\/tr><tr><td><code>DEEP_CRAWL_MAX_RESULTS<\/code><\/td><td>6<\/td><td>\u6700\u5927\u6df1\u5ea6\u6293\u53d6\u6761\u6570<\/td><\/tr><tr><td><code>DEEP_CRAWL_CONCURRENT<\/code><\/td><td>2<\/td><td>\u5e76\u53d1\u6293\u53d6\u6570\uff08\u5efa\u8bae \u22643\uff09<\/td><\/tr><tr><td><code>DEEP_CRAWL_TIMEOUT<\/code><\/td><td>6<\/td><td>\u5355\u9875\u8d85\u65f6\uff08\u79d2\uff09<\/td><\/tr><tr><td><code>CACHE_TTL<\/code><\/td><td>3600<\/td><td>\u7f13\u5b58\u6709\u6548\u671f\uff08\u79d2\uff09<\/td><\/tr><tr><td><code>RANDOM_DELAY_MIN\/MAX<\/code><\/td><td>5~10<\/td><td>\u641c\u7d22\u8bf7\u6c42\u968f\u673a\u5ef6\u8fdf\uff08\u79d2\uff09<\/td><\/tr><tr><td><code>ERROR_COOLDOWN<\/code><\/td><td>60<\/td><td>\u5931\u8d25\u540e\u51b7\u5374\u65f6\u95f4\uff08\u79d2\uff09<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u6df1\u5ea6\u6293\u53d6\u7684\u5b9e\u73b0\u8981\u70b9<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u6293\u53d6\u6b63\u6587\u65f6\u4f7f\u7528\u4e86<strong>\u4e09\u7ea7\u964d\u7ea7\u7b56\u7565<\/strong>::<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>trafilatura<\/strong>\uff1a\u9996\u9009\uff0c\u63d0\u53d6\u8d28\u91cf\u6700\u9ad8\uff0c\u5bf9\u4e2d\u6587\u652f\u6301\u597d<\/li>\n\n\n\n<li><strong>readability-lxml<\/strong>\uff1a\u5907\u9009\uff0cMozilla \u51fa\u54c1\uff0c\u7a33\u5b9a\u6027\u597d<\/li>\n\n\n\n<li><strong>goose3<\/strong>\uff1a\u6700\u540e\u515c\u5e95\uff0c\u9002\u5408\u65b0\u95fb\u7c7b\u9875\u9762<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">\u6bcf\u6b21\u6293\u53d6\u540e\u8fd8\u4f1a\u8fdb\u884c<strong>\u8d28\u91cf\u8bc4\u4f30<\/strong>\uff08\u6b63\u6587\u957f\u5ea6\u3001\u4e2d\u6587\u6bd4\u4f8b\u3001\u6807\u9898\u8d28\u91cf\u7b49\uff09\uff0c\u5f97\u5206\u8fc7\u4f4e\u7684\u9875\u9762\u4e0d\u4f1a\u9644\u52a0\u5185\u5bb9\uff0c\u907f\u514d\u5f15\u5165\u566a\u97f3\u3002<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Open WebUI \u8054\u7f51\u641c\u7d22\u914d\u7f6e<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u670d\u52a1\u542f\u52a8\u540e\uff0c\u53ef\u4ee5\u65e0\u7f1d\u5bf9\u63a5 <strong>Open WebUI<\/strong> \u7684\u8054\u7f51\u641c\u7d22\u529f\u80fd\u3002\u914d\u7f6e\u6b65\u9aa4\u5982\u4e0b\uff1a<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">procedure<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u767b\u5f55 Open WebUI \u2192 \u70b9\u51fb\u5de6\u4e0b\u89d2\u7ba1\u7406\u5458\u5934\u50cf \u2192 <strong>\u7ba1\u7406\u5458\u9762\u677f<\/strong>\uff08Admin Panel\uff09<\/li>\n\n\n\n<li>\u5bfc\u822a\u5230 <strong>\u8bbe\u7f6e<\/strong> \u2192 <strong>\u8054\u7f51\u641c\u7d22<\/strong>\uff08Web Search\uff09\u9009\u9879\u5361<\/li>\n\n\n\n<li>\u6309\u4ee5\u4e0b\u53c2\u6570\u586b\u5199\uff1a<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u914d\u7f6e\u9879<\/th><th>\u63a8\u8350\u503c<\/th><\/tr><\/thead><tbody><tr><td>\u641c\u7d22\u5f15\u64ce<\/td><td><code>searxng<\/code><\/td><\/tr><tr><td>Searxng \u67e5\u8be2\u63a5\u53e3\u5730\u5740<\/td><td><code>http:\/\/localhost:8888\/search<\/code><\/td><\/tr><tr><td>\u641c\u7d22\u7ed3\u679c\u6570\u91cf<\/td><td><code>1-3<\/code>\uff08\u63a8\u8350 2\uff09<\/td><\/tr><tr><td>\u5e76\u53d1\u8bf7\u6c42\u6570<\/td><td><code>0<\/code><\/td><\/tr><tr><td>\u2705 \u7ed5\u8fc7\u5d4c\u5165\u548c\u68c0\u7d22<\/td><td><strong>\u5f00\u542f<\/strong><\/td><\/tr><tr><td>\u2705 \u7ed5\u8fc7\u7f51\u9875\u52a0\u8f7d\u5668<\/td><td><strong>\u5f00\u542f<\/strong><\/td><\/tr><tr><td>\u7f51\u9875\u52a0\u8f7d\u5f15\u64ce<\/td><td><code>\u9ed8\u8ba4<\/code><\/td><\/tr><tr><td>\u8d85\u65f6\u65f6\u95f4<\/td><td><code>5<\/code> \u79d2<\/td><\/tr><tr><td>SSL \u9a8c\u8bc1<\/td><td><strong>\u5173\u95ed<\/strong><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li>\u70b9\u51fb <strong>\u4fdd\u5b58<\/strong><\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">\u53c2\u6570\u8bf4\u660e<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u641c\u7d22\u7ed3\u679c\u6570\u91cf\u8bbe\u4e3a 1-3<\/strong>\uff1a\u914d\u5408\u6df1\u5ea6\u6293\u53d6\u529f\u80fd\uff0c\u6570\u91cf\u8fc7\u591a\u4f1a\u589e\u52a0\u54cd\u5e94\u5ef6\u8fdf\u3002\u5efa\u8bae\u8bbe\u4e3a 2\uff0c\u65e2\u4fdd\u8bc1\u4fe1\u606f\u91cf\u53c8\u517c\u987e\u901f\u5ea6\u3002<\/li>\n\n\n\n<li><strong>\u5e76\u53d1\u8bf7\u6c42\u6570\u8bbe\u4e3a 0<\/strong>\uff1a\u7531\u672c\u670d\u52a1\u5185\u90e8\u63a7\u5236\u5e76\u53d1\uff08<code>DEEP_CRAWL_CONCURRENT<\/code>\uff09\uff0c\u907f\u514d\u5728 Open WebUI \u4fa7\u91cd\u590d\u9650\u6d41\u3002<\/li>\n\n\n\n<li><strong>\u7ed5\u8fc7\u5d4c\u5165\u548c\u68c0\u7d22<\/strong> + <strong>\u7ed5\u8fc7\u7f51\u9875\u52a0\u8f7d\u5668<\/strong>\uff1a\u672c\u670d\u52a1\u5df2\u5c06\u6df1\u5ea6\u6293\u53d6\u5185\u5bb9\u9644\u52a0\u5230 <code>content<\/code> \u5b57\u6bb5\uff0c\u65e0\u9700 Open WebUI \u518d\u989d\u5916\u52a0\u8f7d\u9875\u9762\uff0c\u907f\u514d\u53cc\u91cd\u6293\u53d6\u548c IP \u98ce\u63a7\u3002<\/li>\n\n\n\n<li><strong>SSL \u9a8c\u8bc1\u5173\u95ed<\/strong>\uff1a\u672c\u670d\u52a1\u4f7f\u7528\u81ea\u7b7e\u540d\/\u975e\u6807\u51c6\u8bc1\u4e66\u65f6\u907f\u514d\u62a5\u9519\uff08\u672c\u5730\u73af\u5883\u5b89\u5168\uff09\u3002<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u9a8c\u8bc1\u662f\u5426\u751f\u6548<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u5728\u5bf9\u8bdd\u4e2d\u8f93\u5165\u9700\u8981\u5b9e\u65f6\u4fe1\u606f\u7684\u95ee\u9898\uff08\u5982&#8221;\u4eca\u5929\u6709\u4ec0\u4e48\u65b0\u95fb\uff1f&#8221;\uff09\uff0c\u89c2\u5bdf\u662f\u5426\u89e6\u53d1\u641c\u7d22\u8bf7\u6c42\u3002\u4e5f\u53ef\u4ee5\u5728 Open WebUI \u7684\u65e5\u5fd7\u4e2d\u67e5\u770b\u662f\u5426\u6709 <code>http:\/\/localhost:8888\/search<\/code> \u7684\u8c03\u7528\u8bb0\u5f55\u3002<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u6ce8\u610f\u4e8b\u9879\u4e0e\u514d\u8d23\u58f0\u660e<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u4ec5\u4f9b\u5b66\u4e60\u7814\u7a76\u4f7f\u7528<\/strong>\uff0c\u8bf7\u52ff\u7528\u4e8e\u5546\u4e1a\u6216\u9ad8\u9891\u8bf7\u6c42\u573a\u666f<\/li>\n\n\n\n<li>\u767e\u5ea6\u641c\u7d22\u63a5\u53e3\u672c\u8d28\u662f\u6a21\u62df\u6d4f\u89c8\u5668\u884c\u4e3a\uff0c\u5b58\u5728\u88ab\u9650\u5236\u7684\u98ce\u9669\uff0c\u8bf7\u5408\u7406\u63a7\u5236\u8bf7\u6c42\u9891\u7387<\/li>\n\n\n\n<li>\u5efa\u8bae\u5728\u672c\u5730\u6216\u5185\u7f51\u90e8\u7f72\uff0c\u4e0d\u8981\u66b4\u9732\u5230\u516c\u7f51<\/li>\n\n\n\n<li>\u6df1\u5ea6\u6293\u53d6\u4f1a\u8bbf\u95ee\u7b2c\u4e09\u65b9\u7f51\u7ad9\uff0c\u8bf7\u5c0a\u91cd\u76ee\u6807\u7f51\u7ad9\u7684 robots.txt \u548c\u670d\u52a1\u6761\u6b3e<\/li>\n\n\n\n<li>\u672c\u9879\u76ee\u4e0d\u5b58\u50a8\u4efb\u4f55\u7528\u6237\u6570\u636e\uff0c\u6240\u6709\u7f13\u5b58\u4ec5\u7528\u4e8e\u63d0\u5347\u54cd\u5e94\u901f\u5ea6<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\"><em>\u4ee5\u4e0a\u914d\u7f6e\u57fa\u4e8e Open WebUI v0.9.x \u7248\u672c\uff0c\u4e0d\u540c\u7248\u672c\u754c\u9762\u53ef\u80fd\u7565\u6709\u5dee\u5f02\uff0c\u6838\u5fc3\u53c2\u6570\u4fdd\u6301\u4e00\u81f4\u3002<\/em><\/p>\n\n\n\n<div class=\"wp-block-file\"><a id=\"wp-block-file--media-506b7be9-af36-4cc7-8612-e17882cfb9cd\" href=\"https:\/\/www.livetops.com\/wp-content\/uploads\/2026\/06\/BaiduSearchProxy_OpenWebUI.zip\">BaiduSearchProxy_OpenWebUI<\/a><a href=\"https:\/\/www.livetops.com\/wp-content\/uploads\/2026\/06\/BaiduSearchProxy_OpenWebUI.zip\" class=\"wp-block-file__button wp-element-button\" download aria-describedby=\"wp-block-file--media-506b7be9-af36-4cc7-8612-e17882cfb9cd\">downloading<\/a><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>","protected":false},"excerpt":{"rendered":"<p>\u7528 Python + Flask \u5b9e\u73b0\u4e00\u4e2a\u517c\u5bb9 SearXNG \u63a5\u53e3\u7684\u672c\u5730\u641c\u7d22\u670d\u52a1\uff0c\u652f\u6301\u6df1\u5ea6\u7f51\u9875\u6293\u53d6 \u80cc\u666f \u5728 [&hellip;]<\/p>","protected":false},"author":1,"featured_media":1552,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"image","meta":{"footnotes":""},"categories":[420],"tags":[294,421,418],"class_list":["post-1548","post","type-post","status-publish","format-image","has-post-thumbnail","hentry","category-python","tag-ai","tag-open-webui","tag-searxng","post_format-post-format-image"],"_links":{"self":[{"href":"https:\/\/www.livetops.com\/en\/wp-json\/wp\/v2\/posts\/1548","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.livetops.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.livetops.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.livetops.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.livetops.com\/en\/wp-json\/wp\/v2\/comments?post=1548"}],"version-history":[{"count":2,"href":"https:\/\/www.livetops.com\/en\/wp-json\/wp\/v2\/posts\/1548\/revisions"}],"predecessor-version":[{"id":1553,"href":"https:\/\/www.livetops.com\/en\/wp-json\/wp\/v2\/posts\/1548\/revisions\/1553"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.livetops.com\/en\/wp-json\/wp\/v2\/media\/1552"}],"wp:attachment":[{"href":"https:\/\/www.livetops.com\/en\/wp-json\/wp\/v2\/media?parent=1548"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.livetops.com\/en\/wp-json\/wp\/v2\/categories?post=1548"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.livetops.com\/en\/wp-json\/wp\/v2\/tags?post=1548"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}