{"id":16989,"date":"2025-01-02T18:42:22","date_gmt":"2025-01-02T10:42:22","guid":{"rendered":"https:\/\/www.aisharenet.com\/?p=16989"},"modified":"2025-01-02T18:50:00","modified_gmt":"2025-01-02T10:50:00","slug":"harbor","status":"publish","type":"post","link":"https:\/\/www.kdjingpai.com\/en\/harbor\/","title":{"rendered":"Harbor\uff1a\u4e00\u952e\u90e8\u7f72\u672c\u5730LLM\u5f00\u53d1\u73af\u5883\uff0c\u8f7b\u677e\u7ba1\u7406\u548c\u8fd0\u884cAI\u670d\u52a1\u7684\u5bb9\u5668\u5316\u5de5\u5177\u96c6"},"content":{"rendered":"<p>Harbor\u662f\u4e00\u4e2a\u9769\u65b0\u6027\u7684\u5bb9\u5668\u5316LLM\u5de5\u5177\u96c6\uff0c\u4e13\u6ce8\u4e8e\u7b80\u5316\u672c\u5730AI\u5f00\u53d1\u73af\u5883\u7684\u90e8\u7f72\u548c\u7ba1\u7406\u3002\u5b83\u901a\u8fc7\u7b80\u6d01\u7684\u547d\u4ee4\u884c\u754c\u9762(CLI)\u548c\u914d\u5957\u5e94\u7528\u7a0b\u5e8f\uff0c\u8ba9\u5f00\u53d1\u8005\u80fd\u591f\u4e00\u952e\u542f\u52a8\u548c\u7ba1\u7406\u5305\u62ecLLM\u540e\u7aef\u3001API\u63a5\u53e3\u3001\u524d\u7aef\u754c\u9762\u5728\u5185\u7684\u6240\u6709AI\u670d\u52a1\u7ec4\u4ef6\u3002\u4f5c\u4e3a\u4e00\u4e2a\u5f00\u6e90\u9879\u76ee\uff0cHarbor\u7279\u522b\u9002\u5408\u9700\u8981\u5feb\u901f\u642d\u5efa\u548c\u5b9e\u9a8cLLM\u5e94\u7528\u7684\u5f00\u53d1\u8005\u3002\u5b83\u4e0d\u4ec5\u652f\u6301\u4e3b\u6d41\u7684AI\u6a21\u578b\u548c\u670d\u52a1\uff0c\u8fd8\u63d0\u4f9b\u4e86\u7075\u6d3b\u7684\u914d\u7f6e\u9009\u9879\u548c\u5b8c\u6574\u7684\u5de5\u5177\u94fe\uff0c\u8ba9\u5f00\u53d1\u8005\u80fd\u591f\u4e13\u6ce8\u4e8e\u5e94\u7528\u5f00\u53d1\u800c\u4e0d\u662f\u73af\u5883\u914d\u7f6e\u3002Harbor\u91c7\u7528Apache 2.0\u5f00\u6e90\u534f\u8bae\uff0c\u62e5\u6709\u6d3b\u8dc3\u7684\u793e\u533a\u652f\u6301\uff0c\u76ee\u524d\u5728GitHub\u4e0a\u5df2\u83b7\u5f97\u8d85\u8fc7770\u9897\u661f\u6807\uff0c\u53d7\u5230\u4f17\u591a\u5f00\u53d1\u8005\u7684\u8ba4\u53ef\u548c\u4f7f\u7528\u3002<\/p>\n<p><img decoding=\"async\" title=\"Harbor\uff1a\u4e00\u952e\u90e8\u7f72\u672c\u5730LLM\u5f00\u53d1\u73af\u5883\uff0c\u8f7b\u677e\u7ba1\u7406\u548c\u8fd0\u884cAI\u670d\u52a1\u7684\u5bb9\u5668\u5316\u5de5\u5177\u96c6-1\" src=\"https:\/\/www.kdjingpai.com\/wp-content\/uploads\/2025\/01\/3bfdccb59eea28e.png\" alt=\"Harbor\uff1a\u4e00\u952e\u90e8\u7f72\u672c\u5730LLM\u5f00\u53d1\u73af\u5883\uff0c\u8f7b\u677e\u7ba1\u7406\u548c\u8fd0\u884cAI\u670d\u52a1\u7684\u5bb9\u5668\u5316\u5de5\u5177\u96c6-1\" \/><\/p>\n<p>&nbsp;<\/p>\n<p><img decoding=\"async\" title=\"Harbor\uff1a\u4e00\u952e\u90e8\u7f72\u672c\u5730LLM\u5f00\u53d1\u73af\u5883\uff0c\u8f7b\u677e\u7ba1\u7406\u548c\u8fd0\u884cAI\u670d\u52a1\u7684\u5bb9\u5668\u5316\u5de5\u5177\u96c6-1\" src=\"https:\/\/www.kdjingpai.com\/wp-content\/uploads\/2025\/01\/0849a4fc368ca2b.png\" alt=\"Harbor\uff1a\u4e00\u952e\u90e8\u7f72\u672c\u5730LLM\u5f00\u53d1\u73af\u5883\uff0c\u8f7b\u677e\u7ba1\u7406\u548c\u8fd0\u884cAI\u670d\u52a1\u7684\u5bb9\u5668\u5316\u5de5\u5177\u96c6-1\" \/><\/p>\n<p>&nbsp;<\/p>\n<h2>\u529f\u80fd\u5217\u8868<\/h2>\n<ul>\n<li>\u4e00\u952e\u90e8\u7f72\uff1a\u901a\u8fc7\u5355\u4e00\u547d\u4ee4\u542f\u52a8\u5b8c\u6574\u7684LLM\u670d\u52a1\u73af\u5883<\/li>\n<li>\u5bb9\u5668\u7ba1\u7406\uff1a\u96c6\u6210Docker\u548cDocker Compose\u5b9e\u73b0\u670d\u52a1\u7f16\u6392<\/li>\n<li>\u591a\u540e\u7aef\u652f\u6301\uff1a\u517c\u5bb9\u591a\u79cdLLM\u5f15\u64ce\u548c\u6a21\u578b\u683c\u5f0f(GGUF\u3001SafeTensors\u7b49)<\/li>\n<li>\u670d\u52a1\u96c6\u6210\uff1a\u9884\u914d\u7f6eAPI\u670d\u52a1\u548c\u524d\u7aef\u754c\u9762\u7684\u534f\u540c\u5de5\u4f5c<\/li>\n<li>\u5f00\u53d1\u5de5\u5177\uff1a\u63d0\u4f9b\u5b8c\u6574\u7684\u672c\u5730\u5f00\u53d1\u5de5\u5177\u94fe<\/li>\n<li>\u914d\u7f6e\u7075\u6d3b\uff1a\u652f\u6301\u81ea\u5b9a\u4e49\u670d\u52a1\u7ec4\u4ef6\u548c\u914d\u7f6e\u9009\u9879<\/li>\n<li>SSL\u8bc1\u4e66\uff1a\u5185\u7f6eCertbot\u652f\u6301\uff0c\u8f7b\u677e\u914d\u7f6eHTTPS\u8bbf\u95ee<\/li>\n<li>\u73af\u5883\u8fc1\u79fb\uff1a\u652f\u6301\u914d\u7f6e\u5bfc\u51fa\uff0c\u4fbf\u4e8e\u8fc1\u79fb\u5230\u751f\u4ea7\u73af\u5883<\/li>\n<li>\u76d1\u63a7\u7ba1\u7406\uff1a\u63d0\u4f9b\u670d\u52a1\u72b6\u6001\u76d1\u63a7\u548c\u65e5\u5fd7\u67e5\u770b\u529f\u80fd<\/li>\n<li>\u7248\u672c\u63a7\u5236\uff1a\u652f\u6301\u4e0d\u540c\u7248\u672cAI\u670d\u52a1\u7ec4\u4ef6\u7684\u7ba1\u7406<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h2>\u4f7f\u7528\u5e2e\u52a9<\/h2>\n<h3>1. \u73af\u5883\u51c6\u5907<\/h3>\n<h4>1.1 \u7cfb\u7edf\u8981\u6c42<\/h4>\n<ul>\n<li>\u64cd\u4f5c\u7cfb\u7edf\uff1a\u652f\u6301Linux\u3001MacOS\u6216Windows WSL2<\/li>\n<li>Docker Engine 20.10+<\/li>\n<li>Docker Compose 1.18.0+<\/li>\n<li>Node.js 16+ (\u53ef\u9009\uff0c\u7528\u4e8enpm\u5b89\u88c5\u65b9\u5f0f)<\/li>\n<\/ul>\n<h4>1.2 \u5b89\u88c5Harbor<\/h4>\n<pre><code># \u65b9\u5f0f1\uff1a\u4f7f\u7528npm\u5b89\u88c5\r\nnpm install -g @avlab\/harbor\r\n# \u65b9\u5f0f2\uff1a\u4f7f\u7528curl\u5b89\u88c5\r\ncurl -sfL https:\/\/get.harbor.ai | sh\r\n<\/code><\/pre>\n<h3>2. \u57fa\u7840\u4f7f\u7528<\/h3>\n<h4>2.1 \u542f\u52a8\u670d\u52a1<\/h4>\n<pre><code># \u521d\u59cb\u5316Harbor\u73af\u5883\r\nharbor init\r\n# \u542f\u52a8\u6240\u6709\u670d\u52a1\r\nharbor up\r\n# \u67e5\u770b\u670d\u52a1\u72b6\u6001\r\nharbor ps\r\n<\/code><\/pre>\n<h4>2.2 \u670d\u52a1\u914d\u7f6e<\/h4>\n<pre><code># \u914d\u7f6e\u6a21\u578b\u8def\u5f84\r\nharbor config set models.path \/path\/to\/models\r\n# \u542f\u7528\u7279\u5b9a\u670d\u52a1\r\nharbor enable chatui\r\nharbor enable api\r\n# \u7981\u7528\u670d\u52a1\r\nharbor disable service-name\r\n<\/code><\/pre>\n<h3>3. \u9ad8\u7ea7\u529f\u80fd<\/h3>\n<h4>3.1 SSL\u8bc1\u4e66\u914d\u7f6e<\/h4>\n<pre><code># \u8bbe\u7f6e\u73af\u5883\u53d8\u91cf\r\nexport NGINX_SSL_CERT_FILENAME=fullchain.pem\r\nexport NGINX_SSL_CERT_KEY_FILENAME=privkey.pem\r\nexport CERTBOT_DOMAIN=your_domain.com\r\nexport CERTBOT_EMAIL=your@email.com\r\n# \u83b7\u53d6\u8bc1\u4e66\r\nharbor ssl setup\r\n<\/code><\/pre>\n<h4>3.2 \u81ea\u5b9a\u4e49\u914d\u7f6e<\/h4>\n<pre><code># \u5bfc\u51fa\u914d\u7f6e\r\nharbor eject\r\n# \u4fee\u6539\u914d\u7f6e\u6587\u4ef6\r\nvim harbor.yaml\r\n# \u4f7f\u7528\u81ea\u5b9a\u4e49\u914d\u7f6e\u542f\u52a8\r\nharbor up -c custom-config.yaml\r\n<\/code><\/pre>\n<h3>4. \u5e38\u89c1\u64cd\u4f5c\u6d41\u7a0b<\/h3>\n<h4>4.1 \u90e8\u7f72\u65b0\u670d\u52a1<\/h4>\n<ol>\n<li>\u68c0\u67e5\u670d\u52a1\u5217\u8868\uff1a<code>harbor list<\/code><\/li>\n<li>\u542f\u7528\u6240\u9700\u670d\u52a1\uff1a<code>harbor enable &lt;service-name&gt;<\/code><\/li>\n<li>\u914d\u7f6e\u670d\u52a1\u53c2\u6570\uff1a<code>harbor config set &lt;param&gt; &lt;value&gt;<\/code><\/li>\n<li>\u542f\u52a8\u670d\u52a1\uff1a<code>harbor up<\/code><\/li>\n<li>\u9a8c\u8bc1\u670d\u52a1\u72b6\u6001\uff1a<code>harbor ps<\/code><\/li>\n<\/ol>\n<h4>4.2 \u95ee\u9898\u6392\u67e5<\/h4>\n<pre><code># \u67e5\u770b\u670d\u52a1\u65e5\u5fd7\r\nharbor logs &lt;service-name&gt;\r\n# \u68c0\u67e5\u670d\u52a1\u72b6\u6001\r\nharbor status\r\n# \u91cd\u542f\u670d\u52a1\r\nharbor restart &lt;service-name&gt;\r\n<\/code><\/pre>\n<h3>5. \u6700\u4f73\u5b9e\u8df5<\/h3>\n<ul>\n<li>\u5b9a\u671f\u5907\u4efd\u914d\u7f6e\u6587\u4ef6<\/li>\n<li>\u4f7f\u7528\u7248\u672c\u63a7\u5236\u7ba1\u7406\u81ea\u5b9a\u4e49\u914d\u7f6e<\/li>\n<li>\u76d1\u63a7\u670d\u52a1\u8d44\u6e90\u4f7f\u7528\u60c5\u51b5<\/li>\n<li>\u53ca\u65f6\u66f4\u65b0Harbor\u548c\u76f8\u5173\u7ec4\u4ef6<\/li>\n<li>\u4f7f\u7528\u9879\u76ee\u9884\u8bbe\u52a0\u901f\u90e8\u7f72\u6d41\u7a0b<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h2>\u53ef\u5b89\u88c5\u7684AI\u670d\u52a1<\/h2>\n<h5>\u7528\u6237\u754c\u9762<\/h5>\n<p><a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.1.1-Frontend:-Open-WebUI\">Open WebUI<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.1.2-Frontend:-ComfyUI\">ComfyUI<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.1.3-Frontend:-LibreChat\">LibreChat<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.1.4-Frontend:-ChatUI\">HuggingFace ChatUI<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.1.5-Frontend:-Lobe-Chat\">Lobe Chat<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.1.6-Frontend:-hollama\">Hollama<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.1.7-Frontend:-parllama\">parllama<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.1.8-Frontend:-BionicGPT\">BionicGPT<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.1.9-Frontend:-AnythingLLM\">AnythingLLM<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.1.10-Frontend:-Chat-Nio\">Chat Nio<\/a><\/p>\n<h5>\u540e\u7aef\u670d\u52a1<\/h5>\n<p><a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.2.1-Backend:-Ollama\">Ollama<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.2.2-Backend:-llama.cpp\">llama.cpp<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.2.3-Backend:-vLLM\">vLLM<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.2.4-Backend:-TabbyAPI\">TabbyAPI<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.2.5-Backend:-Aphrodite-Engine\">Aphrodite Engine<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.2.6-Backend:-mistral.rs\">mistral.rs<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.2.7-Backend:-openedai-speech\">openedai-speech<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.2.14-Backend:-Faster-Whisper\">faster-whisper-server<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.2.8-Backend:-Parler\">Parler<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.2.9-Backend:-text-generation-inference\">text-generation-inference<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.2.10-Backend:-lmdeploy\">LMDeploy<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.2.11-Backend:-AirLLM\">AirLLM<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.2.12-Backend:-SGLang\">SGLang<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.2.13-Backend:-KTransformers\">KTransformers<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.2.15-Backend:-Nexa-SDK\">Nexa SDK<\/a><\/p>\n<h5>\u6269\u5c55\u5de5\u5177<\/h5>\n<p><a href=\"https:\/\/github.com\/av\/harbor\/wiki\/5.1.-Harbor-Bench\">Harbor Bench<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/5.2.-Harbor-Boost\">Harbor Boost<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.3.1-Satellite:-SearXNG\">SearXNG<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.3.2-Satellite:-Perplexica\">Perplexica<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.3.3-Satellite:-Dify\">Dify<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.3.4-Satellite:-Plandex\">Plandex<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.3.5-Satellite:-LiteLLM\">LiteLLM<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.3.6-Satellite:-langfuse\">LangFuse<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.3.7-Satellite:-Open-Interpreter\">Open Interpreter<\/a>\u00a0\u2981 \ufe0e<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.3.8-Satellite:-cloudflared\">cloudflared<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.3.9-Satellite:-cmdh\">cmdh<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.3.10-Satellite:-fabric\">fabric<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.3.11-Satellite:-txtai-RAG\">txtai RAG<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.3.12-Satellite:-TextGrad\">TextGrad<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.3.13-Satellite:-aider\">Aider<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.3.14-Satellite:-aichat\">aichat<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.3.16-Satellite:-omnichain\">omnichain<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.3.17-Satellite:-lm-evaluation-harness\">lm-evaluation-harness<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.3.18-Satellite:-JupyterLab\">JupyterLab<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.3.19-Satellite:-ol1\">ol1<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.3.20-Satellite:-OpenHands\">OpenHands<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.3.21-Satellite:-LitLytics\">LitLytics<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.3.22-Satellite:-Repopack\">Repopack<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.3.23-Satellite:-n8n\">n8n<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.3.24-Satellite:-Bolt.new\">Bolt.new<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.3.25-Satellite:-Open-WebUI-Pipelines\">Open WebUI Pipelines<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.3.26-Satellite:-Qdrant\">Qdrant<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.3.27-Satellite:-K6\">K6<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.3.28-Satellite:-Promptfoo\">Promptfoo<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.3.29-Satellite:-Webtop\">Webtop<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.3.30-Satellite:-OmniParser\">OmniParser<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.3.31-Satellite:-Flowise\">Flowise<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.3.32-Satellite:-LangFlow\">Langflow<\/a>\u00a0\u2981\ufe0e\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.3.33-Satellite:-OptiLLM\">OptiLLM<\/a><\/p>\n<p>\u8bf7\u53c2\u9605\u00a0<a href=\"https:\/\/github.com\/av\/harbor\/wiki\/2.-Services\">\u670d\u52a1\u6587\u6863<\/a>\u00a0\u83b7\u53d6\u6bcf\u9879\u670d\u52a1\u7684\u7b80\u8981\u6982\u8ff0\u3002<\/p>\n<p>&nbsp;<\/p>\n<h2>\u4f7f\u7528Harbor\u5b89\u88c5Open WebUI\u7684\u8be6\u7ec6\u6b65\u9aa4<\/h2>\n<h3>1. \u524d\u7f6e\u51c6\u5907<\/h3>\n<ul>\n<li>\u786e\u4fdd\u5df2\u5b89\u88c5Docker\u548cDocker Compose<\/li>\n<li>\u786e\u4fdd\u5df2\u6b63\u786e\u5b89\u88c5Harbor CLI<\/li>\n<li>\u786e\u4fdd\u7cfb\u7edf\u6ee1\u8db3\u57fa\u672c\u8981\u6c42\uff08\u5efa\u8bae8GB\u4ee5\u4e0a\u5185\u5b58\uff09<\/li>\n<\/ul>\n<h3>2. \u521d\u59cb\u5316Harbor\u73af\u5883<\/h3>\n<pre><code># \u521d\u59cb\u5316Harbor\u73af\u5883\r\nharbor init\r\n# \u9a8c\u8bc1Harbor\u73af\u5883\r\nharbor doctor\r\n<\/code><\/pre>\n<h3>3. \u5b89\u88c5\u548c\u914d\u7f6eOpen WebUI<\/h3>\n<h4>3.1 \u542f\u7528WebUI\u670d\u52a1<\/h4>\n<pre><code># \u542f\u7528Open WebUI\u670d\u52a1\r\nharbor enable webui\r\n<\/code><\/pre>\n<h4>3.2 \u914d\u7f6e\u57fa\u672c\u53c2\u6570\uff08\u53ef\u9009\uff09<\/h4>\n<pre><code># \u914d\u7f6eWebUI\u7248\u672c\uff08\u5982\u679c\u9700\u8981\u6307\u5b9a\u7279\u5b9a\u7248\u672c\uff09\r\nharbor webui version &lt;version&gt;\r\n# \u914d\u7f6eWebUI\u7aef\u53e3\uff08\u9ed8\u8ba4\u4e3a8080\uff09\r\nharbor config set webui.port &lt;port_number&gt;\r\n<\/code><\/pre>\n<h3>4. \u542f\u52a8\u670d\u52a1<\/h3>\n<pre><code># \u542f\u52a8\u6240\u6709\u5df2\u542f\u7528\u7684\u670d\u52a1\uff0c\u5305\u62ecWebUI\r\nharbor up\r\n# \u6216\u8005\u4ec5\u542f\u52a8WebUI\u670d\u52a1\r\nharbor up webui\r\n<\/code><\/pre>\n<h3>5. \u9a8c\u8bc1\u5b89\u88c5<\/h3>\n<ul>\n<li>\u8bbf\u95ee http:\/\/localhost:8080 \uff08\u6216\u4f60\u8bbe\u7f6e\u7684\u5176\u4ed6\u7aef\u53e3\uff09<\/li>\n<li>\u68c0\u67e5\u670d\u52a1\u72b6\u6001\uff1a<\/li>\n<\/ul>\n<pre><code>harbor ps\r\n<\/code><\/pre>\n<h3>6. \u5e38\u7528\u7ba1\u7406\u547d\u4ee4<\/h3>\n<h4>\u67e5\u770b\u670d\u52a1\u72b6\u6001<\/h4>\n<pre><code># \u67e5\u770b\u6240\u6709\u8fd0\u884c\u4e2d\u7684\u670d\u52a1\r\nharbor ps\r\n# \u67e5\u770bWebUI\u65e5\u5fd7\r\nharbor logs webui\r\n<\/code><\/pre>\n<h4>\u670d\u52a1\u7ba1\u7406<\/h4>\n<pre><code># \u505c\u6b62WebUI\u670d\u52a1\r\nharbor stop webui\r\n# \u91cd\u542fWebUI\u670d\u52a1\r\nharbor restart webui\r\n# \u66f4\u65b0WebUI\u7248\u672c\r\nharbor webui version latest\r\nharbor restart webui\r\n<\/code><\/pre>\n<h3>7. \u96c6\u6210Ollama\uff08\u53ef\u9009\uff09<\/h3>\n<p>\u5982\u679c\u4f60\u60f3\u4f7f\u7528WebUI\u8fde\u63a5Ollama\uff1a<\/p>\n<pre><code># \u542f\u7528Ollama\u670d\u52a1\r\nharbor enable <a href=\"https:\/\/www.kdjingpai.com\/ollama\/\">ollama<\/a>\r\n# \u91cd\u542f\u670d\u52a1\r\nharbor restart\r\n<\/code><\/pre>\n<h3>8. \u5e38\u89c1\u95ee\u9898\u6392\u67e5<\/h3>\n<h4>\u68c0\u67e5\u670d\u52a1\u5065\u5eb7\u72b6\u6001<\/h4>\n<pre><code>harbor doctor\r\n<\/code><\/pre>\n<h4>\u67e5\u770b\u5177\u4f53\u9519\u8bef\u4fe1\u606f<\/h4>\n<pre><code>harbor logs webui\r\n<\/code><\/pre>\n<h4>\u7aef\u53e3\u51b2\u7a81\u89e3\u51b3<\/h4>\n<p>\u5982\u679c8080\u7aef\u53e3\u88ab\u5360\u7528\uff1a<\/p>\n<pre><code># \u4fee\u6539WebUI\u7aef\u53e3\r\nharbor config set webui.port 8081\r\nharbor restart webui\r\n<\/code><\/pre>\n<h3>9. \u914d\u7f6e\u6587\u4ef6\u4f4d\u7f6e<\/h3>\n<ul>\n<li>\u4e3b\u914d\u7f6e\u6587\u4ef6\uff1a<code>~\/.harbor\/.env<\/code><\/li>\n<li>WebUI\u914d\u7f6e\uff1a<code>~\/.harbor\/open-webui\/<\/code><\/li>\n<\/ul>\n<h3>10. \u5907\u4efd\u5efa\u8bae<\/h3>\n<pre><code># \u5bfc\u51fa\u5f53\u524d\u914d\u7f6e\r\nharbor eject &gt; harbor-backup.yaml\r\n<\/code><\/pre>\n<h3>\u6ce8\u610f\u4e8b\u9879\uff1a<\/h3>\n<ol>\n<li>\u786e\u4fdd\u7cfb\u7edf\u6709\u8db3\u591f\u7684\u8d44\u6e90\u8fd0\u884c\u670d\u52a1<\/li>\n<li>\u9996\u6b21\u542f\u52a8\u53ef\u80fd\u9700\u8981\u4e00\u4e9b\u65f6\u95f4\u6765\u4e0b\u8f7d\u955c\u50cf<\/li>\n<li>\u5982\u679c\u9047\u5230\u6743\u9650\u95ee\u9898\uff0c\u68c0\u67e5Docker\u6743\u9650\u8bbe\u7f6e<\/li>\n<li>\u5efa\u8bae\u5b9a\u671f\u5907\u4efd\u914d\u7f6e\u6587\u4ef6<\/li>\n<li>\u4fdd\u6301Harbor\u548c\u76f8\u5173\u670d\u52a1\u66f4\u65b0\u5230\u6700\u65b0\u7248\u672c<\/li>\n<\/ol>\n<pre><code>\u5f00\u59cb\u4f7f\u7528\uff1a\r\n1. \u5b8c\u6210\u5b89\u88c5\u540e\uff0c\u6253\u5f00\u6d4f\u89c8\u5668\u8bbf\u95ee http:\/\/localhost:8080\r\n2. \u9996\u6b21\u8bbf\u95ee\u65f6\u4f1a\u8981\u6c42\u8fdb\u884c\u57fa\u672c\u8bbe\u7f6e\r\n3. \u53ef\u4ee5\u5f00\u59cb\u4f7f\u7528Open WebUI\u8fdb\u884cAI\u5bf9\u8bdd\u4e86\r\n\u9700\u8981\u5e2e\u52a9\u65f6\u53ef\u4ee5\u4f7f\u7528\uff1a\r\n```bash\r\nharbor help webui<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Harbor\u662f\u4e00\u4e2a\u9769\u65b0\u6027\u7684\u5bb9\u5668\u5316LLM\u5de5\u5177\u96c6\uff0c\u4e13\u6ce8\u4e8e\u7b80\u5316\u672c\u5730AI\u5f00\u53d1\u73af\u5883\u7684\u90e8\u7f72\u548c\u7ba1\u7406\u3002\u5b83\u901a\u8fc7\u7b80\u6d01\u7684\u547d\u4ee4\u884c\u754c\u9762(CLI)\u548c\u914d\u5957\u5e94\u7528\u7a0b\u5e8f\uff0c\u8ba9\u5f00\u53d1\u8005\u80fd\u591f\u4e00\u952e\u542f\u52a8\u548c\u7ba1\u7406\u5305\u62ecLLM\u540e\u7aef\u3001API\u63a5\u53e3\u3001\u524d\u7aef\u754c\u9762\u5728\u5185\u7684\u6240\u6709AI\u670d\u52a1\u7ec4\u4ef6\u3002\u4f5c\u4e3a\u4e00\u4e2a\u5f00\u6e90\u9879\u76ee\uff0cH&#8230;<\/p>\n","protected":false},"author":1,"featured_media":61549,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[20],"tags":[230,232],"class_list":["post-16989","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tool","tag-aikaiyuanxiangmu","tag-bendebushukaiyuanba"],"_links":{"self":[{"href":"https:\/\/www.kdjingpai.com\/en\/wp-json\/wp\/v2\/posts\/16989","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kdjingpai.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kdjingpai.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kdjingpai.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kdjingpai.com\/en\/wp-json\/wp\/v2\/comments?post=16989"}],"version-history":[{"count":0,"href":"https:\/\/www.kdjingpai.com\/en\/wp-json\/wp\/v2\/posts\/16989\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.kdjingpai.com\/en\/wp-json\/wp\/v2\/media\/61549"}],"wp:attachment":[{"href":"https:\/\/www.kdjingpai.com\/en\/wp-json\/wp\/v2\/media?parent=16989"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kdjingpai.com\/en\/wp-json\/wp\/v2\/categories?post=16989"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kdjingpai.com\/en\/wp-json\/wp\/v2\/tags?post=16989"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}