{"id":5151,"date":"2025-12-09T09:28:26","date_gmt":"2025-12-09T00:28:26","guid":{"rendered":"https:\/\/secondlife.lol\/?p=5151"},"modified":"2025-12-09T21:54:20","modified_gmt":"2025-12-09T12:54:20","slug":"open-webui-ollama-settings-korean-api-part3","status":"publish","type":"post","link":"https:\/\/secondlife.lol\/en\/open-webui-ollama-settings-korean-api-part3\/","title":{"rendered":"Open WebUI Ollama \uc124\uc815 \ub05d\uc7a5 \uc815\ub9ac: \ud55c\uad6d\uc5b4 \ud29c\ub2dd + JWT\/API \ud0a4 + \ubaa8\ub378 \uc5f0\uacb0"},"content":{"rendered":"<style>.kb-image5151_952b87-a0 .kb-image-has-overlay:after{opacity:0.3;}<\/style>\n<div class=\"wp-block-kadence-image kb-image5151_952b87-a0\"><figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"600\" height=\"314\" src=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/12\/Django-Open-WebUI-Ollama-600x314.jpg\" alt=\"Django Open WebUI Ollama\" class=\"kb-img wp-image-5152\" srcset=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/12\/Django-Open-WebUI-Ollama-600x314.jpg 600w, https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/12\/Django-Open-WebUI-Ollama-300x157.jpg 300w, https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/12\/Django-Open-WebUI-Ollama-768x401.jpg 768w, https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/12\/Django-Open-WebUI-Ollama-18x9.jpg 18w, https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/12\/Django-Open-WebUI-Ollama.jpg 1200w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/figure><\/div>\n\n\n\n<p>\uc55e\uc120 <a href=\"https:\/\/secondlife.lol\/en\/open-webui-ollama-setup-macbook-part2\/\" data-type=\"post\" data-id=\"5141\">Part 2<\/a>\uae4c\uc9c0\ub294<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ub9e5\ubd81\uc5d0 <strong>Ollama \uc124\uce58<\/strong><\/li>\n\n\n\n<li>Qwen\u00b7Llama3\u00b7EXAONE \uac19\uc740 \ubaa8\ub378 \ub2e4\uc6b4\ub85c\ub4dc<\/li>\n\n\n\n<li>Docker\ub85c <strong>Open WebUI Ollama \ucee8\ud14c\uc774\ub108 \uc2e4\ud589<\/strong><\/li>\n\n\n\n<li><code>http:\/\/localhost:3000<\/code> \uc811\uc18d\uae4c\uc9c0 \uc644\ub8cc<\/li>\n<\/ul>\n\n\n\n<p>\uc5ec\uae30\uae4c\uc9c0\uac00 \u201c\uae30\ubcf8 \uc124\uce58 \ub2e8\uacc4\u201d\uc600\ub2e4\uba74,<br>\uc774\ubc88 3\ubd80\ub294 \ud55c \ub2e8\uacc4 \uc5c5\uadf8\ub808\uc774\ub4dc\ud574\uc11c<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\ubaa8\ub378 \uc5f0\uacb0\uc774 \uc81c\ub300\ub85c \ub418\uc5c8\ub294\uc9c0 \ud655\uc778<\/strong><\/li>\n\n\n\n<li>\ud55c\uad6d\uc5b4\uc5d0 \ub9de\uac8c <strong>\uc2dc\uc2a4\ud15c \ud504\ub86c\ud504\ud2b8 \ud29c\ub2dd<\/strong><\/li>\n\n\n\n<li>\uc7a5\uace0\u00b7\ud30c\uc774\uc36c\uc5d0\uc11c \uc4f8 \uc218 \uc788\ub3c4\ub85d <strong>JWT\/API \ud0a4 \uad6c\uc870 \uc774\ud574<\/strong><\/li>\n\n\n\n<li>Open WebUI Ollama \ud658\uacbd\uc744 <strong>\ubcf4\uc548\u00b7API \uad00\uc810\uc5d0\uc11c \uc815\ub9ac<\/strong><\/li>\n<\/ol>\n\n\n\n<p>\uae4c\uc9c0 \ud55c \ubc88\uc5d0 \uc815\ub9ac\ud574\ubcf4\ub294 \ud30c\ud2b8\uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. \ubaa8\ub378 \uc5f0\uacb0 \uc0c1\ud0dc \ub2e4\uc2dc \uc810\uac80\ud558\uae30<\/h2>\n\n\n\n<p>\uc124\uce58\ub294 \ud588\uc9c0\ub9cc, <strong>Open WebUI\uac00 Ollama \uc11c\ubc84\ub97c \uc81c\ub300\ub85c \ubcf4\uace0 \uc788\ub294\uc9c0<\/strong>\uac00 \uc911\uc694\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1-1. Ollama \uc11c\ubc84 \uc0b4\uc544 \uc788\ub294\uc9c0 \uccb4\ud06c<\/h3>\n\n\n\n<p>In the terminal, type<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ollama list<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>qwen2.5:7b<\/code>, <code>llama3:8b<\/code>, <code>exaone3.5:7.8b<\/code> \uac19\uc740 \ubaa8\ub378\uc774 \ubcf4\uc774\uba74<br>\u2192 \u0392 <strong>Ollama \uc5d4\uc9c4 \ucabd\uc740 OK<\/strong>, Open WebUI Ollama\uc5d0\uc11c\ub9cc \uc798 \ubb3c\ub824\uc8fc\uba74 \ub429\ub2c8\ub2e4.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">1-2. Ollama URL \uc124\uc815<\/h3>\n\n\n\n<p>\ube0c\ub77c\uc6b0\uc800\uc5d0\uc11c <code>http:\/\/localhost:3000<\/code> \uc811\uc18d \ud6c4<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\uc6b0\uc0c1\ub2e8 \ud504\ub85c\ud544 \uc544\uc774\ucf58 \u2192 <strong>\uc124\uc815(Settings)<\/strong><\/li>\n\n\n\n<li>\uc67c\ucabd \uba54\ub274\uc5d0\uc11c <strong>\uc678\ubd80 \ub3c4\uad6c \/ Integrations \/ Connections<\/strong> \ube44\uc2b7\ud55c \ud56d\ubaa9 \uc120\ud0dd<\/li>\n\n\n\n<li><code>Ollama<\/code> \uc139\uc158\uc5d0 \ub2e4\uc74c\ucc98\ub7fc \uc124\uc815:<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Base URL (\ub610\ub294 Server URL):<\/strong> <code>http:\/\/host.docker.internal:11434<\/code><\/li>\n<\/ul>\n\n\n\n<p>\uc65c <code>localhost<\/code>\uac00 \uc544\ub2c8\ub77c <code>host.docker.internal<\/code> \uc778\uc9c0, \ub2e4\uc2dc \ud55c \ubc88 \uc815\ub9ac\ud574\ubcfc\uac8c\uc694.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Open WebUI Ollama\ub294 <strong>Docker \ucee8\ud14c\uc774\ub108 \uc548\uc5d0\uc11c \uc2e4\ud589<\/strong> \uc911<\/li>\n\n\n\n<li>\ucee8\ud14c\uc774\ub108 \uc785\uc7a5\uc5d0\uc11c <code>localhost<\/code>\ub294 \u201c\ucee8\ud14c\uc774\ub108 \uc790\uc2e0\u201d<\/li>\n\n\n\n<li>Ollama\ub294 \ub9e5 \ud638\uc2a4\ud2b8\uc5d0\uc11c <code>localhost:11434<\/code> \ub85c \ub5a0 \uc788\uc73c\ub2c8,<br>\ucee8\ud14c\uc774\ub108\uc5d0\uc11c\ub294 \uadf8 \ud638\uc2a4\ud2b8\ub97c <code>host.docker.internal<\/code> \uc774\ub984\uc73c\ub85c \ubd80\ub974\uac8c \ub429\ub2c8\ub2e4.<\/li>\n<\/ul>\n\n\n\n<p>\uc124\uc815 \ud6c4 \uc800\uc7a5\ud558\uace0,<br>\uc88c\uce21 \uc0c1\ub2e8 <strong>\ubaa8\ub378 \uc120\ud0dd \ub4dc\ub86d\ub2e4\uc6b4<\/strong>\uc744 \uc5f4\uc5b4\ubcf4\uba74<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>qwen2.5:7b<\/code><\/li>\n\n\n\n<li><code>llama3:8b<\/code><\/li>\n\n\n\n<li><code>exaone3.5:7.8b<\/code><\/li>\n<\/ul>\n\n\n\n<p>\ucc98\ub7fc Ollama\uc5d0\uc11c \ub0b4\ub824\ubc1b\uc740 \ubaa8\ub378\ub4e4\uc774 \uc804\ubd80 \ubcf4\uc774\uba74<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\u201cOpen WebUI \u2194 Ollama\u201d<br>\uc5f0\uacb0\uc774 \uc815\uc0c1\uc774\ub77c\ub294 \ub73b\uc785\ub2c8\ub2e4.<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">2. \ud55c\uad6d\uc5b4 \ucd5c\uc801\ud654\ub97c \uc704\ud55c \uc2dc\uc2a4\ud15c \ud504\ub86c\ud504\ud2b8 \uc138\ud305<\/h2>\n\n\n\n<p><strong>\uac19\uc740 \ubaa8\ub378\uc774\ub77c\ub3c4 \ud504\ub86c\ud504\ud2b8\ub97c \uc5b4\ub5bb\uac8c \uc8fc\ub290\ub0d0\uc5d0 \ub530\ub77c \ud488\uc9c8\uc774 \ud655 \ub2ec\ub77c<\/strong>\uc9d1\ub2c8\ub2e4.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2-1. \ubaa8\ub378\ubcc4 \uc2dc\uc2a4\ud15c \ud504\ub86c\ud504\ud2b8 \uc124\uc815 \uc704\uce58<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Open WebUI \ud654\uba74 \uc6b0\uc0c1\ub2e8\uc5d0\uc11c <strong>\ubaa8\ub378 \uc774\ub984<\/strong>\uc744 \ud074\ub9ad<\/li>\n\n\n\n<li><code>Edit<\/code> or <code>Settings<\/code> \ube44\uc2b7\ud55c \ubc84\ud2bc \uc120\ud0dd<\/li>\n\n\n\n<li><code>System Prompt<\/code> or <code>\uc2dc\uc2a4\ud15c \uba54\uc2dc\uc9c0<\/code> \uc601\uc5ed\uc744 \ucc3e\uc2b5\ub2c8\ub2e4.<\/li>\n<\/ol>\n\n\n\n<p>\uc5ec\uae30 \ub0b4\uc6a9\uc744 \uc190\ubcf4\uba74,<br>Open WebUI \uac00 \ud574\ub2f9 \ubaa8\ub378\uc744 \ud638\ucd9c\ud560 \ub54c\ub9c8\ub2e4<br><strong>\ud56d\uc0c1 \uba3c\uc800 \ub123\uc5b4\uc8fc\ub294 \u201c\uae30\ubcf8 \uc9c0\uc2dc\ubb38\u201d<\/strong> \uc5ed\ud560\uc744 \ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2-2. \ucd94\ucc9c \ud55c\uad6d\uc5b4 \uc2dc\uc2a4\ud15c \ud504\ub86c\ud504\ud2b8 \uc608\uc2dc<\/h3>\n\n\n\n<p>\uc544\ub798\uc758 \uc9c0\uc2dc\ubb38\uc740 \uc5b4\ub5a4 \ubaa8\ub378\uc774\ub4e0 \uacf5\ud1b5\uc73c\ub85c \uc4f8 \uc218 \uc788\ub294 \ud15c\ud50c\ub9bf\uc785\ub2c8\ub2e4.<br>\ubaa8\ub378\ubcc4\ub85c \uc0b4\uc9dd\uc529 \ubc14\uafd4\uc8fc\uba74 \uc88b\uc544\uc694.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\ub108\ub294 \ud55c\uad6d\uc5b4 \uc804\uc6a9 \uc778\uacf5\uc9c0\ub2a5 \uc5b4\uc2dc\uc2a4\ud134\ud2b8\uc57c.\n\ubaa8\ub4e0 \ub2f5\ubcc0\uc740 \ubc18\ub4dc\uc2dc \ud55c\uad6d\uc5b4\ub85c\ub9cc \uc791\uc131\ud558\uace0, \uc874\ub313\ub9d0\uc744 \uc0ac\uc6a9\ud574\uc918.\n\ubc18\ub4dc\uc2dc \ub2e4\uc74c \uc6d0\uce59\uc744 \uc9c0\ucf1c\uc918.\n\n1. \uc124\uba85\uc740 \ub2e8\uacc4\ubcc4\ub85c, \ucd08\ubcf4\uc790\ub3c4 \uc774\ud574\ud560 \uc218 \uc788\uac8c \ucc28\uadfc\ucc28\uadfc \uc368\uc918.\n2. \ucf54\ub4dc \uc608\uc2dc\ub97c \uc904 \ub54c\ub294 \uc8fc\uc11d\uc744 \ucda9\ubd84\ud788 \ub2ec\uc544\uc918.\n3. \uc911\uad6d\uc5b4(\ud55c\uc790)\uc640 \uc601\uc5b4 \ubb38\uc7a5\uc740 \uaf2d \ud544\uc694\ud560 \ub54c\ub9cc \uc9e7\uac8c \uc0ac\uc6a9\ud574\uc918.\n4. \ud45c\ub098 \ub9ac\uc2a4\ud2b8\ub85c \uc815\ub9ac\ud560 \uc218 \uc788\ub294 \ub0b4\uc6a9\uc740 \ub418\ub3c4\ub85d \ud45c\ub098 \ubaa9\ub85d\uc73c\ub85c \uc815\ub9ac\ud574\uc918.\n5. \uc9c8\ubb38\uc790\uac00 \"\uc7a5\uace0\"\ub098 \"\uc548\uc804\ubb38\ud654\" \uac19\uc740 \uc804\ubb38 \uc6a9\uc5b4\ub97c \uc4f0\uba74,\n   \uadf8 \ubd84\uc57c\uc5d0 \ub9de\ucdb0 \uc870\uae08 \ub354 \ub514\ud14c\uc77c\ud558\uac8c \uc124\uba85\ud574\uc918.\n\n\uc9c0\uae08\ubd80\ud130 \ub108\ub294 Open WebUI Ollama \ud658\uacbd\uc5d0\uc11c \uc2e4\ud589\ub418\ub294\n\ub85c\uceec LLM\uc774\uc57c. \uc11c\ubc84 \ubc16\uc73c\ub85c\ub294 \uc5b4\ub5a4 \ub370\uc774\ud130\ub3c4 \ub098\uac00\uc9c0 \uc54a\ub294\ub2e4\uace0 \uac00\uc815\ud558\uace0,\n\ubbfc\uac10\ud55c \ub370\uc774\ud130\ub3c4 \ucc45\uc784\uac10 \uc788\uac8c \ub2e4\ub8ec\ub2e4\ub294 \uad00\uc810\uc5d0\uc11c \ub2f5\ubcc0\ud574\uc918.\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\uc774 \ud15c\ud50c\ub9bf\uc744 <code>qwen2.5:7b<\/code>, <code>llama3:8b<\/code>, <code>exaone3.5:7.8b<\/code> \uac01\uac01\uc5d0 \ub9de\uac8c \uc0b4\uc9dd \ud29c\ub2dd\ud558\uba74<br><strong>\ud55c\uad6d\uc5b4 \uc911\uc2ec \ub85c\uceec LLM \ud658\uacbd<\/strong>\uc774 \ub9cc\ub4e4\uc5b4\uc9d1\ub2c8\ub2e4.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">3. JWT \ud1a0\ud070\uacfc API \ud0a4 \u2013 \uc778\uc99d \uad6c\uc870 \uc774\ud574\ud558\uae30<\/h2>\n\n\n<style>.kb-image5151_20467d-53 .kb-image-has-overlay:after{opacity:0.3;}<\/style>\n<div class=\"wp-block-kadence-image kb-image5151_20467d-53\"><figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"600\" height=\"600\" src=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/12\/Open-WebUI-Settings-600x600.jpg\" alt=\"Open WebUI Settings\" class=\"kb-img wp-image-5153\" srcset=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/12\/Open-WebUI-Settings-600x600.jpg 600w, https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/12\/Open-WebUI-Settings-300x300.jpg 300w, https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/12\/Open-WebUI-Settings-150x150.jpg 150w, https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/12\/Open-WebUI-Settings-768x768.jpg 768w, https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/12\/Open-WebUI-Settings-12x12.jpg 12w, https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/12\/Open-WebUI-Settings.jpg 1024w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/figure><\/div>\n\n\n\n<p>\uc774\uc81c\ubd80\ud130\ub294 <strong>\uc7a5\uace0(<a href=\"https:\/\/www.djangoproject.com\/\" target=\"_blank\" rel=\"noopener\">Django<\/a>) \uc5f0\ub3d9\uc744 \uc704\ud55c \uc900\ube44 \ub2e8\uacc4<\/strong>.<br>\uc624\ud508 \uc6f9\uc720\uc544\uc774 \uc62c\ub77c\ub9c8\uc5d0\ub294 \ub2e4\uc74c \ub450 \uac00\uc9c0 \uac1c\ub150\uc774 \ub098\uc635\ub2c8\ub2e4:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>JWT \ud1a0\ud070<\/strong><\/li>\n\n\n\n<li><strong>API \ud0a4 (Secret Key)<\/strong><\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">3-1. \uacc4\uc815 \ud654\uba74\uc5d0\uc11c \ubcf4\ub294 JWT \ud1a0\ud070<\/h3>\n\n\n\n<p><code>\uc124\uc815 \u2192 \uacc4\uc815(Account)<\/code> \ud0ed\uc73c\ub85c \ub4e4\uc5b4\uac00\uba74,<br>\ud558\ub2e8 \uadfc\ucc98\uc5d0 \uc774\ub7f0 \uc2dd\uc73c\ub85c \ubcf4\uc77c \uac70\uc608\uc694:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>JWT \ud1a0\ud070<\/code><\/li>\n\n\n\n<li>\uc624\ub978\ucabd\uc5d0 \u25cf\u25cf\u25cf\u25cf\u25cf\u25cf\u25cf\u25cf\u25cf\u25cf \uac00\ub824\uc9c4 \uac12 + <strong>\ub208 \uc544\uc774\ucf58(\ubcf4\uae30)<\/strong> + <strong>\ubcf5\uc0ac \ubc84\ud2bc<\/strong><\/li>\n<\/ul>\n\n\n\n<p>\uc774 JWT \ud1a0\ud070\uc774 \uc0ac\uc2e4\uc0c1 \u201c\uc774\ubbf8 \ubc1c\uae09\ub41c API \ud1a0\ud070 \uc5ed\ud560\u201d\uc744 \ud569\ub2c8\ub2e4.<br>\uc989, API\ub97c \uc4f8 \ub54c:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Authorization: Bearer &lt;\uc5ec\uae30\uc5d0 JWT \ud1a0\ud070 \uac12&gt;<\/code><\/pre>\n\n\n\n<p>\uc774\ub807\uac8c \ub123\uc5b4\uc8fc\uba74 \uc778\uc99d\uc774 \ud1b5\uacfc\ub429\ub2c8\ub2e4.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\u2757 \ucc38\uace0: \uc77c\ubd80 \ubc84\uc804\uc5d0\uc11c\ub294 <code>+ \uc0c8\ub85c\uc6b4 \ube44\ubc00 \ud0a4 \uc0dd\uc131<\/code> \ubc84\ud2bc\uc774 \ub3d9\uc791 \uc548 \ud558\ub294 \ubc84\uadf8\uac00 \ubcf4\uace0\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.<br>\uc774\ub7f0 \uacbd\uc6b0\uc5d0\ub3c4 JWT \ud1a0\ud070 \uc790\uccb4\ub97c <strong>API \ud0a4\ucc98\ub7fc<\/strong> \uc368\ub3c4 \ubb38\uc81c \uc5c6\uc2b5\ub2c8\ub2e4.<\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">3-2. ENABLE_API_KEY_AUTH=true \ud658\uacbd\ubcc0\uc218<\/h3>\n\n\n\n<p>2\ubd80\uc5d0\uc11c Docker\ub97c \ub744\uc6b8 \ub54c \uc774\ub807\uac8c \ud588\uc5c8\uc8e0.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker run -d -p 3000:8080 \\\n  --add-host=host.docker.internal:host-gateway \\\n  -e ENABLE_API_KEY_AUTH=true \\\n  -e WEBUI_URL=http:\/\/localhost:3000 \\\n  -v open-webui:\/app\/backend\/data \\\n  --name open-webui \\\n  --restart always \\\n  ghcr.io\/open-webui\/open-webui:main<\/code><\/pre>\n\n\n\n<p>where <code>ENABLE_API_KEY_AUTH=true<\/code> \ub97c \uc92c\uae30 \ub54c\ubb38\uc5d0:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Open WebUI Ollama\uac00<br><strong>\u201c\uc678\ubd80\uc5d0\uc11c \uc624\ub294 API \uc694\uccad\uc740 JWT\/API \ud0a4\ub85c \uc778\uc99d\ud558\uaca0\ub2e4\u201d<\/strong><br>\ubaa8\ub4dc\ub85c \ucf1c\uc9c4 \uc0c1\ud0dc\uc785\ub2c8\ub2e4.<\/li>\n<\/ul>\n\n\n\n<p>\uc774\ub807\uac8c \ud574\ub450\uba74 \ub098\uc911\uc5d0:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Django \ubc31\uc5d4\ub4dc\uc5d0\uc11c Open WebUI \uc758 <code>\/api\/chat\/completions<\/code> \uc5d4\ub4dc\ud3ec\uc778\ud2b8\ub97c \ud638\ucd9c\ud560 \ub54c<\/li>\n\n\n\n<li><strong>JWT \ud1a0\ud070\uc744 Bearer\ub85c \ub123\uc5b4\uc11c \uc548\uc804\ud558\uac8c \ud1b5\uc2e0<\/strong>You can.<\/li>\n<\/ul>\n\n\n<style>.kb-image5151_114bd0-5f .kb-image-has-overlay:after{opacity:0.3;}<\/style>\n<div class=\"wp-block-kadence-image kb-image5151_114bd0-5f\"><figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"600\" height=\"600\" src=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/12\/Gemini_Generated_Image_4co7db4co7db4co7-600x600.jpg\" alt=\"api key - jwt token\" class=\"kb-img wp-image-5156\" srcset=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/12\/Gemini_Generated_Image_4co7db4co7db4co7-600x600.jpg 600w, https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/12\/Gemini_Generated_Image_4co7db4co7db4co7-300x300.jpg 300w, https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/12\/Gemini_Generated_Image_4co7db4co7db4co7-150x150.jpg 150w, https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/12\/Gemini_Generated_Image_4co7db4co7db4co7-768x768.jpg 768w, https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/12\/Gemini_Generated_Image_4co7db4co7db4co7-12x12.jpg 12w, https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/12\/Gemini_Generated_Image_4co7db4co7db4co7.jpg 1024w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">4. Open WebUI Ollama API \uc5d4\ub4dc\ud3ec\uc778\ud2b8 \uad6c\uc870 \ubbf8\ub9ac \ub9db\ubcf4\uae30<\/h2>\n\n\n\n<p>\ub2e4\uc74c 4\ubd80\uc5d0\uc11c \ubcf8\uaca9\uc801\uc73c\ub85c \ucf54\ub4dc\ub97c \uc9e4 \uac70\uc9c0\ub9cc,<br>Open WebUI Ollama\uc758 API\uac00 \uc5b4\ub5bb\uac8c \uc0dd\uacbc\ub294\uc9c0, <strong>\uc0b4\uc9dd \ubbf8\ub9ac \ub9db\ub9cc \ubcfc\uac8c\uc694.<\/strong><\/p>\n\n\n\n<p>Open WebUI Ollama\ub294 \uae30\ubcf8\uc801\uc73c\ub85c <strong>OpenAI ChatCompletion \ud638\ud658 API<\/strong>\ub97c \uc81c\uacf5\ud569\ub2c8\ub2e4:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\uc5d4\ub4dc\ud3ec\uc778\ud2b8(\uae30\ubcf8\uac12 \uc608\uc2dc)<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>POST http:\/\/localhost:3000\/api\/chat\/completions<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ud5e4\ub354<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>Authorization: Bearer &lt;JWT \ub610\ub294 API \ud0a4&gt;\nContent-Type: application\/json<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ubc14\ub514 \uc608\uc2dc (Open WebUI Ollama + Qwen2.5 \uae30\uc900)<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code language-json\"><code>{\n  \"model\": \"qwen2.5:7b\",\n  \"messages\": &#91;\n    { \"role\": \"system\", \"content\": \"\ub108\ub294 \ud55c\uad6d\uc5b4\ub85c\ub9cc \ub2f5\ubcc0\ud558\ub294 AI.\" },\n    { \"role\": \"user\", \"content\": \"Open WebUI Ollama \uc870\ud569\uc774 \ubb50\uc57c? \uc27d\uac8c \uc124\uba85\ud574\uc918.\" }\n  ]\n}<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\uc751\ub2f5 \uc608\uc2dc \uad6c\uc870 (OpenAI \uc2a4\ud0c0\uc77c)<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code language-json\"><code>{\n  \"id\": \"chatcmpl-xxxx\",\n  \"object\": \"chat.completion\",\n  \"choices\": &#91;\n    {\n      \"index\": 0,\n      \"message\": {\n        \"role\": \"assistant\",\n        \"content\": \"Open WebUI Ollama\ub294 ...\"\n      },\n      \"finish_reason\": \"stop\"\n    }\n  ]\n}<\/code><\/pre>\n\n\n\n<p>\uc774 \uad6c\uc870\ub9cc \uba38\ub9bf\uc18d\uc5d0 \ub4e4\uc5b4\uc624\uba74,<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\u201c\uc544, Ollama \uae30\ubc18\uc758 Open WebUI \ub294 \uadf8\ub0e5 \ub0b4 \ub9e5\ubd81 \uc548\uc5d0 \uc788\ub294 OpenAI \ud638\ud658 \uc11c\ubc84\uad6c\ub098\u201d<\/p>\n<\/blockquote>\n\n\n\n<p>\ub77c\uace0 \uc774\ud574\ud558\uc2dc\uba74 \ub429\ub2c8\ub2e4.<br>\ub2e4\uc74c 4\ubd80\uc5d0\uc11c\ub294 \uc774\uac78 <strong>Python \ucf54\ub4dc + Postman<\/strong>\uc73c\ub85c \uc9c1\uc811 \ud638\ucd9c\ud574\ubcfc \uac70\uc608\uc694.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">5. \ubcf4\uc548 \uad00\uc810\uc5d0\uc11c \ubcf4\ub294 Ollama \uae30\ubc18 Open WebUI \u2013 \ubb34\uc5c7\uc744 \uc870\uc2ec\ud574\uc57c \ud560\uae4c?<\/h2>\n\n\n\n<p>Ollama \uae30\ubc18\uc758 Open WebUI \ub294 \u201c\ub85c\uceec\uc5d0\uc11c\ub9cc \ub3cc\uae30 \ub54c\ubb38\uc5d0 \uc548\uc804\ud558\ub2e4\u201d\ub294 \ud070 \uc7a5\uc810\uc774 \uc788\uc9c0\ub9cc,<br>\uadf8\ub798\ub3c4 \uba87 \uac00\uc9c0\ub294 \uaf2d \uccb4\ud06c\ud574\ub450\uba74 \uc88b\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\ud3ec\ud2b8\ub97c \uc678\ubd80\uc5d0 \uadf8\ub300\ub85c \ub178\ucd9c\ud558\uc9c0 \uc54a\uae30<\/strong>\n<ul class=\"wp-block-list\">\n<li>\uc9c0\uae08\uc740 <code>localhost:3000<\/code> \uc774\ub77c\uc11c \ub9e5\ubd81 \uc548\uc5d0\uc11c\ub9cc \uc811\uadfc \uac00\ub2a5<\/li>\n\n\n\n<li>\uad73\uc774 \ud3ec\ud2b8\ub97c \uacf5\uc720\uae30\uc5d0\uc11c \ud3ec\uc6cc\ub529\ud558\uac70\ub098, \ud68c\uc0ac \ub124\ud2b8\uc6cc\ud06c\uc5d0\uc11c \uc5f4\uc5b4\ub450\uc9c0 \uc54a\ub294 \uac8c \uc88b\uc2b5\ub2c8\ub2e4.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>JWT\/API \ud0a4\ub97c GitHub \ub4f1\uc5d0 \uc62c\ub9ac\uc9c0 \uc54a\uae30<\/strong>\n<ul class=\"wp-block-list\">\n<li><code>.env<\/code> \ud30c\uc77c\uc5d0 <code>OPENWEBUI_API_KEY<\/code> \uac19\uc740 \uc774\ub984\uc73c\ub85c \ub123\uace0<br><code>.gitignore<\/code>In <code>.env<\/code>\ub97c \ubc18\ub4dc\uc2dc \ud3ec\ud568<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\uc5ec\ub7ec \uc0ac\ub78c\uc774 \uac19\uc740 Open WebUI Ollama \uc778\uc2a4\ud134\uc2a4\ub97c \uc4f4\ub2e4\uba74?<\/strong>\n<ul class=\"wp-block-list\">\n<li>Admin Panel\uc5d0\uc11c \uacc4\uc815\ubcc4 \uad8c\ud55c(Role)\uc744 \ub098\ub204\uace0<\/li>\n\n\n\n<li>\uad00\ub9ac\uc790\uac00 \uc544\ub2cc \uacc4\uc815\uc5d0\ub294 \ubbfc\uac10\ud55c \uc791\uc5c5(\uc9c0\uc2dd\ubca0\uc774\uc2a4, \uc124\uc815 \ubcc0\uacbd \ub4f1)\uc744 \uc81c\ud55c<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p>\ud2b9\ud788, \ub098\uc911\uc5d0 <strong>\uc870\uc9c1\ubb38\ud654 \uc9c4\ub2e8 \uc2dc\uc2a4\ud15c\u00b7\uc0ac\ub0b4 \ub9ac\ud3ec\ud2b8<\/strong>\uc640 \uc5f0\uacb0\ud560 \ub54c\ub294<br>Ollama \uae30\ubc18 Open WebUI \uac00 \uace7 <strong>\uc0ac\ub0b4 LLM \ud5c8\ube0c<\/strong> \uc5ed\ud560\uc744 \ud558\uac8c \ub418\ubbc0\ub85c,<br>\ucd08\uae30 \uc124\uc815 \ub2e8\uacc4\uc5d0\uc11c \ubcf4\uc548 \uac10\uac01\uc744 \ud55c \ubc88 \uc9da\uace0 \uac00\ub294 \uac8c \uc88b\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">6. 3\ubd80 \uc815\ub9ac <\/h2>\n\n\n\n<p>\uc9c0\uae08\uae4c\uc9c0 3\ubd80\uc5d0\uc11c \ud55c \uc77c\uc744 \uc815\ub9ac\ud558\uba74:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Open WebUI \u2194 Ollama \uc11c\ubc84 \uc5f0\uacb0 \ud655\uc778<\/strong><\/li>\n\n\n\n<li>\ud55c\uad6d\uc5b4\uc5d0 \ub9de\ub294 <strong>\uc2dc\uc2a4\ud15c \ud504\ub86c\ud504\ud2b8\ub97c \ubaa8\ub378\ubcc4\ub85c \uc124\uc815<\/strong><\/li>\n\n\n\n<li>\uacc4\uc815 \ud654\uba74\uc5d0\uc11c <strong>JWT \ud1a0\ud070\uc744 \ud655\uc778<\/strong>and,<br>\uc774\uac83\uc774 Open WebUI Ollama\uc758 <strong>API \uc778\uc99d \ud1a0\ud070 \uc5ed\ud560<\/strong>\uc744 \ud55c\ub2e4\ub294 \uac78 \uc774\ud574<\/li>\n\n\n\n<li><code>ENABLE_API_KEY_AUTH=true<\/code> \ub85c \ucee8\ud14c\uc774\ub108\ub97c \ub744\uc6cc<br><strong>Ollama <\/strong>\uae30\ubc18 <strong>Open WebUI API \uc778\uc99d \uad6c\uc870\ub97c \ud65c\uc131\ud654<\/strong><\/li>\n\n\n\n<li><code>\/api\/chat\/completions<\/code> \uc5d4\ub4dc\ud3ec\uc778\ud2b8\uac00<br><strong>OpenAI ChatCompletion\uacfc \uac70\uc758 \uac19\ub2e4\ub294 \uac1c\ub150<\/strong>\uae4c\uc9c0 \ub9db\ubcf4\uae30<\/li>\n<\/ol>\n\n\n\n<p>\uc774\uc81c 4\ubd80\uc5d0\uc11c\ub294<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\ud83d\udd1c <strong>\u201cPython\uc5d0\uc11c Open WebUI Ollama API \uc9c1\uc811 \ud638\ucd9c\ud574 \ubcf4\uae30 \u2013 \uba74\ub2f4 \uc694\uc57d\/\ubc88\uc5ed \uc2e4\uc2b5\u201d<\/strong><\/p>\n<\/blockquote>\n\n\n\n<p>\uc73c\ub85c \ub4e4\uc5b4\uac08 \uac81\ub2c8\ub2e4.<\/p>","protected":false},"excerpt":{"rendered":"<p>\uc55e\uc120 2\ubd80\uae4c\uc9c0\ub294 \uc5ec\uae30\uae4c\uc9c0\uac00 \u201c\uae30\ubcf8 \uc124\uce58 \ub2e8\uacc4\u201d\uc600\ub2e4\uba74,\uc774\ubc88 3\ubd80\ub294 \ud55c \ub2e8\uacc4 \uc5c5\uadf8\ub808\uc774\ub4dc\ud574\uc11c&#8230;<\/p>","protected":false},"author":3,"featured_media":5152,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kad_blocks_custom_css":"","_kad_blocks_head_custom_js":"","_kad_blocks_body_custom_js":"","_kad_blocks_footer_custom_js":"","_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[7],"tags":[928,931,927,930,920,916,919,917,918,929],"class_list":["post-5151","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai-coding","tag-api-","tag-django--","tag-jwt-","tag-llm-","tag-macbook-pro","tag-ollama","tag-open-webui","tag-open-webui-ollama","tag--llm","tag-929"],"taxonomy_info":{"category":[{"value":7,"label":"\uc778\uacf5\uc9c0\ub2a5(AI)"}],"post_tag":[{"value":928,"label":"API \ud0a4"},{"value":931,"label":"Django \uc5f0\ub3d9 \uc900\ube44"},{"value":927,"label":"JWT \ud1a0\ud070"},{"value":930,"label":"LLM \ubcf4\uc548"},{"value":920,"label":"MacBook Pro"},{"value":916,"label":"Ollama"},{"value":919,"label":"Open WebUI"},{"value":917,"label":"Open WebUI Ollama"},{"value":918,"label":"\ub85c\uceec LLM"},{"value":929,"label":"\ud55c\uad6d\uc5b4 \ud504\ub86c\ud504\ud2b8"}]},"featured_image_src_large":["https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/12\/Django-Open-WebUI-Ollama-600x314.jpg",600,314,true],"author_info":{"display_name":"TERE","author_link":"https:\/\/secondlife.lol\/en\/author\/tere\/"},"comment_info":0,"category_info":[{"term_id":7,"name":"\uc778\uacf5\uc9c0\ub2a5(AI)","slug":"ai-coding","term_group":0,"term_taxonomy_id":7,"taxonomy":"category","description":"","parent":20,"count":69,"filter":"raw","cat_ID":7,"category_count":69,"category_description":"","cat_name":"\uc778\uacf5\uc9c0\ub2a5(AI)","category_nicename":"ai-coding","category_parent":20}],"tag_info":[{"term_id":928,"name":"API \ud0a4","slug":"api-%ed%82%a4","term_group":0,"term_taxonomy_id":928,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"},{"term_id":931,"name":"Django \uc5f0\ub3d9 \uc900\ube44","slug":"django-%ec%97%b0%eb%8f%99-%ec%a4%80%eb%b9%84","term_group":0,"term_taxonomy_id":931,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"},{"term_id":927,"name":"JWT \ud1a0\ud070","slug":"jwt-%ed%86%a0%ed%81%b0","term_group":0,"term_taxonomy_id":927,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"},{"term_id":930,"name":"LLM \ubcf4\uc548","slug":"llm-%eb%b3%b4%ec%95%88","term_group":0,"term_taxonomy_id":930,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"},{"term_id":920,"name":"MacBook Pro","slug":"macbook-pro","term_group":0,"term_taxonomy_id":920,"taxonomy":"post_tag","description":"","parent":0,"count":3,"filter":"raw"},{"term_id":916,"name":"Ollama","slug":"ollama","term_group":0,"term_taxonomy_id":916,"taxonomy":"post_tag","description":"","parent":0,"count":7,"filter":"raw"},{"term_id":919,"name":"Open WebUI","slug":"open-webui","term_group":0,"term_taxonomy_id":919,"taxonomy":"post_tag","description":"","parent":0,"count":4,"filter":"raw"},{"term_id":917,"name":"Open WebUI Ollama","slug":"open-webui-ollama","term_group":0,"term_taxonomy_id":917,"taxonomy":"post_tag","description":"","parent":0,"count":3,"filter":"raw"},{"term_id":918,"name":"\ub85c\uceec LLM","slug":"%eb%a1%9c%ec%bb%ac-llm","term_group":0,"term_taxonomy_id":918,"taxonomy":"post_tag","description":"","parent":0,"count":4,"filter":"raw"},{"term_id":929,"name":"\ud55c\uad6d\uc5b4 \ud504\ub86c\ud504\ud2b8","slug":"%ed%95%9c%ea%b5%ad%ec%96%b4-%ed%94%84%eb%a1%ac%ed%94%84%ed%8a%b8","term_group":0,"term_taxonomy_id":929,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"}],"_links":{"self":[{"href":"https:\/\/secondlife.lol\/en\/wp-json\/wp\/v2\/posts\/5151","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/secondlife.lol\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/secondlife.lol\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/secondlife.lol\/en\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/secondlife.lol\/en\/wp-json\/wp\/v2\/comments?post=5151"}],"version-history":[{"count":10,"href":"https:\/\/secondlife.lol\/en\/wp-json\/wp\/v2\/posts\/5151\/revisions"}],"predecessor-version":[{"id":5178,"href":"https:\/\/secondlife.lol\/en\/wp-json\/wp\/v2\/posts\/5151\/revisions\/5178"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/secondlife.lol\/en\/wp-json\/wp\/v2\/media\/5152"}],"wp:attachment":[{"href":"https:\/\/secondlife.lol\/en\/wp-json\/wp\/v2\/media?parent=5151"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/secondlife.lol\/en\/wp-json\/wp\/v2\/categories?post=5151"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/secondlife.lol\/en\/wp-json\/wp\/v2\/tags?post=5151"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}