{"id":5104,"date":"2026-07-18T00:03:13","date_gmt":"2026-07-17T15:03:13","guid":{"rendered":"https:\/\/blog.id774.net\/entry\/?p=5104"},"modified":"2026-07-17T09:10:11","modified_gmt":"2026-07-17T00:10:11","slug":"macbook-pro-%e3%81%ab%e3%83%ad%e3%83%bc%e3%82%ab%e3%83%ab-rag-%e3%82%92%e6%a7%8b%e7%af%89%e3%81%99%e3%82%8b","status":"publish","type":"post","link":"https:\/\/blog.id774.net\/entry\/2026\/07\/18\/5104\/","title":{"rendered":"MacBook Pro \u306b\u30ed\u30fc\u30ab\u30eb RAG \u3092\u69cb\u7bc9\u3059\u308b"},"content":{"rendered":"<p>\u524d\u7a3f\u3067\u306f\u3001MacBook Pro \u3067\u30ed\u30fc\u30ab\u30eb LLM \u3092\u5b9f\u7528\u5316\u3059\u308b\u306b\u306f\u3001\u30e2\u30c7\u30eb\u304c\u8d77\u52d5\u3059\u308b\u3060\u3051\u3067\u306a\u304f\u3001\u7528\u9014\u306b\u5bfe\u3057\u3066\u5341\u5206\u306a\u5fdc\u7b54\u901f\u5ea6\u3001\u8a18\u61b6\u5bb9\u91cf\u3001\u30e2\u30c7\u30eb\u898f\u6a21\u3001\u904b\u7528\u65b9\u6cd5\u304c\u6210\u7acb\u3057\u3066\u3044\u306a\u3051\u308c\u3070\u306a\u3089\u306a\u3044\u3053\u3068\u3092\u6574\u7406\u3057\u305f<a href=\"#ref1\">[1]<\/a>\u3002\u30ed\u30fc\u30ab\u30eb RAG \u306e\u69cb\u7bc9\u3067\u306f\u3001\u3053\u306e\u6761\u4ef6\u306b\u6587\u66f8\u51e6\u7406\u3068\u691c\u7d22\u306e\u7d4c\u8def\u304c\u52a0\u308f\u308b\u3002Ollama\u3001Open WebUI\u3001Qdrant \u3092\u8d77\u52d5\u3057\u3001\u753b\u9762\u4e0a\u3067\u30e2\u30c7\u30eb\u3068\u5bfe\u8a71\u3067\u304d\u3066\u3082\u3001\u767b\u9332\u6587\u66f8\u3092\u6839\u62e0\u3068\u3059\u308b\u56de\u7b54\u304c\u751f\u6210\u3055\u308c\u3066\u3044\u306a\u3051\u308c\u3070\u3001\u5b8c\u6210\u3057\u305f\u3068\u306f\u3044\u3048\u306a\u3044\u3002<\/p>\n<p>RAG \u306e\u51e6\u7406\u306f\u3001\u6587\u66f8\u304b\u3089\u6587\u5b57\u3092\u53d6\u308a\u51fa\u3057\u3001\u691c\u7d22\u53ef\u80fd\u306a\u5358\u4f4d\u3078\u5206\u5272\u3057\u3001\u5404\u65ad\u7247\u3092\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u3067\u6570\u5024\u30d9\u30af\u30c8\u30eb\u3078\u5909\u63db\u3057\u3001\u30d9\u30af\u30c8\u30eb\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3078\u4fdd\u5b58\u3059\u308b\u767b\u9332\u7d4c\u8def\u304b\u3089\u59cb\u307e\u308b\u3002\u8cea\u554f\u6642\u306b\u306f\u3001\u8cea\u554f\u6587\u304b\u3089\u540c\u3058\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u3067\u30d9\u30af\u30c8\u30eb\u3092\u751f\u6210\u3057\u3001\u610f\u5473\u306e\u8fd1\u3044\u6587\u66f8\u65ad\u7247\u3092\u691c\u7d22\u3057\u3001\u305d\u306e\u65ad\u7247\u3092\u8cea\u554f\u3068\u3068\u3082\u306b\u751f\u6210\u7528 LLM \u3078\u6e21\u3059\u3002\u767b\u9332\u7d4c\u8def\u3068\u691c\u7d22\u7d4c\u8def\u304c\u540c\u3058\u30d9\u30af\u30c8\u30eb\u7a7a\u9593\u3067\u63a5\u7d9a\u3055\u308c\u3001\u53d6\u5f97\u3055\u308c\u305f\u65ad\u7247\u304c\u751f\u6210\u5165\u529b\u3078\u7d44\u307f\u8fbc\u307e\u308c\u3066\u521d\u3081\u3066\u3001\u5916\u90e8\u6587\u66f8\u3092\u53c2\u7167\u3059\u308b\u56de\u7b54\u304c\u6210\u7acb\u3059\u308b\u3002<\/p>\n<p>\u30ed\u30fc\u30ab\u30eb RAG \u306e\u5b9f\u7528\u6027\u306f\u3001\u30e2\u30c7\u30eb\u3092\u9078\u629e\u3057\u3066\u63a8\u8ad6\u3092\u5b9f\u884c\u3059\u308b\u3060\u3051\u3067\u306f\u6210\u7acb\u3057\u306a\u3044\u3002\u30c7\u30fc\u30bf\u3001\u6a29\u9650\u3001\u65e2\u5b58\u30b7\u30b9\u30c6\u30e0\u3001\u8a55\u4fa1\u5de5\u7a0b\u3078\u63a5\u7d9a\u3059\u308b\u5b9f\u88c5\u306b\u3088\u3063\u3066\u3001\u5358\u767a\u306e\u5bfe\u8a71\u6a5f\u80fd\u304b\u3089\u7d99\u7d9a\u7684\u306a\u51e6\u7406\u57fa\u76e4\u3078\u5909\u308f\u308b<a href=\"#ref2\">[2]<\/a>\u3002RAG \u306f\u3001\u751f\u6210\u30e2\u30c7\u30eb\u304c\u5b66\u7fd2\u6642\u306b\u5185\u90e8\u5316\u3057\u305f\u77e5\u8b58\u3068\u3001\u904b\u7528\u8005\u304c\u5916\u90e8\u3067\u7ba1\u7406\u3059\u308b\u691c\u7d22\u53ef\u80fd\u306a\u77e5\u8b58\u3092\u7d44\u307f\u5408\u308f\u305b\u308b\u69cb\u6210\u3067\u3042\u308b<a href=\"#ref3\">[3]<\/a>\u3002\u3053\u306e\u69cb\u6210\u3067\u306f\u3001\u6d41\u66a2\u306a\u56de\u7b54\u304c\u8fd4\u308b\u3053\u3068\u3088\u308a\u3082\u3001\u9069\u5207\u306a\u6587\u66f8\u65ad\u7247\u304c\u53d6\u5f97\u3055\u308c\u3001\u305d\u306e\u65ad\u7247\u304b\u3089\u9038\u8131\u305b\u305a\u306b\u56de\u7b54\u304c\u751f\u6210\u3055\u308c\u305f\u304b\u3092\u5206\u3051\u3066\u8a55\u4fa1\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b<a href=\"#ref4\">[4]<\/a>\u3002<\/p>\n<p>\u672c\u7a3f\u3067\u306f\u3001Apple Silicon \u642d\u8f09 MacBook Pro \u4e0a\u3067 Ollama \u3092\u76f4\u63a5\u5b9f\u884c\u3057\u3001Open WebUI \u3068 Qdrant \u3092 Docker Compose \u3067\u7ba1\u7406\u3059\u308b\u3002\u751f\u6210\u7528\u30e2\u30c7\u30eb\u306b\u306f qwen3.5:9b-q4_K_M\u3001\u57cb\u3081\u8fbc\u307f\u7528\u30e2\u30c7\u30eb\u306b\u306f embeddinggemma \u3092\u4f7f\u7528\u3059\u308b\u3002Ollama \u3092 macOS \u5074\u3078\u7f6e\u304d\u3001\u753b\u9762\u3068\u30d9\u30af\u30c8\u30eb\u4fdd\u5b58\u5c64\u3092\u30b3\u30f3\u30c6\u30ca\u30fc\u3078\u5206\u96e2\u3059\u308b\u3053\u3068\u3067\u3001\u30e2\u30c7\u30eb\u63a8\u8ad6\u3068\u30b5\u30fc\u30d3\u30b9\u7ba1\u7406\u3092\u5225\u3005\u306b\u66f4\u65b0\u3067\u304d\u308b\u69cb\u6210\u3068\u3059\u308b\u3002<\/p>\n<p>\u69cb\u7bc9\u5f8c\u306b\u306f\u3001\u4e00\u822c\u7684\u306a\u5b66\u7fd2\u30c7\u30fc\u30bf\u304b\u3089\u63a8\u6e2c\u3067\u304d\u306a\u3044\u67b6\u7a7a\u306e\u56fa\u6709\u60c5\u5831\u3092\u6587\u66f8\u3078\u767b\u9332\u3059\u308b\u3002Knowledge \u3092\u63a5\u7d9a\u3057\u306a\u3044\u901a\u5e38\u5bfe\u8a71\u3068\u3001\u767b\u9332\u6587\u66f8\u3092\u63a5\u7d9a\u3057\u305f\u5bfe\u8a71\u3092\u540c\u3058\u8cea\u554f\u3067\u6bd4\u8f03\u3057\u3001\u5f8c\u8005\u3060\u3051\u304c\u6587\u66f8\u5185\u306e\u5024\u3092\u56de\u7b54\u3067\u304d\u308b\u304b\u3092\u78ba\u8a8d\u3059\u308b\u3002\u3053\u306e\u5bfe\u7167\u8a66\u9a13\u306b\u3088\u308a\u3001\u30e2\u30c7\u30eb\u304c\u4e8b\u524d\u77e5\u8b58\u3084\u63a8\u6e2c\u304b\u3089\u56de\u7b54\u3057\u305f\u5834\u5408\u3068\u3001\u691c\u7d22\u3055\u308c\u305f\u6587\u66f8\u65ad\u7247\u3092\u6839\u62e0\u306b\u56de\u7b54\u3057\u305f\u5834\u5408\u3092\u533a\u5225\u3059\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">MacBook Pro<br \/>\n\u2502<br \/>\n\u251c\u2500 macOS<br \/>\n\u2502 &nbsp; &nbsp;\u2514\u2500 Ollama<br \/>\n\u2502 &nbsp; &nbsp; &nbsp; &nbsp; \u251c\u2500 qwen3.5:9b-q4_K_M<br \/>\n\u2502 &nbsp; &nbsp; &nbsp; &nbsp; \u2514\u2500 embeddinggemma<br \/>\n\u2502<br \/>\n\u2514\u2500 Docker Desktop<br \/>\n&nbsp; &nbsp; &nbsp;\u2514\u2500 Docker Compose<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \u251c\u2500 Open WebUI 0.10.2<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \u2514\u2500 Qdrant 1.18.2<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<hr>\n<h2>1. \u30ed\u30fc\u30ab\u30eb RAG \u306e\u5b8c\u6210\u6761\u4ef6\u3092\u56fa\u5b9a\u3059\u308b<\/h2>\n<h3>1.1 \u8d77\u52d5\u6210\u529f\u3068 RAG \u6210\u529f\u306f\u7570\u306a\u308b<\/h3>\n<p>Open WebUI \u306e\u753b\u9762\u304c\u8868\u793a\u3055\u308c\u3001Ollama \u306e\u751f\u6210\u7528\u30e2\u30c7\u30eb\u3068\u5bfe\u8a71\u3067\u304d\u3066\u3082\u3001\u6587\u66f8\u691c\u7d22\u304c\u52d5\u4f5c\u3057\u3066\u3044\u308b\u3068\u306f\u9650\u3089\u306a\u3044\u3002\u901a\u5e38\u5bfe\u8a71\u306f\u3001Open WebUI \u304b\u3089 Ollama \u3078\u8cea\u554f\u3092\u9001\u308a\u3001\u751f\u6210\u7d50\u679c\u3092\u53d7\u3051\u53d6\u308b\u3060\u3051\u3067\u6210\u7acb\u3059\u308b\u3002\u3053\u306e\u7d4c\u8def\u3067\u306f\u3001Qdrant \u3078\u306e\u63a5\u7d9a\u3001\u6587\u66f8\u306e\u57cb\u3081\u8fbc\u307f\u751f\u6210\u3001\u985e\u4f3c\u691c\u7d22\u306e\u3044\u305a\u308c\u3082\u4f7f\u308f\u308c\u306a\u3044\u305f\u3081\u3001RAG \u5074\u306b\u969c\u5bb3\u304c\u3042\u3063\u3066\u3082\u81ea\u7136\u306a\u56de\u7b54\u304c\u8fd4\u308b\u5834\u5408\u304c\u3042\u308b\u3002<\/p>\n<p>\u6587\u66f8\u767b\u9332\u306e\u753b\u9762\u8868\u793a\u3082\u3001\u51e6\u7406\u5b8c\u4e86\u306e\u5341\u5206\u6761\u4ef6\u306b\u306f\u306a\u3089\u306a\u3044\u3002Open WebUI \u306b\u30d5\u30a1\u30a4\u30eb\u540d\u3084 Knowledge \u304c\u8868\u793a\u3055\u308c\u3066\u3044\u3066\u3082\u3001\u6587\u66f8\u5f62\u5f0f\u306b\u5bfe\u5fdc\u3059\u308b\u62bd\u51fa\u51e6\u7406\u304c\u5931\u6557\u3057\u3001\u672c\u6587\u304c\u7a7a\u306b\u306a\u3063\u3066\u3044\u308b\u53ef\u80fd\u6027\u304c\u3042\u308b\u3002\u672c\u6587\u3092\u53d6\u5f97\u3067\u304d\u3066\u3082\u3001\u5206\u5272\u7d50\u679c\u304c\u6975\u7aef\u306b\u77ed\u3044\u3001\u8868\u306e\u884c\u3068\u898b\u51fa\u3057\u304c\u5206\u96e2\u3057\u3066\u3044\u308b\u3001\u6587\u5b57\u30b3\u30fc\u30c9\u306e\u554f\u984c\u3067\u5185\u5bb9\u304c\u5d29\u308c\u3066\u3044\u308b\u5834\u5408\u306b\u306f\u3001\u8cea\u554f\u306b\u5fc5\u8981\u306a\u610f\u5473\u5358\u4f4d\u3092\u57cb\u3081\u8fbc\u307f\u3078\u5909\u63db\u3067\u304d\u306a\u3044\u3002<\/p>\n<p>Qdrant \u306b\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3068\u70b9\u304c\u4f5c\u6210\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u306f\u3001\u767b\u9332\u7d4c\u8def\u304c\u5c11\u306a\u304f\u3068\u3082\u4fdd\u5b58\u6bb5\u968e\u307e\u3067\u9032\u3093\u3060\u3053\u3068\u3092\u793a\u3059\u3002\u305f\u3060\u3057\u3001\u4fdd\u5b58\u3055\u308c\u305f\u30d9\u30af\u30c8\u30eb\u304c\u8cea\u554f\u3068\u540c\u3058\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u3067\u4f5c\u3089\u308c\u3066\u3044\u308b\u304b\u3001\u5404\u70b9\u306e\u4ed8\u968f\u60c5\u5831\u306b\u5143\u6587\u66f8\u306e\u65ad\u7247\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u304b\u3001\u691c\u7d22\u7d50\u679c\u306e\u4e0a\u4f4d\u306b\u5fc5\u8981\u306a\u65ad\u7247\u304c\u5165\u308b\u304b\u306f\u5225\u306e\u78ba\u8a8d\u4e8b\u9805\u3067\u3042\u308b\u3002\u4fdd\u5b58\u4ef6\u6570\u3060\u3051\u3092\u898b\u3066\u3082\u3001\u691c\u7d22\u306b\u4f7f\u3048\u308b\u5185\u5bb9\u304c\u683c\u7d0d\u3055\u308c\u305f\u3068\u306f\u5224\u65ad\u3067\u304d\u306a\u3044\u3002<\/p>\n<p>\u6700\u7d42\u56de\u7b54\u306e\u6b63\u3057\u3055\u306b\u3082\u3001\u540c\u3058\u5224\u5b9a\u4e0a\u306e\u554f\u984c\u304c\u6b8b\u308b\u3002\u751f\u6210\u7528 LLM \u304c\u8cea\u554f\u5bfe\u8c61\u3092\u5b66\u7fd2\u30c7\u30fc\u30bf\u5185\u3067\u77e5\u3063\u3066\u3044\u308b\u5834\u5408\u3001\u6587\u66f8\u691c\u7d22\u3092\u4e00\u5ea6\u3082\u884c\u308f\u306a\u304f\u3066\u3082\u6b63\u7b54\u3067\u304d\u308b\u3002\u53cd\u5bfe\u306b\u3001\u691c\u7d22\u81ea\u4f53\u306f\u6210\u529f\u3057\u3066\u3044\u3066\u3082\u3001\u53d6\u5f97\u65ad\u7247\u306b\u8907\u6570\u306e\u5024\u304c\u542b\u307e\u308c\u3066\u3044\u305f\u308a\u3001\u751f\u6210\u6642\u306e\u6307\u793a\u304c\u66d6\u6627\u3060\u3063\u305f\u308a\u3059\u308c\u3070\u3001\u6587\u66f8\u3068\u306f\u7570\u306a\u308b\u56de\u7b54\u3092\u8fd4\u3059\u3002\u56de\u7b54\u306e\u5916\u5f62\u3060\u3051\u3067\u306f\u3001\u691c\u7d22\u3068\u751f\u6210\u306e\u3069\u3061\u3089\u304c\u6210\u529f\u307e\u305f\u306f\u5931\u6557\u3057\u305f\u306e\u304b\u3092\u5207\u308a\u5206\u3051\u3089\u308c\u306a\u3044\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u78ba\u8a8d\u6bb5\u968e<\/th>\n<th>\u89b3\u5bdf\u3059\u308b\u4e8b\u5b9f<\/th>\n<th>\u6b8b\u308b\u672a\u78ba\u8a8d\u4e8b\u9805<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u30b5\u30fc\u30d3\u30b9\u8d77\u52d5<\/td>\n<td>Ollama\u3001Open WebUI\u3001Qdrant \u306e\u5404\u30d7\u30ed\u30bb\u30b9\u304c\u5fdc\u7b54\u3059\u308b\u3002<\/td>\n<td>\u30b5\u30fc\u30d3\u30b9\u9593\u306e\u63a5\u7d9a\u3001\u6587\u66f8\u767b\u9332\u3001\u691c\u7d22\u7d4c\u8def\u306e\u6210\u7acb\u306f\u78ba\u8a8d\u3067\u304d\u306a\u3044\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u30e2\u30c7\u30eb\u5bfe\u8a71<\/td>\n<td>Open WebUI \u304b\u3089\u751f\u6210\u7528 LLM \u3092\u9078\u629e\u3057\u3001\u56de\u7b54\u3092\u53d6\u5f97\u3067\u304d\u308b\u3002<\/td>\n<td>Qdrant \u3068\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u3092\u4f7f\u7528\u3057\u305f\u304b\u306f\u5206\u304b\u3089\u306a\u3044\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u6587\u66f8\u767b\u9332<\/td>\n<td>Open WebUI \u306b\u30d5\u30a1\u30a4\u30eb\u3068 Knowledge \u304c\u8868\u793a\u3055\u308c\u308b\u3002<\/td>\n<td>\u6587\u5b57\u62bd\u51fa\u3001\u5206\u5272\u3001\u57cb\u3081\u8fbc\u307f\u751f\u6210\u3001\u4fdd\u5b58\u306e\u6210\u5426\u306f\u753b\u9762\u8868\u793a\u3060\u3051\u3067\u306f\u78ba\u5b9a\u3057\u306a\u3044\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u30d9\u30af\u30c8\u30eb\u4fdd\u5b58<\/td>\n<td>Qdrant \u306b\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3068\u70b9\u304c\u4f5c\u6210\u3055\u308c\u308b\u3002<\/td>\n<td>\u5404\u70b9\u306b\u9069\u5207\u306a\u65ad\u7247\u304c\u4fdd\u5b58\u3055\u308c\u3001\u8cea\u554f\u6642\u306b\u53d6\u5f97\u3055\u308c\u308b\u304b\u306f\u5206\u304b\u3089\u306a\u3044\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u985e\u4f3c\u691c\u7d22<\/td>\n<td>\u8cea\u554f\u306b\u5bfe\u3057\u3066\u95a2\u9023\u3059\u308b\u6587\u66f8\u65ad\u7247\u304c\u4e0a\u4f4d\u5019\u88dc\u3068\u3057\u3066\u8fd4\u308b\u3002<\/td>\n<td>\u53d6\u5f97\u65ad\u7247\u304c\u751f\u6210\u7528 LLM \u306e\u5165\u529b\u3078\u5b9f\u969b\u306b\u7d44\u307f\u8fbc\u307e\u308c\u305f\u304b\u306f\u5225\u306b\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u56de\u7b54\u751f\u6210<\/td>\n<td>\u751f\u6210\u7528 LLM \u304c\u8cea\u554f\u306b\u5bfe\u3059\u308b\u81ea\u7136\u306a\u6587\u7ae0\u3092\u8fd4\u3059\u3002<\/td>\n<td>\u767b\u9332\u6587\u66f8\u3092\u6839\u62e0\u306b\u3057\u305f\u56de\u7b54\u304b\u3001\u4e8b\u524d\u77e5\u8b58\u3084\u63a8\u6e2c\u306b\u3088\u308b\u56de\u7b54\u304b\u306f\u5916\u5f62\u3060\u3051\u3067\u306f\u5224\u5225\u3067\u304d\u306a\u3044\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u3053\u306e\u6bb5\u968e\u5206\u3051\u306b\u3088\u308a\u3001\u969c\u5bb3\u306e\u4f4d\u7f6e\u3092\u30b5\u30fc\u30d3\u30b9\u3001\u6587\u66f8\u51e6\u7406\u3001\u57cb\u3081\u8fbc\u307f\u3001\u4fdd\u5b58\u3001\u691c\u7d22\u3001\u751f\u6210\u306e\u3044\u305a\u308c\u304b\u3078\u7d5e\u308a\u8fbc\u3081\u308b\u3002\u305f\u3068\u3048\u3070\u3001Qdrant \u306b\u70b9\u304c\u5b58\u5728\u3057\u306a\u3044\u5834\u5408\u306f\u767b\u9332\u7d4c\u8def\u3092\u8abf\u3079\u3001\u70b9\u306f\u5b58\u5728\u3059\u308b\u304c\u76ee\u7684\u306e\u65ad\u7247\u304c\u691c\u7d22\u3055\u308c\u306a\u3044\u5834\u5408\u306f\u5206\u5272\u65b9\u6cd5\u3068\u57cb\u3081\u8fbc\u307f\u8a2d\u5b9a\u3092\u8abf\u3079\u308b\u3002\u9069\u5207\u306a\u65ad\u7247\u3092\u53d6\u5f97\u3067\u304d\u3066\u3044\u308b\u306e\u306b\u56de\u7b54\u304c\u7570\u306a\u308b\u5834\u5408\u306f\u3001\u751f\u6210\u7528 LLM \u3078\u6e21\u3055\u308c\u305f\u6587\u8108\u3068\u6307\u793a\u3092\u78ba\u8a8d\u3059\u308b\u3002\u5168\u4f53\u3092\u4e00\u3064\u306e\u300cRAG \u306e\u4e0d\u5177\u5408\u300d\u3068\u3057\u3066\u6271\u308f\u305a\u3001\u51e6\u7406\u5883\u754c\u3054\u3068\u306b\u89b3\u6e2c\u53ef\u80fd\u306a\u4e8b\u5b9f\u3092\u7f6e\u304f\u3053\u3068\u304c\u3001\u518d\u73fe\u53ef\u80fd\u306a\u691c\u8a3c\u306e\u524d\u63d0\u306b\u306a\u308b\u3002<\/p>\n<h3>1.2 \u5b8c\u6210\u6761\u4ef6\u3092\u51e6\u7406\u7d4c\u8def\u3067\u5b9a\u7fa9\u3059\u308b<\/h3>\n<p>\u30ed\u30fc\u30ab\u30eb RAG \u306e\u5b8c\u6210\u6761\u4ef6\u306f\u3001\u753b\u9762\u4e0a\u306e\u6a5f\u80fd\u6570\u3067\u306f\u306a\u304f\u3001\u6587\u66f8\u767b\u9332\u304b\u3089\u56de\u7b54\u751f\u6210\u307e\u3067\u306e\u51e6\u7406\u7d4c\u8def\u306b\u3088\u3063\u3066\u5b9a\u7fa9\u3059\u308b\u3002\u767b\u9332\u6642\u306b\u306f\u3001\u539f\u6587\u3092\u691c\u7d22\u53ef\u80fd\u306a\u30d9\u30af\u30c8\u30eb\u3068\u3001\u56de\u7b54\u6642\u306b\u518d\u5229\u7528\u3067\u304d\u308b\u6587\u5b57\u5217\u3078\u5909\u63db\u3059\u308b\u3002\u8cea\u554f\u6642\u306b\u306f\u3001\u8cea\u554f\u3068\u6587\u66f8\u65ad\u7247\u3092\u540c\u3058\u57fa\u6e96\u3067\u6bd4\u8f03\u3057\u3001\u95a2\u9023\u3059\u308b\u65ad\u7247\u3092\u751f\u6210\u5165\u529b\u3078\u623b\u3059\u3002\u4e8c\u3064\u306e\u7d4c\u8def\u306f Qdrant \u306e\u985e\u4f3c\u691c\u7d22\u3067\u63a5\u7d9a\u3055\u308c\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">\u6587\u66f8\u767b\u9332\u7d4c\u8def<br \/>\n<br \/>\n\u6587\u66f8<br \/>\n&nbsp; \u2193<br \/>\n\u6587\u5b57\u62bd\u51fa<br \/>\n&nbsp; \u2193<br \/>\n\u30c1\u30e3\u30f3\u30af\u5206\u5272<br \/>\n&nbsp; \u2193<br \/>\nembeddinggemma \u3067\u57cb\u3081\u8fbc\u307f\u751f\u6210<br \/>\n&nbsp; \u2193<br \/>\n\u30d9\u30af\u30c8\u30eb\u3068\u6587\u66f8\u65ad\u7247\u3092 Qdrant \u3078\u4fdd\u5b58<br \/>\n<br \/>\n<br \/>\n\u8cea\u554f\u691c\u7d22\u7d4c\u8def<br \/>\n<br \/>\n\u8cea\u554f<br \/>\n&nbsp; \u2193<br \/>\nembeddinggemma \u3067\u57cb\u3081\u8fbc\u307f\u751f\u6210<br \/>\n&nbsp; \u2193<br \/>\nQdrant \u3067\u985e\u4f3c\u691c\u7d22<br \/>\n&nbsp; \u2193<br \/>\n\u95a2\u9023\u30c1\u30e3\u30f3\u30af\u3092\u53d6\u5f97<br \/>\n<br \/>\n<br \/>\n\u56de\u7b54\u751f\u6210\u7d4c\u8def<br \/>\n<br \/>\n\u8cea\u554f<br \/>\n&nbsp; \uff0b<br \/>\n\u53d6\u5f97\u3057\u305f\u95a2\u9023\u30c1\u30e3\u30f3\u30af<br \/>\n&nbsp; \u2193<br \/>\nqwen3.5 \u3078\u5165\u529b<br \/>\n&nbsp; \u2193<br \/>\n\u6587\u66f8\u306b\u57fa\u3065\u304f\u56de\u7b54<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>\u767b\u9332\u7d4c\u8def\u3067\u306f\u3001\u6587\u66f8\u65ad\u7247\u3068\u57cb\u3081\u8fbc\u307f\u30d9\u30af\u30c8\u30eb\u306e\u5bfe\u5fdc\u95a2\u4fc2\u3092\u5931\u3063\u3066\u306f\u306a\u3089\u306a\u3044\u3002\u30d9\u30af\u30c8\u30eb\u3060\u3051\u3092\u4fdd\u5b58\u3057\u3066\u3082\u3001\u691c\u7d22\u5f8c\u306b\u751f\u6210\u7528 LLM \u3078\u6e21\u3059\u539f\u6587\u3092\u5fa9\u5143\u3067\u304d\u306a\u3044\u3002\u53cd\u5bfe\u306b\u3001\u539f\u6587\u3060\u3051\u3092\u4fdd\u5b58\u3057\u3066\u57cb\u3081\u8fbc\u307f\u30d9\u30af\u30c8\u30eb\u3092\u4f5c\u3089\u306a\u3051\u308c\u3070\u3001\u8cea\u554f\u3068\u306e\u610f\u5473\u7684\u306a\u8fd1\u3055\u3092\u691c\u7d22\u3067\u304d\u306a\u3044\u3002Qdrant \u306e\u5404\u70b9\u306b\u306f\u3001\u985e\u4f3c\u5ea6\u8a08\u7b97\u306b\u4f7f\u3046\u30d9\u30af\u30c8\u30eb\u3068\u3001\u691c\u7d22\u5f8c\u306b\u53c2\u7167\u3059\u308b\u6587\u66f8\u65ad\u7247\u304a\u3088\u3073\u51fa\u5178\u60c5\u5831\u304c\u5bfe\u5fdc\u3057\u3066\u4fdd\u5b58\u3055\u308c\u308b\u5fc5\u8981\u304c\u3042\u308b\u3002<\/p>\n<p>\u8cea\u554f\u691c\u7d22\u7d4c\u8def\u3067\u306f\u3001\u767b\u9332\u6642\u3068\u8cea\u554f\u6642\u306b\u540c\u3058\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u3092\u4f7f\u3046\u3002\u7570\u306a\u308b\u30e2\u30c7\u30eb\u306f\u3001\u540c\u3058\u6587\u7ae0\u304b\u3089\u7570\u306a\u308b\u6b21\u5143\u6570\u3084\u914d\u7f6e\u898f\u5247\u3092\u6301\u3064\u30d9\u30af\u30c8\u30eb\u3092\u751f\u6210\u3059\u308b\u305f\u3081\u3001\u767b\u9332\u6587\u66f8\u3068\u8cea\u554f\u3092\u540c\u3058\u610f\u5473\u7a7a\u9593\u3067\u6bd4\u8f03\u3067\u304d\u306a\u304f\u306a\u308b\u3002\u30e2\u30c7\u30eb\u3092\u9014\u4e2d\u3067\u5909\u66f4\u3057\u305f\u5834\u5408\u306f\u3001\u8cea\u554f\u5074\u3060\u3051\u3092\u5207\u308a\u66ff\u3048\u308b\u306e\u3067\u306f\u306a\u304f\u3001\u65e2\u5b58\u6587\u66f8\u3092\u65b0\u3057\u3044\u30e2\u30c7\u30eb\u3067\u518d\u5ea6\u57cb\u3081\u8fbc\u307f\u3001Qdrant \u306e\u4fdd\u5b58\u5185\u5bb9\u3092\u4f5c\u308a\u76f4\u3059\u5fc5\u8981\u304c\u3042\u308b\u3002<\/p>\n<p>\u30c1\u30e3\u30f3\u30af\u5206\u5272\u306f\u3001\u691c\u7d22\u5358\u4f4d\u3068\u751f\u6210\u6642\u306e\u6839\u62e0\u5358\u4f4d\u3092\u540c\u6642\u306b\u6c7a\u3081\u308b\u3002\u30c1\u30e3\u30f3\u30af\u304c\u5927\u304d\u3059\u304e\u308b\u3068\u3001\u4e00\u3064\u306e\u30d9\u30af\u30c8\u30eb\u306b\u8907\u6570\u306e\u8a71\u984c\u304c\u6df7\u5728\u3057\u3001\u8cea\u554f\u306b\u5bfe\u5fdc\u3059\u308b\u7b87\u6240\u3068\u7121\u95a2\u4fc2\u306a\u7b87\u6240\u304c\u540c\u6642\u306b\u53d6\u5f97\u3055\u308c\u308b\u3002\u5c0f\u3055\u3059\u304e\u308b\u3068\u3001\u4e3b\u8a9e\u3001\u6761\u4ef6\u3001\u6570\u5024\u3001\u4f8b\u5916\u898f\u5247\u304c\u5225\u3005\u306e\u65ad\u7247\u3078\u5206\u304b\u308c\u3001\u5358\u72ec\u3067\u306f\u610f\u5473\u3092\u78ba\u5b9a\u3067\u304d\u306a\u304f\u306a\u308b\u3002\u91cd\u8907\u90e8\u5206\u306f\u5883\u754c\u3067\u5931\u308f\u308c\u308b\u6587\u8108\u3092\u88dc\u3046\u304c\u3001\u91cd\u8907\u3092\u5897\u3084\u3057\u3059\u304e\u308b\u3068\u985e\u4f3c\u3057\u305f\u65ad\u7247\u304c\u691c\u7d22\u4e0a\u4f4d\u3092\u5360\u6709\u3057\u3001\u7570\u306a\u308b\u6839\u62e0\u3092\u53d6\u5f97\u3067\u304d\u308b\u4ef6\u6570\u304c\u6e1b\u308b\u3002<\/p>\n<p>\u751f\u6210\u7d4c\u8def\u3067\u306f\u3001\u53d6\u5f97\u6210\u529f\u3068\u56de\u7b54\u5fe0\u5b9f\u6027\u3092\u5206\u3051\u3066\u6271\u3046\u3002\u691c\u7d22\u7d50\u679c\u306b\u6b63\u3057\u3044\u65ad\u7247\u304c\u542b\u307e\u308c\u3066\u3044\u3066\u3082\u3001\u751f\u6210\u7528 LLM \u304c\u305d\u306e\u65ad\u7247\u3088\u308a\u4e8b\u524d\u77e5\u8b58\u3092\u512a\u5148\u3059\u308c\u3070\u3001\u767b\u9332\u6587\u66f8\u3068\u7570\u306a\u308b\u56de\u7b54\u306b\u306a\u308b\u3002\u751f\u6210\u6642\u306e\u6307\u793a\u3067\u306f\u3001\u4e0e\u3048\u3089\u308c\u305f\u6587\u66f8\u3092\u6839\u62e0\u3068\u3057\u3001\u6587\u66f8\u306b\u8a18\u8f09\u304c\u306a\u3044\u4e8b\u9805\u3092\u63a8\u6e2c\u3057\u306a\u3044\u3068\u3044\u3046\u5236\u7d04\u3092\u660e\u793a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u3002\u691c\u7d22\u7cbe\u5ea6\u306e\u8abf\u6574\u3060\u3051\u3067\u306f\u3001\u6839\u62e0\u304b\u3089\u9038\u8131\u3059\u308b\u751f\u6210\u3092\u9632\u3052\u306a\u3044\u3002<\/p>\n<p>\u691c\u8a3c\u7528\u6587\u66f8\u306b\u306f\u3001\u4e00\u822c\u77e5\u8b58\u3084\u540d\u79f0\u304b\u3089\u7b54\u3048\u3092\u63a8\u6e2c\u3067\u304d\u306a\u3044\u60c5\u5831\u3092\u5165\u308c\u308b\u3002\u305f\u3068\u3048\u3070\u3001\u67b6\u7a7a\u306e Argolet \u30b7\u30b9\u30c6\u30e0\u306b\u3064\u3044\u3066\u3001\u300c\u672c\u756a\u30dd\u30fc\u30c8\u306f 47821\u300d\u300c\u7dca\u6025\u505c\u6b62\u3067\u306f Lapis-7 \u624b\u9806\u3092\u4f7f\u3046\u300d\u3068\u8a18\u8f09\u3059\u308b\u3002\u540d\u79f0\u3001\u6570\u5024\u3001\u624b\u9806\u540d\u306e\u9593\u306b\u4e00\u822c\u7684\u306a\u95a2\u9023\u304c\u306a\u3044\u305f\u3081\u3001\u30e2\u30c7\u30eb\u304c\u3053\u308c\u3089\u3092\u6b63\u78ba\u306b\u56de\u7b54\u3057\u305f\u5834\u5408\u3001\u767b\u9332\u6587\u66f8\u307e\u305f\u306f\u4f1a\u8a71\u4e2d\u306e\u5165\u529b\u304b\u3089\u53d6\u5f97\u3057\u305f\u53ef\u80fd\u6027\u304c\u9ad8\u3044\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u8a66\u9a13\u6761\u4ef6<\/th>\n<th>\u8cea\u554f<\/th>\n<th>\u671f\u5f85\u3059\u308b\u7d50\u679c<\/th>\n<th>\u5224\u5b9a\u3067\u304d\u308b\u3053\u3068<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Knowledge \u3092\u63a5\u7d9a\u3057\u306a\u3044<\/td>\n<td>Argolet \u306e\u672c\u756a\u30dd\u30fc\u30c8\u3092\u5c0b\u306d\u308b\u3002<\/td>\n<td>\u60c5\u5831\u4e0d\u8db3\u3068\u3057\u3066\u56de\u7b54\u3067\u304d\u306a\u3044\u3002<\/td>\n<td>\u751f\u6210\u7528 LLM \u304c\u4e8b\u524d\u77e5\u8b58\u3068\u3057\u3066\u6b63\u7b54\u3092\u4fdd\u6301\u3057\u3066\u3044\u306a\u3044\u3053\u3068\u3092\u78ba\u8a8d\u3067\u304d\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>Knowledge \u3092\u63a5\u7d9a\u3059\u308b<\/td>\n<td>\u540c\u3058\u8cea\u554f\u3092\u540c\u3058\u8868\u73fe\u3067\u5c0b\u306d\u308b\u3002<\/td>\n<td>47821 \u3068\u56de\u7b54\u3059\u308b\u3002<\/td>\n<td>\u767b\u9332\u6587\u66f8\u306e\u691c\u7d22\u7d50\u679c\u304c\u56de\u7b54\u3078\u53cd\u6620\u3055\u308c\u305f\u3053\u3068\u3092\u78ba\u8a8d\u3067\u304d\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>Knowledge \u3092\u63a5\u7d9a\u3059\u308b<\/td>\n<td>Argolet \u306e\u7dca\u6025\u505c\u6b62\u65b9\u6cd5\u3092\u8868\u73fe\u3092\u5909\u3048\u3066\u5c0b\u306d\u308b\u3002<\/td>\n<td>Lapis-7 \u624b\u9806\u3092\u4f7f\u3046\u3068\u56de\u7b54\u3059\u308b\u3002<\/td>\n<td>\u5358\u7d14\u306a\u6587\u5b57\u5217\u4e00\u81f4\u3067\u306f\u306a\u304f\u3001\u8cea\u554f\u3068\u6587\u66f8\u306e\u610f\u5473\u7684\u306a\u5bfe\u5fdc\u306b\u3088\u3063\u3066\u691c\u7d22\u3067\u304d\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3067\u304d\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>Knowledge \u3092\u63a5\u7d9a\u3059\u308b<\/td>\n<td>\u6587\u66f8\u306b\u8a18\u8f09\u3057\u3066\u3044\u306a\u3044\u5fa9\u65e7\u6642\u9593\u3092\u5c0b\u306d\u308b\u3002<\/td>\n<td>\u6587\u66f8\u304b\u3089\u306f\u5224\u65ad\u3067\u304d\u306a\u3044\u3068\u56de\u7b54\u3059\u308b\u3002<\/td>\n<td>\u53d6\u5f97\u6587\u66f8\u306b\u306a\u3044\u60c5\u5831\u3092\u751f\u6210\u7528 LLM \u304c\u88dc\u5b8c\u3057\u3066\u3044\u306a\u3044\u3053\u3068\u3092\u78ba\u8a8d\u3067\u304d\u308b\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u672a\u63a5\u7d9a\u6642\u306b\u8aa4\u7b54\u3057\u3001\u63a5\u7d9a\u6642\u306b\u6b63\u7b54\u3059\u308b\u3060\u3051\u3067\u306f\u3001\u691c\u8a3c\u3068\u3057\u3066\u306f\u307e\u3060\u5f31\u3044\u3002\u672a\u8a18\u8f09\u4e8b\u9805\u306b\u5bfe\u3057\u3066\u56de\u7b54\u3092\u4fdd\u7559\u3067\u304d\u308b\u304b\u3001\u8cea\u554f\u306e\u8a00\u3044\u63db\u3048\u3067\u3082\u540c\u3058\u6839\u62e0\u3092\u53d6\u5f97\u3067\u304d\u308b\u304b\u3001\u985e\u4f3c\u3057\u305f\u5225\u306e\u6570\u5024\u3092\u6df7\u5728\u3055\u305b\u3066\u3082\u5bfe\u8c61\u3092\u53d6\u308a\u9055\u3048\u306a\u3044\u304b\u3092\u52a0\u3048\u308b\u5fc5\u8981\u304c\u3042\u308b\u3002\u6b63\u7b54\u8a66\u9a13\u3001\u8a00\u3044\u63db\u3048\u8a66\u9a13\u3001\u60c5\u5831\u4e0d\u8db3\u8a66\u9a13\u3092\u7d44\u307f\u5408\u308f\u305b\u308b\u3053\u3068\u3067\u3001\u5358\u306a\u308b\u5076\u7136\u306e\u4e00\u81f4\u3067\u306f\u306a\u304f\u3001\u691c\u7d22\u3068\u751f\u6210\u306e\u4e21\u65b9\u304c\u671f\u5f85\u3069\u304a\u308a\u306b\u6a5f\u80fd\u3057\u3066\u3044\u308b\u304b\u3092\u5224\u5b9a\u3067\u304d\u308b\u3002<\/p>\n<h3>1.3 \u672c\u7a3f\u306e\u69cb\u6210\u5024<\/h3>\n<p>\u69cb\u7bc9\u6642\u306e\u5024\u306f\u3001\u6700\u9069\u5024\u3068\u3057\u3066\u3067\u306f\u306a\u304f\u3001\u518d\u73fe\u53ef\u80fd\u306a\u521d\u671f\u6761\u4ef6\u3068\u3057\u3066\u56fa\u5b9a\u3059\u308b\u3002\u30e2\u30c7\u30eb\u3001\u30b5\u30fc\u30d3\u30b9\u3001\u30c1\u30e3\u30f3\u30af\u8a2d\u5b9a\u3092\u540c\u6642\u306b\u5909\u66f4\u3059\u308b\u3068\u3001\u56de\u7b54\u304c\u5909\u5316\u3057\u3066\u3082\u539f\u56e0\u3092\u7279\u5b9a\u3067\u304d\u306a\u3044\u3002\u6700\u521d\u306b\u4e00\u3064\u306e\u69cb\u6210\u3067\u767b\u9332\u7d4c\u8def\u3068\u691c\u7d22\u7d4c\u8def\u3092\u6210\u7acb\u3055\u305b\u3001\u305d\u306e\u5f8c\u306b\u5909\u66f4\u5bfe\u8c61\u3092\u4e00\u9805\u76ee\u305a\u3064\u5206\u96e2\u3057\u3066\u6bd4\u8f03\u3059\u308b\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u9805\u76ee<\/th>\n<th>\u63a1\u7528\u5024<\/th>\n<th>\u9078\u5b9a\u7406\u7531<\/th>\n<th>\u5909\u66f4\u6642\u306e\u78ba\u8a8d\u4e8b\u9805<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u751f\u6210\u7528 LLM<\/td>\n<td>qwen3.5:9b-q4_K_M \u3092\u4f7f\u7528\u3059\u308b\u3002<\/td>\n<td>\u65e5\u672c\u8a9e\u3092\u542b\u3080\u4e00\u822c\u7684\u306a\u5bfe\u8a71\u306b\u4f7f\u7528\u3067\u304d\u30019B \u7d1a\u306e 4 \u30d3\u30c3\u30c8\u91cf\u5b50\u5316\u30e2\u30c7\u30eb\u3068\u3057\u3066 MacBook Pro \u4e0a\u3067\u691c\u8a3c\u3057\u3084\u3059\u3044\u3002<\/td>\n<td>\u56de\u7b54\u901f\u5ea6\u3001\u8a18\u61b6\u4f7f\u7528\u91cf\u3001\u6587\u66f8\u306b\u5bfe\u3059\u308b\u5fe0\u5b9f\u6027\u3092\u540c\u3058\u8cea\u554f\u30bb\u30c3\u30c8\u3067\u6bd4\u8f03\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb<\/td>\n<td>embeddinggemma \u3092\u4f7f\u7528\u3059\u308b\u3002<\/td>\n<td>\u691c\u7d22\u3068\u985e\u4f3c\u5ea6\u6bd4\u8f03\u306b\u7528\u9014\u3092\u9650\u5b9a\u3057\u305f\u8efd\u91cf\u306a\u591a\u8a00\u8a9e\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u3067\u3042\u308a\u3001\u751f\u6210\u7528 LLM \u3068\u5f79\u5272\u3092\u5206\u96e2\u3067\u304d\u308b\u3002<\/td>\n<td>\u5909\u66f4\u5f8c\u306f\u65e2\u5b58\u6587\u66f8\u3092\u3059\u3079\u3066\u518d\u57cb\u3081\u8fbc\u307f\u3057\u3001\u691c\u7d22\u9806\u4f4d\u3092\u518d\u8a55\u4fa1\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>Open WebUI<\/td>\n<td>0.10.2 \u3092\u4f7f\u7528\u3059\u308b\u3002<\/td>\n<td>\u69cb\u7bc9\u6642\u70b9\u306e\u7248\u3092\u56fa\u5b9a\u3057\u3001\u8a2d\u5b9a\u9805\u76ee\u3001\u6587\u66f8\u51e6\u7406\u3001Knowledge \u306e\u6319\u52d5\u304c\u66f4\u65b0\u306b\u3088\u3063\u3066\u5909\u308f\u3063\u305f\u5834\u5408\u306b\u5dee\u5206\u3092\u8ffd\u8de1\u3067\u304d\u308b\u3088\u3046\u306b\u3059\u308b\u3002<\/td>\n<td>\u66f4\u65b0\u5f8c\u306f\u6587\u66f8\u767b\u9332\u3001\u691c\u7d22\u7d50\u679c\u3001\u74b0\u5883\u5909\u6570\u306e\u65e2\u5b9a\u5024\u3092\u518d\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>Qdrant<\/td>\n<td>1.18.2 \u3092\u4f7f\u7528\u3059\u308b\u3002<\/td>\n<td>\u30d9\u30af\u30c8\u30eb\u4fdd\u5b58\u5c64\u306e\u7248\u3092\u56fa\u5b9a\u3057\u3001\u4fdd\u5b58\u5f62\u5f0f\u3084\u691c\u7d22\u6319\u52d5\u306e\u5909\u66f4\u3092\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u5074\u306e\u5909\u66f4\u3068\u5206\u96e2\u3059\u308b\u3002<\/td>\n<td>\u66f4\u65b0\u524d\u306b\u4fdd\u5b58\u30c7\u30fc\u30bf\u3092\u9000\u907f\u3057\u3001\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3001\u70b9\u6570\u3001\u691c\u7d22\u7d50\u679c\u304c\u7dad\u6301\u3055\u308c\u308b\u304b\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u30c1\u30e3\u30f3\u30af\u30b5\u30a4\u30ba<\/td>\n<td>1000 \u6587\u5b57\u3092\u521d\u671f\u5024\u3068\u3059\u308b\u3002<\/td>\n<td>Open WebUI \u306e\u65e2\u5b9a\u5024\u3092\u51fa\u767a\u70b9\u3068\u3057\u3001\u4e00\u3064\u306e\u65ad\u7247\u3078\u542b\u307e\u308c\u308b\u8a71\u984c\u6570\u3068\u3001\u8cea\u554f\u306b\u5fc5\u8981\u306a\u6761\u4ef6\u306e\u307e\u3068\u307e\u308a\u3092\u78ba\u8a8d\u3057\u306a\u304c\u3089\u8abf\u6574\u3059\u308b\u3002<\/td>\n<td>\u691c\u7d22\u7d50\u679c\u306b\u7121\u95a2\u4fc2\u306a\u6bb5\u843d\u304c\u6df7\u5728\u3059\u308b\u5834\u5408\u306f\u7e2e\u5c0f\u3057\u3001\u6761\u4ef6\u3084\u6570\u5024\u304c\u5206\u65ad\u3055\u308c\u308b\u5834\u5408\u306f\u62e1\u5927\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u30c1\u30e3\u30f3\u30af\u91cd\u8907<\/td>\n<td>100 \u6587\u5b57\u3092\u521d\u671f\u5024\u3068\u3059\u308b\u3002<\/td>\n<td>\u6bb5\u843d\u3084\u6587\u306e\u5883\u754c\u4ed8\u8fd1\u306b\u3042\u308b\u4e3b\u8a9e\u3001\u6761\u4ef6\u3001\u6570\u5024\u304c\u5b8c\u5168\u306b\u5206\u96e2\u3055\u308c\u308b\u3053\u3068\u3092\u6291\u3048\u308b\u3002<\/td>\n<td>\u540c\u3058\u5185\u5bb9\u306e\u65ad\u7247\u304c\u691c\u7d22\u4e0a\u4f4d\u3092\u5360\u6709\u3059\u308b\u5834\u5408\u306f\u91cd\u8907\u91cf\u3092\u6e1b\u3089\u3059\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u53d6\u5f97\u4ef6\u6570<\/td>\n<td>3 \u4ef6\u3092\u521d\u671f\u5024\u3068\u3059\u308b\u3002<\/td>\n<td>\u77ed\u3044\u691c\u8a3c\u6587\u66f8\u3067\u306f\u6839\u62e0\u3092\u9650\u5b9a\u3057\u305f\u65b9\u304c\u3001\u3069\u306e\u65ad\u7247\u304c\u56de\u7b54\u3078\u4f7f\u308f\u308c\u305f\u304b\u3092\u8ffd\u8de1\u3057\u3084\u3059\u3044\u3002<\/td>\n<td>\u8907\u6570\u7b87\u6240\u3092\u7d71\u5408\u3057\u306a\u3051\u308c\u3070\u56de\u7b54\u3067\u304d\u306a\u3044\u8cea\u554f\u3067\u306f\u5897\u3084\u3057\u3001\u7121\u95a2\u4fc2\u306a\u65ad\u7247\u304c\u751f\u6210\u3078\u6df7\u5165\u3059\u308b\u5834\u5408\u306f\u6e1b\u3089\u3059\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u751f\u6210\u7528 LLM \u3068\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u306f\u3001\u540c\u3058\u300c\u30e2\u30c7\u30eb\u300d\u3067\u3042\u3063\u3066\u3082\u4ea4\u63db\u6761\u4ef6\u304c\u7570\u306a\u308b\u3002\u751f\u6210\u7528 LLM \u3092\u5909\u66f4\u3057\u305f\u5834\u5408\u3001\u65e2\u5b58\u306e\u30d9\u30af\u30c8\u30eb\u3092\u7dad\u6301\u3057\u305f\u307e\u307e\u3001\u540c\u3058\u691c\u7d22\u7d50\u679c\u306b\u5bfe\u3059\u308b\u56de\u7b54\u54c1\u8cea\u3092\u6bd4\u8f03\u3067\u304d\u308b\u3002\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u3092\u5909\u66f4\u3057\u305f\u5834\u5408\u306f\u3001\u6587\u66f8\u3068\u8cea\u554f\u306e\u914d\u7f6e\u3055\u308c\u308b\u30d9\u30af\u30c8\u30eb\u7a7a\u9593\u305d\u306e\u3082\u306e\u304c\u5909\u308f\u308b\u305f\u3081\u3001\u4fdd\u5b58\u6e08\u307f\u6587\u66f8\u3092\u518d\u5229\u7528\u3057\u3066\u306f\u306a\u3089\u306a\u3044\u3002\u3053\u306e\u9055\u3044\u3092\u7121\u8996\u3059\u308b\u3068\u3001\u751f\u6210\u80fd\u529b\u306e\u5dee\u3068\u691c\u7d22\u9806\u4f4d\u306e\u5dee\u304c\u540c\u6642\u306b\u767a\u751f\u3057\u3001\u6539\u5584\u307e\u305f\u306f\u52a3\u5316\u306e\u539f\u56e0\u3092\u7279\u5b9a\u3067\u304d\u306a\u304f\u306a\u308b\u3002<\/p>\n<p>\u30c1\u30e3\u30f3\u30af\u30b5\u30a4\u30ba\u3001\u91cd\u8907\u91cf\u3001\u53d6\u5f97\u4ef6\u6570\u306b\u3082\u3001\u6587\u66f8\u3092\u554f\u308f\u305a\u901a\u7528\u3059\u308b\u552f\u4e00\u306e\u6700\u9069\u5024\u306f\u306a\u3044\u3002\u624b\u9806\u66f8\u3067\u306f\u3001\u64cd\u4f5c\u540d\u3001\u524d\u63d0\u6761\u4ef6\u3001\u30b3\u30de\u30f3\u30c9\u3001\u8b66\u544a\u3092\u540c\u3058\u65ad\u7247\u3078\u6b8b\u3059\u5fc5\u8981\u304c\u3042\u308b\u3002\u4ed5\u69d8\u4e00\u89a7\u3067\u306f\u3001\u4e00\u9805\u76ee\u304c\u77ed\u3044\u305f\u3081\u3001\u5927\u304d\u306a\u30c1\u30e3\u30f3\u30af\u306b\u3059\u308b\u3068\u7121\u95a2\u4fc2\u306a\u8907\u6570\u9805\u76ee\u304c\u6df7\u5728\u3059\u308b\u3002\u521d\u671f\u5024\u3092\u56fa\u5b9a\u3059\u308b\u76ee\u7684\u306f\u8abf\u6574\u3092\u7701\u304f\u3053\u3068\u3067\u306f\u306a\u304f\u3001\u691c\u7d22\u306b\u5931\u6557\u3057\u305f\u8cea\u554f\u3068\u53d6\u5f97\u65ad\u7247\u3092\u8a18\u9332\u3057\u3001\u6587\u66f8\u69cb\u9020\u306b\u5fdc\u3058\u3066\u5909\u66f4\u3059\u308b\u305f\u3081\u306e\u6bd4\u8f03\u57fa\u6e96\u3092\u4f5c\u308b\u3053\u3068\u306b\u3042\u308b\u3002<\/p>\n<p>\u3053\u306e\u69cb\u6210\u3067\u78ba\u8a8d\u3059\u308b\u306e\u306f\u3001MacBook Pro \u4e0a\u3067\u5404\u30b5\u30fc\u30d3\u30b9\u304c\u8d77\u52d5\u3057\u305f\u3068\u3044\u3046\u4e8b\u5b9f\u3067\u306f\u306a\u3044\u3002\u67b6\u7a7a\u60c5\u5831\u3092\u542b\u3080\u6587\u66f8\u304c\u5206\u5272\u3055\u308c\u3001embeddinggemma \u306e\u30d9\u30af\u30c8\u30eb\u3068\u3057\u3066 Qdrant \u3078\u4fdd\u5b58\u3055\u308c\u3001\u8cea\u554f\u6642\u306b\u5fc5\u8981\u306a\u65ad\u7247\u304c\u53d6\u5f97\u3055\u308c\u3001qwen3.5:9b-q4_K_M \u304c\u305d\u306e\u65ad\u7247\u306e\u7bc4\u56f2\u5185\u3067\u56de\u7b54\u3059\u308b\u3068\u3053\u308d\u307e\u3067\u3092\u4e00\u7d9a\u304d\u306e\u51e6\u7406\u3068\u3057\u3066\u78ba\u304b\u3081\u308b\u3002\u30ed\u30fc\u30ab\u30eb RAG \u306e\u5b8c\u6210\u306f\u3001\u69cb\u6210\u8981\u7d20\u306e\u5b58\u5728\u3067\u306f\u306a\u304f\u3001\u6587\u66f8\u3092\u6839\u62e0\u3078\u5909\u63db\u3059\u308b\u7d4c\u8def\u3092\u89b3\u6e2c\u53ef\u80fd\u306a\u5f62\u3067\u518d\u73fe\u3067\u304d\u308b\u3053\u3068\u306b\u3088\u3063\u3066\u6c7a\u307e\u308b\u3002<\/p>\n<hr>\n<h2>2. Ollama \u3092\u30db\u30b9\u30c8\u3001Open WebUI \u3068 Qdrant \u3092\u30b3\u30f3\u30c6\u30ca\u30fc\u3078\u914d\u7f6e\u3059\u308b<\/h2>\n<h3>2.1 Apple Silicon \u3068 Docker \u306e\u5883\u754c<\/h3>\n<p>\u672c\u69cb\u6210\u3067\u306f\u3001\u63a8\u8ad6\u51e6\u7406\u3092\u62c5\u3046 Ollama \u3092 macOS \u4e0a\u3067\u76f4\u63a5\u52d5\u304b\u3057\u3001\u5bfe\u8a71\u753b\u9762\u3092\u63d0\u4f9b\u3059\u308b Open WebUI \u3068\u3001\u30d9\u30af\u30c8\u30eb\u3092\u4fdd\u5b58\u3059\u308b Qdrant \u3092 Docker Desktop \u4e0a\u3078\u914d\u7f6e\u3059\u308b\u3002\u3059\u3079\u3066\u3092\u30b3\u30f3\u30c6\u30ca\u30fc\u3078\u53ce\u5bb9\u3059\u308b\u306e\u3067\u306f\u306a\u304f\u3001\u8a08\u7b97\u8cc7\u6e90\u3092\u4f7f\u3046\u51e6\u7406\u3068\u3001\u66f4\u65b0\u3084\u4fdd\u5b58\u3092\u7ba1\u7406\u3057\u305f\u3044\u30b5\u30fc\u30d3\u30b9\u3092\u5206\u96e2\u3059\u308b\u3002<\/p>\n<p>Apple Silicon \u3067\u306f\u3001CPU \u3068 GPU \u304c\u540c\u3058\u30e6\u30cb\u30d5\u30a1\u30a4\u30c9\u30e1\u30e2\u30ea\u3092\u5171\u6709\u3059\u308b<a href=\"#ref5\">[5]<\/a>\u3002Ollama \u3092 macOS \u4e0a\u3067\u76f4\u63a5\u5b9f\u884c\u3059\u308b\u3068\u3001\u751f\u6210\u7528 LLM \u3068\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u306e\u63a8\u8ad6\u51e6\u7406\u304b\u3089\u3001\u3053\u306e\u8a08\u7b97\u8cc7\u6e90\u3092\u30db\u30b9\u30c8\u5074\u306e\u5b9f\u88c5\u3092\u901a\u3058\u3066\u5229\u7528\u3067\u304d\u308b\u3002Ollama \u306e macOS \u7248\u306f Apple M \u30b7\u30ea\u30fc\u30ba\u3078\u5bfe\u5fdc\u3057\u3001\u53d6\u5f97\u3057\u305f\u30e2\u30c7\u30eb\u3092\u5229\u7528\u8005\u306e\u30ed\u30fc\u30ab\u30eb\u9818\u57df\u3078\u4fdd\u5b58\u3059\u308b<a href=\"#ref6\">[6]<\/a>\u3002<\/p>\n<p>\u751f\u6210\u7528 LLM \u3068\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u3092\u540c\u3058 Ollama \u4e0a\u3078\u7f6e\u304f\u306e\u306f\u3001\u4e21\u8005\u3092\u540c\u4e00\u30e2\u30c7\u30eb\u3068\u3057\u3066\u6271\u3046\u305f\u3081\u3067\u306f\u306a\u3044\u3002\u751f\u6210\u7528 LLM \u306f\u8cea\u554f\u3068\u53d6\u5f97\u6587\u66f8\u304b\u3089\u56de\u7b54\u3092\u7d44\u307f\u7acb\u3066\u3001\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u306f\u6587\u66f8\u3068\u8cea\u554f\u3092\u691c\u7d22\u53ef\u80fd\u306a\u30d9\u30af\u30c8\u30eb\u3078\u5909\u63db\u3059\u308b\u3002\u5f79\u5272\u306f\u7570\u306a\u308b\u304c\u3001\u30e2\u30c7\u30eb\u306e\u53d6\u5f97\u3001\u8d77\u52d5\u3001API \u63a5\u7d9a\u3001\u4fdd\u5b58\u5834\u6240\u3092\u4e00\u3064\u306e\u30ed\u30fc\u30ab\u30eb\u63a8\u8ad6\u57fa\u76e4\u3078\u96c6\u7d04\u3067\u304d\u308b\u305f\u3081\u3001\u30b3\u30f3\u30c6\u30ca\u30fc\u5185\u3078\u5225\u306e\u63a8\u8ad6\u74b0\u5883\u3092\u69cb\u7bc9\u3059\u308b\u5fc5\u8981\u304c\u306a\u304f\u306a\u308b\u3002<\/p>\n<p>Open WebUI \u3068 Qdrant \u306f Docker Desktop \u4e0a\u3078\u914d\u7f6e\u3059\u308b\u3002Docker Desktop \u306b\u306f Apple Silicon \u7528\u306e\u6b63\u5f0f\u306a\u914d\u5e03\u7269\u304c\u3042\u308a\u3001Arm64 \u74b0\u5883\u306b\u5bfe\u5fdc\u3057\u305f\u30b3\u30f3\u30c6\u30ca\u30fc\u3092\u5b9f\u884c\u3067\u304d\u308b<a href=\"#ref7\">[7]<\/a>\u3002Docker Compose \u3092\u4f7f\u3048\u3070\u3001\u4f7f\u7528\u3059\u308b\u30a4\u30e1\u30fc\u30b8\u3001\u30b5\u30fc\u30d3\u30b9\u9593\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3001\u74b0\u5883\u5909\u6570\u3001\u30dd\u30fc\u30c8\u3001\u4fdd\u5b58\u9818\u57df\u3092\u4e00\u3064\u306e\u69cb\u6210\u30d5\u30a1\u30a4\u30eb\u3078\u56fa\u5b9a\u3067\u304d\u308b<a href=\"#ref8\">[8]<\/a>\u3002<\/p>\n<p>\u30b3\u30f3\u30c6\u30ca\u30fc\u306f\u524a\u9664\u3057\u3066\u518d\u4f5c\u6210\u3067\u304d\u308b\u3053\u3068\u3092\u524d\u63d0\u3068\u3059\u308b\u305f\u3081\u3001Open WebUI \u306e\u5229\u7528\u8005\u60c5\u5831\u3084 Knowledge \u306e\u7ba1\u7406\u60c5\u5831\u3001Qdrant \u306e\u30d9\u30af\u30c8\u30eb\u30c7\u30fc\u30bf\u3092\u30b3\u30f3\u30c6\u30ca\u30fc\u5185\u90e8\u3060\u3051\u3078\u4fdd\u5b58\u3057\u3066\u306f\u306a\u3089\u306a\u3044\u3002\u4fdd\u5b58\u9818\u57df\u3092\u30dc\u30ea\u30e5\u30fc\u30e0\u3068\u3057\u3066\u5206\u96e2\u3059\u308b\u3068\u3001\u30a4\u30e1\u30fc\u30b8\u3092\u66f4\u65b0\u3057\u3066\u30b3\u30f3\u30c6\u30ca\u30fc\u3092\u4f5c\u308a\u76f4\u3057\u3066\u3082\u3001\u904b\u7528\u72b6\u614b\u3092\u5f15\u304d\u7d99\u3052\u308b<a href=\"#ref9\">[9]<\/a>\u3002\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u5b9f\u884c\u74b0\u5883\u3068\u6c38\u7d9a\u30c7\u30fc\u30bf\u3092\u5206\u3051\u308b\u3053\u3068\u3067\u3001\u66f4\u65b0\u5931\u6557\u6642\u306b\u3082\u65e7\u7248\u3078\u623b\u3057\u3084\u3059\u304f\u306a\u308b\u3002<\/p>\n<p>Open WebUI \u306f\u30b3\u30f3\u30c6\u30ca\u30fc\u5185\u304b\u3089\u3001macOS \u4e0a\u3067\u52d5\u4f5c\u3059\u308b Ollama \u306e API \u3078\u63a5\u7d9a\u3059\u308b\u3002\u30b3\u30f3\u30c6\u30ca\u30fc\u5185\u306e localhost \u306f MacBook Pro \u3067\u306f\u306a\u304f\u3001\u305d\u306e\u30b3\u30f3\u30c6\u30ca\u30fc\u81ea\u8eab\u3092\u6307\u3059\u3002Ollama \u306e\u63a5\u7d9a\u5148\u3078 http:\/\/localhost:11434 \u3092\u6307\u5b9a\u3059\u308b\u3068\u3001Open WebUI \u306f\u81ea\u5206\u81ea\u8eab\u306e 11434 \u756a\u30dd\u30fc\u30c8\u3078\u63a5\u7d9a\u3057\u3088\u3046\u3068\u3057\u3066\u5931\u6557\u3059\u308b\u3002<\/p>\n<p>Docker Desktop \u3067\u306f\u3001\u30b3\u30f3\u30c6\u30ca\u30fc\u304b\u3089\u30db\u30b9\u30c8\u3078\u63a5\u7d9a\u3059\u308b\u305f\u3081\u306e\u540d\u524d\u3068\u3057\u3066 host.docker.internal \u304c\u7528\u610f\u3055\u308c\u3066\u3044\u308b<a href=\"#ref10\">[10]<\/a>\u3002Open WebUI \u306b\u306f Ollama \u306e\u63a5\u7d9a\u5148\u3068\u3057\u3066 http:\/\/host.docker.internal:11434 \u3092\u6307\u5b9a\u3059\u308b\u3002\u3053\u308c\u306b\u3088\u308a\u3001\u753b\u9762\u3068\u6587\u66f8\u7ba1\u7406\u306f\u30b3\u30f3\u30c6\u30ca\u30fc\u5185\u3078\u5206\u96e2\u3057\u305f\u307e\u307e\u3001\u751f\u6210\u3068\u57cb\u3081\u8fbc\u307f\u306e\u8981\u6c42\u3060\u3051\u3092 macOS \u4e0a\u306e Ollama \u3078\u9001\u308c\u308b\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u51e6\u7406<\/th>\n<th>\u5b9f\u884c\u5834\u6240<\/th>\n<th>\u914d\u7f6e\u7406\u7531<\/th>\n<th>\u969c\u5bb3\u6642\u306e\u78ba\u8a8d\u5bfe\u8c61<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u751f\u6210\u63a8\u8ad6<\/td>\n<td>macOS \u4e0a\u306e Ollama \u3067\u5b9f\u884c\u3059\u308b\u3002<\/td>\n<td>Apple Silicon \u306e\u8a08\u7b97\u8cc7\u6e90\u3092\u30db\u30b9\u30c8\u5074\u306e\u63a8\u8ad6\u51e6\u7406\u304b\u3089\u5229\u7528\u3059\u308b\u3002<\/td>\n<td>Ollama \u306e\u8d77\u52d5\u72b6\u614b\u3001\u30e2\u30c7\u30eb\u306e\u53d6\u5f97\u72b6\u614b\u300111434 \u756a\u30dd\u30fc\u30c8\u306e\u5fdc\u7b54\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u57cb\u3081\u8fbc\u307f\u751f\u6210<\/td>\n<td>macOS \u4e0a\u306e Ollama \u3067\u5b9f\u884c\u3059\u308b\u3002<\/td>\n<td>\u751f\u6210\u7528 LLM \u3068\u540c\u3058\u30ed\u30fc\u30ab\u30eb\u63a8\u8ad6\u57fa\u76e4\u3067\u30e2\u30c7\u30eb\u306e\u53d6\u5f97\u3068 API \u63a5\u7d9a\u3092\u7ba1\u7406\u3059\u308b\u3002<\/td>\n<td>\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u306e\u5b58\u5728\u3001Open WebUI \u306e\u30e2\u30c7\u30eb\u6307\u5b9a\u3001Ollama API \u306e\u5fdc\u7b54\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u5bfe\u8a71\u753b\u9762\u3068\u6587\u66f8\u7ba1\u7406<\/td>\n<td>Docker \u4e0a\u306e Open WebUI \u3067\u5b9f\u884c\u3059\u308b\u3002<\/td>\n<td>\u7248\u3001\u74b0\u5883\u5909\u6570\u3001\u30dd\u30fc\u30c8\u3001\u6c38\u7d9a\u9818\u57df\u3092 Docker Compose \u3067\u56fa\u5b9a\u3059\u308b\u3002<\/td>\n<td>\u30b3\u30f3\u30c6\u30ca\u30fc\u306e\u30ed\u30b0\u3001Ollama \u63a5\u7d9a\u5148\u3001Knowledge \u306e\u767b\u9332\u72b6\u614b\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u30d9\u30af\u30c8\u30eb\u4fdd\u5b58\u3068\u691c\u7d22<\/td>\n<td>Docker \u4e0a\u306e Qdrant \u3067\u5b9f\u884c\u3059\u308b\u3002<\/td>\n<td>\u691c\u7d22\u7528\u30c7\u30fc\u30bf\u3092 Open WebUI \u672c\u4f53\u304b\u3089\u5206\u96e2\u3057\u3001\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3068\u70b9\u3092\u72ec\u7acb\u3057\u3066\u89b3\u5bdf\u3059\u308b\u3002<\/td>\n<td>Qdrant \u306e\u7a3c\u50cd\u72b6\u614b\u3001\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3001\u70b9\u6570\u3001Open WebUI \u304b\u3089\u306e\u63a5\u7d9a\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u3053\u306e\u914d\u7f6e\u3067\u306f\u3001Ollama \u306e\u969c\u5bb3\u3068\u30b3\u30f3\u30c6\u30ca\u30fc\u5074\u306e\u969c\u5bb3\u3092\u5206\u3051\u3066\u5224\u5b9a\u3067\u304d\u308b\u3002Ollama API \u304c\u30db\u30b9\u30c8\u4e0a\u3067\u5fdc\u7b54\u3059\u308b\u306e\u306b Open WebUI \u304b\u3089\u30e2\u30c7\u30eb\u304c\u898b\u3048\u306a\u3044\u5834\u5408\u306f\u3001Docker \u304b\u3089\u30db\u30b9\u30c8\u3078\u306e\u63a5\u7d9a\u3092\u8abf\u3079\u308b\u3002Open WebUI \u304b\u3089\u901a\u5e38\u5bfe\u8a71\u306f\u3067\u304d\u308b\u304c\u6587\u66f8\u767b\u9332\u306b\u5931\u6557\u3059\u308b\u5834\u5408\u306f\u3001\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u307e\u305f\u306f Qdrant \u3068\u306e\u63a5\u7d9a\u3092\u8abf\u3079\u308b\u3002\u51e6\u7406\u306e\u5883\u754c\u3092\u5b9f\u884c\u5834\u6240\u3068\u4e00\u81f4\u3055\u305b\u308b\u3053\u3068\u3067\u3001RAG \u5168\u4f53\u3092\u4e00\u3064\u306e\u4e0d\u53ef\u8996\u306a\u51e6\u7406\u3068\u3057\u3066\u6271\u308f\u305a\u306b\u6e08\u3080\u3002<\/p>\n<h3>2.2 MacBook Pro \u306e\u72b6\u614b\u3092\u78ba\u8a8d\u3059\u308b<\/h3>\n<p>\u5c0e\u5165\u524d\u306b\u3001CPU \u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u30fc\u3001macOS \u306e\u7248\u3001\u30e6\u30cb\u30d5\u30a1\u30a4\u30c9\u30e1\u30e2\u30ea\u5bb9\u91cf\u3001SSD \u306e\u7a7a\u304d\u5bb9\u91cf\u3092\u8a18\u9332\u3059\u308b\u3002\u540c\u3058\u30e2\u30c7\u30eb\u540d\u3092\u4f7f\u7528\u3057\u3066\u3082\u3001\u642d\u8f09\u30e1\u30e2\u30ea\u3084\u540c\u6642\u306b\u52d5\u4f5c\u3059\u308b\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u304c\u7570\u306a\u308c\u3070\u3001\u63a8\u8ad6\u901f\u5ea6\u3068\u5b89\u5b9a\u6027\u306f\u5909\u308f\u308b\u3002\u5f8c\u304b\u3089\u30e2\u30c7\u30eb\u3084 Docker \u306e\u8a2d\u5b9a\u3092\u5909\u66f4\u3057\u305f\u969b\u306b\u6bd4\u8f03\u3067\u304d\u308b\u3088\u3046\u3001\u69cb\u7bc9\u6642\u70b9\u306e\u6761\u4ef6\u3092\u6b8b\u3057\u3066\u304a\u304f\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">uname -m<br \/>\nsw_vers<br \/>\nsystem_profiler SPHardwareDataType<br \/>\ndf -h \/<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>uname -m \u306e\u7d50\u679c\u304c arm64 \u3067\u3042\u308c\u3070\u3001Apple Silicon \u7528\u306e\u5b9f\u884c\u74b0\u5883\u3067\u3042\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3067\u304d\u308b\u3002sw_vers \u3067\u306f macOS \u306e\u7248\u3068\u30d3\u30eb\u30c9\u756a\u53f7\u3092\u8a18\u9332\u3059\u308b\u3002Ollama \u3084 Docker Desktop \u306e\u66f4\u65b0\u5f8c\u306b\u52d5\u4f5c\u304c\u5909\u308f\u3063\u305f\u5834\u5408\u3001OS \u5074\u306e\u66f4\u65b0\u3092\u542b\u3081\u3066\u6761\u4ef6\u3092\u6bd4\u8f03\u3067\u304d\u308b\u3002<\/p>\n<p>system_profiler SPHardwareDataType \u3067\u306f\u3001Chip \u3068 Memory \u3092\u78ba\u8a8d\u3059\u308b\u3002\u30e6\u30cb\u30d5\u30a1\u30a4\u30c9\u30e1\u30e2\u30ea\u306f Ollama \u3060\u3051\u304c\u5c02\u6709\u3059\u308b\u3082\u306e\u3067\u306f\u306a\u304f\u3001macOS\u3001\u901a\u5e38\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3001Docker Desktop \u306e\u4eee\u60f3\u74b0\u5883\u3068\u5171\u6709\u3055\u308c\u308b\u3002\u30e2\u30c7\u30eb\u30d5\u30a1\u30a4\u30eb\u304c SSD \u306b\u53ce\u307e\u308b\u3053\u3068\u3068\u3001\u63a8\u8ad6\u6642\u306b\u30e2\u30c7\u30eb\u3092\u5b89\u5b9a\u3057\u3066\u5b9f\u884c\u3067\u304d\u308b\u3053\u3068\u306f\u5225\u306e\u6761\u4ef6\u3067\u3042\u308b\u3002<\/p>\n<p>qwen3.5:9b-q4_K_M \u306f\u3001\u30e2\u30c7\u30eb\u30c7\u30fc\u30bf\u3060\u3051\u3067\u304a\u3088\u305d 6.6 GB \u3092\u4f7f\u7528\u3059\u308b\u3002\u3053\u308c\u306b Ollama \u306e\u5b9f\u884c\u6642\u9818\u57df\u3001\u4f1a\u8a71\u6587\u8108\u3001\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u3001Docker Desktop\u3001Open WebUI\u3001Qdrant\u3001\u767b\u9332\u6587\u66f8\u3001\u30d9\u30af\u30c8\u30eb\u7d22\u5f15\u306e\u4f7f\u7528\u91cf\u304c\u52a0\u308f\u308b\u3002SSD \u306b\u306f\u30e2\u30c7\u30eb\u30d5\u30a1\u30a4\u30eb\u3068 Docker \u30a4\u30e1\u30fc\u30b8\u3092\u4fdd\u5b58\u3067\u304d\u308b\u3060\u3051\u3067\u306a\u304f\u3001\u66f4\u65b0\u6642\u306b\u65b0\u65e7\u30c7\u30fc\u30bf\u304c\u4e00\u6642\u7684\u306b\u4f75\u5b58\u3067\u304d\u308b\u4f59\u88d5\u3092\u78ba\u4fdd\u3059\u308b\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u78ba\u8a8d\u5bfe\u8c61<\/th>\n<th>\u78ba\u8a8d\u3059\u308b\u5024<\/th>\n<th>\u4e0d\u8db3\u3057\u305f\u5834\u5408\u306b\u8d77\u304d\u308b\u3053\u3068<\/th>\n<th>\u521d\u671f\u5bfe\u5fdc<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>CPU \u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u30fc<\/td>\n<td>arm64 \u3067\u3042\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<td>\u7570\u306a\u308b\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u30fc\u5411\u3051\u306e\u914d\u5e03\u7269\u3084\u30a4\u30e1\u30fc\u30b8\u3092\u9078\u3076\u3068\u3001\u8d77\u52d5\u4e0d\u80fd\u307e\u305f\u306f\u5909\u63db\u5b9f\u884c\u306b\u306a\u308b\u3002<\/td>\n<td>Apple Silicon \u7528\u306e Ollama \u3068 Docker Desktop \u3092\u4f7f\u7528\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u30e6\u30cb\u30d5\u30a1\u30a4\u30c9\u30e1\u30e2\u30ea<\/td>\n<td>\u642d\u8f09\u5bb9\u91cf\u3068\u901a\u5e38\u6642\u306e\u4f7f\u7528\u72b6\u6cc1\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<td>\u30e1\u30e2\u30ea\u5727\u8feb\u306b\u3088\u308a\u30b9\u30ef\u30c3\u30d7\u304c\u5897\u3048\u3001\u751f\u6210\u901f\u5ea6\u306e\u4f4e\u4e0b\u3084\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u505c\u6b62\u304c\u8d77\u304d\u308b\u3002<\/td>\n<td>\u751f\u6210\u7528 LLM \u306e\u898f\u6a21\u3001\u6587\u8108\u9577\u3001Docker \u3078\u306e\u5272\u308a\u5f53\u3066\u3092\u4e0b\u3052\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>SSD \u7a7a\u304d\u5bb9\u91cf<\/td>\n<td>df \u306e Available \u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<td>\u30e2\u30c7\u30eb\u53d6\u5f97\u3001\u30a4\u30e1\u30fc\u30b8\u66f4\u65b0\u3001\u6587\u66f8\u767b\u9332\u3001\u7d22\u5f15\u4f5c\u6210\u304c\u9014\u4e2d\u3067\u5931\u6557\u3059\u308b\u3002<\/td>\n<td>\u4e0d\u8981\u306a\u30e2\u30c7\u30eb\u3068 Docker \u30c7\u30fc\u30bf\u3092\u6574\u7406\u3057\u3001\u66f4\u65b0\u7528\u306e\u7a7a\u304d\u5bb9\u91cf\u3092\u78ba\u4fdd\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>macOS \u306e\u7248<\/td>\n<td>\u88fd\u54c1\u7248\u3068\u30d3\u30eb\u30c9\u756a\u53f7\u3092\u8a18\u9332\u3059\u308b\u3002<\/td>\n<td>\u66f4\u65b0\u524d\u5f8c\u306e\u6027\u80fd\u5dee\u3084\u63a5\u7d9a\u969c\u5bb3\u3092\u3001\u69cb\u6210\u5909\u66f4\u3068\u533a\u5225\u3067\u304d\u306a\u304f\u306a\u308b\u3002<\/td>\n<td>\u69cb\u7bc9\u8a18\u9332\u3078\u7248\u3068\u30d3\u30eb\u30c9\u756a\u53f7\u3092\u6b8b\u3059\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>16 GB \u6a5f\u3067\u306f\u30019B \u7d1a\u30e2\u30c7\u30eb\u306e\u8d77\u52d5\u3060\u3051\u3067\u76f4\u3061\u306b\u4f7f\u7528\u4e0d\u80fd\u306b\u306a\u308b\u3068\u306f\u9650\u3089\u306a\u3044\u304c\u3001Docker Desktop \u3084\u4ed6\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3068\u306e\u540c\u6642\u4f7f\u7528\u306b\u3088\u3063\u3066\u4f59\u88d5\u304c\u5c0f\u3055\u304f\u306a\u308b\u3002\u30e1\u30e2\u30ea\u5727\u8feb\u3084\u30b9\u30ef\u30c3\u30d7\u306e\u5897\u52a0\u304c\u7d9a\u304f\u5834\u5408\u306f\u3001\u751f\u6210\u7528 LLM \u3092 4B \u7d1a\u3078\u4e0b\u3052\u308b\u9078\u629e\u80a2\u3092\u6b8b\u3059\u300224 GB \u4ee5\u4e0a\u3067\u306f 9B \u7d1a\u3092\u521d\u671f\u69cb\u6210\u3068\u3057\u3066\u8a66\u3057\u3001\u5fdc\u7b54\u901f\u5ea6\u3068\u30e1\u30e2\u30ea\u5727\u529b\u3092\u89b3\u5bdf\u3057\u305f\u3046\u3048\u3067\u7dad\u6301\u3059\u308b\u304b\u5224\u65ad\u3059\u308b\u3002<\/p>\n<p>\u3053\u308c\u3089\u306e\u5bb9\u91cf\u5225\u5224\u65ad\u306f\u521d\u671f\u8a2d\u5b9a\u306e\u76ee\u5b89\u3067\u3042\u308a\u3001\u6a5f\u7a2e\u3054\u3068\u306e\u5b9f\u6e2c\u6027\u80fd\u3092\u793a\u3059\u3082\u306e\u3067\u306f\u306a\u3044\u3002<\/p>\n<p>\u30e2\u30c7\u30eb\u898f\u6a21\u306e\u5224\u65ad\u306f\u3001\u8aad\u307f\u8fbc\u3081\u305f\u304b\u3069\u3046\u304b\u3060\u3051\u3067\u306f\u6c7a\u3081\u306a\u3044\u3002\u77ed\u3044\u8cea\u554f\u306b\u306f\u5fdc\u7b54\u3067\u304d\u3066\u3082\u3001Knowledge \u304b\u3089\u53d6\u5f97\u3057\u305f\u8907\u6570\u306e\u30c1\u30e3\u30f3\u30af\u3068\u9577\u3044\u4f1a\u8a71\u5c65\u6b74\u3092\u540c\u6642\u306b\u5165\u529b\u3059\u308b\u3068\u3001\u5fc5\u8981\u306a\u8a18\u61b6\u5bb9\u91cf\u304c\u5897\u3048\u308b\u3002RAG \u306e\u5b9f\u7528\u6761\u4ef6\u306f\u3001\u30e2\u30c7\u30eb\u5358\u4f53\u306e\u8d77\u52d5\u8a66\u9a13\u3067\u306f\u306a\u304f\u3001\u6587\u66f8\u691c\u7d22\u3092\u542b\u3080\u5b9f\u969b\u306e\u5165\u529b\u9577\u3067\u78ba\u8a8d\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u3002<\/p>\n<h3>2.3 Ollama \u3068 Docker Desktop \u3092\u5c0e\u5165\u3059\u308b<\/h3>\n<p>Ollama \u306f\u516c\u5f0f\u306e macOS \u7528\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3001\u4e00\u5ea6\u8d77\u52d5\u3059\u308b\u3002\u521d\u56de\u8d77\u52d5\u306b\u3088\u3063\u3066\u3001\u30d0\u30c3\u30af\u30b0\u30e9\u30a6\u30f3\u30c9\u3067 API \u3092\u53d7\u3051\u4ed8\u3051\u308b\u72b6\u614b\u3092\u4f5c\u308a\u3001\u30bf\u30fc\u30df\u30ca\u30eb\u304b\u3089 ollama \u30b3\u30de\u30f3\u30c9\u3092\u5229\u7528\u3067\u304d\u308b\u3088\u3046\u306b\u3059\u308b\u3002\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u914d\u7f6e\u3057\u305f\u3060\u3051\u3067\u8d77\u52d5\u3057\u3066\u3044\u306a\u3044\u5834\u5408\u3001\u30b3\u30de\u30f3\u30c9\u304c\u5b58\u5728\u3057\u3066\u3082 11434 \u756a\u30dd\u30fc\u30c8\u306e API \u306f\u5fdc\u7b54\u3057\u306a\u3044\u3002<\/p>\n<p>Docker Desktop \u3082\u516c\u5f0f\u306e Apple Silicon \u7528\u30a4\u30f3\u30b9\u30c8\u30fc\u30e9\u30fc\u304b\u3089\u5c0e\u5165\u3057\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u8d77\u52d5\u3059\u308b\u3002docker \u30b3\u30de\u30f3\u30c9\u304c\u5b58\u5728\u3057\u3066\u3044\u3066\u3082\u3001Docker Desktop \u306e\u4eee\u60f3\u74b0\u5883\u304c\u505c\u6b62\u3057\u3066\u3044\u308c\u3070\u3001\u30b3\u30f3\u30c6\u30ca\u30fc\u306e\u4f5c\u6210\u3084\u72b6\u614b\u78ba\u8a8d\u306f\u5b9f\u884c\u3067\u304d\u306a\u3044\u3002\u30b3\u30de\u30f3\u30c9\u306e\u5c0e\u5165\u3068\u5b9f\u884c\u57fa\u76e4\u306e\u8d77\u52d5\u3092\u5206\u3051\u3066\u78ba\u8a8d\u3059\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">ollama --version<br \/>\ndocker version<br \/>\ndocker compose version<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>ollama &#8211;version \u3067\u306f\u3001\u5229\u7528\u3059\u308b Ollama \u306e\u7248\u3092\u8a18\u9332\u3059\u308b\u3002docker version \u3067\u306f\u3001\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u3060\u3051\u3067\u306a\u304f\u30b5\u30fc\u30d0\u30fc\u5074\u306e\u60c5\u5831\u304c\u8868\u793a\u3055\u308c\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b\u3002\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u60c5\u5831\u3060\u3051\u304c\u8868\u793a\u3055\u308c\u3001\u30c7\u30fc\u30e2\u30f3\u3078\u306e\u63a5\u7d9a\u30a8\u30e9\u30fc\u304c\u8fd4\u308b\u5834\u5408\u306f\u3001Docker Desktop \u304c\u8d77\u52d5\u3057\u3066\u3044\u306a\u3044\u304b\u3001\u521d\u671f\u5316\u304c\u5b8c\u4e86\u3057\u3066\u3044\u306a\u3044\u3002<\/p>\n<p>docker compose version \u3067\u306f\u3001Docker Compose \u3092\u72ec\u7acb\u3057\u305f\u65e7\u30b3\u30de\u30f3\u30c9\u3067\u306f\u306a\u304f\u3001Docker CLI \u306e\u30b5\u30d6\u30b3\u30de\u30f3\u30c9\u3068\u3057\u3066\u5229\u7528\u3067\u304d\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b\u3002\u672c\u7a3f\u306e\u64cd\u4f5c\u306f docker-compose \u3067\u306f\u306a\u304f docker compose \u3092\u4f7f\u7528\u3057\u3001\u69cb\u6210\u306e\u8d77\u52d5\u3001\u505c\u6b62\u3001\u66f4\u65b0\u624b\u9806\u3092\u7d71\u4e00\u3059\u308b\u3002<\/p>\n<p>Docker Desktop \u306e Resources \u3067\u306f\u3001Open WebUI \u3068 Qdrant \u304c\u52d5\u4f5c\u3067\u304d\u308b\u30e1\u30e2\u30ea\u3092\u78ba\u4fdd\u3059\u308b\u3002\u305f\u3060\u3057\u3001Docker \u3078\u5272\u308a\u5f53\u3066\u305f\u30e1\u30e2\u30ea\u306f\u3001\u30db\u30b9\u30c8\u4e0a\u306e Ollama \u3068\u7121\u95a2\u4fc2\u306b\u5897\u3048\u308b\u308f\u3051\u3067\u306f\u306a\u3044\u3002\u4e21\u8005\u306f\u6700\u7d42\u7684\u306b\u540c\u3058\u30e6\u30cb\u30d5\u30a1\u30a4\u30c9\u30e1\u30e2\u30ea\u3092\u6d88\u8cbb\u3059\u308b\u305f\u3081\u3001Docker \u5074\u306e\u4e0a\u9650\u3092\u904e\u5270\u306b\u5e83\u3052\u308b\u3068\u3001\u6587\u66f8\u767b\u9332\u3084\u691c\u7d22\u306f\u5b89\u5b9a\u3057\u3066\u3082\u3001\u751f\u6210\u7528 LLM \u306e\u63a8\u8ad6\u6642\u306b\u30e1\u30e2\u30ea\u5727\u8feb\u304c\u767a\u751f\u3059\u308b\u3002<\/p>\n<p>24 GB \u6a5f\u3067\u306f\u3001Docker \u5074\u3092 4 GB \u524d\u5f8c\u304b\u3089\u958b\u59cb\u3057\u3001Open WebUI \u306e\u8d77\u52d5\u3001Qdrant \u3078\u306e\u4fdd\u5b58\u3001\u6587\u66f8\u767b\u9332\u6642\u306e\u4f7f\u7528\u91cf\u3092\u89b3\u5bdf\u3057\u3066\u8abf\u6574\u3059\u308b\u3002\u5927\u91cf\u306e\u6587\u66f8\u3092\u4e00\u5ea6\u306b\u767b\u9332\u3059\u308b\u3068\u3001\u6587\u5b57\u62bd\u51fa\u3001\u30c1\u30e3\u30f3\u30af\u5206\u5272\u3001\u57cb\u3081\u8fbc\u307f\u8981\u6c42\u3001Qdrant \u3078\u306e\u4fdd\u5b58\u304c\u9023\u7d9a\u3059\u308b\u305f\u3081\u3001\u901a\u5e38\u5bfe\u8a71\u6642\u3088\u308a\u8ca0\u8377\u304c\u9ad8\u304f\u306a\u308b\u3002\u521d\u671f\u5024\u3092\u5927\u304d\u304f\u8a2d\u5b9a\u3059\u308b\u306e\u3067\u306f\u306a\u304f\u3001\u5b9f\u969b\u306e\u6587\u66f8\u91cf\u3067\u4e0d\u8db3\u304c\u78ba\u8a8d\u3055\u308c\u305f\u5834\u5408\u306b\u3060\u3051\u5897\u3084\u3059\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u78ba\u8a8d\u72b6\u614b<\/th>\n<th>\u89b3\u5bdf\u7d50\u679c<\/th>\n<th>\u5224\u5b9a<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Ollama \u306e\u7248\u304c\u8868\u793a\u3055\u308c\u308b<\/td>\n<td>ollama &#8211;version \u304c\u6b63\u5e38\u7d42\u4e86\u3059\u308b\u3002<\/td>\n<td>\u30b3\u30de\u30f3\u30c9\u306f\u5229\u7528\u3067\u304d\u308b\u304c\u3001API \u306e\u8d77\u52d5\u72b6\u614b\u306f\u5225\u9014\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>Docker \u306e\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u3068\u30b5\u30fc\u30d0\u30fc\u304c\u8868\u793a\u3055\u308c\u308b<\/td>\n<td>docker version \u306b\u4e21\u65b9\u306e\u60c5\u5831\u304c\u51fa\u308b\u3002<\/td>\n<td>Docker Desktop \u306e\u5b9f\u884c\u57fa\u76e4\u307e\u3067\u8d77\u52d5\u3057\u3066\u3044\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>Compose \u306e\u7248\u304c\u8868\u793a\u3055\u308c\u308b<\/td>\n<td>docker compose version \u304c\u6b63\u5e38\u7d42\u4e86\u3059\u308b\u3002<\/td>\n<td>\u5f8c\u7d9a\u306e\u69cb\u6210\u30d5\u30a1\u30a4\u30eb\u3092 Docker CLI \u304b\u3089\u64cd\u4f5c\u3067\u304d\u308b\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>2.4 \u4f7f\u7528\u30dd\u30fc\u30c8\u3092\u78ba\u8a8d\u3059\u308b<\/h3>\n<p>\u30b5\u30fc\u30d3\u30b9\u3092\u8d77\u52d5\u3059\u308b\u524d\u306b\u3001\u4f7f\u7528\u3059\u308b\u30dd\u30fc\u30c8\u3068\u516c\u958b\u7bc4\u56f2\u3092\u56fa\u5b9a\u3059\u308b\u3002\u30dd\u30fc\u30c8\u756a\u53f7\u304c\u91cd\u8907\u3059\u308b\u3068\u30b3\u30f3\u30c6\u30ca\u30fc\u306f\u8d77\u52d5\u3067\u304d\u305a\u3001\u516c\u958b\u5148\u3092\u7701\u7565\u3059\u308b\u3068\u3001\u610f\u56f3\u305b\u305a\u30ed\u30fc\u30ab\u30eb\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u4e0a\u306e\u5225\u7aef\u672b\u304b\u3089\u63a5\u7d9a\u53ef\u80fd\u306b\u306a\u308b\u5834\u5408\u304c\u3042\u308b\u3002\u30ed\u30fc\u30ab\u30eb RAG \u3068\u3057\u3066\u4e00\u53f0\u306e MacBook Pro \u5185\u3067\u5229\u7528\u3059\u308b\u9650\u308a\u3001Open WebUI \u3068 Qdrant \u3092\u5916\u90e8\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u3078\u516c\u958b\u3059\u308b\u5fc5\u8981\u306f\u306a\u3044\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u30dd\u30fc\u30c8<\/th>\n<th>\u7528\u9014<\/th>\n<th>\u63a5\u7d9a\u5143<\/th>\n<th>\u516c\u958b\u7bc4\u56f2<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>11434<\/td>\n<td>Ollama \u306e\u30ed\u30fc\u30ab\u30eb API \u306b\u4f7f\u7528\u3059\u308b\u3002<\/td>\n<td>macOS \u4e0a\u306e\u30b3\u30de\u30f3\u30c9\u3068\u3001Open WebUI \u30b3\u30f3\u30c6\u30ca\u30fc\u304b\u3089\u63a5\u7d9a\u3059\u308b\u3002<\/td>\n<td>macOS \u4e0a\u3067\u5229\u7528\u3057\u3001\u30b3\u30f3\u30c6\u30ca\u30fc\u304b\u3089\u306f host.docker.internal \u3092\u7d4c\u7531\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>3000<\/td>\n<td>Open WebUI \u306e\u30d6\u30e9\u30a6\u30b6\u30fc\u753b\u9762\u306b\u4f7f\u7528\u3059\u308b\u3002<\/td>\n<td>MacBook Pro \u4e0a\u306e\u30d6\u30e9\u30a6\u30b6\u30fc\u304b\u3089\u63a5\u7d9a\u3059\u308b\u3002<\/td>\n<td>127.0.0.1 \u306b\u3060\u3051\u5272\u308a\u5f53\u3066\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>6333<\/td>\n<td>Qdrant \u306e REST API \u3068\u7ba1\u7406\u753b\u9762\u306b\u4f7f\u7528\u3059\u308b\u3002<\/td>\n<td>Open WebUI \u30b3\u30f3\u30c6\u30ca\u30fc\u3068\u3001MacBook Pro \u4e0a\u306e\u78ba\u8a8d\u64cd\u4f5c\u304b\u3089\u63a5\u7d9a\u3059\u308b\u3002<\/td>\n<td>127.0.0.1 \u306b\u3060\u3051\u5272\u308a\u5f53\u3066\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>6334<\/td>\n<td>Qdrant \u306e gRPC API \u306b\u4f7f\u7528\u3059\u308b\u3002<\/td>\n<td>\u5fc5\u8981\u306a\u5834\u5408\u306f Docker \u5185\u90e8\u306e\u30b5\u30fc\u30d3\u30b9\u304b\u3089\u63a5\u7d9a\u3059\u308b\u3002<\/td>\n<td>\u672c\u69cb\u6210\u3067\u306f\u30db\u30b9\u30c8\u3078\u516c\u958b\u3057\u306a\u3044\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Open WebUI \u306e 3000 \u756a\u30dd\u30fc\u30c8\u3092 127.0.0.1 \u3078\u9650\u5b9a\u3059\u308b\u3068\u3001\u540c\u3058 MacBook Pro \u4e0a\u306e\u30d6\u30e9\u30a6\u30b6\u30fc\u304b\u3089\u306f\u63a5\u7d9a\u3067\u304d\u308b\u304c\u3001\u540c\u4e00\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u4e0a\u306e\u5225\u7aef\u672b\u304b\u3089\u306f\u76f4\u63a5\u63a5\u7d9a\u3067\u304d\u306a\u3044\u3002Qdrant \u306e 6333 \u756a\u30dd\u30fc\u30c8\u3082\u540c\u69d8\u306b\u9650\u5b9a\u3059\u308b\u3002Qdrant \u306b\u306f\u767b\u9332\u6587\u66f8\u306e\u65ad\u7247\u3084\u30d9\u30af\u30c8\u30eb\u304c\u4fdd\u5b58\u3055\u308c\u308b\u305f\u3081\u3001\u8a8d\u8a3c\u3084\u5916\u90e8\u516c\u958b\u306e\u8a2d\u8a08\u3092\u884c\u3063\u3066\u3044\u306a\u3044\u6bb5\u968e\u3067\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3078\u516c\u958b\u3057\u306a\u3044\u3002<\/p>\n<p>6334 \u756a\u30dd\u30fc\u30c8\u306f Qdrant \u306e gRPC \u306b\u4f7f\u7528\u3055\u308c\u308b\u304c\u3001\u672c\u69cb\u6210\u3067\u306f\u30db\u30b9\u30c8\u4e0a\u304b\u3089\u76f4\u63a5\u5229\u7528\u3057\u306a\u3044\u3002Open WebUI \u3068 Qdrant \u306f\u540c\u3058 Docker Compose \u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u5185\u3067\u30b5\u30fc\u30d3\u30b9\u540d\u3092\u4f7f\u3063\u3066\u901a\u4fe1\u3067\u304d\u308b\u305f\u3081\u3001\u30b3\u30f3\u30c6\u30ca\u30fc\u9593\u901a\u4fe1\u306b\u5fc5\u8981\u306a\u30dd\u30fc\u30c8\u3092\u3059\u3079\u3066 macOS \u5074\u3078\u516c\u958b\u3059\u308b\u5fc5\u8981\u306f\u306a\u3044\u3002\u30db\u30b9\u30c8\u3078\u306e\u516c\u958b\u306f\u3001\u30d6\u30e9\u30a6\u30b6\u30fc\u3084\u78ba\u8a8d\u7528\u30b3\u30de\u30f3\u30c9\u304b\u3089\u76f4\u63a5\u63a5\u7d9a\u3059\u308b\u3082\u306e\u306b\u9650\u5b9a\u3059\u308b\u3002<\/p>\n<p>\u8d77\u52d5\u524d\u306b\u3001\u4e88\u5b9a\u3057\u3066\u3044\u308b\u30dd\u30fc\u30c8\u3092\u5225\u306e\u30d7\u30ed\u30bb\u30b9\u304c\u5f85\u3061\u53d7\u3051\u3066\u3044\u306a\u3044\u304b\u78ba\u8a8d\u3059\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">lsof -nP -iTCP:11434 -sTCP:LISTEN<br \/>\nlsof -nP -iTCP:3000 -sTCP:LISTEN<br \/>\nlsof -nP -iTCP:6333 -sTCP:LISTEN<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>3000 \u756a\u3068 6333 \u756a\u3067\u51fa\u529b\u304c\u7a7a\u3067\u3042\u308c\u3070\u3001\u73fe\u6642\u70b9\u3067\u305d\u306e\u30dd\u30fc\u30c8\u3092\u5f85\u3061\u53d7\u3051\u3066\u3044\u308b\u30d7\u30ed\u30bb\u30b9\u306f\u306a\u3044\u3002\u51fa\u529b\u304c\u3042\u308b\u5834\u5408\u306f\u3001\u30d7\u30ed\u30bb\u30b9\u540d\u3068 PID \u3092\u78ba\u8a8d\u3057\u3001\u505c\u6b62\u3059\u308b\u304b\u3001Docker Compose \u5074\u306e\u30db\u30b9\u30c8\u30dd\u30fc\u30c8\u3092\u5909\u66f4\u3059\u308b\u3002\u65e2\u5b58\u30b5\u30fc\u30d3\u30b9\u3092\u78ba\u8a8d\u305b\u305a\u306b\u7d42\u4e86\u3055\u305b\u3066\u306f\u306a\u3089\u306a\u3044\u3002<\/p>\n<p>11434 \u756a\u306f\u3001Ollama \u3092\u8d77\u52d5\u3057\u305f\u5f8c\u3067\u3042\u308c\u3070\u5f85\u3061\u53d7\u3051\u304c\u78ba\u8a8d\u3067\u304d\u308b\u3002Ollama \u3092\u8d77\u52d5\u3057\u3066\u3044\u308b\u306b\u3082\u304b\u304b\u308f\u3089\u305a\u51fa\u529b\u304c\u306a\u3044\u5834\u5408\u3001Open WebUI \u306e\u8a2d\u5b9a\u3092\u9032\u3081\u308b\u524d\u306b Ollama \u5074\u306e\u72b6\u614b\u3092\u8abf\u3079\u308b\u3002\u30db\u30b9\u30c8\u4e0a\u3067 API \u304c\u5f85\u3061\u53d7\u3051\u3066\u3044\u306a\u3051\u308c\u3070\u3001host.docker.internal \u306e\u6307\u5b9a\u304c\u6b63\u3057\u304f\u3066\u3082\u30b3\u30f3\u30c6\u30ca\u30fc\u304b\u3089\u63a5\u7d9a\u3067\u304d\u306a\u3044\u3002<\/p>\n<p>\u30dd\u30fc\u30c8\u8a2d\u8a08\u306b\u3088\u3063\u3066\u3001\u5229\u7528\u7d4c\u8def\u3068\u516c\u958b\u7bc4\u56f2\u3092\u4e00\u81f4\u3055\u305b\u308b\u3002\u751f\u6210\u3068\u57cb\u3081\u8fbc\u307f\u306f Open WebUI \u304b\u3089\u30db\u30b9\u30c8\u4e0a\u306e Ollama \u3078\u63a5\u7d9a\u3057\u3001Open WebUI \u3068 Qdrant \u306e\u78ba\u8a8d\u753b\u9762\u306f MacBook Pro \u81ea\u8eab\u304b\u3089\u3060\u3051\u958b\u304f\u3002RAG \u3092\u30ed\u30fc\u30ab\u30eb\u3067\u52d5\u304b\u3059\u3068\u3044\u3046\u6761\u4ef6\u306b\u306f\u3001\u30e2\u30c7\u30eb\u3068\u6587\u66f8\u3092\u7aef\u672b\u5185\u3078\u7f6e\u304f\u3060\u3051\u3067\u306a\u304f\u3001\u4e0d\u8981\u306a\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u516c\u958b\u3092\u884c\u308f\u306a\u3044\u3053\u3068\u3082\u542b\u307e\u308c\u308b\u3002<\/p>\n<hr>\n<h2>3. Ollama \u306e\u751f\u6210\u7528 LLM \u3068\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u3092\u500b\u5225\u306b\u78ba\u8a8d\u3059\u308b<\/h2>\n<h3>3.1 Ollama API \u306e\u8d77\u52d5\u3092\u78ba\u8a8d\u3059\u308b<\/h3>\n<p>Open WebUI \u3068\u63a5\u7d9a\u3059\u308b\u524d\u306b\u3001macOS \u4e0a\u306e Ollama \u304c\u5358\u72ec\u3067\u5fdc\u7b54\u3059\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b\u3002Open WebUI \u306f\u3001Ollama \u306e HTTP API \u3092\u901a\u3058\u3066\u3001\u53d6\u5f97\u6e08\u307f\u30e2\u30c7\u30eb\u306e\u4e00\u89a7\u3001\u6587\u7ae0\u751f\u6210\u3001\u57cb\u3081\u8fbc\u307f\u751f\u6210\u3092\u547c\u3073\u51fa\u3059<a href=\"#ref11\">[11]<\/a>\u3002\u3053\u306e\u6bb5\u968e\u3067 API \u304c\u5fdc\u7b54\u3057\u306a\u3051\u308c\u3070\u3001\u5f8c\u304b\u3089 Open WebUI \u3084 Qdrant \u3092\u8d77\u52d5\u3057\u3066\u3082 RAG \u306e\u51e6\u7406\u7d4c\u8def\u306f\u6210\u7acb\u3057\u306a\u3044\u3002<\/p>\n<p>\/api\/tags \u306f\u3001Ollama \u306e\u30ed\u30fc\u30ab\u30eb\u9818\u57df\u3078\u53d6\u5f97\u6e08\u307f\u306e\u30e2\u30c7\u30eb\u3092\u8fd4\u3059\u3002\u3053\u308c\u306b\u5bfe\u3057\u3066 ollama ps \u306f\u3001\u73fe\u5728\u30e1\u30e2\u30ea\u3078\u8aad\u307f\u8fbc\u307e\u308c\u3066\u3044\u308b\u30e2\u30c7\u30eb\u3092\u8868\u793a\u3059\u308b\u3002\u4fdd\u5b58\u6e08\u307f\u30e2\u30c7\u30eb\u3068\u5b9f\u884c\u4e2d\u30e2\u30c7\u30eb\u306f\u7570\u306a\u308b\u305f\u3081\u3001\u4e8c\u3064\u306e\u7d50\u679c\u3092\u540c\u3058\u610f\u5473\u3067\u6271\u308f\u306a\u3044\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">curl -fsS http:\/\/localhost:11434\/api\/tags | python3 -m json.tool<br \/>\nollama list<br \/>\nollama ps<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>curl \u304c\u6b63\u5e38\u7d42\u4e86\u3057\u3066 JSON \u3092\u8fd4\u305b\u3070\u300111434 \u756a\u30dd\u30fc\u30c8\u306e Ollama API \u3078\u63a5\u7d9a\u3067\u304d\u3066\u3044\u308b\u3002\u30e2\u30c7\u30eb\u3092\u307e\u3060\u53d6\u5f97\u3057\u3066\u3044\u306a\u3044\u5834\u5408\u3001models \u306f\u7a7a\u306e\u914d\u5217\u306b\u306a\u308b\u3002\u3053\u308c\u306f API \u306e\u969c\u5bb3\u3067\u306f\u306a\u304f\u3001\u30ed\u30fc\u30ab\u30eb\u306b\u5229\u7528\u53ef\u80fd\u306a\u30e2\u30c7\u30eb\u304c\u5b58\u5728\u3057\u306a\u3044\u72b6\u614b\u3092\u793a\u3059\u3002<\/p>\n<p>ollama list \u306b\u30e2\u30c7\u30eb\u304c\u8868\u793a\u3055\u308c\u3066\u3082\u3001ollama ps \u304c\u7a7a\u306b\u306a\u308b\u3053\u3068\u306f\u3042\u308b\u3002\u53d6\u5f97\u6e08\u307f\u30e2\u30c7\u30eb\u306f SSD \u306b\u4fdd\u5b58\u3055\u308c\u308b\u304c\u3001\u63a8\u8ad6\u8981\u6c42\u3092\u53d7\u3051\u308b\u307e\u3067\u306f\u30e1\u30e2\u30ea\u3078\u8aad\u307f\u8fbc\u307e\u308c\u306a\u3044\u305f\u3081\u3067\u3042\u308b\u3002\u751f\u6210\u307e\u305f\u306f\u57cb\u3081\u8fbc\u307f\u3092\u4e00\u5ea6\u5b9f\u884c\u3057\u305f\u5f8c\u306b ollama ps \u3092\u78ba\u8a8d\u3059\u308b\u3068\u3001\u8aad\u307f\u8fbc\u307e\u308c\u305f\u30e2\u30c7\u30eb\u3001\u4f7f\u7528\u91cf\u3001\u51e6\u7406\u88c5\u7f6e\u3001\u5272\u308a\u5f53\u3066\u3089\u308c\u305f\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u9577\u3092\u78ba\u8a8d\u3067\u304d\u308b\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u78ba\u8a8d\u65b9\u6cd5<\/th>\n<th>\u78ba\u8a8d\u5bfe\u8c61<\/th>\n<th>\u7a7a\u306e\u5834\u5408\u306e\u610f\u5473<\/th>\n<th>\u30a8\u30e9\u30fc\u306e\u5834\u5408\u306e\u78ba\u8a8d\u5148<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\/api\/tags<\/td>\n<td>API \u306e\u5fdc\u7b54\u3068\u53d6\u5f97\u6e08\u307f\u30e2\u30c7\u30eb\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<td>API \u306f\u52d5\u4f5c\u3057\u3066\u3044\u308b\u304c\u3001\u30e2\u30c7\u30eb\u3092\u307e\u3060\u53d6\u5f97\u3057\u3066\u3044\u306a\u3044\u3002<\/td>\n<td>Ollama \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u8d77\u52d5\u72b6\u614b\u3068 11434 \u756a\u30dd\u30fc\u30c8\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>ollama list<\/td>\n<td>\u30ed\u30fc\u30ab\u30eb\u3078\u4fdd\u5b58\u3055\u308c\u305f\u30e2\u30c7\u30eb\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<td>\u751f\u6210\u7528\u30e2\u30c7\u30eb\u3068\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u3092\u307e\u3060\u53d6\u5f97\u3057\u3066\u3044\u306a\u3044\u3002<\/td>\n<td>Ollama \u306e\u5c0e\u5165\u72b6\u614b\u3068\u5229\u7528\u8005\u306e\u30e2\u30c7\u30eb\u4fdd\u5b58\u9818\u57df\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>ollama ps<\/td>\n<td>\u73fe\u5728\u30e1\u30e2\u30ea\u3078\u8aad\u307f\u8fbc\u307e\u308c\u3066\u3044\u308b\u30e2\u30c7\u30eb\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<td>\u5b9f\u884c\u4e2d\u307e\u305f\u306f\u5f85\u6a5f\u4e2d\u306e\u30e2\u30c7\u30eb\u304c\u306a\u3044\u3002<\/td>\n<td>\u751f\u6210\u8981\u6c42\u307e\u305f\u306f\u57cb\u3081\u8fbc\u307f\u8981\u6c42\u304c\u6b63\u5e38\u7d42\u4e86\u3057\u305f\u304b\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u63a5\u7d9a\u62d2\u5426\u306b\u306a\u308b\u5834\u5408\u306f\u3001Ollama \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u304c\u8d77\u52d5\u3057\u3066\u3044\u308b\u304b\u3092\u78ba\u8a8d\u3059\u308b\u3002JSON \u3067\u306f\u306a\u304f HTML \u3084\u5225\u30b5\u30fc\u30d3\u30b9\u306e\u5fdc\u7b54\u304c\u8fd4\u308b\u5834\u5408\u306f\u300111434 \u756a\u30dd\u30fc\u30c8\u3092 Ollama \u4ee5\u5916\u306e\u30d7\u30ed\u30bb\u30b9\u304c\u4f7f\u7528\u3057\u3066\u3044\u306a\u3044\u304b\u3092\u8abf\u3079\u308b\u3002Open WebUI \u5074\u306e\u63a5\u7d9a\u8a2d\u5b9a\u3092\u5909\u66f4\u3059\u308b\u306e\u306f\u3001\u30db\u30b9\u30c8\u4e0a\u306e API \u304c\u6b63\u5e38\u306b\u5fdc\u7b54\u3059\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u305f\u5f8c\u3067\u3042\u308b\u3002<\/p>\n<h3>3.2 \u751f\u6210\u7528\u30e2\u30c7\u30eb\u3092\u53d6\u5f97\u3059\u308b<\/h3>\n<p>\u751f\u6210\u7528\u30e2\u30c7\u30eb\u306b\u306f qwen3.5:9b-q4_K_M \u3092\u4f7f\u7528\u3059\u308b\u30029B \u306f\u30e2\u30c7\u30eb\u306e\u304a\u304a\u3088\u305d\u306e\u898f\u6a21\u3092\u793a\u3057\u3001q4_K_M \u306f\u91cd\u307f\u3092 4 \u30d3\u30c3\u30c8\u3078\u91cf\u5b50\u5316\u3057\u305f\u5f62\u5f0f\u3092\u793a\u3059\u3002\u91cf\u5b50\u5316\u306b\u3088\u3063\u3066\u4fdd\u5b58\u5bb9\u91cf\u3068\u5b9f\u884c\u6642\u306e\u8a18\u61b6\u4f7f\u7528\u91cf\u3092\u6291\u3048\u3089\u308c\u308b\u305f\u3081\u3001MacBook Pro \u306e\u9650\u3089\u308c\u305f\u30e6\u30cb\u30d5\u30a1\u30a4\u30c9\u30e1\u30e2\u30ea\u3067\u30e2\u30c7\u30eb\u3092\u5b9f\u884c\u3057\u3084\u3059\u304f\u306a\u308b\u3002<\/p>\n<p>\u91cf\u5b50\u5316\u306f\u3001\u5143\u306e\u91cd\u307f\u3092\u3088\u308a\u5c11\u306a\u3044\u30d3\u30c3\u30c8\u6570\u3067\u8868\u73fe\u3059\u308b\u51e6\u7406\u3067\u3042\u308b\u3002\u4fdd\u5b58\u5bb9\u91cf\u304c\u6e1b\u308b\u3060\u3051\u3067\u306a\u304f\u3001\u63a8\u8ad6\u6642\u306b\u8aad\u307f\u8fbc\u3080\u30c7\u30fc\u30bf\u91cf\u3082\u5c0f\u3055\u304f\u306a\u308b\u4e00\u65b9\u3001\u5143\u306e\u7cbe\u5ea6\u3092\u5b8c\u5168\u306b\u306f\u4fdd\u6301\u3057\u306a\u3044\u3002q4_K_M \u306f\u3001\u6700\u5927\u7cbe\u5ea6\u3092\u6c42\u3081\u308b\u69cb\u6210\u3067\u306f\u306a\u304f\u3001\u5fdc\u7b54\u54c1\u8cea\u3001\u8a18\u61b6\u4f7f\u7528\u91cf\u3001\u751f\u6210\u901f\u5ea6\u306e\u5747\u8861\u3092\u53d6\u308b\u305f\u3081\u306e\u9078\u629e\u3067\u3042\u308b\u3002<\/p>\n<p>Ollama \u306e\u30e2\u30c7\u30eb\u30e9\u30a4\u30d6\u30e9\u30ea\u30fc\u306b\u306f\u3001qwen3.5:9b-q4_K_M \u306e\u30bf\u30b0\u3001\u91cf\u5b50\u5316\u5f62\u5f0f\u3001\u5bb9\u91cf\u3001\u5bfe\u5fdc\u3059\u308b\u6700\u5927\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u9577\u304c\u63b2\u8f09\u3055\u308c\u3066\u3044\u308b<a href=\"#ref12\">[12]<\/a>\u3002\u672c\u7a3f\u306e\u69cb\u7bc9\u6642\u70b9\u3067\u306f\u3001\u30e2\u30c7\u30eb\u30d5\u30a1\u30a4\u30eb\u306f\u7d04 6.6 GB \u3067\u3042\u308b\u3002\u305f\u3060\u3057\u3001\u3053\u306e\u5024\u306f SSD \u4e0a\u306e\u30e2\u30c7\u30eb\u30d5\u30a1\u30a4\u30eb\u5bb9\u91cf\u3067\u3042\u308a\u3001\u5b9f\u884c\u6642\u306e\u7dcf\u8a18\u61b6\u4f7f\u7528\u91cf\u3092\u8868\u3059\u3082\u306e\u3067\u306f\u306a\u3044\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">ollama pull qwen3.5:9b-q4_K_M<br \/>\nollama list<br \/>\nollama show qwen3.5:9b-q4_K_M<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>ollama pull \u304c\u5b8c\u4e86\u3057\u305f\u5f8c\u3001ollama list \u3067\u30e2\u30c7\u30eb\u540d\u3068\u4fdd\u5b58\u5bb9\u91cf\u3092\u78ba\u8a8d\u3059\u308b\u3002ollama show \u3067\u306f\u3001\u30e2\u30c7\u30eb\u7cfb\u5217\u3001\u91cf\u5b50\u5316\u5f62\u5f0f\u3001\u5bfe\u5fdc\u6a5f\u80fd\u3001\u30e2\u30c7\u30eb\u306b\u8a2d\u5b9a\u3055\u308c\u305f\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3092\u78ba\u8a8d\u3067\u304d\u308b\u3002\u8a18\u4e8b\u5185\u3067\u306f\u30bf\u30b0\u3092\u7701\u7565\u305b\u305a\u3001\u691c\u8a3c\u3057\u305f\u91cf\u5b50\u5316\u5f62\u5f0f\u307e\u3067\u542b\u3081\u3066\u8a18\u9332\u3059\u308b\u3002\u540c\u3058 qwen3.5:9b \u7cfb\u5217\u3067\u3082\u3001\u7570\u306a\u308b\u91cf\u5b50\u5316\u30bf\u30b0\u3092\u4f7f\u7528\u3059\u308c\u3070\u3001\u5bb9\u91cf\u3068\u5b9f\u884c\u7279\u6027\u304c\u5909\u308f\u308b\u305f\u3081\u3067\u3042\u308b\u3002<\/p>\n<p>16 GB \u6a5f\u3067\u7d99\u7d9a\u7684\u306a\u30e1\u30e2\u30ea\u5727\u8feb\u3001\u30b9\u30ef\u30c3\u30d7\u306e\u5897\u52a0\u3001\u8457\u3057\u3044\u751f\u6210\u901f\u5ea6\u4f4e\u4e0b\u304c\u8d77\u304d\u308b\u5834\u5408\u306f\u3001\u540c\u3058\u7cfb\u5217\u306e 4B \u7d1a\u30e2\u30c7\u30eb\u3078\u5909\u66f4\u3059\u308b\u3002\u30e2\u30c7\u30eb\u898f\u6a21\u3092\u4e0b\u3052\u308b\u969b\u3082\u3001\u3069\u306e\u91cf\u5b50\u5316\u5f62\u5f0f\u3092\u4f7f\u7528\u3057\u305f\u304b\u3092\u56fa\u5b9a\u3059\u308b\u3002\u5358\u306b qwen3.5:4b \u3068\u8a18\u9332\u3059\u308b\u3068\u3001\u5f8c\u306b\u65e2\u5b9a\u30bf\u30b0\u306e\u5185\u5bb9\u304c\u5909\u308f\u3063\u305f\u5834\u5408\u3001\u540c\u3058\u69cb\u6210\u3092\u518d\u73fe\u3067\u304d\u306a\u304f\u306a\u308b\u3002<\/p>\n<p>\u751f\u6210\u7528\u30e2\u30c7\u30eb\u306e\u5909\u66f4\u306f\u3001\u65e2\u5b58\u6587\u66f8\u306e\u518d\u767b\u9332\u3092\u5fc5\u8981\u3068\u3057\u306a\u3044\u3002\u6587\u66f8\u3068\u8cea\u554f\u3092\u30d9\u30af\u30c8\u30eb\u3078\u5909\u63db\u3059\u308b\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u3092\u7dad\u6301\u3059\u308b\u9650\u308a\u3001Qdrant \u5185\u306e\u7d22\u5f15\u306f\u305d\u306e\u307e\u307e\u5229\u7528\u3067\u304d\u308b\u3002\u751f\u6210\u7528\u30e2\u30c7\u30eb\u3092 9B \u7d1a\u304b\u3089 4B \u7d1a\u3078\u5909\u66f4\u3057\u305f\u5834\u5408\u306b\u6bd4\u8f03\u3059\u308b\u306e\u306f\u3001\u540c\u3058\u691c\u7d22\u7d50\u679c\u306b\u5bfe\u3059\u308b\u56de\u7b54\u306e\u5fe0\u5b9f\u6027\u3001\u6587\u7ae0\u54c1\u8cea\u3001\u901f\u5ea6\u3001\u8a18\u61b6\u4f7f\u7528\u91cf\u3067\u3042\u308b\u3002<\/p>\n<h3>3.3 \u751f\u6210 API \u3092\u5358\u4f53\u3067\u8a66\u9a13\u3059\u308b<\/h3>\n<p>Open WebUI \u3092\u8d77\u52d5\u3059\u308b\u524d\u306b\u3001Ollama \u306e\u751f\u6210 API \u3078\u76f4\u63a5\u8981\u6c42\u3092\u9001\u308a\u3001\u65e5\u672c\u8a9e\u5165\u529b\u304b\u3089\u56de\u7b54\u3092\u751f\u6210\u3067\u304d\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b\u3002\u3053\u3053\u3067\u5931\u6557\u3059\u308b\u5834\u5408\u3001\u539f\u56e0\u306f Open WebUI \u3084 Qdrant \u3067\u306f\u306a\u304f\u3001Ollama \u306e\u8d77\u52d5\u3001\u30e2\u30c7\u30eb\u53d6\u5f97\u3001\u30e2\u30c7\u30eb\u8aad\u307f\u8fbc\u307f\u3001\u307e\u305f\u306f\u751f\u6210\u51e6\u7406\u306b\u3042\u308b\u3002<\/p>\n<p>\/api\/generate \u306f\u3001\u30e2\u30c7\u30eb\u540d\u3068\u5165\u529b\u6587\u3092\u53d7\u3051\u53d6\u308a\u3001\u751f\u6210\u7d50\u679c\u3092\u8fd4\u3059\u3002\u65e2\u5b9a\u3067\u306f\u5fdc\u7b54\u304c\u9010\u6b21\u8fd4\u3055\u308c\u308b\u305f\u3081\u3001\u691c\u8a3c\u3067\u306f stream \u3092 false \u306b\u3057\u3066\u3001\u4e00\u3064\u306e JSON \u3068\u3057\u3066\u7d50\u679c\u3068\u8a08\u6e2c\u5024\u3092\u53d6\u5f97\u3059\u308b\u3002\u601d\u8003\u51fa\u529b\u306b\u5bfe\u5fdc\u3059\u308b\u30e2\u30c7\u30eb\u3067\u306f\u3001\u691c\u8a3c\u5bfe\u8c61\u3092\u6700\u7d42\u56de\u7b54\u3078\u9650\u5b9a\u3059\u308b\u305f\u3081\u3001think \u3082 false \u306b\u56fa\u5b9a\u3059\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">curl -fsS http:\/\/localhost:11434\/api\/generate \\<br \/>\n&nbsp; -H 'Content-Type: application\/json' \\<br \/>\n&nbsp; -d '{<br \/>\n&nbsp; &nbsp; &quot;model&quot;: &quot;qwen3.5:9b-q4_K_M&quot;,<br \/>\n&nbsp; &nbsp; &quot;prompt&quot;: &quot;\u30ed\u30fc\u30ab\u30eb RAG \u306b\u304a\u3051\u308b\u751f\u6210\u7528 LLM \u3068\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u306e\u5f79\u5272\u306e\u9055\u3044\u3092\u4e09\u6587\u3067\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044\u3002&quot;,<br \/>\n&nbsp; &nbsp; &quot;stream&quot;: false,<br \/>\n&nbsp; &nbsp; &quot;think&quot;: false<br \/>\n&nbsp; }' | tee \/tmp\/ollama-generate.json | python3 -m json.tool<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>response \u306b\u65e5\u672c\u8a9e\u306e\u56de\u7b54\u304c\u5165\u308a\u3001done \u304c true \u306b\u306a\u308c\u3070\u3001\u751f\u6210\u8981\u6c42\u306f\u6700\u5f8c\u307e\u3067\u5b8c\u4e86\u3057\u3066\u3044\u308b\u3002\u8cea\u554f\u5185\u5bb9\u306b\u5bfe\u3059\u308b\u6b63\u78ba\u3055\u306f\u5225\u9014\u8a55\u4fa1\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u304c\u3001\u5c11\u306a\u304f\u3068\u3082 Open WebUI \u3092\u4ecb\u3055\u306a\u3044\u751f\u6210\u7d4c\u8def\u304c\u6210\u7acb\u3057\u305f\u3053\u3068\u3092\u78ba\u8a8d\u3067\u304d\u308b\u3002<\/p>\n<p>Ollama \u306e\u975e\u9010\u6b21\u5fdc\u7b54\u306b\u306f\u3001\u5165\u529b\u51e6\u7406\u6642\u9593\u3001\u751f\u6210\u6642\u9593\u3001\u5165\u51fa\u529b\u30c8\u30fc\u30af\u30f3\u6570\u306a\u3069\u306e\u8a08\u6e2c\u5024\u304c\u542b\u307e\u308c\u308b<a href=\"#ref13\">[13]<\/a>\u3002\u5404\u6642\u9593\u306f\u30ca\u30ce\u79d2\u3067\u8fd4\u3055\u308c\u308b\u305f\u3081\u3001\u79d2\u3078\u63db\u7b97\u3057\u3066\u8a18\u9332\u3059\u308b\u3002\u51fa\u529b\u901f\u5ea6\u306f\u3001eval_count \u3092 eval_duration \u306e\u79d2\u6570\u3067\u5272\u308b\u3053\u3068\u3067\u6c42\u3081\u3089\u308c\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">python3 - &lt;&lt;'PY'<br \/>\nimport json<br \/>\n<br \/>\nwith open(&quot;\/tmp\/ollama-generate.json&quot;, encoding=&quot;utf-8&quot;) as file:<br \/>\n&nbsp; &nbsp; data = json.load(file)<br \/>\n<br \/>\ntotal_seconds = data[&quot;total_duration&quot;] \/ 1_000_000_000<br \/>\nload_seconds = data[&quot;load_duration&quot;] \/ 1_000_000_000<br \/>\nprompt_seconds = data[&quot;prompt_eval_duration&quot;] \/ 1_000_000_000<br \/>\neval_seconds = data[&quot;eval_duration&quot;] \/ 1_000_000_000<br \/>\ntokens_per_second = data[&quot;eval_count&quot;] \/ eval_seconds if eval_seconds else 0.0<br \/>\n<br \/>\nprint(f&quot;total_seconds={total_seconds:.3f}&quot;)<br \/>\nprint(f&quot;load_seconds={load_seconds:.3f}&quot;)<br \/>\nprint(f&quot;prompt_tokens={data['prompt_eval_count']}&quot;)<br \/>\nprint(f&quot;prompt_seconds={prompt_seconds:.3f}&quot;)<br \/>\nprint(f&quot;output_tokens={data['eval_count']}&quot;)<br \/>\nprint(f&quot;generation_seconds={eval_seconds:.3f}&quot;)<br \/>\nprint(f&quot;tokens_per_second={tokens_per_second:.2f}&quot;)<br \/>\nPY<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<table>\n<thead>\n<tr>\n<th>\u9805\u76ee<\/th>\n<th>\u610f\u5473<\/th>\n<th>\u5224\u5b9a\u3078\u306e\u4f7f\u3044\u65b9<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>total_duration<\/td>\n<td>\u8981\u6c42\u958b\u59cb\u304b\u3089\u5b8c\u4e86\u307e\u3067\u306e\u7dcf\u6642\u9593\u3092\u793a\u3059\u3002<\/td>\n<td>\u5229\u7528\u8005\u304c\u5f85\u3064\u7dcf\u6642\u9593\u306e\u6bd4\u8f03\u306b\u4f7f\u3046\u3002<\/td>\n<\/tr>\n<tr>\n<td>load_duration<\/td>\n<td>\u30e2\u30c7\u30eb\u3092\u30e1\u30e2\u30ea\u3078\u8aad\u307f\u8fbc\u3080\u305f\u3081\u306b\u4f7f\u3063\u305f\u6642\u9593\u3092\u793a\u3059\u3002<\/td>\n<td>\u521d\u56de\u5b9f\u884c\u3068\u9023\u7d9a\u5b9f\u884c\u306e\u5dee\u3092\u5206\u96e2\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>prompt_eval_count<\/td>\n<td>\u51e6\u7406\u3057\u305f\u5165\u529b\u30c8\u30fc\u30af\u30f3\u6570\u3092\u793a\u3059\u3002<\/td>\n<td>\u8cea\u554f\u3084\u53d6\u5f97\u6587\u66f8\u306e\u9577\u3055\u304c\u5897\u3048\u305f\u5834\u5408\u306e\u8ca0\u8377\u3092\u6bd4\u8f03\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>prompt_eval_duration<\/td>\n<td>\u5165\u529b\u30c8\u30fc\u30af\u30f3\u3092\u51e6\u7406\u3057\u305f\u6642\u9593\u3092\u793a\u3059\u3002<\/td>\n<td>RAG \u3067\u8907\u6570\u30c1\u30e3\u30f3\u30af\u3092\u8ffd\u52a0\u3057\u305f\u3068\u304d\u306e\u5165\u529b\u51e6\u7406\u8ca0\u8377\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>eval_count<\/td>\n<td>\u751f\u6210\u3057\u305f\u51fa\u529b\u30c8\u30fc\u30af\u30f3\u6570\u3092\u793a\u3059\u3002<\/td>\n<td>\u56de\u7b54\u91cf\u304c\u7570\u306a\u308b\u8a66\u9a13\u3092\u6642\u9593\u3060\u3051\u3067\u6bd4\u8f03\u3057\u306a\u3044\u305f\u3081\u306b\u4f7f\u3046\u3002<\/td>\n<\/tr>\n<tr>\n<td>eval_duration<\/td>\n<td>\u51fa\u529b\u30c8\u30fc\u30af\u30f3\u3092\u751f\u6210\u3057\u305f\u6642\u9593\u3092\u793a\u3059\u3002<\/td>\n<td>\u4e00\u79d2\u5f53\u305f\u308a\u306e\u751f\u6210\u30c8\u30fc\u30af\u30f3\u6570\u3092\u7b97\u51fa\u3059\u308b\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u521d\u56de\u8981\u6c42\u3067\u306f\u3001\u30e2\u30c7\u30eb\u3092 SSD \u304b\u3089\u30e6\u30cb\u30d5\u30a1\u30a4\u30c9\u30e1\u30e2\u30ea\u3078\u8aad\u307f\u8fbc\u3080\u305f\u3081\u3001load_duration \u304c\u5927\u304d\u304f\u306a\u308b\u3002\u30e2\u30c7\u30eb\u304c\u5f85\u6a5f\u72b6\u614b\u306b\u6b8b\u3063\u3066\u3044\u308b\u9593\u306b\u540c\u3058\u8981\u6c42\u3092\u518d\u5b9f\u884c\u3059\u308b\u3068\u3001\u8aad\u307f\u8fbc\u307f\u6642\u9593\u304c\u77ed\u304f\u306a\u308b\u5834\u5408\u304c\u3042\u308b\u3002\u521d\u56de\u5024\u3068\u9023\u7d9a\u5b9f\u884c\u5024\u3092\u6df7\u5728\u3055\u305b\u305a\u3001\u5c11\u306a\u304f\u3068\u3082\u4e8c\u56de\u5b9f\u884c\u3057\u3066\u533a\u5225\u3059\u308b\u3002<\/p>\n<p>ollama ps \u3067\u306f\u3001\u751f\u6210\u5f8c\u306b\u30e2\u30c7\u30eb\u304c\u3069\u306e\u51e6\u7406\u88c5\u7f6e\u3078\u8aad\u307f\u8fbc\u307e\u308c\u305f\u304b\u3092\u78ba\u8a8d\u3059\u308b\u3002CPU \u3078\u306e\u9000\u907f\u304c\u5897\u3048\u3066\u3044\u308b\u5834\u5408\u3001\u30e2\u30c7\u30eb\u81ea\u4f53\u306f\u52d5\u4f5c\u3057\u3066\u3082\u751f\u6210\u901f\u5ea6\u304c\u5927\u304d\u304f\u4f4e\u4e0b\u3059\u308b\u53ef\u80fd\u6027\u304c\u3042\u308b\u3002\u56de\u7b54\u6587\u3060\u3051\u3067\u306a\u304f\u3001PROCESSOR\u3001CONTEXT\u3001\u751f\u6210\u901f\u5ea6\u3092\u4f75\u8a18\u3059\u308b\u3053\u3068\u3067\u3001MacBook Pro \u4e0a\u3067\u7d99\u7d9a\u5229\u7528\u3067\u304d\u308b\u69cb\u6210\u304b\u3092\u5224\u65ad\u3067\u304d\u308b\u3002<\/p>\n<h3>3.4 \u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u3092\u53d6\u5f97\u3059\u308b<\/h3>\n<p>\u57cb\u3081\u8fbc\u307f\u306f\u3001\u6587\u7ae0\u3092\u56fa\u5b9a\u9577\u306e\u6570\u5024\u30d9\u30af\u30c8\u30eb\u3078\u5909\u63db\u3059\u308b\u51e6\u7406\u3067\u3042\u308b\u3002\u751f\u6210\u7528 LLM \u304c\u6587\u7ae0\u3092\u51fa\u529b\u3059\u308b\u306e\u306b\u5bfe\u3057\u3001\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u306f\u6587\u7ae0\u540c\u58eb\u306e\u610f\u5473\u7684\u306a\u8fd1\u3055\u3092\u8a08\u7b97\u3067\u304d\u308b\u8868\u73fe\u3092\u51fa\u529b\u3059\u308b\u3002\u5f97\u3089\u308c\u305f\u30d9\u30af\u30c8\u30eb\u306f\u3001\u610f\u5473\u691c\u7d22\u3001\u985e\u4f3c\u6587\u66f8\u691c\u7d22\u3001\u5206\u985e\u3001\u30d9\u30af\u30c8\u30eb\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3001RAG \u306b\u4f7f\u7528\u3055\u308c\u308b<a href=\"#ref14\">[14]<\/a>\u3002<\/p>\n<p>\u672c\u69cb\u6210\u3067\u306f embeddinggemma \u3092\u4f7f\u7528\u3059\u308b\u3002\u751f\u6210\u7528\u30e2\u30c7\u30eb\u3068\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u3092\u5206\u96e2\u3059\u308b\u3053\u3068\u3067\u3001\u56de\u7b54\u751f\u6210\u306b\u5fc5\u8981\u306a\u898f\u6a21\u3068\u3001\u6587\u66f8\u691c\u7d22\u306b\u5fc5\u8981\u306a\u51e6\u7406\u3092\u500b\u5225\u306b\u9078\u629e\u3067\u304d\u308b\u3002\u57cb\u3081\u8fbc\u307f\u51e6\u7406\u306b 9B \u7d1a\u306e\u751f\u6210\u30e2\u30c7\u30eb\u3092\u6d41\u7528\u305b\u305a\u3001\u691c\u7d22\u7528\u306b\u8a2d\u8a08\u3055\u308c\u305f\u5c0f\u578b\u30e2\u30c7\u30eb\u3092\u4f7f\u3046\u305f\u3081\u3001\u6587\u66f8\u767b\u9332\u3068\u8cea\u554f\u691c\u7d22\u306e\u8ca0\u8377\u3092\u6291\u3048\u3089\u308c\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">ollama pull embeddinggemma<br \/>\nollama list<br \/>\nollama show embeddinggemma<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>ollama list \u3067\u306f\u3001\u751f\u6210\u7528\u306e qwen3.5:9b-q4_K_M \u3068\u57cb\u3081\u8fbc\u307f\u7528\u306e embeddinggemma \u304c\u5225\u3005\u306e\u30e2\u30c7\u30eb\u3068\u3057\u3066\u8868\u793a\u3055\u308c\u308b\u3002ollama show embeddinggemma \u3067\u306f\u3001\u30e2\u30c7\u30eb\u306e\u8a73\u7d30\u3068\u57cb\u3081\u8fbc\u307f\u6a5f\u80fd\u3078\u306e\u5bfe\u5fdc\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/p>\n<p>Ollama \u306e\u57cb\u3081\u8fbc\u307f API \u306f\u3001\u5165\u529b\u3055\u308c\u305f\u6587\u7ae0\u3054\u3068\u306b\u6570\u5024\u914d\u5217\u3092\u8fd4\u3059<a href=\"#ref15\">[15]<\/a>\u3002\u4e00\u3064\u306e\u6587\u7ae0\u3092\u5165\u529b\u3057\u305f\u5834\u5408\u3082\u3001\u8907\u6570\u306e\u6587\u7ae0\u3092\u307e\u3068\u3081\u3066\u5165\u529b\u3057\u305f\u5834\u5408\u3082\u3001\u5fdc\u7b54\u306e embeddings \u306f\u914d\u5217\u306e\u914d\u5217\u3068\u306a\u308b\u3002\u5916\u5074\u306e\u8981\u7d20\u6570\u306f\u5165\u529b\u6587\u7ae0\u6570\u306b\u5bfe\u5fdc\u3057\u3001\u5185\u5074\u306e\u8981\u7d20\u6570\u306f\u57cb\u3081\u8fbc\u307f\u30d9\u30af\u30c8\u30eb\u306e\u6b21\u5143\u6570\u306b\u5bfe\u5fdc\u3059\u308b\u3002<\/p>\n<p>\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u3092\u5909\u66f4\u3059\u308b\u5834\u5408\u3001Qdrant \u306b\u4fdd\u5b58\u6e08\u307f\u306e\u30d9\u30af\u30c8\u30eb\u3092\u305d\u306e\u307e\u307e\u4f7f\u3063\u3066\u306f\u306a\u3089\u306a\u3044\u3002\u30e2\u30c7\u30eb\u304c\u5909\u308f\u308b\u3068\u3001\u30d9\u30af\u30c8\u30eb\u306e\u6b21\u5143\u6570\u304c\u540c\u3058\u3067\u3042\u3063\u3066\u3082\u3001\u5404\u6570\u5024\u304c\u8868\u3059\u914d\u7f6e\u898f\u5247\u306f\u5909\u308f\u308b\u3002\u6587\u66f8\u5074\u3060\u3051\u304c\u65e7\u30e2\u30c7\u30eb\u3001\u8cea\u554f\u5074\u3060\u3051\u304c\u65b0\u30e2\u30c7\u30eb\u3068\u3044\u3046\u72b6\u614b\u3067\u306f\u3001\u8ddd\u96e2\u8a08\u7b97\u3092\u5b9f\u884c\u3067\u304d\u3066\u3082\u3001\u610f\u5473\u7684\u306a\u985e\u4f3c\u5ea6\u3068\u3057\u3066\u89e3\u91c8\u3067\u304d\u306a\u3044\u3002<\/p>\n<h3>3.5 \u57cb\u3081\u8fbc\u307f API \u3092\u5358\u4f53\u3067\u8a66\u9a13\u3059\u308b<\/h3>\n<p>\u57cb\u3081\u8fbc\u307f API \u306e\u5358\u4f53\u8a66\u9a13\u3067\u306f\u3001\u5165\u529b\u6570\u3001\u30d9\u30af\u30c8\u30eb\u6570\u3001\u6b21\u5143\u6570\u3092\u78ba\u8a8d\u3057\u305f\u5f8c\u3001\u610f\u5473\u306e\u8fd1\u3044\u6587\u7ae0\u304c\u76f8\u5bfe\u7684\u306b\u8fd1\u3044\u5024\u3092\u793a\u3059\u304b\u3092\u78ba\u8a8d\u3059\u308b\u3002\u914d\u5217\u304c\u8fd4\u3063\u305f\u3068\u3044\u3046\u4e8b\u5b9f\u3060\u3051\u3067\u306f\u3001\u9078\u629e\u3057\u305f\u30e2\u30c7\u30eb\u304c\u65e5\u672c\u8a9e\u306e\u691c\u7d22\u306b\u5229\u7528\u3067\u304d\u308b\u304b\u307e\u3067\u306f\u5224\u65ad\u3067\u304d\u306a\u3044\u3002<\/p>\n<p>\u6b21\u306e\u8a66\u9a13\u3067\u306f\u3001\u30ed\u30fc\u30ab\u30eb LLM \u306b\u95a2\u3059\u308b\u4e8c\u6587\u3068\u3001\u8a71\u984c\u306e\u7570\u306a\u308b\u4e00\u6587\u3092\u540c\u6642\u306b\u57cb\u3081\u8fbc\u3080\u3002\u6587\u7ae0\u57cb\u3081\u8fbc\u307f\u306f\u3001\u8868\u9762\u7684\u306a\u6587\u5b57\u5217\u306e\u4e00\u81f4\u3060\u3051\u3067\u306f\u306a\u304f\u3001\u610f\u5473\u7684\u306b\u8fd1\u3044\u6587\u7ae0\u3092\u8fd1\u3044\u30d9\u30af\u30c8\u30eb\u3068\u3057\u3066\u6bd4\u8f03\u3059\u308b\u305f\u3081\u306b\u8a2d\u8a08\u3055\u308c\u308b<a href=\"#ref16\">[16]<\/a>\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">curl -fsS http:\/\/localhost:11434\/api\/embed \\<br \/>\n&nbsp; -H 'Content-Type: application\/json' \\<br \/>\n&nbsp; -d '{<br \/>\n&nbsp; &nbsp; &quot;model&quot;: &quot;embeddinggemma&quot;,<br \/>\n&nbsp; &nbsp; &quot;input&quot;: [<br \/>\n&nbsp; &nbsp; &nbsp; &quot;MacBook Pro \u3067\u30ed\u30fc\u30ab\u30eb LLM \u3092\u52d5\u304b\u3059&quot;,<br \/>\n&nbsp; &nbsp; &nbsp; &quot;Apple Silicon \u4e0a\u3067\u5927\u898f\u6a21\u8a00\u8a9e\u30e2\u30c7\u30eb\u3092\u5b9f\u884c\u3059\u308b&quot;,<br \/>\n&nbsp; &nbsp; &nbsp; &quot;\u51b7\u8535\u5eab\u3067\u91ce\u83dc\u3092\u4fdd\u5b58\u3059\u308b&quot;<br \/>\n&nbsp; &nbsp; ]<br \/>\n&nbsp; }' | tee \/tmp\/ollama-embeddings.json | python3 -c 'import json, sys; data=json.load(sys.stdin); print(&quot;vectors=&quot;, len(data[&quot;embeddings&quot;])); print(&quot;dimensions=&quot;, [len(vector) for vector in data[&quot;embeddings&quot;]])'<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>vectors \u304c 3 \u3067\u3042\u308a\u3001\u4e09\u3064\u306e dimensions \u304c\u540c\u3058\u6b63\u306e\u5024\u3067\u3042\u308c\u3070\u3001\u5404\u5165\u529b\u304c\u540c\u3058\u6b21\u5143\u306e\u30d9\u30af\u30c8\u30eb\u3078\u5909\u63db\u3055\u308c\u305f\u3053\u3068\u3092\u78ba\u8a8d\u3067\u304d\u308b\u3002\u305f\u3060\u3057\u3001\u3053\u308c\u306f API \u306e\u51fa\u529b\u5f62\u72b6\u304c\u6b63\u3057\u3044\u3053\u3068\u3092\u793a\u3059\u3060\u3051\u3067\u3042\u308a\u3001\u610f\u5473\u691c\u7d22\u306e\u54c1\u8cea\u3092\u793a\u3059\u3082\u306e\u3067\u306f\u306a\u3044\u3002<\/p>\n<p>\u610f\u5473\u7684\u306a\u914d\u7f6e\u306f\u3001\u30d9\u30af\u30c8\u30eb\u9593\u306e\u30b3\u30b5\u30a4\u30f3\u985e\u4f3c\u5ea6\u3092\u8a08\u7b97\u3057\u3066\u78ba\u8a8d\u3059\u308b\u3002\u6b21\u306e\u51e6\u7406\u3067\u306f\u3001\u4e00\u6587\u76ee\u3068\u4e8c\u6587\u76ee\u3001\u4e00\u6587\u76ee\u3068\u4e09\u6587\u76ee\u306e\u985e\u4f3c\u5ea6\u3092\u6bd4\u8f03\u3059\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">python3 - &lt;&lt;'PY'<br \/>\nimport json<br \/>\nimport math<br \/>\n<br \/>\nwith open(&quot;\/tmp\/ollama-embeddings.json&quot;, encoding=&quot;utf-8&quot;) as file:<br \/>\n&nbsp; &nbsp; vectors = json.load(file)[&quot;embeddings&quot;]<br \/>\n<br \/>\ndef cosine(left, right):<br \/>\n&nbsp; &nbsp; dot = sum(a * b for a, b in zip(left, right))<br \/>\n&nbsp; &nbsp; left_norm = math.sqrt(sum(value * value for value in left))<br \/>\n&nbsp; &nbsp; right_norm = math.sqrt(sum(value * value for value in right))<br \/>\n&nbsp; &nbsp; return dot \/ (left_norm * right_norm)<br \/>\n<br \/>\nlocal_llm_similarity = cosine(vectors[0], vectors[1])<br \/>\nunrelated_similarity = cosine(vectors[0], vectors[2])<br \/>\n<br \/>\nprint(f&quot;local_llm_similarity={local_llm_similarity:.6f}&quot;)<br \/>\nprint(f&quot;unrelated_similarity={unrelated_similarity:.6f}&quot;)<br \/>\nprint(f&quot;expected_order={local_llm_similarity &gt; unrelated_similarity}&quot;)<br \/>\nPY<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>local_llm_similarity \u304c unrelated_similarity \u3088\u308a\u9ad8\u3051\u308c\u3070\u3001\u3053\u306e\u4e09\u6587\u306b\u5bfe\u3057\u3066\u306f\u3001\u30ed\u30fc\u30ab\u30eb LLM \u306b\u95a2\u3059\u308b\u4e8c\u6587\u304c\u3001\u51b7\u8535\u5eab\u306b\u95a2\u3059\u308b\u6587\u3088\u308a\u8fd1\u304f\u914d\u7f6e\u3055\u308c\u305f\u3053\u3068\u306b\u306a\u308b\u3002\u3053\u306e\u4e00\u56de\u306e\u7d50\u679c\u3060\u3051\u3067\u691c\u7d22\u54c1\u8cea\u5168\u4f53\u3092\u4fdd\u8a3c\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u306a\u3044\u304c\u3001\u65e5\u672c\u8a9e\u5165\u529b\u3001\u30d9\u30af\u30c8\u30eb\u751f\u6210\u3001\u985e\u4f3c\u5ea6\u8a08\u7b97\u307e\u3067\u306e\u6700\u5c0f\u7d4c\u8def\u3092\u78ba\u8a8d\u3067\u304d\u308b\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u78ba\u8a8d\u6bb5\u968e<\/th>\n<th>\u6210\u529f\u6761\u4ef6<\/th>\n<th>\u78ba\u8a8d\u3067\u304d\u306a\u3044\u3053\u3068<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>API \u5fdc\u7b54<\/td>\n<td>embeddings \u304c\u8fd4\u308b\u3002<\/td>\n<td>\u5165\u529b\u6570\u3068\u51fa\u529b\u6570\u304c\u4e00\u81f4\u3059\u308b\u304b\u306f\u5225\u306b\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u51fa\u529b\u6570<\/td>\n<td>\u5165\u529b\u3057\u305f\u4e09\u6587\u306b\u5bfe\u3057\u3066\u4e09\u3064\u306e\u30d9\u30af\u30c8\u30eb\u304c\u8fd4\u308b\u3002<\/td>\n<td>\u5404\u30d9\u30af\u30c8\u30eb\u306e\u6b21\u5143\u304c\u4e00\u81f4\u3059\u308b\u304b\u306f\u5225\u306b\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u6b21\u5143\u6570<\/td>\n<td>\u3059\u3079\u3066\u306e\u30d9\u30af\u30c8\u30eb\u304c\u540c\u3058\u6b63\u306e\u6b21\u5143\u6570\u3092\u6301\u3064\u3002<\/td>\n<td>\u610f\u5473\u7684\u306b\u59a5\u5f53\u306a\u914d\u7f6e\u304b\u306f\u6b21\u5143\u6570\u3060\u3051\u3067\u306f\u5206\u304b\u3089\u306a\u3044\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u985e\u4f3c\u5ea6<\/td>\n<td>\u540c\u3058\u8a71\u984c\u306e\u6587\u7ae0\u304c\u3001\u7121\u95a2\u4fc2\u306a\u6587\u7ae0\u3088\u308a\u9ad8\u3044\u985e\u4f3c\u5ea6\u3092\u793a\u3059\u3002<\/td>\n<td>\u5b9f\u969b\u306e\u6587\u66f8\u7fa4\u3067\u5fc5\u8981\u306a\u30c1\u30e3\u30f3\u30af\u304c\u691c\u7d22\u4e0a\u4f4d\u3078\u5165\u308b\u304b\u306f\u5206\u304b\u3089\u306a\u3044\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>RAG \u3067\u306f\u3001\u6587\u66f8\u767b\u9332\u6642\u3068\u8cea\u554f\u6642\u306b\u540c\u3058\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u3092\u4f7f\u7528\u3059\u308b\u3060\u3051\u3067\u306a\u304f\u3001\u30e2\u30c7\u30eb\u306e\u7248\u3068\u30bf\u30b0\u3082\u56fa\u5b9a\u3059\u308b\u3002\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u3092\u66f4\u65b0\u307e\u305f\u306f\u5909\u66f4\u3057\u305f\u5834\u5408\u306f\u3001\u65e2\u5b58\u306e Qdrant \u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3092\u65b0\u3057\u3044\u30e2\u30c7\u30eb\u3067\u4f5c\u6210\u3057\u305f\u30d9\u30af\u30c8\u30eb\u3078\u7f6e\u304d\u63db\u3048\u308b\u3002\u65b0\u65e7\u30d9\u30af\u30c8\u30eb\u3092\u540c\u3058\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3078\u6df7\u5728\u3055\u305b\u308b\u3068\u3001\u691c\u7d22\u7d50\u679c\u304c\u4e0d\u5b89\u5b9a\u306b\u306a\u3063\u3066\u3082\u539f\u56e0\u3092\u8ffd\u8de1\u3067\u304d\u306a\u3044\u3002<\/p>\n<h3>3.6 \u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u9577\u3092\u5fc5\u8981\u4ee5\u4e0a\u306b\u5e83\u3052\u306a\u3044<\/h3>\n<p>\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u9577\u306f\u3001\u751f\u6210\u7528 LLM \u304c\u4e00\u56de\u306e\u8981\u6c42\u3067\u53c2\u7167\u3067\u304d\u308b\u5165\u529b\u3068\u51fa\u529b\u306e\u4e0a\u9650\u3067\u3042\u308b\u3002RAG \u3067\u306f\u3001\u5229\u7528\u8005\u306e\u8cea\u554f\u3001\u4f1a\u8a71\u5c65\u6b74\u3001\u30b7\u30b9\u30c6\u30e0\u6307\u793a\u3001\u691c\u7d22\u3055\u308c\u305f\u6587\u66f8\u65ad\u7247\u304c\u540c\u3058\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u3092\u6d88\u8cbb\u3059\u308b\u3002\u53d6\u5f97\u4ef6\u6570\u307e\u305f\u306f\u30c1\u30e3\u30f3\u30af\u30b5\u30a4\u30ba\u3092\u5897\u3084\u3059\u3068\u3001\u30e2\u30c7\u30eb\u3078\u6e21\u3059\u6839\u62e0\u306f\u5897\u3048\u308b\u304c\u3001\u305d\u306e\u5206\u3060\u3051\u8a18\u61b6\u4f7f\u7528\u91cf\u3068\u5165\u529b\u51e6\u7406\u6642\u9593\u3082\u5897\u3048\u308b\u3002<\/p>\n<p>\u30e2\u30c7\u30eb\u304c\u5bfe\u5fdc\u3059\u308b\u6700\u5927\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u9577\u3068\u3001\u5b9f\u884c\u6642\u306b\u78ba\u4fdd\u3055\u308c\u308b\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u9577\u306f\u7570\u306a\u308b\u3002qwen3.5:9b-q4_K_M \u306e\u30e2\u30c7\u30eb\u60c5\u5831\u306b 256K \u3068\u8868\u793a\u3055\u308c\u3066\u3044\u3066\u3082\u3001MacBook Pro \u4e0a\u3067\u5e38\u306b 256K \u304c\u5272\u308a\u5f53\u3066\u3089\u308c\u308b\u308f\u3051\u3067\u306f\u306a\u3044\u3002Ollama \u306f\u5229\u7528\u53ef\u80fd\u306a\u8a08\u7b97\u8cc7\u6e90\u3068\u8a2d\u5b9a\u306b\u5fdc\u3058\u3066\u5b9f\u884c\u6642\u306e\u9577\u3055\u3092\u6c7a\u3081\u3001\u9577\u3044\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u307b\u3069\u591a\u304f\u306e\u8a18\u61b6\u9818\u57df\u3092\u4f7f\u7528\u3059\u308b<a href=\"#ref17\">[17]<\/a>\u3002<\/p>\n<p>\u521d\u671f\u691c\u8a3c\u3067\u306f\u3001Open WebUI \u306e\u30e2\u30c7\u30eb\u8a2d\u5b9a\u3092 8192 \u30c8\u30fc\u30af\u30f3\u304b\u3089\u958b\u59cb\u3059\u308b\u3002\u4e09\u4ef6\u306e\u77ed\u3044\u30c1\u30e3\u30f3\u30af\u3068\u8cea\u554f\u3092\u5165\u529b\u3059\u308b\u69cb\u6210\u3067\u4e0d\u8db3\u304c\u78ba\u8a8d\u3055\u308c\u305f\u5834\u5408\u306f\u300116384 \u30c8\u30fc\u30af\u30f3\u3078\u5897\u3084\u3059\u3002\u4e0a\u9650\u5024\u3092\u5148\u306b\u6700\u5927\u5316\u3059\u308b\u306e\u3067\u306f\u306a\u304f\u3001\u5b9f\u969b\u306b\u53d6\u5f97\u3059\u308b\u30c1\u30e3\u30f3\u30af\u6570\u3001\u6587\u66f8\u65ad\u7247\u306e\u9577\u3055\u3001\u4f1a\u8a71\u5c65\u6b74\u306b\u5bfe\u3057\u3066\u5fc5\u8981\u306a\u7bc4\u56f2\u3060\u3051\u3092\u5272\u308a\u5f53\u3066\u308b\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u8a2d\u5b9a\u307e\u305f\u306f\u6761\u4ef6<\/th>\n<th>\u5897\u3084\u3057\u305f\u5834\u5408\u306e\u52b9\u679c<\/th>\n<th>\u5897\u3084\u3057\u305f\u5834\u5408\u306e\u8ca0\u62c5<\/th>\n<th>\u8abf\u6574\u5224\u65ad<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u9577<\/td>\n<td>\u3088\u308a\u9577\u3044\u8cea\u554f\u3001\u4f1a\u8a71\u5c65\u6b74\u3001\u691c\u7d22\u7d50\u679c\u3092\u4e00\u5ea6\u306b\u53c2\u7167\u3067\u304d\u308b\u3002<\/td>\n<td>\u8a18\u61b6\u4f7f\u7528\u91cf\u304c\u5897\u3048\u3001CPU \u3078\u306e\u9000\u907f\u3084\u51e6\u7406\u901f\u5ea6\u4f4e\u4e0b\u304c\u8d77\u304d\u3084\u3059\u304f\u306a\u308b\u3002<\/td>\n<td>\u5fc5\u8981\u306a\u5165\u529b\u304c\u5207\u308a\u6368\u3066\u3089\u308c\u308b\u5834\u5408\u306b\u3060\u3051\u5897\u3084\u3059\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u30c1\u30e3\u30f3\u30af\u30b5\u30a4\u30ba<\/td>\n<td>\u4e00\u3064\u306e\u691c\u7d22\u7d50\u679c\u3078\u9577\u3044\u6587\u8108\u3092\u6b8b\u305b\u308b\u3002<\/td>\n<td>\u7121\u95a2\u4fc2\u306a\u8a18\u8ff0\u304c\u6df7\u5165\u3057\u3001\u4e00\u4ef6\u5f53\u305f\u308a\u306e\u30c8\u30fc\u30af\u30f3\u6570\u304c\u5897\u3048\u308b\u3002<\/td>\n<td>\u6761\u4ef6\u3001\u6570\u5024\u3001\u4f8b\u5916\u304c\u5206\u65ad\u3055\u308c\u308b\u5834\u5408\u306b\u8abf\u6574\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u53d6\u5f97\u4ef6\u6570<\/td>\n<td>\u8907\u6570\u7b87\u6240\u306e\u6839\u62e0\u3092\u540c\u6642\u306b\u53c2\u7167\u3067\u304d\u308b\u3002<\/td>\n<td>\u985e\u4f3c\u3057\u305f\u65ad\u7247\u3084\u7121\u95a2\u4fc2\u306a\u65ad\u7247\u304c\u5165\u529b\u3078\u5165\u308a\u3084\u3059\u304f\u306a\u308b\u3002<\/td>\n<td>\u5fc5\u8981\u306a\u6839\u62e0\u304c\u691c\u7d22\u4e0a\u4f4d\u304b\u3089\u6f0f\u308c\u308b\u5834\u5408\u306b\u5897\u3084\u3059\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u4f1a\u8a71\u5c65\u6b74<\/td>\n<td>\u904e\u53bb\u306e\u8cea\u554f\u3068\u56de\u7b54\u3092\u8e0f\u307e\u3048\u3066\u5fdc\u7b54\u3067\u304d\u308b\u3002<\/td>\n<td>\u73fe\u5728\u306e\u8cea\u554f\u306b\u4f7f\u3048\u308b\u6839\u62e0\u9818\u57df\u304c\u6e1b\u308b\u3002<\/td>\n<td>\u72ec\u7acb\u3057\u305f\u691c\u8a3c\u3067\u306f\u65b0\u3057\u3044\u4f1a\u8a71\u3092\u4f5c\u6210\u3059\u308b\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u8a2d\u5b9a\u5f8c\u306f\u3001\u751f\u6210\u8981\u6c42\u3092\u4e00\u5ea6\u5b9f\u884c\u3057\u3066\u304b\u3089 ollama ps \u3092\u78ba\u8a8d\u3059\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">ollama ps<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>CONTEXT \u306b\u306f\u5b9f\u884c\u4e2d\u30e2\u30c7\u30eb\u3078\u5272\u308a\u5f53\u3066\u3089\u308c\u305f\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u9577\u304c\u8868\u793a\u3055\u308c\u308b\u3002PROCESSOR \u3067\u306f\u3001\u30e2\u30c7\u30eb\u304c GPU \u5074\u3078\u3069\u306e\u7a0b\u5ea6\u914d\u7f6e\u3055\u308c\u3001CPU \u5074\u3078\u9000\u907f\u3057\u3066\u3044\u308b\u304b\u3092\u78ba\u8a8d\u3059\u308b\u3002\u8a2d\u5b9a\u3057\u305f\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u9577\u3092\u5897\u3084\u3057\u305f\u5f8c\u306b CPU \u5074\u3078\u306e\u9000\u907f\u304c\u5897\u3048\u3001\u751f\u6210\u901f\u5ea6\u304c\u5927\u304d\u304f\u4f4e\u4e0b\u3057\u305f\u5834\u5408\u3001\u305d\u306e\u8a2d\u5b9a\u306f\u30e2\u30c7\u30eb\u306e\u4e0a\u9650\u5185\u3067\u3042\u3063\u3066\u3082\u3001\u305d\u306e MacBook Pro \u306b\u304a\u3051\u308b\u5b9f\u7528\u5024\u3067\u306f\u306a\u3044\u3002<\/p>\n<p>RAG \u306e\u76ee\u7684\u306f\u3001\u6587\u66f8\u5168\u4f53\u3092\u6700\u5927\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u3078\u8a70\u3081\u8fbc\u3080\u3053\u3068\u3067\u306f\u306a\u3044\u3002\u8cea\u554f\u306b\u5fc5\u8981\u306a\u65ad\u7247\u3092\u57cb\u3081\u8fbc\u307f\u691c\u7d22\u3067\u9078\u3073\u3001\u751f\u6210\u7528 LLM \u3078\u6e21\u3059\u5165\u529b\u3092\u9650\u5b9a\u3059\u308b\u3053\u3068\u306b\u3042\u308b\u3002\u30c1\u30e3\u30f3\u30af\u30b5\u30a4\u30ba 1000 \u6587\u5b57\u3001\u91cd\u8907 100 \u6587\u5b57\u3001\u53d6\u5f97\u4ef6\u6570 3 \u4ef6\u3068\u3044\u3046\u521d\u671f\u6761\u4ef6\u3067\u6b63\u3057\u3044\u6839\u62e0\u3092\u53d6\u5f97\u3067\u304d\u308b\u306a\u3089\u3001256K \u306e\u6700\u5927\u5024\u3092\u78ba\u4fdd\u3059\u308b\u7406\u7531\u306f\u306a\u3044\u3002<\/p>\n<p>\u3053\u306e\u7ae0\u306e\u5b8c\u4e86\u6761\u4ef6\u306f\u3001\u751f\u6210\u7528\u30e2\u30c7\u30eb\u3068\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u306e\u540d\u524d\u304c ollama list \u306b\u8868\u793a\u3055\u308c\u308b\u3053\u3068\u3067\u306f\u306a\u3044\u3002\u751f\u6210 API \u304c\u65e5\u672c\u8a9e\u56de\u7b54\u3068\u8a08\u6e2c\u5024\u3092\u8fd4\u3057\u3001\u57cb\u3081\u8fbc\u307f API \u304c\u5165\u529b\u6570\u3068\u4e00\u81f4\u3059\u308b\u30d9\u30af\u30c8\u30eb\u3092\u8fd4\u3057\u3001\u610f\u5473\u306e\u8fd1\u3044\u6587\u7ae0\u304c\u76f8\u5bfe\u7684\u306b\u8fd1\u304f\u914d\u7f6e\u3055\u308c\u3001\u5b9f\u884c\u6642\u306e\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u9577\u3068\u51e6\u7406\u88c5\u7f6e\u3092 ollama ps \u3067\u78ba\u8a8d\u3067\u304d\u308b\u3068\u3053\u308d\u307e\u3067\u3067\u3042\u308b\u3002\u3053\u306e\u5358\u4f53\u8a66\u9a13\u3092\u5148\u306b\u7d42\u3048\u308b\u3053\u3068\u3067\u3001\u5f8c\u7d9a\u306e Open WebUI \u63a5\u7d9a\u3084 Qdrant \u767b\u9332\u3067\u969c\u5bb3\u304c\u8d77\u304d\u305f\u969b\u306b\u3001Ollama \u5074\u3092\u5207\u308a\u5206\u3051\u6e08\u307f\u306e\u524d\u63d0\u3068\u3057\u3066\u6271\u3048\u308b\u3002<\/p>\n<hr>\n<h2>4. Docker Compose \u3067 Open WebUI \u3068 Qdrant \u3092\u69cb\u7bc9\u3059\u308b<\/h2>\n<h3>4.1 \u4f5c\u696d\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u4f5c\u308b<\/h3>\n<p>\u69cb\u6210\u30d5\u30a1\u30a4\u30eb\u3001\u6c38\u7d9a\u30c7\u30fc\u30bf\u3001\u691c\u8a3c\u6587\u66f8\u3001\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u3092\u4e00\u3064\u306e\u4f5c\u696d\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3078\u307e\u3068\u3081\u308b\u3002Open WebUI \u3068 Qdrant \u306e\u4fdd\u5b58\u9818\u57df\u306f\u5206\u96e2\u3057\u3001\u3069\u306e\u30b5\u30fc\u30d3\u30b9\u304c\u3069\u306e\u72b6\u614b\u3092\u4fdd\u6301\u3057\u3066\u3044\u308b\u304b\u3092\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u5358\u4f4d\u3067\u5224\u5225\u3067\u304d\u308b\u3088\u3046\u306b\u3059\u308b\u3002<\/p>\n<p>Open WebUI \u306e\u4fdd\u5b58\u9818\u57df\u306b\u306f\u3001\u5229\u7528\u8005\u60c5\u5831\u3001\u4f1a\u8a71\u3001Knowledge \u306e\u7ba1\u7406\u60c5\u5831\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u8a2d\u5b9a\u304c\u542b\u307e\u308c\u308b\u3002Qdrant \u306e\u4fdd\u5b58\u9818\u57df\u306b\u306f\u3001\u57cb\u3081\u8fbc\u307f\u30d9\u30af\u30c8\u30eb\u3001\u6587\u66f8\u65ad\u7247\u306b\u5bfe\u5fdc\u3059\u308b\u4ed8\u968f\u60c5\u5831\u3001\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306e\u7d22\u5f15\u304c\u7f6e\u304b\u308c\u308b\u3002\u4e21\u8005\u3092\u540c\u3058\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3078\u6df7\u5728\u3055\u305b\u308b\u3068\u3001\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u3001\u5fa9\u5143\u3001\u969c\u5bb3\u8abf\u67fb\u306e\u5bfe\u8c61\u3092\u5206\u96e2\u3067\u304d\u306a\u3044\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">mkdir -p &quot;$HOME\/local-rag\/data\/open-webui&quot;<br \/>\nmkdir -p &quot;$HOME\/local-rag\/data\/qdrant&quot;<br \/>\nmkdir -p &quot;$HOME\/local-rag\/data\/qdrant-snapshots&quot;<br \/>\nmkdir -p &quot;$HOME\/local-rag\/documents&quot;<br \/>\nmkdir -p &quot;$HOME\/local-rag\/backup&quot;<br \/>\ncd &quot;$HOME\/local-rag&quot;<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<table>\n<thead>\n<tr>\n<th>\u30d1\u30b9<\/th>\n<th>\u4fdd\u5b58\u5bfe\u8c61<\/th>\n<th>\u6d88\u5931\u3057\u305f\u5834\u5408\u306e\u5f71\u97ff<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>data\/open-webui<\/td>\n<td>\u5229\u7528\u8005\u3001\u4f1a\u8a71\u3001Knowledge \u306e\u7ba1\u7406\u60c5\u5831\u3001Open WebUI \u306e\u8a2d\u5b9a\u3092\u4fdd\u5b58\u3059\u308b\u3002<\/td>\n<td>\u5229\u7528\u8005\u60c5\u5831\u3068\u4f1a\u8a71\u306b\u52a0\u3048\u3001\u767b\u9332\u6e08\u307f\u6587\u66f8\u3068\u30d9\u30af\u30c8\u30eb\u306e\u5bfe\u5fdc\u95a2\u4fc2\u3092\u5931\u3046\u3002<\/td>\n<\/tr>\n<tr>\n<td>data\/qdrant<\/td>\n<td>Qdrant \u306e\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3001\u70b9\u3001\u30d9\u30af\u30c8\u30eb\u3001\u4ed8\u968f\u60c5\u5831\u3001\u7d22\u5f15\u3092\u4fdd\u5b58\u3059\u308b\u3002<\/td>\n<td>\u6587\u66f8\u304c Open WebUI \u5074\u306b\u6b8b\u3063\u3066\u3044\u3066\u3082\u3001\u691c\u7d22\u7528\u30d9\u30af\u30c8\u30eb\u3092\u518d\u69cb\u7bc9\u3059\u308b\u5fc5\u8981\u304c\u751f\u3058\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>data\/qdrant-snapshots<\/td>\n<td>Qdrant \u304c\u751f\u6210\u3059\u308b\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u3092\u4fdd\u5b58\u3059\u308b\u3002<\/td>\n<td>\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u5358\u4f4d\u306e\u5fa9\u5143\u306b\u4f7f\u3048\u308b\u9000\u907f\u30c7\u30fc\u30bf\u3092\u5931\u3046\u3002<\/td>\n<\/tr>\n<tr>\n<td>documents<\/td>\n<td>\u767b\u9332\u524d\u306e\u539f\u6587\u3068\u691c\u8a3c\u7528\u6587\u66f8\u3092\u4fdd\u5b58\u3059\u308b\u3002<\/td>\n<td>\u7d22\u5f15\u3092\u4f5c\u308a\u76f4\u3059\u969b\u306e\u539f\u672c\u3092\u5931\u3044\u3001\u767b\u9332\u5185\u5bb9\u3092\u518d\u73fe\u3067\u304d\u306a\u304f\u306a\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>backup<\/td>\n<td>Open WebUI \u306e\u4fdd\u5b58\u9818\u57df\u3084\u69cb\u6210\u30d5\u30a1\u30a4\u30eb\u306e\u9000\u907f\u5148\u3068\u3057\u3066\u4f7f\u7528\u3059\u308b\u3002<\/td>\n<td>\u66f4\u65b0\u5931\u6557\u3084\u8a2d\u5b9a\u7834\u640d\u304c\u8d77\u304d\u305f\u5834\u5408\u306b\u3001\u66f4\u65b0\u524d\u306e\u72b6\u614b\u3078\u623b\u305b\u306a\u304f\u306a\u308b\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u3053\u306e\u5206\u96e2\u306b\u3088\u308a\u3001\u56de\u7b54\u751f\u6210\u3001\u6587\u66f8\u7ba1\u7406\u3001\u30d9\u30af\u30c8\u30eb\u691c\u7d22\u306e\u3069\u3053\u3067\u72b6\u614b\u304c\u5931\u308f\u308c\u305f\u304b\u3092\u5224\u65ad\u3067\u304d\u308b\u3002\u305f\u3068\u3048\u3070\u3001Open WebUI \u306e\u753b\u9762\u306b\u6587\u66f8\u304c\u6b8b\u3063\u3066\u3044\u308b\u306e\u306b\u691c\u7d22\u3067\u304d\u306a\u3044\u5834\u5408\u306f Qdrant \u5074\u3092\u8abf\u3079\u3001Qdrant \u306b\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u304c\u6b8b\u3063\u3066\u3044\u308b\u306e\u306b Knowledge \u304c\u8868\u793a\u3055\u308c\u306a\u3044\u5834\u5408\u306f Open WebUI \u5074\u306e\u7ba1\u7406\u60c5\u5831\u3092\u8abf\u3079\u308b\u3002<\/p>\n<h3>4.2 \u79d8\u5bc6\u5024\u3068\u7248\u3092\u74b0\u5883\u5909\u6570\u30d5\u30a1\u30a4\u30eb\u3078\u8a18\u9332\u3059\u308b<\/h3>\n<p>Qdrant \u306e API \u9375\u3001Open WebUI \u306e\u79d8\u5bc6\u9375\u3001\u4f7f\u7528\u3059\u308b\u30a4\u30e1\u30fc\u30b8\u7248\u3001\u30e2\u30c7\u30eb\u540d\u3092 .env \u3078\u8a18\u9332\u3059\u308b\u3002Qdrant \u306f QDRANT__SERVICE__API_KEY \u306b\u3088\u308b API \u9375\u8a8d\u8a3c\u3092\u8a2d\u5b9a\u3067\u304d\u308b<a href=\"#ref18\">[18]<\/a>\u3002\u672c\u69cb\u6210\u3067\u306f 6333 \u756a\u30dd\u30fc\u30c8\u3092 127.0.0.1 \u306b\u9650\u5b9a\u3057\u305f\u3046\u3048\u3067\u3001Open WebUI \u304b\u3089\u306e\u63a5\u7d9a\u306b\u3082\u540c\u3058 API \u9375\u3092\u8981\u6c42\u3059\u308b\u3002<\/p>\n<p>WEBUI_SECRET_KEY \u306f\u3001Open WebUI \u304c\u30bb\u30c3\u30b7\u30e7\u30f3\u3084\u6697\u53f7\u5316\u5bfe\u8c61\u306e\u60c5\u5831\u3092\u7d99\u7d9a\u3057\u3066\u6271\u3046\u305f\u3081\u306e\u79d8\u5bc6\u5024\u3067\u3042\u308b\u3002\u30b3\u30f3\u30c6\u30ca\u30fc\u306e\u518d\u4f5c\u6210\u3054\u3068\u306b\u5024\u304c\u5909\u308f\u308b\u3068\u3001\u65e2\u5b58\u306e\u30bb\u30c3\u30b7\u30e7\u30f3\u3084\u6697\u53f7\u5316\u6e08\u307f\u60c5\u5831\u3092\u5229\u7528\u3067\u304d\u306a\u304f\u306a\u308b\u53ef\u80fd\u6027\u304c\u3042\u308b\u305f\u3081\u3001\u521d\u56de\u69cb\u7bc9\u6642\u306b\u751f\u6210\u3057\u305f\u5024\u3092\u66f4\u65b0\u5f8c\u3082\u7dad\u6301\u3059\u308b\u3002<\/p>\n<p>.env \u3092\u66f8\u304d\u8fbc\u3080\u524d\u306b\u6a29\u9650\u3092 600 \u306b\u3059\u308b\u3002\u66f8\u304d\u8fbc\u307f\u5f8c\u306b\u6a29\u9650\u3092\u5909\u66f4\u3059\u308b\u3060\u3051\u3067\u306f\u3001\u751f\u6210\u304b\u3089 chmod \u307e\u3067\u306e\u77ed\u6642\u9593\u3001\u901a\u5e38\u306e umask \u306b\u57fa\u3065\u304f\u6a29\u9650\u3067\u30d5\u30a1\u30a4\u30eb\u304c\u5b58\u5728\u3059\u308b\u53ef\u80fd\u6027\u304c\u3042\u308b\u3002\u7a7a\u30d5\u30a1\u30a4\u30eb\u3092\u5148\u306b\u4f5c\u6210\u3057\u3066\u6a29\u9650\u3092\u5236\u9650\u3057\u3001\u305d\u306e\u5f8c\u3067\u79d8\u5bc6\u5024\u3092\u66f8\u304d\u8fbc\u3080\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">QDRANT_API_KEY=$(openssl rand -hex 32)<br \/>\nWEBUI_SECRET_KEY=$(openssl rand -hex 32)<br \/>\n<br \/>\n: &gt; .env<br \/>\nchmod 600 .env<br \/>\n<br \/>\ncat &gt; .env &lt;&lt;EOF<br \/>\nOPEN_WEBUI_IMAGE=ghcr.io\/open-webui\/open-webui:v0.10.2<br \/>\nQDRANT_IMAGE=qdrant\/qdrant:v1.18.2<br \/>\nGENERATION_MODEL=qwen3.5:9b-q4_K_M<br \/>\nEMBEDDING_MODEL=embeddinggemma<br \/>\nENABLE_SIGNUP=True<br \/>\nQDRANT_API_KEY=${QDRANT_API_KEY}<br \/>\nWEBUI_SECRET_KEY=${WEBUI_SECRET_KEY}<br \/>\nEOF<br \/>\n<br \/>\nunset QDRANT_API_KEY WEBUI_SECRET_KEY<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>\u30a4\u30e1\u30fc\u30b8\u540d\u306b\u306f latest \u3084 main \u3092\u4f7f\u7528\u305b\u305a\u3001Open WebUI 0.10.2 \u3068 Qdrant 1.18.2 \u3092\u56fa\u5b9a\u3059\u308b\u3002\u56fa\u5b9a\u3057\u306a\u3044\u5834\u5408\u3001\u540c\u3058 docker compose pull \u3092\u5b9f\u884c\u3057\u3066\u3082\u53d6\u5f97\u3055\u308c\u308b\u5b9f\u88c5\u304c\u5909\u308f\u308a\u3001\u74b0\u5883\u5909\u6570\u3001\u4fdd\u5b58\u5f62\u5f0f\u3001\u691c\u7d22\u51e6\u7406\u306e\u3069\u3053\u3067\u6319\u52d5\u304c\u5909\u5316\u3057\u305f\u304b\u3092\u8ffd\u8de1\u3067\u304d\u306a\u304f\u306a\u308b\u3002<\/p>\n<p>GENERATION_MODEL \u306f\u3001\u3053\u306e\u7ae0\u306e Compose \u69cb\u6210\u304b\u3089 Open WebUI \u3078\u76f4\u63a5\u6e21\u3059\u5024\u3067\u306f\u306a\u3044\u3002\u691c\u8a3c\u306b\u4f7f\u7528\u3059\u308b\u30e2\u30c7\u30eb\u540d\u3092\u69cb\u6210\u60c5\u5831\u3068\u540c\u3058\u5834\u6240\u3078\u8a18\u9332\u3057\u3001\u5f8c\u7d9a\u306e\u8a2d\u5b9a\u78ba\u8a8d\u3084\u8a66\u9a13\u7528\u30b3\u30de\u30f3\u30c9\u3067\u518d\u5229\u7528\u3059\u308b\u305f\u3081\u306b\u7f6e\u304f\u3002\u3053\u308c\u306b\u5bfe\u3057\u3066 EMBEDDING_MODEL \u306f\u3001Open WebUI \u306e\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u8a2d\u5b9a\u3078\u6e21\u3055\u308c\u308b\u3002<\/p>\n<p>ENABLE_SIGNUP \u306f\u3001\u521d\u56de\u306e\u7ba1\u7406\u8005\u767b\u9332\u3092\u884c\u3046\u305f\u3081\u3001\u69cb\u7bc9\u6642\u306b\u306f True \u3068\u3059\u308b\u3002\u6700\u521d\u306e\u5229\u7528\u8005\u3092\u767b\u9332\u3057\u305f\u5f8c\u3001\u3053\u306e\u5024\u3092 False \u3078\u5909\u66f4\u3057\u3066\u30b3\u30f3\u30c6\u30ca\u30fc\u3092\u518d\u4f5c\u6210\u3059\u308b\u3002Open WebUI \u304c\u521d\u56de\u767b\u9332\u5f8c\u306b\u65b0\u898f\u767b\u9332\u3092\u505c\u6b62\u3057\u3066\u3082\u3001\u74b0\u5883\u5909\u6570\u3092\u69cb\u6210\u306e\u6b63\u3068\u3059\u308b\u5834\u5408\u3001\u518d\u8d77\u52d5\u6642\u306b True \u304c\u518d\u9069\u7528\u3055\u308c\u306a\u3044\u3088\u3046\u660e\u793a\u7684\u306b\u56fa\u5b9a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u3002<\/p>\n<p>.env \u306b\u306f\u8a8d\u8a3c\u60c5\u5831\u304c\u542b\u307e\u308c\u308b\u305f\u3081\u3001Git \u3078\u767b\u9332\u3057\u306a\u3044\u3002Open WebUI \u3068 Qdrant \u306e\u5b9f\u30c7\u30fc\u30bf\u3082\u3001\u5bb9\u91cf\u304c\u5927\u304d\u304f\u3001\u5b9f\u884c\u6642\u306b\u66f4\u65b0\u3055\u308c\u7d9a\u3051\u308b\u305f\u3081\u3001\u901a\u5e38\u306e\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u7ba1\u7406\u304b\u3089\u9664\u5916\u3059\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">cat &gt; .gitignore &lt;&lt;'EOF'<br \/>\n.env<br \/>\ndata\/<br \/>\nbackup\/<br \/>\nEOF<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>documents \u306f\u9664\u5916\u3057\u3066\u3044\u306a\u3044\u3002\u67b6\u7a7a\u60c5\u5831\u3092\u542b\u3080\u691c\u8a3c\u6587\u66f8\u3092\u7248\u7ba1\u7406\u3059\u308c\u3070\u3001\u3069\u306e\u539f\u6587\u304b\u3089\u3069\u306e\u691c\u7d22\u7d50\u679c\u3092\u5f97\u305f\u304b\u3092\u5f8c\u304b\u3089\u518d\u73fe\u3067\u304d\u308b\u3002\u305f\u3060\u3057\u3001\u5b9f\u969b\u306e\u696d\u52d9\u6587\u66f8\u3084\u500b\u4eba\u60c5\u5831\u3092\u767b\u9332\u3059\u308b\u5834\u5408\u306f\u3001\u6587\u66f8\u306e\u6a5f\u5bc6\u533a\u5206\u306b\u5fdc\u3058\u3066 documents \u3082\u9664\u5916\u3059\u308b\u3002<\/p>\n<h3>4.3 compose.yaml \u3092\u4f5c\u6210\u3059\u308b<\/h3>\n<p>Open WebUI \u306f Docker \u3092\u4e3b\u8981\u306a\u5c0e\u5165\u65b9\u6cd5\u3068\u3057\u3066\u6848\u5185\u3057\u3001\/app\/backend\/data \u3078\u6c38\u7d9a\u9818\u57df\u3092\u5272\u308a\u5f53\u3066\u308b\u69cb\u6210\u3092\u63d0\u4f9b\u3057\u3066\u3044\u308b<a href=\"#ref19\">[19]<\/a>\u3002Open WebUI \u306e\u74b0\u5883\u5909\u6570\u3067\u306f\u3001Ollama \u306e\u63a5\u7d9a\u5148\u3001\u57cb\u3081\u8fbc\u307f\u30a8\u30f3\u30b8\u30f3\u3001\u30d9\u30af\u30c8\u30eb\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3001Qdrant \u306e\u63a5\u7d9a\u60c5\u5831\u3001\u691c\u7d22\u4ef6\u6570\u3001\u6587\u66f8\u5206\u5272\u6761\u4ef6\u3092\u6307\u5b9a\u3067\u304d\u308b<a href=\"#ref20\">[20]<\/a>\u3002<\/p>\n<p>Qdrant \u306f 6333 \u756a\u30dd\u30fc\u30c8\u3092 HTTP API \u3068\u7ba1\u7406\u753b\u9762\u306b\u4f7f\u7528\u3057\u3001Docker \u30a4\u30e1\u30fc\u30b8\u3067\u306f \/qdrant\/storage \u3078\u6c38\u7d9a\u30c7\u30fc\u30bf\u3092\u4fdd\u5b58\u3059\u308b<a href=\"#ref21\">[21]<\/a>\u3002\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u306f\u901a\u5e38\u306e\u4fdd\u5b58\u9818\u57df\u3068\u5206\u96e2\u3057\u3001\u30b3\u30f3\u30c6\u30ca\u30fc\u306e\u518d\u4f5c\u6210\u5f8c\u3082\u6b8b\u308b\u3088\u3046\u306b\u3059\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/>36<br \/>37<br \/>38<br \/>39<br \/>40<br \/>41<br \/>42<br \/>43<br \/>44<br \/>45<br \/>46<br \/>47<br \/>48<br \/>49<br \/>50<br \/>51<br \/>52<br \/>53<br \/>54<br \/>55<br \/>56<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">cat &gt; compose.yaml &lt;&lt;'EOF'<br \/>\nname: local-rag<br \/>\n<br \/>\nservices:<br \/>\n&nbsp; qdrant:<br \/>\n&nbsp; &nbsp; image: ${QDRANT_IMAGE}<br \/>\n&nbsp; &nbsp; container_name: local-rag-qdrant<br \/>\n&nbsp; &nbsp; restart: unless-stopped<br \/>\n&nbsp; &nbsp; ports:<br \/>\n&nbsp; &nbsp; &nbsp; - &quot;127.0.0.1:6333:6333&quot;<br \/>\n&nbsp; &nbsp; environment:<br \/>\n&nbsp; &nbsp; &nbsp; QDRANT__SERVICE__API_KEY: ${QDRANT_API_KEY}<br \/>\n&nbsp; &nbsp; &nbsp; QDRANT__STORAGE__SNAPSHOTS_PATH: \/qdrant\/snapshots<br \/>\n&nbsp; &nbsp; volumes:<br \/>\n&nbsp; &nbsp; &nbsp; - .\/data\/qdrant:\/qdrant\/storage<br \/>\n&nbsp; &nbsp; &nbsp; - .\/data\/qdrant-snapshots:\/qdrant\/snapshots<br \/>\n<br \/>\n&nbsp; open-webui:<br \/>\n&nbsp; &nbsp; image: ${OPEN_WEBUI_IMAGE}<br \/>\n&nbsp; &nbsp; container_name: local-rag-open-webui<br \/>\n&nbsp; &nbsp; restart: unless-stopped<br \/>\n&nbsp; &nbsp; ports:<br \/>\n&nbsp; &nbsp; &nbsp; - &quot;127.0.0.1:3000:8080&quot;<br \/>\n&nbsp; &nbsp; environment:<br \/>\n&nbsp; &nbsp; &nbsp; WEBUI_SECRET_KEY: ${WEBUI_SECRET_KEY}<br \/>\n&nbsp; &nbsp; &nbsp; ENABLE_PERSISTENT_CONFIG: &quot;False&quot;<br \/>\n&nbsp; &nbsp; &nbsp; ENABLE_SIGNUP: &quot;${ENABLE_SIGNUP}&quot;<br \/>\n&nbsp; &nbsp; &nbsp; ENABLE_OLLAMA_API: &quot;True&quot;<br \/>\n&nbsp; &nbsp; &nbsp; OLLAMA_BASE_URL: &quot;http:\/\/host.docker.internal:11434&quot;<br \/>\n&nbsp; &nbsp; &nbsp; ENABLE_OPENAI_API: &quot;False&quot;<br \/>\n&nbsp; &nbsp; &nbsp; ENABLE_WEB_SEARCH: &quot;False&quot;<br \/>\n&nbsp; &nbsp; &nbsp; ENABLE_KB_EXEC: &quot;False&quot;<br \/>\n&nbsp; &nbsp; &nbsp; VECTOR_DB: &quot;qdrant&quot;<br \/>\n&nbsp; &nbsp; &nbsp; QDRANT_URI: &quot;http:\/\/qdrant:6333&quot;<br \/>\n&nbsp; &nbsp; &nbsp; QDRANT_API_KEY: ${QDRANT_API_KEY}<br \/>\n&nbsp; &nbsp; &nbsp; QDRANT_PREFER_GRPC: &quot;False&quot;<br \/>\n&nbsp; &nbsp; &nbsp; ENABLE_QDRANT_MULTITENANCY_MODE: &quot;True&quot;<br \/>\n&nbsp; &nbsp; &nbsp; RAG_EMBEDDING_ENGINE: &quot;ollama&quot;<br \/>\n&nbsp; &nbsp; &nbsp; RAG_EMBEDDING_MODEL: ${EMBEDDING_MODEL}<br \/>\n&nbsp; &nbsp; &nbsp; RAG_TOP_K: &quot;3&quot;<br \/>\n&nbsp; &nbsp; &nbsp; ENABLE_RAG_HYBRID_SEARCH: &quot;False&quot;<br \/>\n&nbsp; &nbsp; &nbsp; BYPASS_EMBEDDING_AND_RETRIEVAL: &quot;False&quot;<br \/>\n&nbsp; &nbsp; &nbsp; RAG_FULL_CONTEXT: &quot;False&quot;<br \/>\n&nbsp; &nbsp; &nbsp; CHUNK_SIZE: &quot;1000&quot;<br \/>\n&nbsp; &nbsp; &nbsp; CHUNK_OVERLAP: &quot;100&quot;<br \/>\n&nbsp; &nbsp; &nbsp; RAG_TEXT_SPLITTER: &quot;character&quot;<br \/>\n&nbsp; &nbsp; &nbsp; ENABLE_MARKDOWN_HEADER_TEXT_SPLITTER: &quot;True&quot;<br \/>\n&nbsp; &nbsp; &nbsp; CONTENT_EXTRACTION_ENGINE: &quot;&quot;<br \/>\n&nbsp; &nbsp; &nbsp; PDF_EXTRACT_IMAGES: &quot;False&quot;<br \/>\n&nbsp; &nbsp; volumes:<br \/>\n&nbsp; &nbsp; &nbsp; - .\/data\/open-webui:\/app\/backend\/data<br \/>\n&nbsp; &nbsp; depends_on:<br \/>\n&nbsp; &nbsp; &nbsp; - qdrant<br \/>\nEOF<br \/>\n<br \/>\ndocker compose config --quiet<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>docker compose config &#8211;quiet \u304c\u51fa\u529b\u306a\u3057\u3067\u6b63\u5e38\u7d42\u4e86\u3059\u308c\u3070\u3001YAML \u306e\u69cb\u6587\u3001\u5fc5\u9808\u5909\u6570\u306e\u5c55\u958b\u3001\u30b5\u30fc\u30d3\u30b9\u5b9a\u7fa9\u3092\u8aad\u307f\u53d6\u308c\u308b\u72b6\u614b\u3067\u3042\u308b\u3002\u901a\u5e38\u306e docker compose config \u306f\u5c55\u958b\u5f8c\u306e\u69cb\u6210\u3092\u8868\u793a\u3059\u308b\u305f\u3081\u3001QDRANT_API_KEY \u3068 WEBUI_SECRET_KEY \u3082\u753b\u9762\u3078\u51fa\u529b\u3055\u308c\u308b\u3002\u5358\u7d14\u306a\u69cb\u6587\u78ba\u8a8d\u3067\u306f &#8211;quiet \u3092\u4f7f\u3044\u3001\u79d8\u5bc6\u5024\u3092\u7aef\u672b\u306e\u30ed\u30b0\u3084\u5171\u6709\u753b\u9762\u3078\u6b8b\u3055\u306a\u3044\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u8a2d\u5b9a\u7fa4<\/th>\n<th>\u6307\u5b9a\u5185\u5bb9<\/th>\n<th>\u56fa\u5b9a\u3059\u308b\u7406\u7531<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u69cb\u6210\u306e\u512a\u5148\u9806\u4f4d<\/td>\n<td>ENABLE_PERSISTENT_CONFIG=False \u3092\u6307\u5b9a\u3059\u308b\u3002<\/td>\n<td>\u7ba1\u7406\u753b\u9762\u306b\u4fdd\u5b58\u3055\u308c\u305f\u65e7\u8a2d\u5b9a\u3067\u306f\u306a\u304f\u3001Compose \u306e\u74b0\u5883\u5909\u6570\u3092\u518d\u8d77\u52d5\u5f8c\u3082\u9069\u7528\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u751f\u6210 API<\/td>\n<td>Ollama \u3092\u6709\u52b9\u306b\u3057\u3001OpenAI API \u3092\u7121\u52b9\u306b\u3059\u308b\u3002<\/td>\n<td>\u751f\u6210\u8981\u6c42\u3092 macOS \u4e0a\u306e Ollama \u3078\u9650\u5b9a\u3057\u3001\u610f\u56f3\u3057\u306a\u3044\u5916\u90e8\u751f\u6210 API \u306e\u4f7f\u7528\u3092\u9632\u3050\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u691c\u7d22\u5148<\/td>\n<td>VECTOR_DB=qdrant \u3068 Qdrant \u306e\u63a5\u7d9a\u60c5\u5831\u3092\u6307\u5b9a\u3059\u308b\u3002<\/td>\n<td>\u65e2\u5b9a\u306e\u4fdd\u5b58\u5148\u3067\u306f\u306a\u304f\u3001\u72ec\u7acb\u3057\u305f Qdrant \u30b3\u30f3\u30c6\u30ca\u30fc\u3078\u30d9\u30af\u30c8\u30eb\u3092\u4fdd\u5b58\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u57cb\u3081\u8fbc\u307f<\/td>\n<td>Ollama \u3068 embeddinggemma \u3092\u6307\u5b9a\u3059\u308b\u3002<\/td>\n<td>\u6587\u66f8\u767b\u9332\u3068\u8cea\u554f\u691c\u7d22\u3092\u3001\u524d\u7ae0\u3067\u5358\u4f53\u8a66\u9a13\u3057\u305f\u540c\u3058\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u3078\u7d71\u4e00\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u691c\u7d22\u65b9\u5f0f<\/td>\n<td>\u4e0a\u4f4d 3 \u4ef6\u306e\u30d9\u30af\u30c8\u30eb\u691c\u7d22\u3068\u3057\u3001\u6df7\u5408\u691c\u7d22\u3092\u7121\u52b9\u306b\u3059\u308b\u3002<\/td>\n<td>\u521d\u671f\u8a66\u9a13\u3067\u306f\u691c\u7d22\u7d4c\u8def\u3092\u5358\u7d14\u5316\u3057\u3001\u3069\u306e\u65ad\u7247\u304c\u53d6\u5f97\u3055\u308c\u305f\u304b\u3092\u8ffd\u8de1\u3057\u3084\u3059\u304f\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u6587\u66f8\u5206\u5272<\/td>\n<td>1000 \u6587\u5b57\u3001\u91cd\u8907 100 \u6587\u5b57\u3001\u6587\u5b57\u5358\u4f4d\u306e\u5206\u5272\u3092\u4f7f\u7528\u3059\u308b\u3002<\/td>\n<td>\u7b2c 1 \u7ae0\u3067\u56fa\u5b9a\u3057\u305f\u521d\u671f\u6761\u4ef6\u3068\u5b9f\u969b\u306e\u767b\u9332\u51e6\u7406\u3092\u4e00\u81f4\u3055\u305b\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u6587\u66f8\u62bd\u51fa<\/td>\n<td>\u65e2\u5b9a\u306e\u62bd\u51fa\u51e6\u7406\u3092\u4f7f\u7528\u3057\u3001PDF \u753b\u50cf\u306e OCR \u3092\u7121\u52b9\u306b\u3059\u308b\u3002<\/td>\n<td>\u521d\u671f\u8a66\u9a13\u3092\u6587\u5b57\u5c64\u306e\u3042\u308b\u6587\u66f8\u306b\u9650\u5b9a\u3057\u3001OCR \u306e\u6210\u5426\u3092\u691c\u7d22\u8a66\u9a13\u3078\u6df7\u5165\u3055\u305b\u306a\u3044\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>ENABLE_PERSISTENT_CONFIG=False \u3092\u6307\u5b9a\u3059\u308b\u3068\u3001\u5bfe\u8c61\u3068\u306a\u308b\u8a2d\u5b9a\u3067\u306f\u74b0\u5883\u5909\u6570\u304c\u7ba1\u7406\u753b\u9762\u306e\u4fdd\u5b58\u5024\u3088\u308a\u512a\u5148\u3055\u308c\u308b\u3002\u7ba1\u7406\u753b\u9762\u3067\u5024\u3092\u5909\u66f4\u3059\u308b\u3068\u5b9f\u884c\u4e2d\u306e\u72b6\u614b\u3078\u53cd\u6620\u3055\u308c\u308b\u5834\u5408\u304c\u3042\u308b\u304c\u3001\u30b3\u30f3\u30c6\u30ca\u30fc\u3092\u518d\u8d77\u52d5\u3059\u308b\u3068 Compose \u306b\u8a18\u8ff0\u3057\u305f\u5024\u3078\u623b\u308b\u3002\u691c\u7d22\u4ef6\u6570\u3084\u30c1\u30e3\u30f3\u30af\u6761\u4ef6\u3092\u5909\u66f4\u3059\u308b\u5834\u5408\u306f\u3001\u7ba1\u7406\u753b\u9762\u3060\u3051\u3067\u5909\u66f4\u305b\u305a\u3001.env \u307e\u305f\u306f compose.yaml \u3092\u66f4\u65b0\u3057\u3066\u30b3\u30f3\u30c6\u30ca\u30fc\u3092\u518d\u4f5c\u6210\u3059\u308b\u3002<\/p>\n<p>ENABLE_PLUGINS=False \u306f\u6307\u5b9a\u3057\u3066\u3044\u306a\u3044\u3002\u3053\u306e\u8a2d\u5b9a\u306f\u8ffd\u52a0\u6a5f\u80fd\u3060\u3051\u3067\u306a\u304f\u3001\u7d44\u307f\u8fbc\u307f\u306e\u30c4\u30fc\u30eb\u547c\u3073\u51fa\u3057\u7d4c\u8def\u306b\u3082\u5f71\u97ff\u3059\u308b\u305f\u3081\u3001Knowledge \u306e\u53d6\u5f97\u65b9\u5f0f\u307e\u3067\u540c\u6642\u306b\u5909\u5316\u3055\u305b\u308b\u53ef\u80fd\u6027\u304c\u3042\u308b\u3002\u672c\u7a3f\u3067\u306f\u3001\u5916\u90e8\u751f\u6210 API\u3001\u30a6\u30a7\u30d6\u691c\u7d22\u3001\u5b9f\u9a13\u7684\u306a Knowledge \u64cd\u4f5c\u3092\u500b\u5225\u306b\u7121\u52b9\u5316\u3057\u3001\u6a19\u6e96\u7684\u306a\u6587\u66f8\u767b\u9332\u3068\u30d9\u30af\u30c8\u30eb\u691c\u7d22\u306e\u7d4c\u8def\u3092\u6b8b\u3059\u3002<\/p>\n<p>Docker Desktop \u3067\u306f host.docker.internal \u304c\u30db\u30b9\u30c8\u63a5\u7d9a\u7528\u306e\u540d\u524d\u3068\u3057\u3066\u63d0\u4f9b\u3055\u308c\u308b\u305f\u3081\u3001MacBook Pro \u5c02\u7528\u306e\u672c\u69cb\u6210\u3067\u306f extra_hosts \u3092\u8ffd\u52a0\u3057\u306a\u3044\u3002Open WebUI \u304b\u3089 Ollama \u3078\u63a5\u7d9a\u3067\u304d\u306a\u3044\u5834\u5408\u306f\u3001\u540d\u524d\u3092\u8ffd\u52a0\u3059\u308b\u524d\u306b\u3001\u30db\u30b9\u30c8\u4e0a\u306e 11434 \u756a\u30dd\u30fc\u30c8\u3068\u30b3\u30f3\u30c6\u30ca\u30fc\u5185\u3067\u306e\u540d\u524d\u89e3\u6c7a\u3092\u500b\u5225\u306b\u78ba\u8a8d\u3059\u308b\u3002<\/p>\n<div class=\"warning\">\n<p>Open WebUI \u306e Qdrant \u7d71\u5408\u306f\u3001Open WebUI \u4e2d\u5fc3\u958b\u767a\u30c1\u30fc\u30e0\u306e\u4e2d\u6838\u4fdd\u5b88\u5bfe\u8c61\u3067\u306f\u306a\u3044\u3002Open WebUI \u306e\u5185\u90e8\u7684\u306a\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u547d\u540d\u3084\u4ed8\u968f\u60c5\u5831\u306e\u6271\u3044\u304c\u5909\u308f\u308b\u3068\u3001\u65e2\u5b58\u306e Qdrant \u30c7\u30fc\u30bf\u3068\u306e\u5bfe\u5fdc\u304c\u5d29\u308c\u308b\u53ef\u80fd\u6027\u304c\u3042\u308b<a href=\"#ref20\">[20]<\/a>\u3002Open WebUI \u3068 Qdrant \u306e\u30a4\u30e1\u30fc\u30b8\u7248\u3092\u540c\u6642\u306b\u7121\u8a08\u753b\u306b\u66f4\u65b0\u305b\u305a\u3001\u66f4\u65b0\u524d\u306b\u4e21\u65b9\u306e\u4fdd\u5b58\u9818\u57df\u3068 Qdrant \u306e\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u3092\u9000\u907f\u3059\u308b\u3002<\/p>\n<\/div>\n<div class=\"warning\">\n<p>Qdrant \u306e API \u9375\u306f\u63a5\u7d9a\u8005\u3092\u5236\u9650\u3059\u308b\u304c\u3001HTTP \u901a\u4fe1\u305d\u306e\u3082\u306e\u3092\u6697\u53f7\u5316\u3057\u306a\u3044\u3002\u672c\u69cb\u6210\u306f Open WebUI \u3068 Qdrant \u3092\u540c\u3058 Docker Desktop \u5185\u3067\u52d5\u304b\u3057\u3001\u30db\u30b9\u30c8\u5074\u306e 6333 \u756a\u30dd\u30fc\u30c8\u3092 127.0.0.1 \u306b\u9650\u5b9a\u3059\u308b\u3053\u3068\u3092\u524d\u63d0\u3068\u3059\u308b\u3002\u5225\u7aef\u672b\u3084\u5916\u90e8\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u304b\u3089\u63a5\u7d9a\u3059\u308b\u69cb\u6210\u3078\u5909\u66f4\u3059\u308b\u5834\u5408\u306f\u3001API \u9375\u3060\u3051\u306b\u4f9d\u5b58\u305b\u305a\u3001TLS \u3068\u63a5\u7d9a\u5143\u5236\u9650\u3092\u8ffd\u52a0\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b<a href=\"#ref18\">[18]<\/a>\u3002<\/p>\n<\/div>\n<h3>4.4 Qdrant \u3092\u5148\u306b\u8d77\u52d5\u3059\u308b<\/h3>\n<p>Compose \u306e depends_on \u306f\u3001\u4f9d\u5b58\u95a2\u4fc2\u306b\u57fa\u3065\u304f\u30b3\u30f3\u30c6\u30ca\u30fc\u306e\u8d77\u52d5\u9806\u3092\u5236\u5fa1\u3059\u308b\u3002\u305f\u3060\u3057\u3001\u77ed\u3044\u5f62\u5f0f\u306e depends_on \u306f\u3001Qdrant \u306e\u30d7\u30ed\u30bb\u30b9\u304c API \u8981\u6c42\u3092\u53d7\u3051\u4ed8\u3051\u3089\u308c\u308b\u72b6\u614b\u306b\u306a\u308b\u307e\u3067 Open WebUI \u306e\u8d77\u52d5\u3092\u5f85\u3064\u3082\u306e\u3067\u306f\u306a\u3044<a href=\"#ref22\">[22]<\/a>\u3002\u521d\u56de\u69cb\u7bc9\u3067\u306f Qdrant \u3060\u3051\u3092\u5148\u306b\u8d77\u52d5\u3057\u3001\u8a8d\u8a3c\u4ed8\u304d API \u306e\u5fdc\u7b54\u3092\u78ba\u8a8d\u3057\u3066\u304b\u3089 Open WebUI \u3092\u8d77\u52d5\u3059\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">docker compose pull<br \/>\ndocker compose up -d qdrant<br \/>\ndocker compose ps qdrant<br \/>\n<br \/>\ndocker compose logs --tail=100 qdrant<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>docker compose pull \u3067\u306f\u3001.env \u306b\u56fa\u5b9a\u3057\u305f\u4e8c\u3064\u306e\u30a4\u30e1\u30fc\u30b8\u3092\u53d6\u5f97\u3059\u308b\u3002Qdrant \u306e\u30ed\u30b0\u3067\u306f\u3001\u8a2d\u5b9a\u306e\u8aad\u307f\u8fbc\u307f\u5931\u6557\u3001\u4fdd\u5b58\u9818\u57df\u306e\u6a29\u9650\u30a8\u30e9\u30fc\u3001\u65e2\u5b58\u30c7\u30fc\u30bf\u306e\u8aad\u307f\u8fbc\u307f\u30a8\u30e9\u30fc\u30016333 \u756a\u30dd\u30fc\u30c8\u306e\u5f85\u3061\u53d7\u3051\u958b\u59cb\u3092\u78ba\u8a8d\u3059\u308b\u3002\u30b3\u30f3\u30c6\u30ca\u30fc\u304c running \u3067\u3082\u3001\u8d77\u52d5\u76f4\u5f8c\u306e\u521d\u671f\u5316\u306b\u5931\u6557\u3057\u3066\u518d\u8d77\u52d5\u3092\u7e70\u308a\u8fd4\u3057\u3066\u3044\u308b\u5834\u5408\u304c\u3042\u308b\u305f\u3081\u3001\u72b6\u614b\u3068\u30ed\u30b0\u306e\u4e21\u65b9\u3092\u898b\u308b\u3002<\/p>\n<p>\u6b21\u306b\u3001.env \u3092\u4e00\u6642\u7684\u306a\u30b5\u30d6\u30b7\u30a7\u30eb\u3078\u8aad\u307f\u8fbc\u307f\u3001API \u9375\u4ed8\u304d\u3067\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u4e00\u89a7\u3092\u53d6\u5f97\u3059\u308b\u3002\u30b5\u30d6\u30b7\u30a7\u30eb\u3092\u4f7f\u3046\u3053\u3068\u3067\u3001\u79d8\u5bc6\u5024\u3092\u73fe\u5728\u306e\u30b7\u30a7\u30eb\u74b0\u5883\u3078\u6b8b\u3055\u306a\u3044\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">(<br \/>\n&nbsp; set -a<br \/>\n&nbsp; . .\/.env<br \/>\n&nbsp; set +a<br \/>\n<br \/>\n&nbsp; status=$(<br \/>\n&nbsp; &nbsp; curl -sS \\<br \/>\n&nbsp; &nbsp; &nbsp; -o \/tmp\/qdrant-collections.json \\<br \/>\n&nbsp; &nbsp; &nbsp; -w '%{http_code}' \\<br \/>\n&nbsp; &nbsp; &nbsp; -H &quot;api-key: ${QDRANT_API_KEY}&quot; \\<br \/>\n&nbsp; &nbsp; &nbsp; http:\/\/127.0.0.1:6333\/collections<br \/>\n&nbsp; )<br \/>\n<br \/>\n&nbsp; if [ &quot;$status&quot; != &quot;200&quot; ]; then<br \/>\n&nbsp; &nbsp; cat \/tmp\/qdrant-collections.json &gt;&amp;2<br \/>\n&nbsp; &nbsp; rm -f \/tmp\/qdrant-collections.json<br \/>\n&nbsp; &nbsp; exit 1<br \/>\n&nbsp; fi<br \/>\n<br \/>\n&nbsp; python3 -m json.tool &lt; \/tmp\/qdrant-collections.json<br \/>\n&nbsp; rm -f \/tmp\/qdrant-collections.json<br \/>\n)<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>\u521d\u56de\u306f collections \u304c\u7a7a\u3067\u3088\u3044\u3002HTTP 200 \u306e JSON \u304c\u8fd4\u308c\u3070\u3001Qdrant \u306e\u30d7\u30ed\u30bb\u30b9\u30016333 \u756a\u30dd\u30fc\u30c8\u306e\u5272\u308a\u5f53\u3066\u3001API \u9375\u8a8d\u8a3c\u3001REST API \u307e\u3067\u304c\u6210\u7acb\u3057\u3066\u3044\u308b\u3002\u307e\u3060 Open WebUI \u3092\u8d77\u52d5\u3057\u3066\u3044\u306a\u3044\u305f\u3081\u3001\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u304c\u5b58\u5728\u3057\u306a\u3044\u3053\u3068\u306f\u7570\u5e38\u3067\u306f\u306a\u3044\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u89b3\u5bdf\u7d50\u679c<\/th>\n<th>\u8003\u3048\u3089\u308c\u308b\u72b6\u614b<\/th>\n<th>\u78ba\u8a8d\u5148<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u63a5\u7d9a\u3092\u62d2\u5426\u3055\u308c\u308b<\/td>\n<td>Qdrant \u304c\u8d77\u52d5\u3057\u3066\u3044\u306a\u3044\u304b\u30016333 \u756a\u30dd\u30fc\u30c8\u3092\u5f85\u3061\u53d7\u3051\u3066\u3044\u306a\u3044\u3002<\/td>\n<td>docker compose ps \u3068 Qdrant \u306e\u30ed\u30b0\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u8a8d\u8a3c\u30a8\u30e9\u30fc\u306b\u306a\u308b<\/td>\n<td>Qdrant \u3068\u78ba\u8a8d\u7528\u8981\u6c42\u3067\u7570\u306a\u308b API \u9375\u3092\u4f7f\u7528\u3057\u3066\u3044\u308b\u3002<\/td>\n<td>\u5c55\u958b\u5143\u306e .env \u3068\u30b3\u30f3\u30c6\u30ca\u30fc\u306e\u518d\u4f5c\u6210\u72b6\u614b\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u4fdd\u5b58\u9818\u57df\u306e\u30a8\u30e9\u30fc\u3067\u518d\u8d77\u52d5\u3059\u308b<\/td>\n<td>\u30d0\u30a4\u30f3\u30c9\u5148\u306e\u4f5c\u6210\u72b6\u614b\u3001\u6a29\u9650\u3001\u65e2\u5b58\u30c7\u30fc\u30bf\u306b\u554f\u984c\u304c\u3042\u308b\u3002<\/td>\n<td>data\/qdrant \u3068\u30ed\u30b0\u5185\u306e\u5177\u4f53\u7684\u306a\u30d1\u30b9\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>HTTP 200 \u3067\u7a7a\u306e\u4e00\u89a7\u304c\u8fd4\u308b<\/td>\n<td>Qdrant \u306f\u6b63\u5e38\u306b\u8d77\u52d5\u3057\u3066\u3044\u308b\u304c\u3001\u6587\u66f8\u306f\u307e\u3060\u767b\u9332\u3055\u308c\u3066\u3044\u306a\u3044\u3002<\/td>\n<td>Open WebUI \u306e\u8d77\u52d5\u5de5\u7a0b\u3078\u9032\u3080\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>4.5 Open WebUI \u3092\u8d77\u52d5\u3059\u308b<\/h3>\n<p>Qdrant \u306e API \u5fdc\u7b54\u3092\u78ba\u8a8d\u3057\u305f\u5f8c\u3001Open WebUI \u3092\u8d77\u52d5\u3059\u308b\u3002\u8d77\u52d5\u6642\u306b\u306f\u3001Ollama \u306e\u63a5\u7d9a\u5148\u3001\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u3001Qdrant \u306e\u63a5\u7d9a\u60c5\u5831\u3001\u6587\u66f8\u5206\u5272\u6761\u4ef6\u304c\u8aad\u307f\u8fbc\u307e\u308c\u308b\u3002\u74b0\u5883\u5909\u6570\u540d\u304c\u8aa4\u3063\u3066\u3044\u3066\u3082\u30b3\u30f3\u30c6\u30ca\u30fc\u81ea\u4f53\u306f\u8d77\u52d5\u3059\u308b\u5834\u5408\u304c\u3042\u308b\u305f\u3081\u3001\u753b\u9762\u304c\u8868\u793a\u3055\u308c\u308b\u3053\u3068\u3060\u3051\u3067\u8a2d\u5b9a\u5b8c\u4e86\u3068\u306f\u5224\u65ad\u3057\u306a\u3044\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">docker compose up -d open-webui<br \/>\ndocker compose ps<br \/>\n<br \/>\ndocker compose logs --tail=200 open-webui<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>Open WebUI \u306e\u30ed\u30b0\u3067\u306f\u3001\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306e\u521d\u671f\u5316\u3001Ollama \u63a5\u7d9a\u3001Qdrant \u63a5\u7d9a\u3001\u8d77\u52d5\u6642\u306e\u4f8b\u5916\u3092\u78ba\u8a8d\u3059\u308b\u3002\u8d77\u52d5\u76f4\u5f8c\u306b Ollama \u3078\u306e\u63a5\u7d9a\u8b66\u544a\u304c\u51fa\u305f\u5834\u5408\u306f\u3001macOS \u4e0a\u3067 http:\/\/localhost:11434\/api\/tags \u304c\u5fdc\u7b54\u3059\u308b\u3053\u3068\u3068\u3001Open WebUI \u30b3\u30f3\u30c6\u30ca\u30fc\u304b\u3089 host.docker.internal \u3092\u89e3\u6c7a\u3067\u304d\u308b\u3053\u3068\u3092\u5206\u3051\u3066\u8abf\u3079\u308b\u3002<\/p>\n<p>\u30d6\u30e9\u30a6\u30b6\u30fc\u3067 http:\/\/localhost:3000\/ \u3092\u958b\u304f\u3002\u65b0\u898f\u306e\u4fdd\u5b58\u9818\u57df\u3067\u306f\u3001\u6700\u521d\u306b\u767b\u9332\u3057\u305f\u5229\u7528\u8005\u304c\u7ba1\u7406\u8005\u3068\u306a\u308a\u3001\u305d\u306e\u767b\u9332\u51e6\u7406\u306b\u3088\u3063\u3066\u65b0\u898f\u767b\u9332\u306f\u505c\u6b62\u3055\u308c\u308b\u3002\u305f\u3060\u3057\u3001\u672c\u69cb\u6210\u3067\u306f\u74b0\u5883\u5909\u6570\u3092\u518d\u8d77\u52d5\u6642\u306e\u6b63\u3068\u3057\u3066\u3044\u308b\u305f\u3081\u3001.env \u306e ENABLE_SIGNUP=True \u3092\u6b8b\u3057\u305f\u307e\u307e\u30b3\u30f3\u30c6\u30ca\u30fc\u3092\u518d\u4f5c\u6210\u3059\u308b\u3068\u3001\u65b0\u898f\u767b\u9332\u304c\u518d\u3073\u6709\u52b9\u306b\u306a\u308b\u53ef\u80fd\u6027\u304c\u3042\u308b\u3002<\/p>\n<p>\u6700\u521d\u306e\u7ba1\u7406\u8005\u3068\u3057\u3066\u30ed\u30b0\u30a4\u30f3\u3067\u304d\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u305f\u5f8c\u3001.env \u306e\u5024\u3092 False \u3078\u5909\u66f4\u3057\u3001Open WebUI \u30b3\u30f3\u30c6\u30ca\u30fc\u3092\u518d\u4f5c\u6210\u3059\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">python3 - &lt;&lt;'PY'<br \/>\nfrom pathlib import Path<br \/>\n<br \/>\npath = Path(&quot;.env&quot;)<br \/>\ntext = path.read_text(encoding=&quot;utf-8&quot;)<br \/>\nold = &quot;ENABLE_SIGNUP=True&quot;<br \/>\nnew = &quot;ENABLE_SIGNUP=False&quot;<br \/>\n<br \/>\nif old not in text:<br \/>\n&nbsp; &nbsp; raise SystemExit(&quot;ENABLE_SIGNUP=True was not found in .env&quot;)<br \/>\n<br \/>\npath.write_text(text.replace(old, new, 1), encoding=&quot;utf-8&quot;)<br \/>\nPY<br \/>\n<br \/>\nchmod 600 .env<br \/>\ndocker compose up -d --force-recreate open-webui<br \/>\ndocker compose exec open-webui printenv ENABLE_SIGNUP<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>\u6700\u5f8c\u306e\u30b3\u30de\u30f3\u30c9\u304c False \u3092\u8868\u793a\u3059\u308c\u3070\u3001\u518d\u4f5c\u6210\u5f8c\u3082\u65b0\u898f\u767b\u9332\u3092\u7121\u52b9\u306b\u3059\u308b\u74b0\u5883\u5909\u6570\u304c\u30b3\u30f3\u30c6\u30ca\u30fc\u3078\u6e21\u3055\u308c\u3066\u3044\u308b\u3002\u30ed\u30b0\u30a2\u30a6\u30c8\u5f8c\u306b\u65b0\u898f\u767b\u9332\u753b\u9762\u304c\u8868\u793a\u3055\u308c\u306a\u3044\u3053\u3068\u3082\u78ba\u8a8d\u3059\u308b\u3002\u7ba1\u7406\u8005\u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u4f5c\u6210\u524d\u306b False \u3078\u5909\u66f4\u3059\u308b\u3068\u3001\u6700\u521d\u306e\u5229\u7528\u8005\u3092\u767b\u9332\u3067\u304d\u306a\u304f\u306a\u308b\u305f\u3081\u3001\u9806\u5e8f\u3092\u9006\u306b\u3057\u3066\u306f\u306a\u3089\u306a\u3044\u3002<\/p>\n<p>Open WebUI \u306e\u753b\u9762\u304c\u5fdc\u7b54\u3059\u308b\u3053\u3068\u306f\u3001\u6b21\u306e\u30b3\u30de\u30f3\u30c9\u3067\u3082\u78ba\u8a8d\u3067\u304d\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">status=$(<br \/>\n&nbsp; curl -sS \\<br \/>\n&nbsp; &nbsp; -o \/dev\/null \\<br \/>\n&nbsp; &nbsp; -w '%{http_code}' \\<br \/>\n&nbsp; &nbsp; http:\/\/127.0.0.1:3000\/<br \/>\n)<br \/>\n<br \/>\n[ &quot;$status&quot; = &quot;200&quot; ] || {<br \/>\n&nbsp; printf 'Open WebUI returned HTTP %s\\n' &quot;$status&quot; &gt;&amp;2<br \/>\n&nbsp; exit 1<br \/>\n}<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>HTTP 200 \u304c\u8fd4\u308c\u3070\u30013000 \u756a\u30dd\u30fc\u30c8\u306e\u5272\u308a\u5f53\u3066\u3068 Open WebUI \u306e HTTP \u5fdc\u7b54\u306f\u6210\u7acb\u3057\u3066\u3044\u308b\u3002\u305f\u3060\u3057\u3001\u3053\u306e\u78ba\u8a8d\u3067\u306f\u3001Ollama \u306e\u30e2\u30c7\u30eb\u4e00\u89a7\u3092\u53d6\u5f97\u3067\u304d\u308b\u304b\u3001Qdrant \u3078\u63a5\u7d9a\u3067\u304d\u308b\u304b\u3001\u6587\u66f8\u304b\u3089\u57cb\u3081\u8fbc\u307f\u3092\u751f\u6210\u3067\u304d\u308b\u304b\u307e\u3067\u306f\u5206\u304b\u3089\u306a\u3044\u3002\u305d\u308c\u3089\u306f\u7ba1\u7406\u753b\u9762\u306e\u8a2d\u5b9a\u5024\u3001\u30b3\u30f3\u30c6\u30ca\u30fc\u306e\u30ed\u30b0\u3001\u5f8c\u7d9a\u306e\u6587\u66f8\u767b\u9332\u8a66\u9a13\u3067\u78ba\u8a8d\u3059\u308b\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u78ba\u8a8d\u6bb5\u968e<\/th>\n<th>\u6210\u529f\u6761\u4ef6<\/th>\n<th>\u6b8b\u308b\u672a\u78ba\u8a8d\u4e8b\u9805<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>HTTP \u5fdc\u7b54<\/td>\n<td>3000 \u756a\u30dd\u30fc\u30c8\u304b\u3089 HTTP 200 \u304c\u8fd4\u308b\u3002<\/td>\n<td>\u5229\u7528\u8005\u767b\u9332\u3001Ollama \u63a5\u7d9a\u3001Qdrant \u63a5\u7d9a\u306f\u78ba\u8a8d\u3067\u304d\u306a\u3044\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u7ba1\u7406\u8005\u767b\u9332<\/td>\n<td>\u6700\u521d\u306e\u5229\u7528\u8005\u3068\u3057\u3066\u30ed\u30b0\u30a4\u30f3\u3057\u3001\u7ba1\u7406\u753b\u9762\u3092\u958b\u3051\u308b\u3002<\/td>\n<td>\u518d\u4f5c\u6210\u5f8c\u3082\u65b0\u898f\u767b\u9332\u304c\u9589\u3058\u308b\u304b\u306f\u74b0\u5883\u5909\u6570\u3092\u78ba\u8a8d\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u767b\u9332\u505c\u6b62<\/td>\n<td>ENABLE_SIGNUP=False \u3067\u518d\u4f5c\u6210\u3055\u308c\u3001\u65b0\u898f\u767b\u9332\u753b\u9762\u304c\u9589\u3058\u308b\u3002<\/td>\n<td>\u751f\u6210\u30e2\u30c7\u30eb\u3068\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u304c\u5229\u7528\u53ef\u80fd\u304b\u306f\u5225\u306b\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u30b5\u30fc\u30d3\u30b9\u9023\u643a<\/td>\n<td>Open WebUI \u3067 Ollama \u306e\u30e2\u30c7\u30eb\u4e00\u89a7\u3092\u53d6\u5f97\u3067\u304d\u308b\u3002<\/td>\n<td>\u6587\u66f8\u767b\u9332\u3068 Qdrant \u3078\u306e\u30d9\u30af\u30c8\u30eb\u4fdd\u5b58\u306f\u307e\u3060\u78ba\u8a8d\u3067\u304d\u306a\u3044\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>ENABLE_OPENAI_API=False \u3068 ENABLE_WEB_SEARCH=False \u306f\u3001Open WebUI \u304b\u3089\u5916\u90e8\u751f\u6210 API \u3068\u30a6\u30a7\u30d6\u691c\u7d22\u3092\u5229\u7528\u3057\u306a\u3044\u305f\u3081\u306e\u8a2d\u5b9a\u3067\u3042\u308b\u3002\u305f\u3060\u3057\u3001\u3053\u306e\u4e8c\u3064\u3060\u3051\u3067\u30b3\u30f3\u30c6\u30ca\u30fc\u304b\u3089\u306e\u5168\u5916\u5411\u304d\u901a\u4fe1\u304c\u5b58\u5728\u3057\u306a\u3044\u3053\u3068\u3092\u8a3c\u660e\u3059\u308b\u3082\u306e\u3067\u306f\u306a\u3044\u3002\u53b3\u5bc6\u306a\u9589\u57df\u904b\u7528\u304c\u5fc5\u8981\u306a\u5834\u5408\u306f\u3001Docker \u306e\u901a\u4fe1\u3001\u540d\u524d\u89e3\u6c7a\u3001\u66f4\u65b0\u78ba\u8a8d\u3092\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u89b3\u6e2c\u307e\u305f\u306f\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u3067\u691c\u8a3c\u3059\u308b\u3002<\/p>\n<p>\u3053\u306e\u7ae0\u306e\u5b8c\u4e86\u6761\u4ef6\u306f\u3001\u4e8c\u3064\u306e\u30b3\u30f3\u30c6\u30ca\u30fc\u304c running \u3068\u8868\u793a\u3055\u308c\u308b\u3053\u3068\u3067\u306f\u306a\u3044\u3002\u7248\u3068\u79d8\u5bc6\u5024\u3092\u56fa\u5b9a\u3057\u305f\u69cb\u6210\u3092\u691c\u8a3c\u3067\u304d\u3001Qdrant \u304c API \u9375\u4ed8\u304d\u306e\u8981\u6c42\u3078 HTTP 200 \u3092\u8fd4\u3057\u3001Open WebUI \u306e\u7ba1\u7406\u8005\u3092\u4f5c\u6210\u3057\u3001\u518d\u4f5c\u6210\u5f8c\u3082\u65b0\u898f\u767b\u9332\u3092\u9589\u3058\u3001Open WebUI \u3068 Qdrant \u306e\u72b6\u614b\u3092\u305d\u308c\u305e\u308c\u306e\u6c38\u7d9a\u9818\u57df\u3078\u4fdd\u5b58\u3067\u304d\u308b\u3068\u3053\u308d\u307e\u3067\u3067\u3042\u308b\u3002\u3053\u3053\u307e\u3067\u3092\u72ec\u7acb\u3057\u3066\u78ba\u8a8d\u3059\u308b\u3053\u3068\u3067\u3001\u5f8c\u7d9a\u306e\u6587\u66f8\u767b\u9332\u3067\u554f\u984c\u304c\u8d77\u304d\u305f\u5834\u5408\u306b\u3001\u30b3\u30f3\u30c6\u30ca\u30fc\u69cb\u7bc9\u3068\u8a8d\u8a3c\u3092\u5207\u308a\u5206\u3051\u6e08\u307f\u306e\u524d\u63d0\u3068\u3057\u3066\u6271\u3048\u308b\u3002<\/p>\n<hr>\n<h2>5. Ollama\u3001Open WebUI\u3001Qdrant \u306e\u63a5\u7d9a\u3092\u4e00\u65b9\u5411\u305a\u3064\u78ba\u8a8d\u3059\u308b<\/h2>\n<h3>5.1 Open WebUI \u30b3\u30f3\u30c6\u30ca\u30fc\u304b\u3089 Ollama API \u3078\u306e\u63a5\u7d9a\u3092\u78ba\u8a8d\u3059\u308b<\/h3>\n<p>\u6700\u521d\u306b\u3001macOS \u4e0a\u306e Ollama \u304c\u53d6\u5f97\u6e08\u307f\u30e2\u30c7\u30eb\u3092\u8fd4\u3059\u3053\u3068\u3092\u518d\u78ba\u8a8d\u3059\u308b\u3002\u6b21\u306b\u3001\u540c\u3058 API \u3092 Open WebUI \u30b3\u30f3\u30c6\u30ca\u30fc\u5185\u304b\u3089\u547c\u3073\u51fa\u3059\u3002\u30db\u30b9\u30c8\u4e0a\u306e\u78ba\u8a8d\u3068\u30b3\u30f3\u30c6\u30ca\u30fc\u5185\u306e\u78ba\u8a8d\u3092\u5206\u3051\u308b\u3053\u3068\u3067\u3001Ollama \u81ea\u4f53\u306e\u969c\u5bb3\u3068\u3001Docker Desktop \u3092\u307e\u305f\u3050\u901a\u4fe1\u306e\u969c\u5bb3\u3092\u533a\u5225\u3067\u304d\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">curl -fsS \\<br \/>\n&nbsp; http:\/\/127.0.0.1:11434\/api\/tags |<br \/>\n&nbsp; python3 -m json.tool<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>\u3053\u306e\u8981\u6c42\u3067 qwen3.5:9b-q4_K_M \u3068 embeddinggemma \u304c\u8868\u793a\u3055\u308c\u308c\u3070\u3001Ollama API \u3068\u30e2\u30c7\u30eb\u4fdd\u5b58\u72b6\u614b\u306f\u6b63\u5e38\u3067\u3042\u308b\u3002\u305f\u3060\u3057\u3001\u3053\u308c\u306f macOS \u5185\u306e localhost \u304b\u3089\u63a5\u7d9a\u3067\u304d\u308b\u3053\u3068\u3092\u793a\u3059\u3060\u3051\u3067\u3042\u308a\u3001Open WebUI \u30b3\u30f3\u30c6\u30ca\u30fc\u304b\u3089\u5230\u9054\u3067\u304d\u308b\u3053\u3068\u307e\u3067\u306f\u8a3c\u660e\u3057\u306a\u3044\u3002<\/p>\n<p>Open WebUI \u30b3\u30f3\u30c6\u30ca\u30fc\u304b\u3089\u306f\u3001host.docker.internal \u3092\u4f7f\u7528\u3057\u3066\u540c\u3058 API \u3092\u547c\u3073\u51fa\u3059\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">docker compose exec -T open-webui python3 - &lt;&lt;'PY'<br \/>\nimport json<br \/>\nimport urllib.request<br \/>\n<br \/>\nurl = &quot;http:\/\/host.docker.internal:11434\/api\/tags&quot;<br \/>\n<br \/>\nwith urllib.request.urlopen(url, timeout=10) as response:<br \/>\n&nbsp; &nbsp; data = json.load(response)<br \/>\n&nbsp; &nbsp; print(f&quot;status={response.status}&quot;)<br \/>\n&nbsp; &nbsp; for model in data.get(&quot;models&quot;, []):<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; print(model[&quot;name&quot;])<br \/>\nPY<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>status=200 \u3068\u4e8c\u3064\u306e\u30e2\u30c7\u30eb\u540d\u304c\u8868\u793a\u3055\u308c\u308c\u3070\u3001Open WebUI \u30b3\u30f3\u30c6\u30ca\u30fc\u304b\u3089 macOS \u4e0a\u306e Ollama \u307e\u3067\u306e\u901a\u4fe1\u7d4c\u8def\u306f\u6210\u7acb\u3057\u3066\u3044\u308b\u3002\u3053\u306e\u78ba\u8a8d\u306f Open WebUI \u306e\u753b\u9762\u3084\u5185\u90e8\u8a2d\u5b9a\u3092\u4ecb\u3055\u305a\u3001Docker Desktop \u306e\u540d\u524d\u89e3\u6c7a\u3001\u30db\u30b9\u30c8\u3078\u306e\u8ee2\u9001\u3001Ollama API \u306e\u5fdc\u7b54\u3060\u3051\u3092\u691c\u8a3c\u3059\u308b\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>macOS \u304b\u3089\u306e\u8981\u6c42<\/th>\n<th>\u30b3\u30f3\u30c6\u30ca\u30fc\u304b\u3089\u306e\u8981\u6c42<\/th>\n<th>\u5224\u5b9a<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u6210\u529f\u3059\u308b<\/td>\n<td>\u6210\u529f\u3059\u308b\u3002<\/td>\n<td>Ollama API \u3068 Docker \u304b\u3089\u30db\u30b9\u30c8\u3078\u306e\u901a\u4fe1\u304c\u6210\u7acb\u3057\u3066\u3044\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u6210\u529f\u3059\u308b<\/td>\n<td>\u5931\u6557\u3059\u308b\u3002<\/td>\n<td>host.docker.internal \u306e\u540d\u524d\u89e3\u6c7a\u3001\u63a5\u7d9a\u5148\u3001Docker Desktop \u306e\u901a\u4fe1\u3092\u8abf\u3079\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u5931\u6557\u3059\u308b<\/td>\n<td>\u5931\u6557\u3059\u308b\u3002<\/td>\n<td>Open WebUI \u3067\u306f\u306a\u304f\u3001Ollama \u306e\u8d77\u52d5\u72b6\u614b\u3068 11434 \u756a\u30dd\u30fc\u30c8\u3092\u8abf\u3079\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u6210\u529f\u3059\u308b\u304c\u30e2\u30c7\u30eb\u304c\u306a\u3044<\/td>\n<td>\u6210\u529f\u3059\u308b\u304c\u30e2\u30c7\u30eb\u304c\u306a\u3044\u3002<\/td>\n<td>API \u306f\u6b63\u5e38\u3067\u3042\u308b\u305f\u3081\u3001ollama pull \u3068\u30e2\u30c7\u30eb\u540d\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u901a\u4fe1\u8a66\u9a13\u306b\u6210\u529f\u3057\u305f\u5f8c\u3001Open WebUI \u306e\u30e2\u30c7\u30eb\u9078\u629e\u6b04\u306b qwen3.5:9b-q4_K_M \u304c\u8868\u793a\u3055\u308c\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b\u3002\u30b3\u30f3\u30c6\u30ca\u30fc\u304b\u3089 API \u3092\u76f4\u63a5\u547c\u3073\u51fa\u305b\u308b\u306e\u306b\u753b\u9762\u3078\u30e2\u30c7\u30eb\u304c\u8868\u793a\u3055\u308c\u306a\u3044\u5834\u5408\u306f\u3001\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3067\u306f\u306a\u304f\u3001Open WebUI \u304c\u5b9f\u969b\u306b\u8aad\u307f\u8fbc\u3093\u3060\u63a5\u7d9a\u8a2d\u5b9a\u3092\u8abf\u3079\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">docker compose exec open-webui printenv OLLAMA_BASE_URL<br \/>\ndocker compose exec open-webui printenv ENABLE_PERSISTENT_CONFIG<br \/>\ndocker compose logs --tail=200 open-webui |<br \/>\n&nbsp; grep -i -E 'ollama|connection|11434|error'<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>OLLAMA_BASE_URL \u304c http:\/\/host.docker.internal:11434\u3001ENABLE_PERSISTENT_CONFIG \u304c False \u3067\u3042\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b\u3002\u672c\u69cb\u6210\u3067\u306f\u6c38\u7d9a\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u5185\u306e\u65e7\u8a2d\u5b9a\u3067\u306f\u306a\u304f\u3001Compose \u304b\u3089\u6e21\u3057\u305f\u74b0\u5883\u5909\u6570\u3092\u8a2d\u5b9a\u306e\u6b63\u3068\u3059\u308b\u305f\u3081\u3001\u7ba1\u7406\u753b\u9762\u306b\u4fdd\u5b58\u3055\u308c\u305f\u63a5\u7d9a\u5148\u3068\u306e\u512a\u5148\u95a2\u4fc2\u3092\u500b\u5225\u306b\u8abf\u6574\u3059\u308b\u5fc5\u8981\u306f\u306a\u3044<a href=\"#ref20\">[20]<\/a>\u3002<\/p>\n<p>.env \u307e\u305f\u306f compose.yaml \u3092\u5909\u66f4\u3057\u305f\u3060\u3051\u3067\u306f\u3001\u65e2\u306b\u52d5\u4f5c\u3057\u3066\u3044\u308b\u30b3\u30f3\u30c6\u30ca\u30fc\u306e\u74b0\u5883\u5909\u6570\u306f\u5909\u308f\u3089\u306a\u3044\u3002\u8a2d\u5b9a\u5024\u304c\u7570\u306a\u308b\u5834\u5408\u306f\u3001Open WebUI \u30b3\u30f3\u30c6\u30ca\u30fc\u3092\u518d\u4f5c\u6210\u3059\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">docker compose config --quiet<br \/>\ndocker compose up -d --force-recreate open-webui<br \/>\n<br \/>\ndocker compose exec open-webui printenv OLLAMA_BASE_URL<br \/>\ndocker compose exec open-webui printenv ENABLE_PERSISTENT_CONFIG<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>\u74b0\u5883\u5909\u6570\u3001\u30b3\u30f3\u30c6\u30ca\u30fc\u304b\u3089\u306e\u76f4\u63a5\u63a5\u7d9a\u3001Ollama API \u306e\u30e2\u30c7\u30eb\u4e00\u89a7\u304c\u3059\u3079\u3066\u6b63\u5e38\u3067\u3042\u308b\u306b\u3082\u304b\u304b\u308f\u3089\u305a\u3001\u753b\u9762\u306b\u30e2\u30c7\u30eb\u304c\u8868\u793a\u3055\u308c\u306a\u3044\u5834\u5408\u306f\u3001Open WebUI \u306e\u7ba1\u7406\u753b\u9762\u306b\u3042\u308b Ollama \u63a5\u7d9a\u8a2d\u5b9a\u3068\u30ed\u30b0\u3092\u78ba\u8a8d\u3059\u308b\u3002\u8a2d\u5b9a\u3092\u7121\u8a08\u753b\u306b\u8ffd\u52a0\u3059\u308b\u306e\u3067\u306f\u306a\u304f\u3001Compose \u3067\u6307\u5b9a\u3057\u305f\u63a5\u7d9a\u5148\u3068\u540c\u3058\u5024\u306b\u306a\u3063\u3066\u3044\u308b\u304b\u3092\u6bd4\u8f03\u3059\u308b\u3002<\/p>\n<h3>5.2 Open WebUI \u304b\u3089 Ollama \u306e\u751f\u6210 API \u3078\u306e\u7d4c\u8def\u3092\u78ba\u8a8d\u3059\u308b<\/h3>\n<p>\u30e2\u30c7\u30eb\u4e00\u89a7\u306e\u53d6\u5f97\u306f\u3001Open WebUI \u304c Ollama \u306e\u8aad\u307f\u53d6\u308a API \u3078\u63a5\u7d9a\u3067\u304d\u308b\u3053\u3068\u3092\u793a\u3059\u3002\u6587\u7ae0\u751f\u6210\u307e\u3067\u6210\u7acb\u3059\u308b\u304b\u3092\u78ba\u8a8d\u3059\u308b\u306b\u306f\u3001Open WebUI \u304b\u3089\u5b9f\u969b\u306b\u751f\u6210\u8981\u6c42\u3092\u9001\u308b\u5fc5\u8981\u304c\u3042\u308b\u3002\u65b0\u3057\u3044\u4f1a\u8a71\u3092\u4f5c\u6210\u3057\u3001Knowledge\u3001\u6dfb\u4ed8\u30d5\u30a1\u30a4\u30eb\u3001\u30a6\u30a7\u30d6\u691c\u7d22\u3001\u8ffd\u52a0\u30c4\u30fc\u30eb\u3092\u63a5\u7d9a\u3057\u306a\u3044\u72b6\u614b\u3067 qwen3.5:9b-q4_K_M \u3092\u9078\u629e\u3059\u308b\u3002<\/p>\n<div class=\"note\">\n<p>\u751f\u6210\u7528 LLM \u3068\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u306e\u5f79\u5272\u306e\u9055\u3044\u3092\u4e09\u6587\u3067\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<\/div>\n<p>\u65e5\u672c\u8a9e\u306e\u56de\u7b54\u304c\u8fd4\u308c\u3070\u3001\u30d6\u30e9\u30a6\u30b6\u30fc\u3001Open WebUI\u3001Docker \u304b\u3089\u30db\u30b9\u30c8\u3078\u306e\u901a\u4fe1\u3001Ollama \u306e\u751f\u6210 API\u3001\u751f\u6210\u7528\u30e2\u30c7\u30eb\u3068\u3044\u3046\u7d4c\u8def\u304c\u4e00\u7d9a\u304d\u306b\u6210\u7acb\u3057\u3066\u3044\u308b\u3002\u305f\u3060\u3057\u3001\u3053\u306e\u8a66\u9a13\u3067\u306f\u6587\u66f8\u3092\u767b\u9332\u3057\u3066\u304a\u3089\u305a\u3001Knowledge \u3082\u63a5\u7d9a\u3057\u3066\u3044\u306a\u3044\u305f\u3081\u3001\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u3068 Qdrant \u306f\u4f7f\u7528\u3055\u308c\u306a\u3044\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u89b3\u5bdf\u7d50\u679c<\/th>\n<th>\u6210\u7acb\u3057\u305f\u7d4c\u8def<\/th>\n<th>\u307e\u3060\u78ba\u8a8d\u3057\u3066\u3044\u306a\u3044\u7d4c\u8def<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u30e2\u30c7\u30eb\u4e00\u89a7\u306b\u751f\u6210\u7528\u30e2\u30c7\u30eb\u304c\u8868\u793a\u3055\u308c\u308b<\/td>\n<td>Open WebUI \u304b\u3089 Ollama \u306e\u30e2\u30c7\u30eb\u4e00\u89a7\u3092\u53d6\u5f97\u3067\u304d\u308b\u3002<\/td>\n<td>\u751f\u6210\u8981\u6c42\u3001\u57cb\u3081\u8fbc\u307f\u751f\u6210\u3001Qdrant \u3078\u306e\u4fdd\u5b58\u306f\u78ba\u8a8d\u3067\u304d\u306a\u3044\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u901a\u5e38\u5bfe\u8a71\u3067\u56de\u7b54\u304c\u8fd4\u308b<\/td>\n<td>Open WebUI \u304b\u3089 Ollama \u306e\u751f\u6210 API \u3092\u547c\u3073\u51fa\u305b\u308b\u3002<\/td>\n<td>Knowledge \u306e\u691c\u7d22\u3068\u53d6\u5f97\u6587\u66f8\u306e\u633f\u5165\u306f\u78ba\u8a8d\u3067\u304d\u306a\u3044\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u56de\u7b54\u5185\u5bb9\u304c\u81ea\u7136\u3067\u3042\u308b<\/td>\n<td>\u751f\u6210\u7528\u30e2\u30c7\u30eb\u304c\u65e5\u672c\u8a9e\u306e\u56de\u7b54\u3092\u51fa\u529b\u3067\u304d\u308b\u3002<\/td>\n<td>\u767b\u9332\u6587\u66f8\u3092\u6839\u62e0\u306b\u56de\u7b54\u3057\u305f\u3053\u3068\u306f\u78ba\u8a8d\u3067\u304d\u306a\u3044\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u3053\u306e\u901a\u5e38\u5bfe\u8a71\u306f\u3001\u5f8c\u7d9a\u306e RAG \u8a66\u9a13\u306b\u5bfe\u3059\u308b\u5bfe\u7167\u6761\u4ef6\u3068\u306a\u308b\u3002\u901a\u5e38\u5bfe\u8a71\u3067\u56de\u7b54\u3067\u304d\u308b\u4e00\u822c\u77e5\u8b58\u3060\u3051\u3092 RAG \u306e\u8a66\u9a13\u8cea\u554f\u306b\u4f7f\u3046\u3068\u3001Knowledge \u3092\u63a5\u7d9a\u3057\u305f\u52b9\u679c\u3092\u5224\u5b9a\u3067\u304d\u306a\u3044\u3002\u305d\u306e\u305f\u3081\u3001RAG \u306e\u672c\u8a66\u9a13\u3067\u306f\u3001\u901a\u5e38\u5bfe\u8a71\u3067\u306f\u77e5\u308a\u5f97\u306a\u3044\u67b6\u7a7a\u306e\u56fa\u6709\u60c5\u5831\u3092\u4f7f\u7528\u3059\u308b\u3002<\/p>\n<p>\u901a\u5e38\u5bfe\u8a71\u304c\u5931\u6557\u3057\u305f\u5834\u5408\u306f\u3001Qdrant \u3084\u6587\u66f8\u5206\u5272\u306e\u8a2d\u5b9a\u3092\u5909\u66f4\u3057\u306a\u3044\u3002Knowledge \u3092\u63a5\u7d9a\u3057\u3066\u3044\u306a\u3044\u5bfe\u8a71\u306b\u306f\u3001\u305d\u308c\u3089\u306e\u8a2d\u5b9a\u304c\u95a2\u4e0e\u3057\u306a\u3044\u305f\u3081\u3067\u3042\u308b\u3002Open WebUI \u306e\u30ed\u30b0\u3068 Ollama \u306e\u72b6\u614b\u3092\u78ba\u8a8d\u3057\u3001\u751f\u6210\u7d4c\u8def\u3092\u5fa9\u65e7\u3057\u3066\u304b\u3089\u6587\u66f8\u767b\u9332\u3078\u9032\u3080\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">docker compose logs --tail=200 open-webui<br \/>\nollama ps<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>Open WebUI \u306e\u30ed\u30b0\u306b Ollama API \u306e\u63a5\u7d9a\u30a8\u30e9\u30fc\u304c\u306a\u304f\u3001ollama ps \u306b qwen3.5:9b-q4_K_M \u304c\u8868\u793a\u3055\u308c\u308c\u3070\u3001\u8981\u6c42\u306f\u751f\u6210\u7528\u30e2\u30c7\u30eb\u307e\u3067\u5230\u9054\u3057\u3066\u3044\u308b\u3002\u30e2\u30c7\u30eb\u304c\u8868\u793a\u3055\u308c\u306a\u3044\u5834\u5408\u306f\u3001\u753b\u9762\u4e0a\u3067\u9078\u629e\u3057\u305f\u30e2\u30c7\u30eb\u540d\u3001Ollama \u306b\u4fdd\u5b58\u3055\u308c\u305f\u30bf\u30b0\u3001Open WebUI \u304c\u9001\u4fe1\u3057\u305f\u8981\u6c42\u3092\u7167\u5408\u3059\u308b\u3002<\/p>\n<h3>5.3 Open WebUI \u30b3\u30f3\u30c6\u30ca\u30fc\u304b\u3089 Qdrant \u3078\u306e\u63a5\u7d9a\u3092\u78ba\u8a8d\u3059\u308b<\/h3>\n<p>Qdrant \u306f http:\/\/127.0.0.1:6333\/dashboard \u3067\u7ba1\u7406\u753b\u9762\u3092\u63d0\u4f9b\u3059\u308b\u3002\u7ba1\u7406\u753b\u9762\u3067\u306f\u3001\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3068\u70b9\u306e\u78ba\u8a8d\u3001REST API \u306e\u5b9f\u884c\u3001\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u306e\u64cd\u4f5c\u304c\u3067\u304d\u308b<a href=\"#ref23\">[23]<\/a>\u3002API \u9375\u3092\u6c42\u3081\u3089\u308c\u305f\u5834\u5408\u306f\u3001.env \u306b\u4fdd\u5b58\u3057\u305f QDRANT_API_KEY \u3092\u5165\u529b\u3059\u308b\u3002<\/p>\n<p>\u7ba1\u7406\u753b\u9762\u3092\u958b\u3051\u308b\u3053\u3068\u306f\u3001MacBook Pro \u306e\u30d6\u30e9\u30a6\u30b6\u30fc\u304b\u3089 Qdrant \u3078\u63a5\u7d9a\u3067\u304d\u308b\u3053\u3068\u3092\u793a\u3059\u3002\u305f\u3060\u3057\u3001Open WebUI \u30b3\u30f3\u30c6\u30ca\u30fc\u306f\u30db\u30b9\u30c8\u5074\u306e 127.0.0.1:6333 \u3067\u306f\u306a\u304f\u3001Docker Compose \u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u5185\u306e qdrant:6333 \u3078\u63a5\u7d9a\u3059\u308b\u3002\u30d6\u30e9\u30a6\u30b6\u30fc\u304b\u3089\u306e\u63a5\u7d9a\u3068\u30b3\u30f3\u30c6\u30ca\u30fc\u9593\u901a\u4fe1\u306f\u5225\u3005\u306b\u78ba\u8a8d\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">docker compose exec -T open-webui python3 - &lt;&lt;'PY'<br \/>\nimport json<br \/>\nimport os<br \/>\nimport urllib.request<br \/>\n<br \/>\nrequest = urllib.request.Request(<br \/>\n&nbsp; &nbsp; &quot;http:\/\/qdrant:6333\/collections&quot;,<br \/>\n&nbsp; &nbsp; headers={&quot;api-key&quot;: os.environ[&quot;QDRANT_API_KEY&quot;]},<br \/>\n)<br \/>\n<br \/>\nwith urllib.request.urlopen(request, timeout=10) as response:<br \/>\n&nbsp; &nbsp; data = json.load(response)<br \/>\n&nbsp; &nbsp; print(f&quot;status={response.status}&quot;)<br \/>\n&nbsp; &nbsp; print(json.dumps(data, ensure_ascii=False, indent=2))<br \/>\nPY<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>status=200 \u3068\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u4e00\u89a7\u304c\u8fd4\u308c\u3070\u3001Open WebUI \u30b3\u30f3\u30c6\u30ca\u30fc\u304b\u3089 Qdrant \u307e\u3067\u306e\u540d\u524d\u89e3\u6c7a\u3001HTTP \u63a5\u7d9a\u3001API \u9375\u8a8d\u8a3c\u304c\u6210\u7acb\u3057\u3066\u3044\u308b\u3002\u6587\u66f8\u767b\u9332\u524d\u306b\u306f\u3001\u4e00\u89a7\u304c\u7a7a\u3067\u3042\u3063\u3066\u3082\u7570\u5e38\u3067\u306f\u306a\u3044\u3002\u63a5\u7d9a\u7d4c\u8def\u306e\u78ba\u8a8d\u3067\u306f\u3001\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u6570\u3067\u306f\u306a\u304f\u3001\u8a8d\u8a3c\u4ed8\u304d\u8981\u6c42\u304c\u6b63\u5e38\u7d42\u4e86\u3059\u308b\u3053\u3068\u3092\u5224\u5b9a\u6761\u4ef6\u3068\u3059\u308b\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u89b3\u5bdf\u7d50\u679c<\/th>\n<th>\u8003\u3048\u3089\u308c\u308b\u72b6\u614b<\/th>\n<th>\u78ba\u8a8d\u5bfe\u8c61<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u540d\u524d\u89e3\u6c7a\u306b\u5931\u6557\u3059\u308b<\/td>\n<td>Open WebUI \u3068 Qdrant \u304c\u540c\u3058 Compose \u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3078\u63a5\u7d9a\u3055\u308c\u3066\u3044\u306a\u3044\u3002<\/td>\n<td>\u30b5\u30fc\u30d3\u30b9\u540d\u3001Compose \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3001\u30b3\u30f3\u30c6\u30ca\u30fc\u306e\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u63a5\u7d9a\u3092\u62d2\u5426\u3055\u308c\u308b<\/td>\n<td>Qdrant \u304c\u505c\u6b62\u3057\u3066\u3044\u308b\u304b\u30016333 \u756a\u30dd\u30fc\u30c8\u3092\u5f85\u3061\u53d7\u3051\u3066\u3044\u306a\u3044\u3002<\/td>\n<td>Qdrant \u306e\u72b6\u614b\u3068\u30ed\u30b0\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u8a8d\u8a3c\u30a8\u30e9\u30fc\u306b\u306a\u308b<\/td>\n<td>Open WebUI \u3068 Qdrant \u306b\u7570\u306a\u308b API \u9375\u304c\u6e21\u3055\u308c\u3066\u3044\u308b\u3002<\/td>\n<td>\u4e21\u30b3\u30f3\u30c6\u30ca\u30fc\u306e\u518d\u4f5c\u6210\u72b6\u614b\u3068\u74b0\u5883\u5909\u6570\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>HTTP 200 \u3067\u7a7a\u306e\u4e00\u89a7\u304c\u8fd4\u308b<\/td>\n<td>\u63a5\u7d9a\u3068\u8a8d\u8a3c\u306f\u6b63\u5e38\u3060\u304c\u3001\u6587\u66f8\u306f\u307e\u3060\u767b\u9332\u3055\u308c\u3066\u3044\u306a\u3044\u3002<\/td>\n<td>\u6587\u66f8\u767b\u9332\u524d\u306e\u57fa\u6e96\u5024\u3068\u3057\u3066\u8a18\u9332\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>HTTP 200 \u3067\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u304c\u8fd4\u308b<\/td>\n<td>\u904e\u53bb\u306e\u6587\u66f8\u767b\u9332\u30c7\u30fc\u30bf\u304c\u4fdd\u5b58\u9818\u57df\u306b\u6b8b\u3063\u3066\u3044\u308b\u3002<\/td>\n<td>\u65b0\u898f\u8a66\u9a13\u3068\u65e2\u5b58\u30c7\u30fc\u30bf\u3092\u6df7\u540c\u3057\u306a\u3044\u3088\u3046\u3001\u540d\u79f0\u3068\u70b9\u6570\u3092\u8a18\u9332\u3059\u308b\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u6587\u66f8\u767b\u9332\u524d\u306e\u72b6\u614b\u3092 API \u304b\u3089\u4fdd\u5b58\u3059\u308b\u3002\u5f8c\u7d9a\u306e\u767b\u9332\u5f8c\u306b\u540c\u3058\u8981\u6c42\u3092\u5b9f\u884c\u3057\u3001\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306e\u5897\u52a0\u3068\u70b9\u6570\u306e\u5909\u5316\u3092\u6bd4\u8f03\u3059\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">(<br \/>\n&nbsp; set -a<br \/>\n&nbsp; . .\/.env<br \/>\n&nbsp; set +a<br \/>\n<br \/>\n&nbsp; curl -fsS \\<br \/>\n&nbsp; &nbsp; -H &quot;api-key: ${QDRANT_API_KEY}&quot; \\<br \/>\n&nbsp; &nbsp; http:\/\/127.0.0.1:6333\/collections<br \/>\n) |<br \/>\n&nbsp; tee \/tmp\/qdrant-collections-before.json |<br \/>\n&nbsp; python3 -m json.tool<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>\u3053\u306e\u57fa\u6e96\u5024\u3092\u6b8b\u3059\u3053\u3068\u3067\u3001\u6587\u66f8\u767b\u9332\u5f8c\u306b\u4f5c\u6210\u3055\u308c\u305f\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3092\u65e2\u5b58\u30c7\u30fc\u30bf\u3068\u533a\u5225\u3067\u304d\u308b\u3002Open WebUI \u306e\u7248\u3084\u8a2d\u5b9a\u306b\u3088\u3063\u3066\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u540d\u304c\u5909\u308f\u308b\u53ef\u80fd\u6027\u304c\u3042\u308b\u305f\u3081\u3001\u7279\u5b9a\u306e\u540d\u79f0\u304c\u4f5c\u6210\u3055\u308c\u308b\u3053\u3068\u3092\u524d\u63d0\u306b\u305b\u305a\u3001\u767b\u9332\u524d\u5f8c\u306e\u5dee\u5206\u3067\u5224\u5b9a\u3059\u308b\u3002<\/p>\n<h3>5.4 \u30ed\u30fc\u30ab\u30eb\u51e6\u7406\u7d4c\u8def\u3068\u3057\u3066\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b<\/h3>\n<p>Open WebUI \u306f\u3001Ollama \u4ee5\u5916\u306e\u751f\u6210 API\u3001\u5916\u90e8\u306e\u57cb\u3081\u8fbc\u307f\u30b5\u30fc\u30d3\u30b9\u3001\u30a6\u30a7\u30d6\u691c\u7d22\u3001\u8907\u6570\u306e\u30d9\u30af\u30c8\u30eb\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u3082\u63a5\u7d9a\u3067\u304d\u308b\u3002\u672c\u69cb\u6210\u304c\u30ed\u30fc\u30ab\u30eb RAG \u306b\u306a\u308b\u306e\u306f\u3001Open WebUI \u3084 Ollama \u3068\u3044\u3046\u88fd\u54c1\u3092\u4f7f\u7528\u3057\u3066\u3044\u308b\u305f\u3081\u3067\u306f\u306a\u3044\u3002\u751f\u6210\u3001\u57cb\u3081\u8fbc\u307f\u3001\u691c\u7d22\u3001\u6587\u66f8\u62bd\u51fa\u306e\u5404\u51e6\u7406\u5148\u3092\u3001MacBook Pro \u3068 Docker Desktop \u306e\u5185\u90e8\u3078\u660e\u793a\u7684\u306b\u914d\u7f6e\u3057\u3066\u3044\u308b\u305f\u3081\u3067\u3042\u308b\u3002<\/p>\n<p>\u5b9f\u884c\u4e2d\u306e Open WebUI \u30b3\u30f3\u30c6\u30ca\u30fc\u3078\u3001Compose \u3067\u6307\u5b9a\u3057\u305f\u63a5\u7d9a\u8a2d\u5b9a\u304c\u6e21\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">docker compose exec -T open-webui python3 - &lt;&lt;'PY'<br \/>\nimport os<br \/>\n<br \/>\nnames = (<br \/>\n&nbsp; &nbsp; &quot;ENABLE_PERSISTENT_CONFIG&quot;,<br \/>\n&nbsp; &nbsp; &quot;ENABLE_OLLAMA_API&quot;,<br \/>\n&nbsp; &nbsp; &quot;OLLAMA_BASE_URL&quot;,<br \/>\n&nbsp; &nbsp; &quot;ENABLE_OPENAI_API&quot;,<br \/>\n&nbsp; &nbsp; &quot;ENABLE_WEB_SEARCH&quot;,<br \/>\n&nbsp; &nbsp; &quot;VECTOR_DB&quot;,<br \/>\n&nbsp; &nbsp; &quot;QDRANT_URI&quot;,<br \/>\n&nbsp; &nbsp; &quot;QDRANT_PREFER_GRPC&quot;,<br \/>\n&nbsp; &nbsp; &quot;RAG_EMBEDDING_ENGINE&quot;,<br \/>\n&nbsp; &nbsp; &quot;RAG_EMBEDDING_MODEL&quot;,<br \/>\n&nbsp; &nbsp; &quot;CONTENT_EXTRACTION_ENGINE&quot;,<br \/>\n)<br \/>\n<br \/>\nfor name in names:<br \/>\n&nbsp; &nbsp; print(f&quot;{name}={os.environ.get(name, '')}&quot;)<br \/>\nPY<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<table>\n<thead>\n<tr>\n<th>\u51e6\u7406<\/th>\n<th>\u8a2d\u5b9a\u3057\u305f\u63a5\u7d9a\u5148<\/th>\n<th>\u5b9f\u884c\u7d4c\u8def\u306e\u78ba\u8a8d\u65b9\u6cd5<\/th>\n<th>\u6210\u529f\u3057\u3066\u3082\u8a3c\u660e\u3067\u304d\u306a\u3044\u3053\u3068<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u751f\u6210<\/td>\n<td>host.docker.internal:11434 \u306e Ollama \u3078\u63a5\u7d9a\u3059\u308b\u3002<\/td>\n<td>\u30b3\u30f3\u30c6\u30ca\u30fc\u5185\u304b\u3089\u30e2\u30c7\u30eb\u4e00\u89a7\u3092\u53d6\u5f97\u3057\u3001Open WebUI \u3067\u901a\u5e38\u5bfe\u8a71\u3092\u884c\u3046\u3002<\/td>\n<td>Knowledge \u306e\u691c\u7d22\u7d50\u679c\u304c\u56de\u7b54\u3078\u4f7f\u308f\u308c\u305f\u3053\u3068\u306f\u8a3c\u660e\u3067\u304d\u306a\u3044\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u57cb\u3081\u8fbc\u307f<\/td>\n<td>\u540c\u3058 Ollama \u4e0a\u306e embeddinggemma \u3092\u4f7f\u7528\u3059\u308b\u3002<\/td>\n<td>\u6587\u66f8\u767b\u9332\u6642\u306e Ollama \u3068 Open WebUI \u306e\u30ed\u30b0\u3001Qdrant \u306e\u70b9\u6570\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<td>\u53d6\u5f97\u3055\u308c\u305f\u65ad\u7247\u304c\u8cea\u554f\u306b\u9069\u5207\u3067\u3042\u308b\u3053\u3068\u306f\u70b9\u6570\u3060\u3051\u3067\u306f\u5206\u304b\u3089\u306a\u3044\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u30d9\u30af\u30c8\u30eb\u4fdd\u5b58<\/td>\n<td>Docker \u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u5185\u306e qdrant:6333 \u3078\u63a5\u7d9a\u3059\u308b\u3002<\/td>\n<td>Open WebUI \u30b3\u30f3\u30c6\u30ca\u30fc\u304b\u3089\u8a8d\u8a3c\u4ed8\u304d API \u3092\u547c\u3073\u51fa\u3059\u3002<\/td>\n<td>\u4fdd\u5b58\u3055\u308c\u305f\u5404\u70b9\u306b\u9069\u5207\u306a\u6587\u66f8\u65ad\u7247\u304c\u542b\u307e\u308c\u308b\u304b\u306f\u5225\u306b\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u6587\u66f8\u62bd\u51fa<\/td>\n<td>Open WebUI \u30b3\u30f3\u30c6\u30ca\u30fc\u5185\u306e\u6a19\u6e96\u62bd\u51fa\u6a5f\u69cb\u3092\u4f7f\u7528\u3059\u308b\u3002<\/td>\n<td>\u6587\u5b57\u5c64\u3092\u6301\u3064 Markdown\u3001HTML\u3001PDF \u3092\u767b\u9332\u3057\u3001\u56fa\u6709\u6587\u5b57\u5217\u3092\u691c\u7d22\u3059\u308b\u3002<\/td>\n<td>\u753b\u50cf\u3060\u3051\u306e PDF \u3084\u8907\u96d1\u306a\u8868\u3092\u6b63\u78ba\u306b\u62bd\u51fa\u3067\u304d\u308b\u3053\u3068\u306f\u8a3c\u660e\u3067\u304d\u306a\u3044\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>ENABLE_OPENAI_API=False \u3068 ENABLE_WEB_SEARCH=False \u306f\u3001Open WebUI \u304b\u3089\u5916\u90e8\u751f\u6210 API \u3068\u30a6\u30a7\u30d6\u691c\u7d22\u3092\u5229\u7528\u3057\u306a\u3044\u305f\u3081\u306e\u8a2d\u5b9a\u3067\u3042\u308b\u3002RAG_EMBEDDING_ENGINE=ollama \u3068 VECTOR_DB=qdrant \u306b\u3088\u308a\u3001\u57cb\u3081\u8fbc\u307f\u751f\u6210\u3068\u30d9\u30af\u30c8\u30eb\u4fdd\u5b58\u3082\u30ed\u30fc\u30ab\u30eb\u306e\u63a5\u7d9a\u5148\u3078\u56fa\u5b9a\u3059\u308b\u3002<\/p>\n<p>\u305f\u3060\u3057\u3001\u3053\u308c\u3089\u306e\u8a2d\u5b9a\u3060\u3051\u3067\u3001Open WebUI \u30b3\u30f3\u30c6\u30ca\u30fc\u3068 Ollama \u306e\u5168\u5916\u5411\u304d\u901a\u4fe1\u304c\u906e\u65ad\u3055\u308c\u305f\u3053\u3068\u306b\u306f\u306a\u3089\u306a\u3044\u3002Docker Desktop \u306e\u901a\u5e38\u306e\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306b\u306f\u5916\u90e8\u3078\u306e\u901a\u4fe1\u7d4c\u8def\u304c\u3042\u308a\u3001\u30e2\u30c7\u30eb\u53d6\u5f97\u3001\u30a4\u30e1\u30fc\u30b8\u53d6\u5f97\u3001\u66f4\u65b0\u78ba\u8a8d\u306a\u3069\u3001RAG \u306e\u56de\u7b54\u51e6\u7406\u3068\u306f\u7570\u306a\u308b\u901a\u4fe1\u304c\u767a\u751f\u3059\u308b\u53ef\u80fd\u6027\u304c\u3042\u308b\u3002\u3053\u3053\u3067\u78ba\u8a8d\u3067\u304d\u308b\u306e\u306f\u3001\u8cea\u554f\u304b\u3089\u56de\u7b54\u307e\u3067\u306e\u751f\u6210\u3001\u57cb\u3081\u8fbc\u307f\u3001\u691c\u7d22\u3001\u6587\u66f8\u62bd\u51fa\u306e\u63a5\u7d9a\u5148\u304c\u30ed\u30fc\u30ab\u30eb\u3078\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u3067\u3042\u308b\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u904b\u7528\u6761\u4ef6<\/th>\n<th>\u6210\u7acb\u306b\u5fc5\u8981\u306a\u78ba\u8a8d<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u56de\u7b54\u51e6\u7406\u3092\u30ed\u30fc\u30ab\u30eb\u3067\u5b8c\u7d50\u3055\u305b\u308b<\/td>\n<td>\u751f\u6210\u3001\u57cb\u3081\u8fbc\u307f\u3001\u691c\u7d22\u3001\u6587\u66f8\u62bd\u51fa\u306e\u63a5\u7d9a\u5148\u304c\u3059\u3079\u3066\u30ed\u30fc\u30ab\u30eb\u3067\u3042\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u5916\u90e8\u751f\u6210\u30b5\u30fc\u30d3\u30b9\u3078\u6587\u66f8\u3092\u9001\u4fe1\u3057\u306a\u3044<\/td>\n<td>\u5916\u90e8\u751f\u6210 API \u3068\u5916\u90e8\u57cb\u3081\u8fbc\u307f API \u3092\u7121\u52b9\u306b\u3057\u3001\u4f7f\u7528\u30e2\u30c7\u30eb\u3092 Ollama \u3078\u9650\u5b9a\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u7aef\u672b\u304b\u3089\u306e\u5916\u5411\u304d\u901a\u4fe1\u3092\u5168\u9762\u7684\u306b\u7981\u6b62\u3059\u308b<\/td>\n<td>\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u8a2d\u5b9a\u3060\u3051\u306b\u4f9d\u5b58\u305b\u305a\u3001\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u307e\u305f\u306f\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u5236\u5fa1\u3067\u906e\u65ad\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u5207\u65ad\u5f8c\u3082\u5229\u7528\u3059\u308b<\/td>\n<td>\u5fc5\u8981\u306a\u30e2\u30c7\u30eb\u3001\u30a4\u30e1\u30fc\u30b8\u3001\u6587\u66f8\u62bd\u51fa\u7528\u8cc7\u6e90\u304c\u4e8b\u524d\u306b\u30ed\u30fc\u30ab\u30eb\u3078\u53d6\u5f97\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u3053\u306e\u533a\u5225\u3092\u8a2d\u3051\u306a\u3044\u3068\u3001\u300c\u30ed\u30fc\u30ab\u30eb\u30e2\u30c7\u30eb\u3092\u9078\u629e\u3057\u305f\u300d\u300c\u30a6\u30a7\u30d6\u691c\u7d22\u3092\u7121\u52b9\u306b\u3057\u305f\u300d\u3068\u3044\u3046\u753b\u9762\u4e0a\u306e\u8a2d\u5b9a\u3060\u3051\u3067\u3001\u5916\u90e8\u901a\u4fe1\u304c\u4e00\u5207\u306a\u3044\u3068\u8aa4\u8a8d\u3059\u308b\u3002\u30ed\u30fc\u30ab\u30eb RAG \u306e\u69cb\u6210\u78ba\u8a8d\u3067\u306f\u3001\u56de\u7b54\u3092\u4f5c\u308b\u30c7\u30fc\u30bf\u7d4c\u8def\u3068\u3001\u7aef\u672b\u5168\u4f53\u306e\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u9694\u96e2\u3092\u5225\u306e\u8981\u4ef6\u3068\u3057\u3066\u6271\u3046\u5fc5\u8981\u304c\u3042\u308b\u3002<\/p>\n<p>\u3053\u306e\u7ae0\u306e\u5b8c\u4e86\u6761\u4ef6\u306f\u3001Open WebUI \u306e\u753b\u9762\u306b\u751f\u6210\u7528\u30e2\u30c7\u30eb\u304c\u8868\u793a\u3055\u308c\u308b\u3053\u3068\u3060\u3051\u3067\u306f\u306a\u3044\u3002macOS \u304b\u3089 Ollama API \u3092\u547c\u3073\u51fa\u305b\u308b\u3053\u3068\u3001Open WebUI \u30b3\u30f3\u30c6\u30ca\u30fc\u304b\u3089\u540c\u3058 API \u3078\u5230\u9054\u3067\u304d\u308b\u3053\u3068\u3001Knowledge \u3092\u63a5\u7d9a\u3057\u306a\u3044\u901a\u5e38\u5bfe\u8a71\u304c\u6210\u529f\u3059\u308b\u3053\u3068\u3001Open WebUI \u30b3\u30f3\u30c6\u30ca\u30fc\u304b\u3089\u8a8d\u8a3c\u4ed8\u304d\u3067 Qdrant \u3078\u63a5\u7d9a\u3067\u304d\u308b\u3053\u3068\u3001\u6587\u66f8\u767b\u9332\u524d\u306e\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u72b6\u614b\u3092\u8a18\u9332\u3067\u304d\u308b\u3053\u3068\u307e\u3067\u3092\u500b\u5225\u306b\u78ba\u8a8d\u3059\u308b\u3002\u3053\u308c\u306b\u3088\u308a\u3001\u6b21\u7ae0\u306e\u6587\u66f8\u767b\u9332\u3067\u969c\u5bb3\u304c\u8d77\u304d\u305f\u5834\u5408\u306f\u3001\u751f\u6210\u7d4c\u8def\u3068\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u63a5\u7d9a\u3092\u5207\u308a\u5206\u3051\u6e08\u307f\u306e\u524d\u63d0\u3068\u3057\u3066\u3001\u6587\u5b57\u62bd\u51fa\u3001\u30c1\u30e3\u30f3\u30af\u5206\u5272\u3001\u57cb\u3081\u8fbc\u307f\u751f\u6210\u3001\u30d9\u30af\u30c8\u30eb\u4fdd\u5b58\u3092\u8abf\u3079\u3089\u308c\u308b\u3002<\/p>\n<hr>\n<h2>6. \u6587\u66f8\u3092\u691c\u7d22\u53ef\u80fd\u306a\u30c1\u30e3\u30f3\u30af\u3078\u5909\u63db\u3059\u308b<\/h2>\n<h3>6.1 \u6587\u8108\u3092\u5916\u90e8\u5316\u3057\u3066\u691c\u7d22\u5bfe\u8c61\u306b\u3059\u308b<\/h3>\n<p>\u5229\u7528\u8005\u56fa\u6709\u306e\u5224\u65ad\u57fa\u6e96\u3001\u904b\u7528\u624b\u9806\u3001\u4f8b\u5916\u6761\u4ef6\u306f\u3001\u751f\u6210\u7528 LLM \u306e\u5185\u90e8\u77e5\u8b58\u306b\u306f\u542b\u307e\u308c\u3066\u3044\u306a\u3044\u3002\u4f1a\u8a71\u306e\u305f\u3073\u306b\u8aac\u660e\u3057\u306a\u3051\u308c\u3070\u53c2\u7167\u3067\u304d\u306a\u3044\u60c5\u5831\u3092\u7d99\u7d9a\u7684\u306b\u5229\u7528\u3059\u308b\u306b\u306f\u3001\u6697\u9ed9\u77e5\u3092\u6587\u66f8\u3068\u3057\u3066\u5916\u90e8\u5316\u3057\u3001\u691c\u7d22\u53ef\u80fd\u306a\u60c5\u5831\u69cb\u9020\u3078\u5909\u63db\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b<a href=\"#ref24\">[24]<\/a>\u3002<\/p>\n<p>\u5916\u90e8\u5316\u3068\u306f\u3001\u5358\u306b\u6587\u7ae0\u3068\u3057\u3066\u4fdd\u5b58\u3059\u308b\u3053\u3068\u3067\u306f\u306a\u3044\u3002\u5bfe\u8c61\u3001\u6761\u4ef6\u3001\u5024\u3001\u4f8b\u5916\u3001\u5224\u65ad\u4e3b\u4f53\u306e\u5bfe\u5fdc\u95a2\u4fc2\u3092\u3001\u6587\u66f8\u3092\u5206\u5272\u3057\u305f\u5f8c\u306b\u3082\u8aad\u307f\u53d6\u308c\u308b\u5f62\u3067\u8a18\u8ff0\u3059\u308b\u3002\u305f\u3068\u3048\u3070\u300c47821\u300d\u3068\u3044\u3046\u6570\u5024\u3060\u3051\u3092\u8a18\u9332\u3057\u3066\u3082\u3001\u305d\u308c\u304c\u672c\u756a\u30dd\u30fc\u30c8\u306a\u306e\u304b\u3001\u969c\u5bb3\u756a\u53f7\u306a\u306e\u304b\u3001\u6642\u523b\u306a\u306e\u304b\u3092\u691c\u7d22\u7d50\u679c\u304b\u3089\u78ba\u5b9a\u3067\u304d\u306a\u3044\u3002\u300cArgolet \u306e\u672c\u756a\u4fdd\u5b88\u30dd\u30fc\u30c8\u306f 47821 \u3067\u3042\u308b\u300d\u3068\u8a18\u8ff0\u3059\u308b\u3053\u3068\u3067\u3001\u540d\u79f0\u3001\u74b0\u5883\u3001\u7528\u9014\u3001\u5024\u304c\u4e00\u3064\u306e\u610f\u5473\u5358\u4f4d\u306b\u306a\u308b\u3002<\/p>\n<p>Open WebUI \u306e Knowledge \u306f\u3001\u8907\u6570\u306e\u4f1a\u8a71\u304b\u3089\u518d\u5229\u7528\u3059\u308b\u6587\u66f8\u96c6\u5408\u3092\u7ba1\u7406\u3059\u308b\u5358\u4f4d\u3067\u3042\u308b\u3002Focused Retrieval \u3092\u4f7f\u7528\u3059\u308b\u3068\u3001\u767b\u9332\u6587\u66f8\u3092\u8cea\u554f\u306e\u305f\u3073\u306b\u5168\u6587\u6295\u5165\u3059\u308b\u306e\u3067\u306f\u306a\u304f\u3001\u8cea\u554f\u3068\u610f\u5473\u7684\u306b\u8fd1\u3044\u30c1\u30e3\u30f3\u30af\u3092\u691c\u7d22\u3057\u3066\u751f\u6210\u7528 LLM \u3078\u6e21\u3059<a href=\"#ref25\">[25]<\/a>\u3002\u672c\u69cb\u6210\u3067\u306f RAG_FULL_CONTEXT=False \u3068\u3057\u3066\u3044\u308b\u305f\u3081\u3001Knowledge \u5168\u6587\u3067\u306f\u306a\u304f\u3001Qdrant \u304b\u3089\u53d6\u5f97\u3057\u305f\u4e0a\u4f4d 3 \u4ef6\u306e\u30c1\u30e3\u30f3\u30af\u304c\u56de\u7b54\u751f\u6210\u306e\u5019\u88dc\u306b\u306a\u308b\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u60c5\u5831\u306e\u72b6\u614b<\/th>\n<th>\u751f\u6210\u7528 LLM \u304b\u3089\u306e\u5229\u7528\u65b9\u6cd5<\/th>\n<th>\u5236\u7d04<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u30e2\u30c7\u30eb\u306e\u5b66\u7fd2\u6642\u306b\u5185\u90e8\u5316\u3055\u308c\u305f\u4e00\u822c\u77e5\u8b58<\/td>\n<td>\u5916\u90e8\u6587\u66f8\u3092\u63a5\u7d9a\u305b\u305a\u306b\u56de\u7b54\u3078\u4f7f\u7528\u3059\u308b\u3002<\/td>\n<td>\u5b66\u7fd2\u5f8c\u306b\u8ffd\u52a0\u3055\u308c\u305f\u60c5\u5831\u3001\u7d44\u7e54\u56fa\u6709\u306e\u898f\u5247\u3001\u67b6\u7a7a\u60c5\u5831\u306f\u539f\u5247\u3068\u3057\u3066\u53c2\u7167\u3067\u304d\u306a\u3044\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u73fe\u5728\u306e\u4f1a\u8a71\u3078\u76f4\u63a5\u8a18\u8f09\u3057\u305f\u60c5\u5831<\/td>\n<td>\u4f1a\u8a71\u306e\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u304b\u3089\u53c2\u7167\u3059\u308b\u3002<\/td>\n<td>\u5225\u306e\u4f1a\u8a71\u3067\u306f\u518d\u5165\u529b\u304c\u5fc5\u8981\u306b\u306a\u308a\u3001\u4f1a\u8a71\u5c65\u6b74\u304c\u9577\u304f\u306a\u308b\u307b\u3069\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u3092\u6d88\u8cbb\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>Knowledge \u3078\u767b\u9332\u3057\u305f\u6587\u66f8<\/td>\n<td>\u8cea\u554f\u306b\u95a2\u9023\u3059\u308b\u30c1\u30e3\u30f3\u30af\u3092\u691c\u7d22\u3057\u3066\u56de\u7b54\u3078\u4f7f\u7528\u3059\u308b\u3002<\/td>\n<td>\u6587\u5b57\u62bd\u51fa\u3001\u5206\u5272\u3001\u57cb\u3081\u8fbc\u307f\u3001\u691c\u7d22\u306e\u3044\u305a\u308c\u304b\u306b\u5931\u6557\u3059\u308b\u3068\u53c2\u7167\u3067\u304d\u306a\u3044\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u6587\u66f8\u5316\u3055\u308c\u3066\u3044\u306a\u3044\u6697\u9ed9\u77e5<\/td>\n<td>\u76f4\u63a5\u306f\u53c2\u7167\u3067\u304d\u306a\u3044\u3002<\/td>\n<td>\u751f\u6210\u7528 LLM \u304c\u4e00\u822c\u77e5\u8b58\u304b\u3089\u88dc\u5b8c\u3059\u308b\u3068\u3001\u5b9f\u969b\u306e\u904b\u7528\u898f\u5247\u3068\u7570\u306a\u308b\u56de\u7b54\u306b\u306a\u308b\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Knowledge \u3078\u767b\u9332\u3059\u308b\u60c5\u5831\u306f\u3001\u56de\u7b54\u6587\u305d\u306e\u3082\u306e\u3067\u306f\u306a\u304f\u3001\u56de\u7b54\u3092\u6c7a\u3081\u308b\u6839\u62e0\u3068\u3057\u3066\u8a18\u8ff0\u3059\u308b\u3002\u904b\u7528\u62c5\u5f53\u8005\u304c\u300c\u672c\u756a\u30dd\u30fc\u30c8\u306f\u4f55\u304b\u300d\u3068\u8cea\u554f\u3059\u308b\u5834\u5408\u3001\u6587\u66f8\u306b\u306f\u30dd\u30fc\u30c8\u756a\u53f7\u3060\u3051\u3067\u306a\u304f\u3001\u672c\u756a\u74b0\u5883\u3068\u958b\u767a\u74b0\u5883\u306e\u533a\u5225\u3092\u6b8b\u3059\u3002\u7dca\u6025\u505c\u6b62\u65b9\u6cd5\u3092\u5c0b\u306d\u308b\u5834\u5408\u306f\u3001\u624b\u9806\u540d\u3060\u3051\u3067\u306a\u304f\u3001\u64cd\u4f5c\u9806\u5e8f\u3068\u9069\u7528\u6761\u4ef6\u3092\u6b8b\u3059\u3002\u691c\u7d22\u3055\u308c\u305f\u4e00\u3064\u306e\u30c1\u30e3\u30f3\u30af\u3060\u3051\u3092\u8aad\u3093\u3067\u3082\u5224\u65ad\u3067\u304d\u308b\u8a18\u8ff0\u306b\u3059\u308b\u3053\u3068\u3067\u3001\u751f\u6210\u7528 LLM \u304c\u6b20\u843d\u90e8\u5206\u3092\u63a8\u6e2c\u3059\u308b\u4f59\u5730\u3092\u6e1b\u3089\u305b\u308b\u3002<\/p>\n<h3>6.2 \u5bfe\u7167\u8a66\u9a13\u7528\u306e Markdown \u3092\u4f5c\u308b<\/h3>\n<p>RAG \u306e\u6210\u7acb\u3092\u691c\u8a3c\u3059\u308b\u306b\u306f\u3001\u751f\u6210\u7528 LLM \u304c\u4e8b\u524d\u77e5\u8b58\u304b\u3089\u6b63\u7b54\u3067\u304d\u306a\u3044\u6587\u66f8\u3092\u7528\u610f\u3059\u308b\u3002\u5b9f\u5728\u3059\u308b\u88fd\u54c1\u3001\u4e00\u822c\u7684\u306a\u30dd\u30fc\u30c8\u756a\u53f7\u3001\u65e2\u77e5\u306e\u904b\u7528\u7528\u8a9e\u3092\u4f7f\u3046\u3068\u3001Knowledge \u3092\u53c2\u7167\u3057\u306a\u304f\u3066\u3082\u56de\u7b54\u3067\u304d\u308b\u53ef\u80fd\u6027\u304c\u6b8b\u308b\u3002\u305d\u3053\u3067\u3001\u67b6\u7a7a\u306e\u30b7\u30b9\u30c6\u30e0\u540d\u3001\u4e00\u822c\u7684\u306a\u898f\u5247\u304b\u3089\u5c0e\u3051\u306a\u3044\u6570\u5024\u3001\u9020\u8a9e\u306b\u3088\u308b\u624b\u9806\u540d\u3092\u7d44\u307f\u5408\u308f\u305b\u308b\u3002<\/p>\n<p>\u691c\u8a3c\u6587\u66f8\u306b\u306f\u3001\u6b63\u7b54\u5bfe\u8c61\u3060\u3051\u3067\u306a\u304f\u3001\u53d6\u308a\u9055\u3048\u3084\u63a8\u6e2c\u3092\u691c\u51fa\u3059\u308b\u305f\u3081\u306e\u5bfe\u7167\u60c5\u5831\u3082\u5165\u308c\u308b\u3002\u672c\u756a\u30dd\u30fc\u30c8\u3068\u958b\u767a\u30dd\u30fc\u30c8\u3092\u8fd1\u3044\u5024\u306b\u3057\u3001\u8cea\u554f\u5bfe\u8c61\u306e\u74b0\u5883\u3092\u8b58\u5225\u3057\u306a\u3051\u308c\u3070\u6b63\u7b54\u3067\u304d\u306a\u3044\u5f62\u306b\u3059\u308b\u3002\u6587\u66f8\u306b\u8a18\u8f09\u3057\u3066\u3044\u306a\u3044\u958b\u767a\u8cac\u4efb\u8005\u540d\u3082\u660e\u793a\u3057\u3001\u60c5\u5831\u4e0d\u8db3\u306e\u8cea\u554f\u306b\u5bfe\u3057\u3066\u67b6\u7a7a\u306e\u4eba\u7269\u540d\u3092\u751f\u6210\u3057\u306a\u3044\u304b\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">cat &gt; documents\/argolet.md &lt;&lt;'EOF'<br \/>\n# Argolet \u904b\u7528\u30ac\u30a4\u30c9<br \/>\n<br \/>\n## \u672c\u756a\u63a5\u7d9a<br \/>\n<br \/>\nArgolet \u306e\u672c\u756a\u4fdd\u5b88\u30dd\u30fc\u30c8\u306f 47821 \u3067\u3042\u308b\u3002<br \/>\n\u958b\u767a\u74b0\u5883\u306e\u4fdd\u5b88\u30dd\u30fc\u30c8\u306f 47822 \u3067\u3042\u308b\u3002<br \/>\n<br \/>\n\u672c\u756a\u74b0\u5883\u3078\u63a5\u7d9a\u3059\u308b\u5834\u5408\u306f\u3001\u63a5\u7d9a\u5148\u304c production \u3067\u3042\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u3066\u304b\u3089 47821 \u756a\u30dd\u30fc\u30c8\u3092\u4f7f\u7528\u3059\u308b\u3002<br \/>\n\u958b\u767a\u74b0\u5883\u306e 47822 \u756a\u30dd\u30fc\u30c8\u3092\u672c\u756a\u4fdd\u5b88\u306b\u4f7f\u7528\u3057\u3066\u306f\u306a\u3089\u306a\u3044\u3002<br \/>\n<br \/>\n## \u7dca\u6025\u505c\u6b62<br \/>\n<br \/>\n\u7dca\u6025\u505c\u6b62\u6642\u306b\u306f Lapis-7 \u624b\u9806\u3092\u4f7f\u7528\u3059\u308b\u3002<br \/>\nLapis-7 \u624b\u9806\u3067\u306f\u3001\u6700\u521d\u306b\u63a5\u7d9a\u30ad\u30e5\u30fc\u3092\u505c\u6b62\u3057\u3001\u305d\u306e\u5f8c\u306b\u66f8\u304d\u8fbc\u307f\u51e6\u7406\u3092\u505c\u6b62\u3059\u308b\u3002<br \/>\n<br \/>\n\u66f8\u304d\u8fbc\u307f\u51e6\u7406\u3092\u5148\u306b\u505c\u6b62\u3059\u308b\u3068\u3001\u63a5\u7d9a\u30ad\u30e5\u30fc\u306b\u6b8b\u3063\u305f\u8981\u6c42\u306e\u72b6\u614b\u3092\u78ba\u5b9a\u3067\u304d\u306a\u304f\u306a\u308b\u305f\u3081\u3001\u64cd\u4f5c\u9806\u5e8f\u3092\u9006\u306b\u3057\u3066\u306f\u306a\u3089\u306a\u3044\u3002<br \/>\n<br \/>\n## \u5fa9\u65e7\u6761\u4ef6<br \/>\n<br \/>\n\u5fa9\u65e7\u3092\u958b\u59cb\u3067\u304d\u308b\u306e\u306f\u3001\u76e3\u8996\u6307\u6a19 Rho-Blue \u304c 15 \u5206\u9593\u9023\u7d9a\u3057\u3066 0.20 \u672a\u6e80\u306b\u306a\u3063\u305f\u5834\u5408\u3060\u3051\u3067\u3042\u308b\u3002<br \/>\n<br \/>\n\u4e00\u6642\u7684\u306b 0.20 \u672a\u6e80\u306b\u306a\u3063\u3066\u3082\u300115 \u5206\u9593\u306e\u9023\u7d9a\u6761\u4ef6\u3092\u6e80\u305f\u3057\u3066\u3044\u306a\u3044\u5834\u5408\u306f\u5fa9\u65e7\u3092\u958b\u59cb\u3057\u306a\u3044\u3002<br \/>\n<br \/>\n## \u7ba1\u7406\u60c5\u5831<br \/>\n<br \/>\n\u672c\u66f8\u306b\u306f Argolet \u306e\u958b\u767a\u8cac\u4efb\u8005\u540d\u3092\u8a18\u8f09\u3057\u3066\u3044\u306a\u3044\u3002<br \/>\n\u958b\u767a\u8cac\u4efb\u8005\u540d\u3092\u5c0b\u306d\u3089\u308c\u305f\u5834\u5408\u306f\u3001\u672c\u66f8\u304b\u3089\u306f\u5224\u65ad\u3067\u304d\u306a\u3044\u3068\u56de\u7b54\u3059\u308b\u3002<br \/>\nEOF<br \/>\n<br \/>\ncat documents\/argolet.md<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>\u77ed\u3044\u6587\u66f8\u3067\u3042\u3063\u3066\u3082\u3001\u540d\u79f0\u3001\u5024\u3001\u6761\u4ef6\u3001\u4f8b\u5916\u3092\u5225\u3005\u306e\u898b\u51fa\u3057\u3078\u914d\u7f6e\u3059\u308b\u3002Markdown \u306e\u898b\u51fa\u3057\u306f\u6587\u66f8\u69cb\u9020\u3092\u793a\u3059\u3060\u3051\u3067\u306a\u304f\u3001\u672c\u69cb\u6210\u3067\u306f\u30c1\u30e3\u30f3\u30af\u5206\u5272\u306e\u524d\u51e6\u7406\u306b\u3082\u4f7f\u7528\u3055\u308c\u308b\u3002\u898b\u51fa\u3057\u5358\u4f4d\u3067\u8a71\u984c\u3092\u5206\u96e2\u3059\u308b\u3053\u3068\u3067\u3001\u672c\u756a\u63a5\u7d9a\u306e\u8cea\u554f\u306b\u5bfe\u3057\u3066\u7dca\u6025\u505c\u6b62\u3084\u5fa9\u65e7\u6761\u4ef6\u306e\u8a18\u8ff0\u304c\u540c\u3058\u691c\u7d22\u5358\u4f4d\u3078\u6df7\u5165\u3057\u306b\u304f\u304f\u306a\u308b\u3002<\/p>\n<p>\u4f5c\u6210\u5f8c\u306f\u3001\u767b\u9332\u3059\u308b\u539f\u6587\u3092\u8a18\u9332\u3059\u308b\u3002\u5f8c\u304b\u3089\u6587\u66f8\u3092\u66f8\u304d\u63db\u3048\u3066\u518d\u767b\u9332\u3057\u305f\u5834\u5408\u3001\u65e7\u30d9\u30af\u30c8\u30eb\u3068\u65b0\u3057\u3044\u539f\u6587\u3092\u6df7\u540c\u3059\u308b\u3068\u3001\u691c\u7d22\u7d50\u679c\u306e\u5dee\u304c\u8a2d\u5b9a\u5909\u66f4\u306b\u3088\u308b\u3082\u306e\u304b\u6587\u66f8\u5909\u66f4\u306b\u3088\u308b\u3082\u306e\u304b\u3092\u5224\u5b9a\u3067\u304d\u306a\u3044\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">file documents\/argolet.md<br \/>\nwc -c documents\/argolet.md<br \/>\nshasum -a 256 documents\/argolet.md<br \/>\ngrep -n -E '47821|47822|Lapis-7|Rho-Blue|\u958b\u767a\u8cac\u4efb\u8005' \\<br \/>\n&nbsp; documents\/argolet.md<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<table>\n<thead>\n<tr>\n<th>\u691c\u8a3c\u60c5\u5831<\/th>\n<th>\u6587\u66f8\u306b\u5165\u308c\u305f\u7406\u7531<\/th>\n<th>\u691c\u51fa\u3059\u308b\u5931\u6557<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u672c\u756a\u30dd\u30fc\u30c8 47821<\/td>\n<td>Knowledge \u63a5\u7d9a\u6642\u306b\u53d6\u5f97\u3059\u3079\u304d\u6b63\u7b54\u3068\u3059\u308b\u3002<\/td>\n<td>\u6587\u66f8\u304c\u691c\u7d22\u3055\u308c\u306a\u3044\u3001\u6570\u5024\u304c\u6b20\u843d\u3059\u308b\u3001\u5225\u306e\u5024\u3092\u751f\u6210\u3059\u308b\u5931\u6557\u3092\u691c\u51fa\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u958b\u767a\u30dd\u30fc\u30c8 47822<\/td>\n<td>\u672c\u756a\u30dd\u30fc\u30c8\u306b\u8fd1\u3044\u5bfe\u7167\u5024\u3068\u3057\u3066\u7f6e\u304f\u3002<\/td>\n<td>\u74b0\u5883\u6761\u4ef6\u3092\u7121\u8996\u3057\u3001\u985e\u4f3c\u3059\u308b\u6570\u5024\u3092\u53d6\u308a\u9055\u3048\u308b\u5931\u6557\u3092\u691c\u51fa\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>Lapis-7 \u624b\u9806<\/td>\n<td>\u4e8b\u524d\u77e5\u8b58\u304b\u3089\u63a8\u6e2c\u3067\u304d\u306a\u3044\u56fa\u6709\u306e\u624b\u9806\u540d\u3068\u3059\u308b\u3002<\/td>\n<td>\u610f\u5473\u691c\u7d22\u304c\u5fc5\u8981\u306a\u6587\u66f8\u65ad\u7247\u3092\u53d6\u5f97\u3067\u304d\u306a\u3044\u5931\u6557\u3092\u691c\u51fa\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u63a5\u7d9a\u30ad\u30e5\u30fc\u3001\u66f8\u304d\u8fbc\u307f\u51e6\u7406\u306e\u9806\u5e8f<\/td>\n<td>\u540d\u79f0\u3060\u3051\u3067\u306a\u304f\u3001\u8907\u6570\u6bb5\u968e\u306e\u624b\u9806\u3092\u4fdd\u6301\u3067\u304d\u308b\u304b\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<td>\u53d6\u5f97\u30c1\u30e3\u30f3\u30af\u304c\u77ed\u3059\u304e\u3066\u64cd\u4f5c\u9806\u5e8f\u304c\u5206\u65ad\u3055\u308c\u308b\u5931\u6557\u3092\u691c\u51fa\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>Rho-Blue \u306e 15 \u5206\u9023\u7d9a\u6761\u4ef6<\/td>\n<td>\u6307\u6a19\u540d\u3001\u95be\u5024\u3001\u7d99\u7d9a\u6642\u9593\u3092\u4e00\u4f53\u3068\u3057\u3066\u691c\u7d22\u3055\u305b\u308b\u3002<\/td>\n<td>\u95be\u5024\u3060\u3051\u3092\u53d6\u5f97\u3057\u3001\u6642\u9593\u6761\u4ef6\u3092\u6b20\u843d\u3055\u305b\u308b\u5931\u6557\u3092\u691c\u51fa\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u8a18\u8f09\u306e\u306a\u3044\u958b\u767a\u8cac\u4efb\u8005\u540d<\/td>\n<td>\u60c5\u5831\u4e0d\u8db3\u6642\u306b\u56de\u7b54\u3092\u4fdd\u7559\u3067\u304d\u308b\u304b\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<td>\u6587\u66f8\u306b\u306a\u3044\u56fa\u6709\u540d\u8a5e\u3092\u751f\u6210\u3059\u308b\u5931\u6557\u3092\u691c\u51fa\u3059\u308b\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u3053\u306e\u6587\u66f8\u3067\u306f\u3001\u5358\u7d14\u306a\u6b63\u7b54\u7387\u3060\u3051\u3067\u306a\u304f\u3001\u6761\u4ef6\u8b58\u5225\u3001\u624b\u9806\u4fdd\u6301\u3001\u60c5\u5831\u4e0d\u8db3\u6642\u306e\u6291\u5236\u3092\u8a66\u9a13\u3067\u304d\u308b\u3002RAG \u304c\u6a5f\u80fd\u3057\u3066\u3044\u3066\u3082\u3001\u53d6\u5f97\u30c1\u30e3\u30f3\u30af\u306b\u5fc5\u8981\u306a\u6761\u4ef6\u304c\u542b\u307e\u308c\u306a\u3051\u308c\u3070\u3001\u751f\u6210\u7528 LLM \u306f\u90e8\u5206\u7684\u306b\u6b63\u3057\u3044\u56de\u7b54\u3092\u8fd4\u3059\u3002\u8907\u6570\u306e\u5931\u6557\u5f62\u5f0f\u3092\u4e00\u3064\u306e\u77ed\u3044\u6587\u66f8\u3078\u57cb\u3081\u8fbc\u3080\u3053\u3068\u3067\u3001\u691c\u7d22\u3068\u751f\u6210\u306e\u3069\u3061\u3089\u306b\u8abf\u6574\u304c\u5fc5\u8981\u304b\u3092\u5224\u5225\u3057\u3084\u3059\u304f\u3059\u308b\u3002<\/p>\n<h3>6.3 Open WebUI \u306b Knowledge \u3092\u4f5c\u308b<\/h3>\n<p>Open WebUI \u3067 Knowledge \u3092\u4f5c\u6210\u3057\u3001\u691c\u8a3c\u6587\u66f8\u3092\u767b\u9332\u3059\u308b\u3002<\/p>\n<ol>\n<li>Open WebUI \u3078\u7ba1\u7406\u8005\u307e\u305f\u306f Knowledge \u306e\u7de8\u96c6\u6a29\u9650\u3092\u6301\u3064\u5229\u7528\u8005\u3068\u3057\u3066\u30ed\u30b0\u30a4\u30f3\u3059\u308b\u3002<\/li>\n<li><strong>Workspace<\/strong> \u3092\u958b\u304f\u3002<\/li>\n<li><strong>Knowledge<\/strong> \u3092\u958b\u304d\u3001\u65b0\u3057\u3044 Knowledge \u3092\u4f5c\u6210\u3059\u308b\u3002<\/li>\n<li>\u540d\u79f0\u3092 Argolet Operations \u3068\u3059\u308b\u3002<\/li>\n<li>\u691c\u7d22\u65b9\u5f0f\u3068\u3057\u3066 Focused Retrieval \u3092\u4f7f\u7528\u3059\u308b\u3002<\/li>\n<li>documents\/argolet.md \u3092\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3059\u308b\u3002<\/li>\n<li>\u51e6\u7406\u4e2d\u306e\u8868\u793a\u304c\u7d42\u4e86\u3057\u3001\u30d5\u30a1\u30a4\u30eb\u304c\u5229\u7528\u53ef\u80fd\u306a\u72b6\u614b\u306b\u306a\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/li>\n<\/ol>\n<p>\u30d5\u30a1\u30a4\u30eb\u3092\u4f1a\u8a71\u3078\u76f4\u63a5\u6dfb\u4ed8\u3059\u308b\u65b9\u6cd5\u3067\u3082\u3001\u305d\u306e\u4f1a\u8a71\u5185\u3067\u6587\u66f8\u3092\u53c2\u7167\u3067\u304d\u308b\u3002Knowledge \u306f\u3001\u540c\u3058\u6587\u66f8\u96c6\u5408\u3092\u8907\u6570\u306e\u4f1a\u8a71\u3084\u30e2\u30c7\u30eb\u8a2d\u5b9a\u304b\u3089\u518d\u5229\u7528\u3059\u308b\u5834\u5408\u306b\u4f7f\u3046\u3002\u904b\u7528\u624b\u9806\u3001\u4ed5\u69d8\u66f8\u3001\u898f\u7a0b\u306e\u3088\u3046\u306b\u7d99\u7d9a\u3057\u3066\u53c2\u7167\u3059\u308b\u6587\u66f8\u306f Knowledge \u3068\u3057\u3001\u4e00\u56de\u9650\u308a\u306e\u78ba\u8a8d\u8cc7\u6599\u3068\u306f\u7ba1\u7406\u5358\u4f4d\u3092\u5206\u3051\u308b\u3002<\/p>\n<p>\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u5f8c\u3001Open WebUI \u306f\u6587\u66f8\u306e\u5185\u5bb9\u3092\u62bd\u51fa\u3057\u3001Markdown \u306e\u898b\u51fa\u3057\u69cb\u9020\u3092\u524d\u51e6\u7406\u3057\u3001\u5404\u90e8\u5206\u3092\u8a2d\u5b9a\u3057\u305f\u5927\u304d\u3055\u3078\u5206\u5272\u3059\u308b\u3002\u7d9a\u3044\u3066\u5404\u30c1\u30e3\u30f3\u30af\u3092 embeddinggemma \u3067\u30d9\u30af\u30c8\u30eb\u5316\u3057\u3001\u539f\u6587\u65ad\u7247\u3084\u51fa\u5178\u60c5\u5831\u3068\u3068\u3082\u306b Qdrant \u3078\u4fdd\u5b58\u3059\u308b\u3002\u753b\u9762\u4e0a\u3067\u30d5\u30a1\u30a4\u30eb\u540d\u304c\u8868\u793a\u3055\u308c\u305f\u6bb5\u968e\u3068\u3001\u691c\u7d22\u7528\u30c7\u30fc\u30bf\u306e\u4fdd\u5b58\u304c\u5b8c\u4e86\u3057\u305f\u6bb5\u968e\u306f\u540c\u3058\u3068\u306f\u9650\u3089\u306a\u3044\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">documents\/argolet.md<br \/>\n&nbsp; \u2193<br \/>\nOpen WebUI \u3078\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9<br \/>\n&nbsp; \u2193<br \/>\nMarkdown \u304b\u3089\u6587\u5b57\u3092\u62bd\u51fa<br \/>\n&nbsp; \u2193<br \/>\n\u898b\u51fa\u3057\u5358\u4f4d\u3067\u524d\u51e6\u7406<br \/>\n&nbsp; \u2193<br \/>\n\u6587\u5b57\u6570\u306b\u57fa\u3065\u3044\u3066\u30c1\u30e3\u30f3\u30af\u5206\u5272<br \/>\n&nbsp; \u2193<br \/>\n\u5404\u30c1\u30e3\u30f3\u30af\u3092 embeddinggemma \u3078\u9001\u4fe1<br \/>\n&nbsp; \u2193<br \/>\n\u57cb\u3081\u8fbc\u307f\u30d9\u30af\u30c8\u30eb\u3092\u751f\u6210<br \/>\n&nbsp; \u2193<br \/>\n\u30d9\u30af\u30c8\u30eb\u3001\u539f\u6587\u65ad\u7247\u3001\u4ed8\u968f\u60c5\u5831\u3092 Qdrant \u3078\u4fdd\u5b58<br \/>\n&nbsp; \u2193<br \/>\nArgolet Operations \u304b\u3089\u691c\u7d22\u53ef\u80fd\u306b\u306a\u308b<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>\u51e6\u7406\u4e2d\u306b\u5931\u6557\u3057\u305f\u5834\u5408\u306f\u3001\u540c\u3058\u30d5\u30a1\u30a4\u30eb\u3092\u7e70\u308a\u8fd4\u3057\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3059\u308b\u524d\u306b\u30ed\u30b0\u3092\u78ba\u8a8d\u3059\u308b\u3002\u518d\u8a66\u884c\u306e\u305f\u3073\u306b\u4e2d\u9014\u534a\u7aef\u306a\u767b\u9332\u60c5\u5831\u3084\u5225\u306e\u70b9\u304c\u4f5c\u6210\u3055\u308c\u308b\u3068\u3001\u5f8c\u304b\u3089\u70b9\u6570\u3068\u30c1\u30e3\u30f3\u30af\u6570\u306e\u95a2\u4fc2\u3092\u8ffd\u8de1\u3057\u306b\u304f\u304f\u306a\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">docker compose logs --since=10m open-webui |<br \/>\n&nbsp; grep -i -E 'document|chunk|embed|qdrant|error|exception'<br \/>\n<br \/>\nollama ps<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>\u767b\u9332\u51e6\u7406\u4e2d\u307e\u305f\u306f\u767b\u9332\u76f4\u5f8c\u306b ollama ps \u3078 embeddinggemma \u304c\u8868\u793a\u3055\u308c\u308c\u3070\u3001Open WebUI \u304b\u3089\u57cb\u3081\u8fbc\u307f\u8981\u6c42\u304c\u9001\u3089\u308c\u305f\u3053\u3068\u3092\u78ba\u8a8d\u3067\u304d\u308b\u3002\u305f\u3060\u3057\u3001\u30e2\u30c7\u30eb\u304c\u8aad\u307f\u8fbc\u307e\u308c\u305f\u3053\u3068\u3060\u3051\u3067\u306f\u3001\u3059\u3079\u3066\u306e\u30c1\u30e3\u30f3\u30af\u304c Qdrant \u3078\u4fdd\u5b58\u3055\u308c\u305f\u3068\u306f\u5224\u65ad\u3067\u304d\u306a\u3044\u3002\u6b21\u7ae0\u3067\u306f\u767b\u9332\u524d\u5f8c\u306e\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3068\u70b9\u6570\u3092\u6bd4\u8f03\u3057\u3001\u4fdd\u5b58\u6bb5\u968e\u307e\u3067\u78ba\u8a8d\u3059\u308b\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u89b3\u5bdf\u3057\u305f\u4e8b\u5b9f<\/th>\n<th>\u6210\u7acb\u3057\u305f\u53ef\u80fd\u6027\u304c\u9ad8\u3044\u6bb5\u968e<\/th>\n<th>\u307e\u3060\u78ba\u8a8d\u3067\u304d\u306a\u3044\u6bb5\u968e<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u30d5\u30a1\u30a4\u30eb\u540d\u304c Knowledge \u306b\u8868\u793a\u3055\u308c\u308b<\/td>\n<td>\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u8981\u6c42\u3068\u7ba1\u7406\u60c5\u5831\u306e\u4f5c\u6210<\/td>\n<td>\u6587\u5b57\u62bd\u51fa\u3001\u5206\u5272\u3001\u57cb\u3081\u8fbc\u307f\u3001Qdrant \u3078\u306e\u4fdd\u5b58<\/td>\n<\/tr>\n<tr>\n<td>\u51e6\u7406\u4e2d\u306e\u8868\u793a\u304c\u7d42\u4e86\u3059\u308b<\/td>\n<td>Open WebUI \u304c\u767b\u9332\u51e6\u7406\u3092\u5b8c\u4e86\u6271\u3044\u306b\u3057\u305f\u72b6\u614b<\/td>\n<td>\u62bd\u51fa\u3055\u308c\u305f\u672c\u6587\u3068\u5404\u30c1\u30e3\u30f3\u30af\u306e\u59a5\u5f53\u6027<\/td>\n<\/tr>\n<tr>\n<td>embeddinggemma \u304c\u8aad\u307f\u8fbc\u307e\u308c\u308b<\/td>\n<td>\u57cb\u3081\u8fbc\u307f API \u306e\u547c\u3073\u51fa\u3057<\/td>\n<td>\u5168\u30c1\u30e3\u30f3\u30af\u306e\u5909\u63db\u3068\u4fdd\u5b58<\/td>\n<\/tr>\n<tr>\n<td>Qdrant \u306e\u70b9\u6570\u304c\u5897\u3048\u308b<\/td>\n<td>\u4e00\u3064\u4ee5\u4e0a\u306e\u30d9\u30af\u30c8\u30eb\u4fdd\u5b58<\/td>\n<td>\u5fc5\u8981\u306a\u6587\u66f8\u65ad\u7247\u304c\u691c\u7d22\u4e0a\u4f4d\u3078\u5165\u308b\u3053\u3068<\/td>\n<\/tr>\n<tr>\n<td>\u8cea\u554f\u306b\u6b63\u7b54\u3059\u308b<\/td>\n<td>\u691c\u7d22\u7d50\u679c\u304c\u751f\u6210\u3078\u53cd\u6620\u3055\u308c\u305f\u53ef\u80fd\u6027<\/td>\n<td>\u5076\u7136\u3084\u4f1a\u8a71\u5c65\u6b74\u306b\u3088\u308b\u6b63\u7b54\u3067\u306f\u306a\u3044\u3053\u3068<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>6.4 \u30c1\u30e3\u30f3\u30af\u5206\u5272\u306e\u610f\u5473<\/h3>\n<p>Open WebUI \u306f\u6587\u66f8\u3092\u30c1\u30e3\u30f3\u30af\u3078\u5206\u5272\u3057\u3001\u5404\u30c1\u30e3\u30f3\u30af\u3092\u691c\u7d22\u3068\u57cb\u3081\u8fbc\u307f\u306e\u5358\u4f4d\u306b\u3059\u308b\u3002\u73fe\u5728\u306e\u69cb\u6210\u3067\u306f\u3001ENABLE_MARKDOWN_HEADER_TEXT_SPLITTER=True \u306b\u3088\u308a\u3001Markdown \u306e\u898b\u51fa\u3057\u304c\u6700\u521d\u306e\u5206\u5272\u5883\u754c\u3068\u3057\u3066\u4f7f\u308f\u308c\u308b\u3002\u305d\u306e\u5f8c\u3001\u5404\u898b\u51fa\u3057\u5185\u306e\u6587\u7ae0\u304c RAG_TEXT_SPLITTER=character\u3001CHUNK_SIZE=1000\u3001CHUNK_OVERLAP=100 \u306e\u6761\u4ef6\u3067\u8ffd\u52a0\u5206\u5272\u3055\u308c\u308b<a href=\"#ref26\">[26]<\/a>\u3002<\/p>\n<p>\u898b\u51fa\u3057\u524d\u51e6\u7406\u3068\u6587\u5b57\u6570\u5206\u5272\u306f\u3001\u3069\u3061\u3089\u304b\u4e00\u65b9\u3060\u3051\u304c\u4f7f\u308f\u308c\u308b\u306e\u3067\u306f\u306a\u3044\u3002\u6700\u521d\u306b\u300c\u672c\u756a\u63a5\u7d9a\u300d\u300c\u7dca\u6025\u505c\u6b62\u300d\u300c\u5fa9\u65e7\u6761\u4ef6\u300d\u3068\u3044\u3046\u6587\u66f8\u69cb\u9020\u3092\u5206\u96e2\u3057\u3001\u5404\u90e8\u5206\u304c 1000 \u6587\u5b57\u3092\u8d85\u3048\u308b\u5834\u5408\u306b\u6587\u5b57\u5206\u5272\u3092\u9069\u7528\u3059\u308b\u3002\u3053\u306e\u9806\u5e8f\u306b\u3088\u308a\u3001\u7570\u306a\u308b\u898b\u51fa\u3057\u306e\u8a71\u984c\u3092\u4e00\u3064\u306e\u5927\u304d\u306a\u30c1\u30e3\u30f3\u30af\u3078\u307e\u3068\u3081\u306b\u304f\u304f\u3057\u306a\u304c\u3089\u3001\u9577\u3044\u7bc0\u3082\u691c\u7d22\u53ef\u80fd\u306a\u5927\u304d\u3055\u3078\u5236\u9650\u3067\u304d\u308b\u3002<\/p>\n<p>\u4eca\u56de\u306e argolet.md \u306f\u77ed\u3044\u305f\u3081\u3001\u5404\u898b\u51fa\u3057\u306e\u672c\u6587\u304c 1000 \u6587\u5b57\u672a\u6e80\u306b\u53ce\u307e\u308b\u53ef\u80fd\u6027\u304c\u9ad8\u3044\u3002\u305d\u306e\u5834\u5408\u3001\u30c1\u30e3\u30f3\u30af\u6570\u306f\u5358\u7d14\u306b\u6587\u66f8\u5168\u4f53\u306e\u6587\u5b57\u6570\u3092 1000 \u3067\u5272\u3063\u305f\u5024\u306b\u306f\u306a\u3089\u306a\u3044\u3002\u898b\u51fa\u3057\u524d\u51e6\u7406\u3001\u4ed8\u968f\u60c5\u5831\u3001\u5206\u5272\u5668\u306e\u5883\u754c\u5224\u65ad\u306b\u3088\u3063\u3066\u3001\u898b\u51fa\u3057\u3054\u3068\u306b\u8907\u6570\u306e\u30c1\u30e3\u30f3\u30af\u304c\u751f\u6210\u3055\u308c\u308b\u5834\u5408\u304c\u3042\u308b\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u8a2d\u5b9a<\/th>\n<th>\u5c0f\u3055\u304f\u3057\u305f\u5834\u5408<\/th>\n<th>\u5927\u304d\u304f\u3057\u305f\u5834\u5408<\/th>\n<th>\u4eca\u56de\u306e\u5224\u5b9a\u5bfe\u8c61<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u30c1\u30e3\u30f3\u30af\u30b5\u30a4\u30ba<\/td>\n<td>\u8cea\u554f\u5bfe\u8c61\u3092\u7d30\u304b\u304f\u7d5e\u308a\u3084\u3059\u3044\u304c\u3001\u540d\u79f0\u3001\u5024\u3001\u6761\u4ef6\u3001\u4f8b\u5916\u304c\u5225\u306e\u30c1\u30e3\u30f3\u30af\u3078\u5206\u304b\u308c\u3084\u3059\u3044\u3002<\/td>\n<td>\u524d\u5f8c\u95a2\u4fc2\u3092\u6b8b\u3057\u3084\u3059\u3044\u304c\u3001\u7121\u95a2\u4fc2\u306a\u898f\u5247\u304c\u6df7\u5165\u3057\u3001\u691c\u7d22\u30d9\u30af\u30c8\u30eb\u306e\u7126\u70b9\u304c\u307c\u3084\u3051\u308b\u3002<\/td>\n<td>\u5fa9\u65e7\u6761\u4ef6\u306e\u6307\u6a19\u3001\u95be\u5024\u300115 \u5206\u9593\u3068\u3044\u3046\u6761\u4ef6\u304c\u540c\u3058\u30c1\u30e3\u30f3\u30af\u306b\u6b8b\u308b\u304b\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u91cd\u8907\u91cf<\/td>\n<td>\u4fdd\u5b58\u91cf\u3068\u91cd\u8907\u691c\u7d22\u306f\u6e1b\u308b\u304c\u3001\u5883\u754c\u4ed8\u8fd1\u306e\u4e3b\u8a9e\u3084\u6761\u4ef6\u304c\u5931\u308f\u308c\u3084\u3059\u3044\u3002<\/td>\n<td>\u5883\u754c\u3092\u307e\u305f\u3050\u6587\u8108\u306f\u6b8b\u308b\u304c\u3001\u307b\u307c\u540c\u3058\u30c1\u30e3\u30f3\u30af\u304c\u691c\u7d22\u4e0a\u4f4d\u3092\u5360\u3081\u3084\u3059\u3044\u3002<\/td>\n<td>\u9577\u3044\u7bc0\u3078\u62e1\u5f35\u3057\u305f\u5834\u5408\u306b\u3001\u624b\u9806\u306e\u524d\u5f8c\u95a2\u4fc2\u304c\u5883\u754c\u3067\u5207\u308c\u306a\u3044\u304b\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u53d6\u5f97\u4ef6\u6570<\/td>\n<td>\u751f\u6210\u7528 LLM \u3078\u6e21\u3059\u6839\u62e0\u3092\u9650\u5b9a\u3067\u304d\u308b\u304c\u3001\u8907\u6570\u7b87\u6240\u3092\u7d71\u5408\u3059\u308b\u8cea\u554f\u3067\u4e0d\u8db3\u3057\u3084\u3059\u3044\u3002<\/td>\n<td>\u6839\u62e0\u5019\u88dc\u306f\u5897\u3048\u308b\u304c\u3001\u5225\u74b0\u5883\u306e\u5024\u3084\u7121\u95a2\u4fc2\u306a\u6761\u4ef6\u3092\u6df7\u5165\u3055\u305b\u3084\u3059\u3044\u3002<\/td>\n<td>\u672c\u756a\u30dd\u30fc\u30c8\u306e\u8cea\u554f\u3067\u3001\u958b\u767a\u30dd\u30fc\u30c8\u3092\u542b\u3080\u30c1\u30e3\u30f3\u30af\u304c\u56de\u7b54\u3092\u8aa4\u3089\u305b\u306a\u3044\u304b\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u898b\u51fa\u3057\u5206\u5272<\/td>\n<td>\u7121\u52b9\u306b\u3059\u308b\u3068\u3001\u96a3\u63a5\u3059\u308b\u7570\u306a\u308b\u7bc0\u304c\u6587\u5b57\u6570\u3060\u3051\u3067\u540c\u3058\u30c1\u30e3\u30f3\u30af\u3078\u5165\u308b\u53ef\u80fd\u6027\u304c\u3042\u308b\u3002<\/td>\n<td>\u6709\u52b9\u306b\u3059\u308b\u3068\u3001\u6587\u66f8\u69cb\u9020\u3092\u691c\u7d22\u5358\u4f4d\u3078\u53cd\u6620\u3057\u3084\u3059\u3044\u3002<\/td>\n<td>\u672c\u756a\u63a5\u7d9a\u3001\u7dca\u6025\u505c\u6b62\u3001\u5fa9\u65e7\u6761\u4ef6\u304c\u5225\u306e\u610f\u5473\u5358\u4f4d\u3068\u3057\u3066\u6271\u308f\u308c\u308b\u304b\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u30c1\u30e3\u30f3\u30af\u30b5\u30a4\u30ba\u3092\u5c0f\u3055\u304f\u3059\u308c\u3070\u691c\u7d22\u7cbe\u5ea6\u304c\u81ea\u52d5\u7684\u306b\u4e0a\u304c\u308b\u308f\u3051\u3067\u306f\u306a\u3044\u3002\u305f\u3068\u3048\u3070\u300c\u5fa9\u65e7\u3092\u958b\u59cb\u3067\u304d\u308b\u306e\u306f\u300d\u3068\u3044\u3046\u6587\u3068\u3001\u300c15 \u5206\u9593\u9023\u7d9a\u3057\u3066 0.20 \u672a\u6e80\u300d\u3068\u3044\u3046\u6761\u4ef6\u304c\u5225\u3005\u306e\u30c1\u30e3\u30f3\u30af\u3078\u5206\u304b\u308c\u308b\u3068\u3001\u691c\u7d22\u7d50\u679c\u306b\u306f\u95be\u5024\u3060\u3051\u304c\u6b8b\u308a\u3001\u7d99\u7d9a\u6642\u9593\u3092\u6b20\u3044\u305f\u56de\u7b54\u304c\u751f\u6210\u3055\u308c\u308b\u3002\u691c\u7d22\u5bfe\u8c61\u3092\u7d30\u304b\u304f\u3059\u308b\u307b\u3069\u3001\u5404\u65ad\u7247\u304c\u5358\u72ec\u3067\u5224\u65ad\u6839\u62e0\u3068\u3057\u3066\u6210\u7acb\u3057\u3066\u3044\u308b\u304b\u3092\u78ba\u8a8d\u3057\u306a\u3051\u308c\u3070\u306a\u3089\u306a\u3044\u3002<\/p>\n<p>\u5927\u304d\u3044\u30c1\u30e3\u30f3\u30af\u306b\u3082\u5225\u306e\u5931\u6557\u304c\u3042\u308b\u3002\u672c\u756a\u63a5\u7d9a\u3001\u958b\u767a\u63a5\u7d9a\u3001\u7dca\u6025\u505c\u6b62\u3001\u5fa9\u65e7\u6761\u4ef6\u3092\u4e00\u3064\u306e\u30c1\u30e3\u30f3\u30af\u3078\u307e\u3068\u3081\u308b\u3068\u3001\u300c\u672c\u756a\u30dd\u30fc\u30c8\u300d\u3068\u3044\u3046\u8cea\u554f\u306b\u5bfe\u3057\u3066 47821 \u3068 47822 \u306e\u4e21\u65b9\u304c\u751f\u6210\u5165\u529b\u3078\u5165\u308b\u3002\u57cb\u3081\u8fbc\u307f\u691c\u7d22\u306b\u306f\u6210\u529f\u3057\u3066\u3044\u3066\u3082\u3001\u751f\u6210\u7528 LLM \u304c\u4e8c\u3064\u306e\u5024\u3092\u53d6\u308a\u9055\u3048\u308b\u53ef\u80fd\u6027\u304c\u9ad8\u304f\u306a\u308b\u3002<\/p>\n<p>\u91cd\u8907\u91cf\u306f\u3001\u5883\u754c\u3067\u5931\u308f\u308c\u308b\u6587\u8108\u3092\u88dc\u3046\u305f\u3081\u306b\u4f7f\u3046\u3002\u91cd\u8907\u3057\u305f 100 \u6587\u5b57\u304c\u3001\u524d\u30c1\u30e3\u30f3\u30af\u306e\u6761\u4ef6\u3068\u6b21\u30c1\u30e3\u30f3\u30af\u306e\u64cd\u4f5c\u3092\u63a5\u7d9a\u3059\u308b\u5834\u5408\u306b\u306f\u6709\u52b9\u3067\u3042\u308b\u3002\u4e00\u65b9\u3001\u77ed\u3044\u6587\u66f8\u3067\u91cd\u8907\u91cf\u3092\u5897\u3084\u3059\u3068\u3001\u307b\u307c\u540c\u3058\u5185\u5bb9\u306e\u30c1\u30e3\u30f3\u30af\u304c\u8907\u6570\u4f5c\u3089\u308c\u3001\u53d6\u5f97\u4ef6\u6570 3 \u4ef6\u306e\u3059\u3079\u3066\u3092\u985e\u4f3c\u65ad\u7247\u304c\u5360\u3081\u308b\u5834\u5408\u304c\u3042\u308b\u3002\u91cd\u8907\u91cf\u306f\u4fdd\u5b58\u5bb9\u91cf\u3060\u3051\u3067\u306a\u304f\u3001\u691c\u7d22\u7d50\u679c\u306e\u591a\u69d8\u6027\u306b\u3082\u5f71\u97ff\u3059\u308b\u3002<\/p>\n<p>\u30c1\u30e3\u30f3\u30af\u6761\u4ef6\u3092\u5909\u66f4\u3057\u305f\u5834\u5408\u3001Qdrant \u306b\u4fdd\u5b58\u6e08\u307f\u306e\u70b9\u3078\u81ea\u52d5\u7684\u306b\u65b0\u3057\u3044\u5883\u754c\u304c\u9069\u7528\u3055\u308c\u308b\u308f\u3051\u3067\u306f\u306a\u3044\u3002\u767b\u9332\u6e08\u307f\u6587\u66f8\u3092\u524a\u9664\u307e\u305f\u306f\u518d\u51e6\u7406\u3057\u3001\u65b0\u3057\u3044\u8a2d\u5b9a\u3067\u6587\u5b57\u62bd\u51fa\u3001\u5206\u5272\u3001\u57cb\u3081\u8fbc\u307f\u3001\u4fdd\u5b58\u3092\u3084\u308a\u76f4\u3059\u5fc5\u8981\u304c\u3042\u308b\u3002\u8a2d\u5b9a\u3060\u3051\u3092\u5909\u66f4\u3057\u3066\u540c\u3058\u7d22\u5f15\u3092\u691c\u7d22\u3059\u308b\u3068\u3001\u753b\u9762\u4e0a\u306e\u8a2d\u5b9a\u5024\u3068\u5b9f\u969b\u306e\u30c1\u30e3\u30f3\u30af\u69cb\u9020\u304c\u4e00\u81f4\u3057\u306a\u3044\u3002<\/p>\n<h3>6.5 \u9577\u3044\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u3068\u691c\u7d22\u7cbe\u5ea6\u3092\u533a\u5225\u3059\u308b<\/h3>\n<p>\u751f\u6210\u7528 LLM \u304c\u9577\u3044\u5165\u529b\u3092\u53d7\u3051\u4ed8\u3051\u3089\u308c\u308b\u3053\u3068\u3068\u3001\u305d\u306e\u5165\u529b\u5185\u306e\u5fc5\u8981\u60c5\u5831\u3092\u5b89\u5b9a\u3057\u3066\u5229\u7528\u3067\u304d\u308b\u3053\u3068\u306f\u540c\u7fa9\u3067\u306f\u306a\u3044\u3002\u8907\u6570\u6587\u66f8\u3092\u542b\u3080\u9577\u3044\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u3067\u306f\u3001\u95a2\u9023\u60c5\u5831\u304c\u5165\u529b\u306e\u4e2d\u592e\u4ed8\u8fd1\u306b\u914d\u7f6e\u3055\u308c\u305f\u5834\u5408\u3001\u5148\u982d\u307e\u305f\u306f\u672b\u5c3e\u306b\u3042\u308b\u5834\u5408\u3088\u308a\u6027\u80fd\u304c\u4f4e\u4e0b\u3059\u308b\u50be\u5411\u304c\u5831\u544a\u3055\u308c\u3066\u3044\u308b<a href=\"#ref27\">[27]<\/a>\u3002<\/p>\n<p>\u3053\u306e\u6027\u8cea\u304c\u3042\u308b\u305f\u3081\u3001\u30e2\u30c7\u30eb\u306e\u6700\u5927\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u9577\u3092\u5e83\u3052\u3001\u767b\u9332\u6587\u66f8\u3092\u3059\u3079\u3066\u5165\u529b\u3059\u308c\u3070 RAG \u304c\u4e0d\u8981\u306b\u306a\u308b\u3068\u306f\u9650\u3089\u306a\u3044\u3002\u5168\u6587\u6295\u5165\u3067\u306f\u3001\u8cea\u554f\u3068\u7121\u95a2\u4fc2\u306a\u8a18\u8ff0\u3082\u5165\u529b\u51e6\u7406\u306e\u5bfe\u8c61\u306b\u306a\u308a\u3001\u8907\u6570\u306e\u985e\u4f3c\u5024\u3084\u4f8b\u5916\u898f\u5247\u304c\u751f\u6210\u7528 LLM \u306e\u5224\u65ad\u3092\u7af6\u5408\u3055\u305b\u308b\u3002\u5165\u529b\u53ef\u80fd\u3067\u3042\u308b\u3053\u3068\u306f\u3001\u5fc5\u8981\u306a\u6839\u62e0\u3092\u9078\u629e\u3067\u304d\u308b\u3053\u3068\u3092\u4fdd\u8a3c\u3057\u306a\u3044\u3002<\/p>\n<p>RAG \u306f\u3001\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u9577\u306e\u4e0a\u9650\u3092\u56de\u907f\u3059\u308b\u3060\u3051\u306e\u4ed5\u7d44\u307f\u3067\u306f\u306a\u3044\u3002\u8cea\u554f\u3054\u3068\u306b\u5019\u88dc\u6587\u66f8\u3092\u7d5e\u308a\u3001\u56de\u7b54\u3078\u4f7f\u7528\u3059\u308b\u6839\u62e0\u3092\u89b3\u5bdf\u53ef\u80fd\u306a\u5358\u4f4d\u306b\u9650\u5b9a\u3059\u308b\u4ed5\u7d44\u307f\u3067\u3082\u3042\u308b\u3002Argolet \u306e\u672c\u756a\u30dd\u30fc\u30c8\u3092\u5c0b\u306d\u305f\u5834\u5408\u306f\u672c\u756a\u63a5\u7d9a\u306e\u30c1\u30e3\u30f3\u30af\u3092\u53d6\u5f97\u3057\u3001\u5fa9\u65e7\u6761\u4ef6\u3092\u5c0b\u306d\u305f\u5834\u5408\u306f Rho-Blue \u306e\u6761\u4ef6\u3092\u542b\u3080\u30c1\u30e3\u30f3\u30af\u3092\u53d6\u5f97\u3059\u308b\u3002\u691c\u7d22\u7d50\u679c\u3092\u9650\u5b9a\u3059\u308b\u3053\u3068\u3067\u3001\u751f\u6210\u7528 LLM \u304c\u5224\u65ad\u3059\u3079\u304d\u7bc4\u56f2\u3092\u72ed\u3081\u3089\u308c\u308b\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u65b9\u5f0f<\/th>\n<th>\u751f\u6210\u7528 LLM \u3078\u6e21\u3059\u60c5\u5831<\/th>\n<th>\u5229\u70b9<\/th>\n<th>\u5931\u6557\u6761\u4ef6<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u5168\u6587\u6295\u5165<\/td>\n<td>\u767b\u9332\u6587\u66f8\u306e\u5168\u6587<\/td>\n<td>\u691c\u7d22\u306b\u3088\u308b\u53d6\u308a\u3053\u307c\u3057\u304c\u306a\u304f\u3001\u77ed\u3044\u6587\u66f8\u3067\u306f\u69cb\u9020\u3092\u305d\u306e\u307e\u307e\u53c2\u7167\u3067\u304d\u308b\u3002<\/td>\n<td>\u6587\u66f8\u304c\u9577\u304f\u306a\u308b\u3068\u7121\u95a2\u4fc2\u306a\u60c5\u5831\u304c\u5897\u3048\u3001\u5165\u529b\u51e6\u7406\u6642\u9593\u3068\u8a18\u61b6\u4f7f\u7528\u91cf\u3082\u5897\u3048\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u30c1\u30e3\u30f3\u30af\u691c\u7d22<\/td>\n<td>\u8cea\u554f\u306b\u8fd1\u3044\u4e0a\u4f4d\u30c1\u30e3\u30f3\u30af<\/td>\n<td>\u6839\u62e0\u3092\u9650\u5b9a\u3057\u3001\u9577\u3044\u6587\u66f8\u96c6\u5408\u304b\u3089\u5fc5\u8981\u90e8\u5206\u3060\u3051\u3092\u5165\u529b\u3067\u304d\u308b\u3002<\/td>\n<td>\u5206\u5272\u5883\u754c\u3001\u57cb\u3081\u8fbc\u307f\u3001\u53d6\u5f97\u4ef6\u6570\u304c\u4e0d\u9069\u5207\u3060\u3068\u5fc5\u8981\u306a\u6761\u4ef6\u3092\u53d6\u308a\u3053\u307c\u3059\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u5927\u304d\u3044\u30c1\u30e3\u30f3\u30af<\/td>\n<td>\u5e83\u3044\u524d\u5f8c\u95a2\u4fc2\u3092\u542b\u3080\u65ad\u7247<\/td>\n<td>\u6761\u4ef6\u3084\u4f8b\u5916\u3092\u540c\u3058\u65ad\u7247\u3078\u6b8b\u3057\u3084\u3059\u3044\u3002<\/td>\n<td>\u7570\u306a\u308b\u5bfe\u8c61\u3084\u8907\u6570\u306e\u5024\u304c\u6df7\u5728\u3057\u3001\u56de\u7b54\u5bfe\u8c61\u3092\u7279\u5b9a\u3057\u306b\u304f\u304f\u306a\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u5c0f\u3055\u3044\u30c1\u30e3\u30f3\u30af<\/td>\n<td>\u72ed\u3044\u8a71\u984c\u306b\u9650\u5b9a\u3057\u305f\u65ad\u7247<\/td>\n<td>\u8cea\u554f\u3068\u306e\u985e\u4f3c\u6027\u3092\u660e\u78ba\u306b\u3057\u3084\u3059\u3044\u3002<\/td>\n<td>\u4e3b\u8a9e\u3001\u5024\u3001\u9069\u7528\u6761\u4ef6\u3001\u4f8b\u5916\u304c\u5206\u96e2\u3059\u308b\u3068\u3001\u5358\u72ec\u3067\u306f\u6839\u62e0\u306b\u306a\u3089\u306a\u3044\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u521d\u671f\u5024\u306e 1000 \u6587\u5b57\u3001\u91cd\u8907 100 \u6587\u5b57\u3001\u53d6\u5f97\u4ef6\u6570 3 \u4ef6\u306f\u3001\u6700\u9069\u5024\u3067\u306f\u306a\u304f\u6bd4\u8f03\u306e\u51fa\u767a\u70b9\u3067\u3042\u308b\u3002\u8cea\u554f\u3054\u3068\u306b\u3001\u6b63\u3057\u3044\u30c1\u30e3\u30f3\u30af\u304c\u53d6\u5f97\u3055\u308c\u305f\u304b\u3001\u5fc5\u8981\u6761\u4ef6\u304c\u4e00\u3064\u306e\u30c1\u30e3\u30f3\u30af\u306b\u6b8b\u3063\u3066\u3044\u308b\u304b\u3001\u7121\u95a2\u4fc2\u306a\u30c1\u30e3\u30f3\u30af\u304c\u751f\u6210\u3078\u6df7\u5165\u3057\u305f\u304b\u3092\u8a18\u9332\u3057\u3001\u305d\u306e\u7d50\u679c\u306b\u57fa\u3065\u3044\u3066\u4e00\u9805\u76ee\u305a\u3064\u5909\u66f4\u3059\u308b\u3002<\/p>\n<h3>6.6 \u6587\u5b57\u62bd\u51fa\u306e\u5931\u6557\u3092\u5148\u306b\u7591\u3046<\/h3>\n<p>\u6587\u66f8\u691c\u7d22\u3067\u671f\u5f85\u3059\u308b\u56de\u7b54\u304c\u5f97\u3089\u308c\u306a\u3044\u5834\u5408\u3001\u751f\u6210\u7528 LLM \u3084\u30d9\u30af\u30c8\u30eb\u691c\u7d22\u306e\u6027\u80fd\u3092\u8abf\u6574\u3059\u308b\u524d\u306b\u3001\u539f\u6587\u304b\u3089\u5fc5\u8981\u306a\u6587\u5b57\u304c\u62bd\u51fa\u3055\u308c\u305f\u304b\u3092\u78ba\u8a8d\u3059\u308b\u3002\u62bd\u51fa\u3055\u308c\u306a\u304b\u3063\u305f\u6587\u5b57\u5217\u306f\u30c1\u30e3\u30f3\u30af\u306b\u542b\u307e\u308c\u305a\u3001\u57cb\u3081\u8fbc\u307f\u30d9\u30af\u30c8\u30eb\u306b\u3082\u53cd\u6620\u3055\u308c\u306a\u3044\u3002\u691c\u7d22\u8a2d\u5b9a\u3092\u5909\u66f4\u3057\u3066\u3082\u3001\u5b58\u5728\u3057\u306a\u3044\u6587\u5b57\u60c5\u5831\u3092\u53d6\u5f97\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u306a\u3044\u3002<\/p>\n<p>Markdown \u306e\u3088\u3046\u306a\u30d7\u30ec\u30fc\u30f3\u30c6\u30ad\u30b9\u30c8\u3067\u306f\u3001\u539f\u6587\u3068\u62bd\u51fa\u7d50\u679c\u306e\u5dee\u304c\u5c0f\u3055\u3044\u305f\u3081\u3001RAG \u306e\u6700\u5c0f\u7d4c\u8def\u3092\u78ba\u8a8d\u3057\u3084\u3059\u3044\u3002PDF \u3067\u306f\u3001\u753b\u9762\u4e0a\u306b\u6587\u5b57\u304c\u898b\u3048\u3066\u3044\u3066\u3082\u3001\u5185\u90e8\u306b\u6587\u5b57\u5c64\u304c\u306a\u304f\u3001\u5404\u30da\u30fc\u30b8\u304c\u753b\u50cf\u3068\u3057\u3066\u4fdd\u5b58\u3055\u308c\u3066\u3044\u308b\u5834\u5408\u304c\u3042\u308b\u3002\u8907\u96d1\u306a\u6bb5\u7d44\u307f\u3001\u811a\u6ce8\u3001\u8868\u3001\u7e26\u66f8\u304d\u3001\u56f3\u4e2d\u306e\u6587\u5b57\u3082\u3001\u8aad\u307f\u9806\u306e\u5d29\u308c\u3084\u6b20\u843d\u3092\u8d77\u3053\u3057\u3084\u3059\u3044\u3002<\/p>\n<p>Open WebUI \u306e RAG \u969c\u5bb3\u78ba\u8a8d\u3067\u3082\u3001\u6587\u66f8\u53d6\u308a\u8fbc\u307f\u3001Knowledge \u306e\u63a5\u7d9a\u3001\u57cb\u3081\u8fbc\u307f\u3001\u691c\u7d22\u6761\u4ef6\u3001\u30e2\u30c7\u30eb\u3078\u6e21\u3055\u308c\u305f\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u3092\u5206\u3051\u3066\u8abf\u3079\u308b\u5fc5\u8981\u304c\u3042\u308b<a href=\"#ref28\">[28]<\/a>\u3002\u56de\u7b54\u304c\u8aa4\u3063\u3066\u3044\u308b\u3068\u3044\u3046\u6700\u7d42\u7d50\u679c\u3060\u3051\u3067\u306f\u3001\u62bd\u51fa\u3001\u5206\u5272\u3001\u691c\u7d22\u3001\u751f\u6210\u306e\u3069\u3053\u3067\u60c5\u5831\u304c\u5931\u308f\u308c\u305f\u304b\u3092\u5224\u5b9a\u3067\u304d\u306a\u3044\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u6587\u66f8\u5f62\u5f0f<\/th>\n<th>\u4e3b\u306a\u5931\u6557<\/th>\n<th>\u6700\u521d\u306e\u78ba\u8a8d\u65b9\u6cd5<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Markdown<\/td>\n<td>\u6587\u5b57\u30b3\u30fc\u30c9\u3001\u898b\u51fa\u3057\u69cb\u9020\u3001\u6975\u7aef\u306b\u9577\u3044\u6bb5\u843d\u306b\u3088\u308b\u5206\u5272\u306e\u504f\u308a<\/td>\n<td>\u539f\u6587\u3092 cat \u3068 grep \u3067\u78ba\u8a8d\u3057\u3001\u56fa\u6709\u6587\u5b57\u5217\u304c\u5b58\u5728\u3059\u308b\u3053\u3068\u3092\u78ba\u5b9a\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>HTML<\/td>\n<td>\u672c\u6587\u4ee5\u5916\u306e\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3\u6df7\u5165\u3001\u52d5\u7684\u751f\u6210\u90e8\u5206\u306e\u6b20\u843d\u3001\u8868\u69cb\u9020\u306e\u5e73\u6587\u5316<\/td>\n<td>\u62bd\u51fa\u5bfe\u8c61\u3068\u306a\u308b\u9759\u7684 HTML \u5185\u306b\u672c\u6587\u304c\u5b58\u5728\u3059\u308b\u304b\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u6587\u5b57\u5c64\u306e\u3042\u308b PDF<\/td>\n<td>\u6bb5\u7d44\u307f\u306e\u8aad\u307f\u9806\u3001\u6539\u884c\u3001\u30d8\u30c3\u30c0\u30fc\u3001\u30d5\u30c3\u30bf\u30fc\u3001\u8868\u306e\u5217\u95a2\u4fc2\u306e\u5d29\u308c<\/td>\n<td>PDF \u304b\u3089\u6587\u5b57\u3092\u9078\u629e\u3067\u304d\u308b\u304b\u3001\u62bd\u51fa\u5f8c\u306e\u9806\u5e8f\u304c\u539f\u6587\u3068\u4e00\u81f4\u3059\u308b\u304b\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u753b\u50cf\u3060\u3051\u306e PDF<\/td>\n<td>\u6587\u5b57\u60c5\u5831\u304c\u62bd\u51fa\u3055\u308c\u305a\u3001\u7a7a\u307e\u305f\u306f\u4e0d\u5b8c\u5168\u306a\u6587\u66f8\u306b\u306a\u308b\u3002<\/td>\n<td>OCR \u3092\u4f7f\u7528\u3057\u306a\u3044\u69cb\u6210\u3067\u306f\u691c\u7d22\u5bfe\u8c61\u5916\u3068\u3057\u3066\u6271\u3046\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u56f3\u8868\u4e2d\u5fc3\u306e\u6587\u66f8<\/td>\n<td>\u4f4d\u7f6e\u95a2\u4fc2\u3001\u77e2\u5370\u3001\u51e1\u4f8b\u3001\u884c\u5217\u69cb\u9020\u304c\u6587\u7ae0\u3078\u5909\u63db\u3055\u308c\u306a\u3044\u3002<\/td>\n<td>\u91cd\u8981\u306a\u95a2\u4fc2\u3092\u5225\u9014\u6587\u7ae0\u5316\u3057\u3001\u691c\u7d22\u53ef\u80fd\u306a\u8aac\u660e\u3068\u3057\u3066\u767b\u9332\u3059\u308b\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u672c\u69cb\u6210\u3067\u306f PDF_EXTRACT_IMAGES=False \u3068\u3057\u3001\u753b\u50cf OCR \u3092\u51e6\u7406\u7d4c\u8def\u3078\u542b\u3081\u306a\u3044\u3002OCR \u3092\u6709\u52b9\u306b\u3059\u308b\u3068\u3001\u753b\u50cf\u89e3\u6790\u3001\u8a00\u8a9e\u5224\u5b9a\u3001\u6587\u5b57\u8a8d\u8b58\u3001\u8aad\u307f\u9806\u5fa9\u5143\u3068\u3044\u3046\u5225\u306e\u51e6\u7406\u304c\u52a0\u308f\u308a\u3001\u691c\u7d22\u5931\u6557\u306e\u539f\u56e0\u304c\u5897\u3048\u308b\u3002\u6700\u521d\u306b Markdown \u3067\u6587\u5b57\u62bd\u51fa\u304b\u3089\u56de\u7b54\u751f\u6210\u307e\u3067\u3092\u6210\u7acb\u3055\u305b\u3001\u305d\u306e\u5f8c\u306b\u6587\u5b57\u5c64\u306e\u3042\u308b HTML \u3084 PDF \u3078\u5bfe\u8c61\u3092\u5e83\u3052\u308b\u3002<\/p>\n<p>\u753b\u50cf\u3060\u3051\u306e PDF \u3084\u56f3\u8868\u4e2d\u5fc3\u306e\u8cc7\u6599\u3092\u6271\u3046\u5834\u5408\u306f\u3001\u5358\u306b OCR \u3092\u8ffd\u52a0\u3059\u308b\u3060\u3051\u3067\u306f\u4e0d\u5341\u5206\u3067\u3042\u308b\u3002\u6570\u5024\u3092\u8a8d\u8b58\u3067\u304d\u3066\u3082\u3001\u8868\u306e\u3069\u306e\u5217\u306b\u5c5e\u3059\u308b\u304b\u3001\u56f3\u4e2d\u306e\u77e2\u5370\u304c\u4f55\u3092\u7d50\u3076\u304b\u3001\u6ce8\u8a18\u304c\u3069\u306e\u5024\u3092\u5236\u7d04\u3059\u308b\u304b\u3092\u4fdd\u6301\u3067\u304d\u306a\u3051\u308c\u3070\u3001\u691c\u7d22\u53ef\u80fd\u306a\u6839\u62e0\u306b\u306f\u306a\u3089\u306a\u3044\u3002\u4f4d\u7f6e\u95a2\u4fc2\u306b\u4f9d\u5b58\u3059\u308b\u5185\u5bb9\u306f\u3001\u5224\u65ad\u306b\u5fc5\u8981\u306a\u95a2\u4fc2\u3092\u6587\u7ae0\u3068\u3057\u3066\u660e\u793a\u3057\u305f\u88dc\u52a9\u6587\u66f8\u3092\u7528\u610f\u3059\u308b\u65b9\u304c\u518d\u73fe\u6027\u3092\u78ba\u4fdd\u3057\u3084\u3059\u3044\u3002<\/p>\n<h3>6.7 \u6587\u66f8\u767b\u9332\u5de5\u7a0b\u306e\u5b8c\u4e86\u6761\u4ef6\u3092\u56fa\u5b9a\u3059\u308b<\/h3>\n<p>\u6587\u66f8\u767b\u9332\u306e\u5b8c\u4e86\u306f\u3001Knowledge \u306b\u30d5\u30a1\u30a4\u30eb\u540d\u304c\u8868\u793a\u3055\u308c\u305f\u3053\u3068\u3067\u306f\u5224\u5b9a\u3057\u306a\u3044\u3002\u539f\u6587\u304c\u518d\u73fe\u53ef\u80fd\u306a\u72b6\u614b\u3067\u4fdd\u5b58\u3055\u308c\u3001\u56fa\u6709\u60c5\u5831\u304c\u6587\u5b57\u3068\u3057\u3066\u5b58\u5728\u3057\u3001Open WebUI \u304c\u51e6\u7406\u3092\u5b8c\u4e86\u3057\u3001\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u304c\u547c\u3073\u51fa\u3055\u308c\u3001Qdrant \u306e\u4fdd\u5b58\u5185\u5bb9\u304c\u767b\u9332\u524d\u304b\u3089\u5909\u5316\u3057\u305f\u3068\u3053\u308d\u307e\u3067\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u78ba\u8a8d\u6bb5\u968e<\/th>\n<th>\u78ba\u8a8d\u3059\u308b\u4e8b\u5b9f<\/th>\n<th>\u5931\u6557\u6642\u306b\u623b\u308b\u5de5\u7a0b<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u539f\u6587\u4f5c\u6210<\/td>\n<td>\u691c\u8a3c\u5bfe\u8c61\u306e\u540d\u79f0\u3001\u6570\u5024\u3001\u6761\u4ef6\u3001\u672a\u8a18\u8f09\u4e8b\u9805\u304c Markdown \u306b\u5b58\u5728\u3059\u308b\u3002<\/td>\n<td>\u6587\u66f8\u8a2d\u8a08\u3092\u4fee\u6b63\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u539f\u6587\u56fa\u5b9a<\/td>\n<td>\u30d5\u30a1\u30a4\u30eb\u5bb9\u91cf\u3068\u30cf\u30c3\u30b7\u30e5\u5024\u3092\u8a18\u9332\u3059\u308b\u3002<\/td>\n<td>\u767b\u9332\u3057\u305f\u7248\u3068\u73fe\u5728\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u7167\u5408\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>Knowledge \u767b\u9332<\/td>\n<td>\u5bfe\u8c61\u30d5\u30a1\u30a4\u30eb\u304c\u5229\u7528\u53ef\u80fd\u306a\u72b6\u614b\u306b\u306a\u308b\u3002<\/td>\n<td>Open WebUI \u306e\u30d5\u30a1\u30a4\u30eb\u51e6\u7406\u30ed\u30b0\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u57cb\u3081\u8fbc\u307f\u751f\u6210<\/td>\n<td>\u767b\u9332\u6642\u306b embeddinggemma \u304c\u4f7f\u7528\u3055\u308c\u308b\u3002<\/td>\n<td>Ollama \u63a5\u7d9a\u3068\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u8a2d\u5b9a\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u30d9\u30af\u30c8\u30eb\u4fdd\u5b58<\/td>\n<td>Qdrant \u306e\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u307e\u305f\u306f\u70b9\u6570\u304c\u767b\u9332\u524d\u304b\u3089\u5909\u5316\u3059\u308b\u3002<\/td>\n<td>Qdrant \u63a5\u7d9a\u3001API \u9375\u3001\u4fdd\u5b58\u51e6\u7406\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u691c\u7d22\u8a66\u9a13<\/td>\n<td>\u8cea\u554f\u306b\u5bfe\u5fdc\u3059\u308b\u30c1\u30e3\u30f3\u30af\u304c\u53d6\u5f97\u3055\u308c\u308b\u3002<\/td>\n<td>\u6587\u5b57\u62bd\u51fa\u3001\u30c1\u30e3\u30f3\u30af\u5883\u754c\u3001\u57cb\u3081\u8fbc\u307f\u3001\u53d6\u5f97\u4ef6\u6570\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u3053\u306e\u7ae0\u3067\u78ba\u7acb\u3059\u308b\u306e\u306f\u3001\u6587\u66f8\u3092\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3059\u308b\u64cd\u4f5c\u3067\u306f\u306a\u3044\u3002\u5229\u7528\u8005\u56fa\u6709\u306e\u898f\u5247\u3092\u691c\u7d22\u53ef\u80fd\u306a\u610f\u5473\u5358\u4f4d\u3068\u3057\u3066\u8a18\u8ff0\u3057\u3001\u898b\u51fa\u3057\u3068\u6587\u5b57\u6570\u306b\u57fa\u3065\u3044\u3066\u5206\u5272\u3057\u3001\u5404\u30c1\u30e3\u30f3\u30af\u3092 embeddinggemma \u306e\u30d9\u30af\u30c8\u30eb\u3078\u5909\u63db\u3067\u304d\u308b\u5165\u529b\u3092\u4f5c\u308b\u3053\u3068\u3067\u3042\u308b\u3002RAG \u306e\u56de\u7b54\u54c1\u8cea\u306f\u751f\u6210\u7528 LLM \u3060\u3051\u3067\u306f\u6c7a\u307e\u3089\u305a\u3001\u8cea\u554f\u306b\u5fc5\u8981\u306a\u6761\u4ef6\u3092\u4e00\u3064\u306e\u6839\u62e0\u3068\u3057\u3066\u53d6\u308a\u51fa\u305b\u308b\u3088\u3046\u3001\u767b\u9332\u524d\u306e\u6587\u66f8\u3092\u8a2d\u8a08\u3057\u305f\u6bb5\u968e\u3067\u5927\u304d\u304f\u5236\u7d04\u3055\u308c\u308b\u3002<\/p>\n<hr>\n<h2>7. \u57cb\u3081\u8fbc\u307f\u3068 Qdrant \u306e\u4fdd\u5b58\u72b6\u614b\u3092\u78ba\u8a8d\u3059\u308b<\/h2>\n<h3>7.1 \u6587\u66f8\u767b\u9332\u524d\u5f8c\u306e\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3092\u6bd4\u8f03\u3059\u308b<\/h3>\n<p>Qdrant \u306e\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306f\u3001\u691c\u7d22\u5bfe\u8c61\u3068\u306a\u308b\u70b9\u3092\u307e\u3068\u3081\u308b\u540d\u524d\u4ed8\u304d\u306e\u96c6\u5408\u3067\u3042\u308b\u3002\u5404\u70b9\u306f\u30d9\u30af\u30c8\u30eb\u3068\u4ed8\u968f\u60c5\u5831\u304b\u3089\u69cb\u6210\u3055\u308c\u3001\u540c\u3058\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306e\u540c\u3058\u30d9\u30af\u30c8\u30eb\u9805\u76ee\u3067\u306f\u3001\u6b21\u5143\u6570\u3068\u8ddd\u96e2\u5c3a\u5ea6\u3092\u305d\u308d\u3048\u308b\u5fc5\u8981\u304c\u3042\u308b<a href=\"#ref29\">[29]<\/a>\u3002\u6587\u66f8\u767b\u9332\u5f8c\u306b\u306f\u3001Open WebUI \u304c\u4f5c\u6210\u307e\u305f\u306f\u518d\u5229\u7528\u3057\u305f\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3078\u3001\u6587\u66f8\u30c1\u30e3\u30f3\u30af\u306b\u5bfe\u5fdc\u3059\u308b\u70b9\u304c\u4fdd\u5b58\u3055\u308c\u308b\u3002<\/p>\n<p>\u7b2c 5 \u7ae0\u3067\u306f\u3001\u6587\u66f8\u767b\u9332\u524d\u306e\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u4e00\u89a7\u3092 \/tmp\/qdrant-collections-before.json \u3078\u4fdd\u5b58\u3057\u305f\u3002Knowledge \u3078\u306e\u767b\u9332\u5f8c\u306b\u540c\u3058 API \u3092\u547c\u3073\u51fa\u3057\u3001\u767b\u9332\u5f8c\u306e\u4e00\u89a7\u3092\u5225\u30d5\u30a1\u30a4\u30eb\u3078\u4fdd\u5b58\u3059\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">(<br \/>\n&nbsp; set -a<br \/>\n&nbsp; . .\/.env<br \/>\n&nbsp; set +a<br \/>\n<br \/>\n&nbsp; curl -fsS \\<br \/>\n&nbsp; &nbsp; -H &quot;api-key: ${QDRANT_API_KEY}&quot; \\<br \/>\n&nbsp; &nbsp; http:\/\/127.0.0.1:6333\/collections \\<br \/>\n&nbsp; &nbsp; &gt; \/tmp\/qdrant-collections-after.json<br \/>\n)<br \/>\n<br \/>\npython3 -m json.tool \\<br \/>\n&nbsp; &lt; \/tmp\/qdrant-collections-after.json<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>\u767b\u9332\u524d\u5f8c\u306e\u4e00\u89a7\u304b\u3089\u3001\u8ffd\u52a0\u3055\u308c\u305f\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u540d\u3068\u524a\u9664\u3055\u308c\u305f\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u540d\u3092\u6bd4\u8f03\u3059\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/>36<br \/>37<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">python3 - &lt;&lt;'PY'<br \/>\nimport json<br \/>\nfrom pathlib import Path<br \/>\n<br \/>\nbefore_path = Path(&quot;\/tmp\/qdrant-collections-before.json&quot;)<br \/>\nafter_path = Path(&quot;\/tmp\/qdrant-collections-after.json&quot;)<br \/>\n<br \/>\nif not before_path.exists():<br \/>\n&nbsp; &nbsp; raise SystemExit(<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &quot;The pre-registration collection snapshot was not found: &quot;<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &quot;\/tmp\/qdrant-collections-before.json&quot;<br \/>\n&nbsp; &nbsp; )<br \/>\n<br \/>\ndef load_names(path):<br \/>\n&nbsp; &nbsp; data = json.loads(path.read_text(encoding=&quot;utf-8&quot;))<br \/>\n&nbsp; &nbsp; collections = data.get(&quot;result&quot;, {}).get(&quot;collections&quot;, [])<br \/>\n&nbsp; &nbsp; return {item[&quot;name&quot;] for item in collections}<br \/>\n<br \/>\nbefore = load_names(before_path)<br \/>\nafter = load_names(after_path)<br \/>\n<br \/>\nprint(&quot;before:&quot;)<br \/>\nfor name in sorted(before):<br \/>\n&nbsp; &nbsp; print(f&quot; &nbsp;{name}&quot;)<br \/>\n<br \/>\nprint(&quot;after:&quot;)<br \/>\nfor name in sorted(after):<br \/>\n&nbsp; &nbsp; print(f&quot; &nbsp;{name}&quot;)<br \/>\n<br \/>\nprint(&quot;added:&quot;)<br \/>\nfor name in sorted(after - before):<br \/>\n&nbsp; &nbsp; print(f&quot; &nbsp;{name}&quot;)<br \/>\n<br \/>\nprint(&quot;removed:&quot;)<br \/>\nfor name in sorted(before - after):<br \/>\n&nbsp; &nbsp; print(f&quot; &nbsp;{name}&quot;)<br \/>\nPY<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>\u65b0\u3057\u3044\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u304c\u8868\u793a\u3055\u308c\u305f\u5834\u5408\u3001\u6587\u66f8\u767b\u9332\u306b\u3088\u3063\u3066 Qdrant \u306e\u69cb\u6210\u304c\u5909\u5316\u3057\u305f\u3053\u3068\u3092\u78ba\u8a8d\u3067\u304d\u308b\u3002\u305f\u3060\u3057\u3001\u65b0\u3057\u3044\u540d\u524d\u304c\u5897\u3048\u306a\u304b\u3063\u305f\u3053\u3068\u3060\u3051\u3067\u767b\u9332\u5931\u6557\u3068\u306f\u5224\u65ad\u3057\u306a\u3044\u3002\u672c\u69cb\u6210\u3067\u306f ENABLE_QDRANT_MULTITENANCY_MODE=True \u3092\u6307\u5b9a\u3057\u3066\u304a\u308a\u3001Open WebUI \u306f\u540c\u7a2e\u306e\u30d9\u30af\u30c8\u30eb\u30c7\u30fc\u30bf\u3092\u5171\u6709\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3078\u96c6\u7d04\u3067\u304d\u308b<a href=\"#ref20\">[20]<\/a>\u3002\u65e2\u5b58\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3078\u70b9\u304c\u8ffd\u52a0\u3055\u308c\u305f\u5834\u5408\u3001\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u540d\u306e\u4e00\u89a7\u306f\u767b\u9332\u524d\u5f8c\u3067\u5909\u5316\u3057\u306a\u3044\u3002<\/p>\n<p>Open WebUI \u304c\u4f7f\u7528\u3059\u308b\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306b\u306f\u65e2\u5b9a\u306e\u63a5\u982d\u8f9e\u304c\u3042\u308b\u304c\u3001\u540d\u79f0\u898f\u5247\u306f Open WebUI \u306e\u7248\u3001\u30c7\u30fc\u30bf\u7a2e\u5225\u3001\u8907\u6570\u5229\u7528\u8005\u30e2\u30fc\u30c9\u3001\u8a2d\u5b9a\u5024\u306b\u3088\u3063\u3066\u5909\u5316\u3057\u5f97\u308b\u3002\u7279\u5b9a\u306e\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u540d\u3092\u8a18\u4e8b\u306e\u5b8c\u6210\u6761\u4ef6\u3068\u3057\u3066\u56fa\u5b9a\u305b\u305a\u3001\u5b9f\u969b\u306e\u4e00\u89a7\u3001\u70b9\u6570\u3001\u4ed8\u968f\u60c5\u5831\u3092\u7d44\u307f\u5408\u308f\u305b\u3066\u5bfe\u8c61\u3092\u7279\u5b9a\u3059\u308b\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u767b\u9332\u524d\u5f8c\u306e\u5909\u5316<\/th>\n<th>\u8003\u3048\u3089\u308c\u308b\u72b6\u614b<\/th>\n<th>\u6b21\u306b\u78ba\u8a8d\u3059\u308b\u9805\u76ee<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u65b0\u3057\u3044\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u304c\u5897\u3048\u305f<\/td>\n<td>\u6587\u66f8\u767b\u9332\u7528\u306e\u4fdd\u5b58\u5148\u304c\u65b0\u3057\u304f\u4f5c\u6210\u3055\u308c\u305f\u53ef\u80fd\u6027\u304c\u9ad8\u3044\u3002<\/td>\n<td>\u65b0\u3057\u3044\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306e\u70b9\u6570\u3001\u30d9\u30af\u30c8\u30eb\u8a2d\u5b9a\u3001\u4ed8\u968f\u60c5\u5831\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u540d\u306f\u5909\u308f\u3089\u306a\u3044<\/td>\n<td>\u8907\u6570\u5229\u7528\u8005\u30e2\u30fc\u30c9\u306e\u5171\u6709\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u304c\u518d\u5229\u7528\u3055\u308c\u305f\u53ef\u80fd\u6027\u304c\u3042\u308b\u3002<\/td>\n<td>\u65e2\u5b58\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306e\u70b9\u6570\u3068\u4ed8\u968f\u60c5\u5831\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u304c\u524a\u9664\u3055\u308c\u3001\u5225\u306e\u540d\u524d\u304c\u5897\u3048\u305f<\/td>\n<td>\u518d\u7d22\u5f15\u3001\u8a2d\u5b9a\u5909\u66f4\u3001\u4fdd\u5b58\u65b9\u5f0f\u306e\u79fb\u884c\u304c\u5b9f\u884c\u3055\u308c\u305f\u53ef\u80fd\u6027\u304c\u3042\u308b\u3002<\/td>\n<td>Open WebUI \u306e\u30ed\u30b0\u3068\u518d\u7d22\u5f15\u64cd\u4f5c\u306e\u6709\u7121\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u4e00\u89a7\u304c\u7a7a\u306e\u307e\u307e\u3067\u3042\u308b<\/td>\n<td>\u57cb\u3081\u8fbc\u307f\u751f\u6210\u307e\u305f\u306f Qdrant \u3078\u306e\u4fdd\u5b58\u306b\u5230\u9054\u3057\u3066\u3044\u306a\u3044\u53ef\u80fd\u6027\u304c\u3042\u308b\u3002<\/td>\n<td>Open WebUI \u3068 Qdrant \u306e\u30ed\u30b0\u3001\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u306e\u8d77\u52d5\u72b6\u614b\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u4e00\u89a7\u306f\u3001\u4fdd\u5b58\u51e6\u7406\u304c\u3069\u3053\u304b\u307e\u3067\u9032\u3093\u3060\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b\u5165\u53e3\u306b\u3059\u304e\u306a\u3044\u3002\u5171\u6709\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3078\u306e\u8ffd\u52a0\u3001\u65e2\u5b58\u70b9\u306e\u66f4\u65b0\u3001\u767b\u9332\u5931\u6557\u3092\u4e00\u89a7\u3060\u3051\u3067\u533a\u5225\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u306a\u3044\u305f\u3081\u3001\u5404\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306e\u70b9\u6570\u3068\u8a2d\u5b9a\u3092\u7d9a\u3051\u3066\u78ba\u8a8d\u3059\u308b\u3002<\/p>\n<h3>7.2 \u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306e\u70b9\u6570\u3068\u30d9\u30af\u30c8\u30eb\u8a2d\u5b9a\u3092\u78ba\u8a8d\u3059\u308b<\/h3>\n<p>Qdrant \u306e\u70b9\u306f\u3001\u8b58\u5225\u5b50\u3001\u30d9\u30af\u30c8\u30eb\u3001\u4efb\u610f\u306e JSON \u5f62\u5f0f\u306e\u4ed8\u968f\u60c5\u5831\u304b\u3089\u69cb\u6210\u3055\u308c\u308b<a href=\"#ref30\">[30]<\/a>\u3002Open WebUI \u306f\u3001\u6587\u66f8\u30c1\u30e3\u30f3\u30af\u304b\u3089\u751f\u6210\u3057\u305f\u57cb\u3081\u8fbc\u307f\u30d9\u30af\u30c8\u30eb\u306b\u3001\u5143\u6587\u66f8\u3084 Knowledge\u3001\u5229\u7528\u8005\u3001\u30c1\u30e3\u30f3\u30af\u672c\u6587\u3092\u8b58\u5225\u3059\u308b\u60c5\u5831\u3092\u4ed8\u3051\u3066\u4fdd\u5b58\u3059\u308b\u3002<\/p>\n<p>\u6b21\u306e\u51e6\u7406\u3067\u306f\u3001\u3059\u3079\u3066\u306e\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306b\u3064\u3044\u3066\u3001\u70b9\u6570\u3001\u7d22\u5f15\u6e08\u307f\u30d9\u30af\u30c8\u30eb\u6570\u3001\u533a\u753b\u6570\u3001\u30d9\u30af\u30c8\u30eb\u8a2d\u5b9a\u3092\u4e00\u89a7\u8868\u793a\u3059\u308b\u3002API \u9375\u306f\u51fa\u529b\u305b\u305a\u3001\u5404\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306e\u72b6\u614b\u3060\u3051\u3092\u8868\u793a\u3059\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/>36<br \/>37<br \/>38<br \/>39<br \/>40<br \/>41<br \/>42<br \/>43<br \/>44<br \/>45<br \/>46<br \/>47<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">(<br \/>\n&nbsp; set -a<br \/>\n&nbsp; . .\/.env<br \/>\n&nbsp; set +a<br \/>\n<br \/>\n&nbsp; python3 - &lt;&lt;'PY'<br \/>\nimport json<br \/>\nimport os<br \/>\nimport urllib.parse<br \/>\nimport urllib.request<br \/>\n<br \/>\nbase_url = &quot;http:\/\/127.0.0.1:6333&quot;<br \/>\nheaders = {&quot;api-key&quot;: os.environ[&quot;QDRANT_API_KEY&quot;]}<br \/>\n<br \/>\ndef get_json(path):<br \/>\n&nbsp; &nbsp; request = urllib.request.Request(<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; base_url + path,<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; headers=headers,<br \/>\n&nbsp; &nbsp; )<br \/>\n&nbsp; &nbsp; with urllib.request.urlopen(request, timeout=10) as response:<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; return json.load(response)<br \/>\n<br \/>\ncollection_list = get_json(&quot;\/collections&quot;)<br \/>\ncollections = collection_list.get(&quot;result&quot;, {}).get(&quot;collections&quot;, [])<br \/>\n<br \/>\nfor item in sorted(collections, key=lambda value: value[&quot;name&quot;]):<br \/>\n&nbsp; &nbsp; name = item[&quot;name&quot;]<br \/>\n&nbsp; &nbsp; encoded_name = urllib.parse.quote(name, safe=&quot;&quot;)<br \/>\n&nbsp; &nbsp; result = get_json(f&quot;\/collections\/{encoded_name}&quot;).get(&quot;result&quot;, {})<br \/>\n<br \/>\n&nbsp; &nbsp; summary = {<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &quot;name&quot;: name,<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &quot;status&quot;: result.get(&quot;status&quot;),<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &quot;optimizer_status&quot;: result.get(&quot;optimizer_status&quot;),<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &quot;points_count&quot;: result.get(&quot;points_count&quot;),<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &quot;indexed_vectors_count&quot;: result.get(&quot;indexed_vectors_count&quot;),<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &quot;segments_count&quot;: result.get(&quot;segments_count&quot;),<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &quot;vectors&quot;: (<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; result.get(&quot;config&quot;, {})<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .get(&quot;params&quot;, {})<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .get(&quot;vectors&quot;)<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; ),<br \/>\n&nbsp; &nbsp; }<br \/>\n<br \/>\n&nbsp; &nbsp; print(json.dumps(summary, ensure_ascii=False, indent=2))<br \/>\nPY<br \/>\n)<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>points_count \u304c 0 \u3088\u308a\u5927\u304d\u3051\u308c\u3070\u3001\u305d\u306e\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306b\u4e00\u3064\u4ee5\u4e0a\u306e\u70b9\u304c\u4fdd\u5b58\u3055\u308c\u3066\u3044\u308b\u3002\u77ed\u3044 Markdown \u6587\u66f8\u3067\u3042\u3063\u3066\u3082\u3001\u898b\u51fa\u3057\u5206\u5272\u3001\u30c1\u30e3\u30f3\u30af\u5206\u5272\u3001\u4ed8\u968f\u60c5\u5831\u306e\u7ba1\u7406\u65b9\u6cd5\u306b\u3088\u3063\u3066\u8907\u6570\u306e\u70b9\u304c\u4f5c\u6210\u3055\u308c\u308b\u5834\u5408\u304c\u3042\u308b\u3002\u539f\u6587\u306e\u6bb5\u843d\u6570\u3068\u70b9\u6570\u304c\u4e00\u81f4\u3059\u308b\u3053\u3068\u3092\u524d\u63d0\u306b\u3057\u3066\u306f\u306a\u3089\u306a\u3044\u3002<\/p>\n<p>indexed_vectors_count \u306f\u3001\u691c\u7d22\u7528\u7d22\u5f15\u3078\u7d44\u307f\u8fbc\u307e\u308c\u305f\u30d9\u30af\u30c8\u30eb\u6570\u3092\u793a\u3059\u3002\u5c0f\u898f\u6a21\u306a\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u70b9\u304c\u5b58\u5728\u3057\u3066\u3044\u3066\u3082\u7d22\u5f15\u5316\u306e\u95be\u5024\u306b\u9054\u305b\u305a\u3001\u5168\u8d70\u67fb\u306b\u3088\u3063\u3066\u691c\u7d22\u3055\u308c\u308b\u5834\u5408\u304c\u3042\u308b<a href=\"#ref31\">[31]<\/a>\u3002\u305d\u306e\u305f\u3081\u3001indexed_vectors_count \u304c points_count \u3088\u308a\u5c11\u306a\u3044\u3053\u3068\u3084\u3001\u691c\u8a3c\u7528\u306e\u5c0f\u3055\u306a\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3067 0 \u306b\u306a\u308b\u3053\u3068\u3060\u3051\u3092\u4fdd\u5b58\u5931\u6557\u3068\u306f\u5224\u5b9a\u3057\u306a\u3044\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u9805\u76ee<\/th>\n<th>\u793a\u3059\u72b6\u614b<\/th>\n<th>\u5224\u5b9a\u6642\u306e\u6ce8\u610f<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>status<\/td>\n<td>\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u5168\u4f53\u306e\u52d5\u4f5c\u72b6\u614b\u3092\u793a\u3059\u3002<\/td>\n<td>\u70b9\u306e\u5185\u5bb9\u3084\u691c\u7d22\u7d50\u679c\u306e\u59a5\u5f53\u6027\u307e\u3067\u306f\u78ba\u8a8d\u3067\u304d\u306a\u3044\u3002<\/td>\n<\/tr>\n<tr>\n<td>optimizer_status<\/td>\n<td>\u4fdd\u5b58\u9818\u57df\u3084\u7d22\u5f15\u306e\u6700\u9069\u5316\u51e6\u7406\u306e\u72b6\u614b\u3092\u793a\u3059\u3002<\/td>\n<td>\u51e6\u7406\u4e2d\u3067\u3042\u3063\u3066\u3082\u70b9\u306e\u66f8\u304d\u8fbc\u307f\u81ea\u4f53\u306f\u5b8c\u4e86\u3057\u3066\u3044\u308b\u5834\u5408\u304c\u3042\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>points_count<\/td>\n<td>\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306b\u4fdd\u5b58\u3055\u308c\u305f\u70b9\u6570\u3092\u793a\u3059\u3002<\/td>\n<td>\u4e00\u70b9\u304c\u4e00\u6bb5\u843d\u307e\u305f\u306f\u4e00\u30d5\u30a1\u30a4\u30eb\u306b\u5bfe\u5fdc\u3059\u308b\u3068\u306f\u9650\u3089\u306a\u3044\u3002<\/td>\n<\/tr>\n<tr>\n<td>indexed_vectors_count<\/td>\n<td>\u691c\u7d22\u7528\u7d22\u5f15\u3078\u7d44\u307f\u8fbc\u307e\u308c\u305f\u30d9\u30af\u30c8\u30eb\u6570\u3092\u793a\u3059\u3002<\/td>\n<td>\u5c0f\u898f\u6a21\u306a\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3067\u306f\u70b9\u6570\u3088\u308a\u5c11\u306a\u304f\u3066\u3082\u76f4\u3061\u306b\u7570\u5e38\u3067\u306f\u306a\u3044\u3002<\/td>\n<\/tr>\n<tr>\n<td>segments_count<\/td>\n<td>\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u5185\u90e8\u306e\u4fdd\u5b58\u533a\u753b\u6570\u3092\u793a\u3059\u3002<\/td>\n<td>\u6587\u66f8\u6570\u3084\u30c1\u30e3\u30f3\u30af\u6570\u3068\u76f4\u63a5\u5bfe\u5fdc\u3059\u308b\u5024\u3067\u306f\u306a\u3044\u3002<\/td>\n<\/tr>\n<tr>\n<td>vectors<\/td>\n<td>\u30d9\u30af\u30c8\u30eb\u306e\u6b21\u5143\u6570\u3068\u8ddd\u96e2\u5c3a\u5ea6\u3092\u793a\u3059\u3002<\/td>\n<td>\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u306e\u5b9f\u969b\u306e\u51fa\u529b\u6b21\u5143\u3068\u4e00\u81f4\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u5bfe\u8c61\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3092\u7279\u5b9a\u3057\u305f\u3089\u3001\u540d\u524d\u3092 COLLECTION \u3078\u8a2d\u5b9a\u3057\u3001\u8a73\u7d30\u3092\u500b\u5225\u306b\u4fdd\u5b58\u3059\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">COLLECTION='\u5b9f\u969b\u306e\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u540d'<br \/>\n<br \/>\n(<br \/>\n&nbsp; set -a<br \/>\n&nbsp; . .\/.env<br \/>\n&nbsp; set +a<br \/>\n<br \/>\n&nbsp; curl -fsS \\<br \/>\n&nbsp; &nbsp; -H &quot;api-key: ${QDRANT_API_KEY}&quot; \\<br \/>\n&nbsp; &nbsp; &quot;http:\/\/127.0.0.1:6333\/collections\/${COLLECTION}&quot; \\<br \/>\n&nbsp; &nbsp; &gt; \/tmp\/qdrant-collection-info.json<br \/>\n)<br \/>\n<br \/>\npython3 -m json.tool \\<br \/>\n&nbsp; &lt; \/tmp\/qdrant-collection-info.json<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u540d\u306b\u7a7a\u767d\u3084 URL \u4e0a\u3067\u7279\u5225\u306a\u610f\u5473\u3092\u6301\u3064\u6587\u5b57\u304c\u542b\u307e\u308c\u308b\u5834\u5408\u306f\u3001\u7ba1\u7406\u753b\u9762\u304b\u3089\u78ba\u8a8d\u3059\u308b\u304b\u3001Python \u306e urllib.parse.quote \u3067\u7b26\u53f7\u5316\u3057\u3066\u8981\u6c42\u3059\u308b\u3002\u901a\u5e38\u306e Open WebUI \u7531\u6765\u306e\u540d\u79f0\u3067\u306f\u554f\u984c\u306b\u306a\u308a\u306b\u304f\u3044\u304c\u3001API \u64cd\u4f5c\u3067\u306f\u540d\u79f0\u3092\u7121\u52a0\u5de5\u3067\u5b89\u5168\u3068\u4eee\u5b9a\u3057\u306a\u3044\u3002<\/p>\n<h3>7.3 \u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u306e\u51fa\u529b\u6b21\u5143\u3068\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u8a2d\u5b9a\u3092\u7167\u5408\u3059\u308b<\/h3>\n<p>Qdrant \u306b\u70b9\u304c\u4fdd\u5b58\u3055\u308c\u3066\u3044\u3066\u3082\u3001\u4f7f\u7528\u3057\u305f\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u3068\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306e\u30d9\u30af\u30c8\u30eb\u6b21\u5143\u304c\u4e00\u81f4\u3057\u3066\u3044\u306a\u3051\u308c\u3070\u3001\u540c\u3058\u7a7a\u9593\u3067\u8cea\u554f\u3092\u691c\u7d22\u3067\u304d\u306a\u3044\u3002\u7b2c 3 \u7ae0\u3067\u306f embeddinggemma \u306e\u57cb\u3081\u8fbc\u307f API \u304c\u8fd4\u3059\u914d\u5217\u306e\u6b21\u5143\u3092\u78ba\u8a8d\u3057\u305f\u3002\u3053\u3053\u3067\u306f\u3001\u73fe\u5728\u306e Ollama \u306e\u51fa\u529b\u3068 Qdrant \u306e\u8a2d\u5b9a\u3092\u540c\u3058\u51e6\u7406\u5185\u3067\u6bd4\u8f03\u3059\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/>36<br \/>37<br \/>38<br \/>39<br \/>40<br \/>41<br \/>42<br \/>43<br \/>44<br \/>45<br \/>46<br \/>47<br \/>48<br \/>49<br \/>50<br \/>51<br \/>52<br \/>53<br \/>54<br \/>55<br \/>56<br \/>57<br \/>58<br \/>59<br \/>60<br \/>61<br \/>62<br \/>63<br \/>64<br \/>65<br \/>66<br \/>67<br \/>68<br \/>69<br \/>70<br \/>71<br \/>72<br \/>73<br \/>74<br \/>75<br \/>76<br \/>77<br \/>78<br \/>79<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">COLLECTION='\u5b9f\u969b\u306e\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u540d'<br \/>\n<br \/>\n(<br \/>\n&nbsp; set -a<br \/>\n&nbsp; . .\/.env<br \/>\n&nbsp; set +a<br \/>\n&nbsp; export COLLECTION<br \/>\n<br \/>\n&nbsp; python3 - &lt;&lt;'PY'<br \/>\nimport json<br \/>\nimport os<br \/>\nimport urllib.parse<br \/>\nimport urllib.request<br \/>\n<br \/>\ncollection = os.environ[&quot;COLLECTION&quot;]<br \/>\nqdrant_key = os.environ[&quot;QDRANT_API_KEY&quot;]<br \/>\nembedding_model = os.environ[&quot;EMBEDDING_MODEL&quot;]<br \/>\n<br \/>\nembed_request = urllib.request.Request(<br \/>\n&nbsp; &nbsp; &quot;http:\/\/127.0.0.1:11434\/api\/embed&quot;,<br \/>\n&nbsp; &nbsp; data=json.dumps({<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &quot;model&quot;: embedding_model,<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &quot;input&quot;: &quot;Argolet \u306e\u672c\u756a\u4fdd\u5b88\u30dd\u30fc\u30c8\u3092\u78ba\u8a8d\u3059\u308b&quot;,<br \/>\n&nbsp; &nbsp; }).encode(&quot;utf-8&quot;),<br \/>\n&nbsp; &nbsp; headers={&quot;Content-Type&quot;: &quot;application\/json&quot;},<br \/>\n&nbsp; &nbsp; method=&quot;POST&quot;,<br \/>\n)<br \/>\n<br \/>\nwith urllib.request.urlopen(embed_request, timeout=60) as response:<br \/>\n&nbsp; &nbsp; embed_data = json.load(response)<br \/>\n<br \/>\nembeddings = embed_data.get(&quot;embeddings&quot;, [])<br \/>\nif len(embeddings) != 1:<br \/>\n&nbsp; &nbsp; raise SystemExit(<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; f&quot;Unexpected number of embedding vectors: {len(embeddings)}&quot;<br \/>\n&nbsp; &nbsp; )<br \/>\n<br \/>\nembedding_size = len(embeddings[0])<br \/>\n<br \/>\nencoded_collection = urllib.parse.quote(collection, safe=&quot;&quot;)<br \/>\ncollection_request = urllib.request.Request(<br \/>\n&nbsp; &nbsp; f&quot;http:\/\/127.0.0.1:6333\/collections\/{encoded_collection}&quot;,<br \/>\n&nbsp; &nbsp; headers={&quot;api-key&quot;: qdrant_key},<br \/>\n)<br \/>\n<br \/>\nwith urllib.request.urlopen(collection_request, timeout=10) as response:<br \/>\n&nbsp; &nbsp; collection_data = json.load(response)<br \/>\n<br \/>\nvectors = (<br \/>\n&nbsp; &nbsp; collection_data.get(&quot;result&quot;, {})<br \/>\n&nbsp; &nbsp; .get(&quot;config&quot;, {})<br \/>\n&nbsp; &nbsp; .get(&quot;params&quot;, {})<br \/>\n&nbsp; &nbsp; .get(&quot;vectors&quot;)<br \/>\n)<br \/>\n<br \/>\nif not isinstance(vectors, dict):<br \/>\n&nbsp; &nbsp; raise SystemExit(&quot;The Qdrant vector configuration was not found&quot;)<br \/>\n<br \/>\nif &quot;size&quot; in vectors:<br \/>\n&nbsp; &nbsp; qdrant_sizes = {&quot;default&quot;: vectors[&quot;size&quot;]}<br \/>\nelse:<br \/>\n&nbsp; &nbsp; qdrant_sizes = {<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; name: settings.get(&quot;size&quot;)<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; for name, settings in vectors.items()<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; if isinstance(settings, dict)<br \/>\n&nbsp; &nbsp; }<br \/>\n<br \/>\nprint(f&quot;embedding_model={embedding_model}&quot;)<br \/>\nprint(f&quot;embedding_size={embedding_size}&quot;)<br \/>\nprint(f&quot;qdrant_vector_sizes={qdrant_sizes}&quot;)<br \/>\n<br \/>\nif embedding_size not in qdrant_sizes.values():<br \/>\n&nbsp; &nbsp; raise SystemExit(<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &quot;The embedding output size does not match the Qdrant collection&quot;<br \/>\n&nbsp; &nbsp; )<br \/>\n<br \/>\nprint(&quot;dimension_match=True&quot;)<br \/>\nPY<br \/>\n)<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>dimension_match=True \u306b\u306a\u308c\u3070\u3001\u73fe\u5728\u306e embeddinggemma \u304c\u8fd4\u3059\u6b21\u5143\u6570\u3068\u3001\u5bfe\u8c61\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306e\u5c11\u306a\u304f\u3068\u3082\u4e00\u3064\u306e\u30d9\u30af\u30c8\u30eb\u8a2d\u5b9a\u304c\u4e00\u81f4\u3057\u3066\u3044\u308b\u3002\u305f\u3060\u3057\u3001\u6b21\u5143\u6570\u306e\u4e00\u81f4\u306f\u5fc5\u8981\u6761\u4ef6\u3067\u3042\u308a\u3001\u540c\u3058\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u3092\u4f7f\u7528\u3057\u305f\u3053\u3068\u306e\u5341\u5206\u6761\u4ef6\u3067\u306f\u306a\u3044\u3002<\/p>\n<p>\u7570\u306a\u308b\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u304c\u5076\u7136\u540c\u3058\u6b21\u5143\u6570\u3092\u8fd4\u3059\u5834\u5408\u3067\u3082\u3001\u6587\u7ae0\u3092\u914d\u7f6e\u3059\u308b\u610f\u5473\u7a7a\u9593\u306f\u4e00\u81f4\u3057\u306a\u3044\u3002Qdrant \u306f\u914d\u5217\u306e\u9577\u3055\u3092\u691c\u8a3c\u3067\u304d\u308b\u304c\u3001\u305d\u306e\u6570\u5024\u304c\u3069\u306e\u30e2\u30c7\u30eb\u304b\u3089\u751f\u6210\u3055\u308c\u305f\u304b\u307e\u3067\u306f\u5224\u5b9a\u3057\u306a\u3044\u3002\u30e2\u30c7\u30eb\u540d\u3001\u7248\u3001\u767b\u9332\u65e5\u6642\u3092\u69cb\u6210\u8a18\u9332\u3068\u3057\u3066\u4fdd\u6301\u3057\u3001\u5909\u66f4\u5f8c\u306b\u306f\u65e2\u5b58\u6587\u66f8\u3092\u518d\u7d22\u5f15\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u78ba\u8a8d\u7d50\u679c<\/th>\n<th>\u5224\u5b9a<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u6b21\u5143\u6570\u304c\u4e00\u81f4\u3057\u3001\u767b\u9332\u6642\u304b\u3089\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u3092\u5909\u66f4\u3057\u3066\u3044\u306a\u3044<\/td>\n<td>\u6587\u66f8\u30d9\u30af\u30c8\u30eb\u3068\u8cea\u554f\u30d9\u30af\u30c8\u30eb\u3092\u540c\u3058\u7a7a\u9593\u3067\u6bd4\u8f03\u3067\u304d\u308b\u53ef\u80fd\u6027\u304c\u9ad8\u3044\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u6b21\u5143\u6570\u304c\u4e00\u81f4\u3059\u308b\u304c\u3001\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u3092\u5909\u66f4\u3057\u305f<\/td>\n<td>\u914d\u5217\u5f62\u72b6\u306f\u4e00\u81f4\u3057\u3066\u3082\u610f\u5473\u7a7a\u9593\u306f\u4e92\u63db\u3067\u306f\u306a\u3044\u305f\u3081\u3001\u518d\u7d22\u5f15\u304c\u5fc5\u8981\u3067\u3042\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u6b21\u5143\u6570\u304c\u4e00\u81f4\u3057\u306a\u3044<\/td>\n<td>\u5bfe\u8c61\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306e\u8aa4\u9078\u629e\u3001\u65e7\u30e2\u30c7\u30eb\u306e\u6b8b\u5b58\u3001\u518d\u7d22\u5f15\u672a\u5b9f\u65bd\u3092\u7591\u3046\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u57cb\u3081\u8fbc\u307f API \u304c\u5931\u6557\u3059\u308b<\/td>\n<td>Qdrant \u3092\u8abf\u3079\u308b\u524d\u306b\u3001Ollama \u3068\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u306e\u72b6\u614b\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>7.4 \u70b9\u306e\u4ed8\u968f\u60c5\u5831\u304b\u3089\u6587\u66f8\u672c\u6587\u3092\u78ba\u8a8d\u3059\u308b<\/h3>\n<p>\u70b9\u6570\u3068\u6b21\u5143\u6570\u304c\u6b63\u3057\u304f\u3066\u3082\u3001\u539f\u6587\u304c\u7a7a\u3067\u3042\u3063\u305f\u308a\u3001\u5fc5\u8981\u306a\u6587\u5b57\u5217\u304c\u62bd\u51fa\u3055\u308c\u3066\u3044\u306a\u304b\u3063\u305f\u308a\u3059\u308c\u3070\u3001\u691c\u7d22\u53ef\u80fd\u306a\u6839\u62e0\u306b\u306f\u306a\u3089\u306a\u3044\u3002\u5bfe\u8c61\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u304b\u3089\u70b9\u3092\u53d6\u5f97\u3057\u3001\u30d9\u30af\u30c8\u30eb\u672c\u4f53\u3092\u9664\u5916\u3057\u305f\u3046\u3048\u3067\u3001JSON \u306e\u4ed8\u968f\u60c5\u5831\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">COLLECTION='\u5b9f\u969b\u306e\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u540d'<br \/>\n<br \/>\n(<br \/>\n&nbsp; set -a<br \/>\n&nbsp; . .\/.env<br \/>\n&nbsp; set +a<br \/>\n<br \/>\n&nbsp; curl -fsS \\<br \/>\n&nbsp; &nbsp; -X POST \\<br \/>\n&nbsp; &nbsp; -H &quot;api-key: ${QDRANT_API_KEY}&quot; \\<br \/>\n&nbsp; &nbsp; -H 'Content-Type: application\/json' \\<br \/>\n&nbsp; &nbsp; -d '{<br \/>\n&nbsp; &nbsp; &nbsp; &quot;limit&quot;: 100,<br \/>\n&nbsp; &nbsp; &nbsp; &quot;with_payload&quot;: true,<br \/>\n&nbsp; &nbsp; &nbsp; &quot;with_vector&quot;: false<br \/>\n&nbsp; &nbsp; }' \\<br \/>\n&nbsp; &nbsp; &quot;http:\/\/127.0.0.1:6333\/collections\/${COLLECTION}\/points\/scroll&quot; \\<br \/>\n&nbsp; &nbsp; &gt; \/tmp\/qdrant-points.json<br \/>\n)<br \/>\n<br \/>\npython3 -m json.tool \\<br \/>\n&nbsp; &lt; \/tmp\/qdrant-points.json<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>with_vector \u3092 false \u306b\u3059\u308b\u3053\u3068\u3067\u3001\u9577\u3044\u6570\u5024\u914d\u5217\u3092\u8868\u793a\u305b\u305a\u3001\u70b9\u306e\u8b58\u5225\u5b50\u3068\u4ed8\u968f\u60c5\u5831\u3060\u3051\u3092\u78ba\u8a8d\u3067\u304d\u308b\u3002\u691c\u8a3c\u7528\u6587\u66f8\u306f\u77ed\u3044\u305f\u3081 100 \u4ef6\u3092\u4e0a\u9650\u3068\u3057\u3066\u3044\u308b\u304c\u3001\u65e2\u5b58\u6587\u66f8\u3092\u591a\u6570\u542b\u3080\u5171\u6709\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u4e00\u56de\u306e\u53d6\u5f97\u3060\u3051\u3067\u5bfe\u8c61\u70b9\u304c\u542b\u307e\u308c\u306a\u3044\u5834\u5408\u304c\u3042\u308b\u3002\u305d\u306e\u5834\u5408\u306f Qdrant \u306e\u7ba1\u7406\u753b\u9762\u3001\u4ed8\u968f\u60c5\u5831\u306b\u3088\u308b\u7d5e\u308a\u8fbc\u307f\u3001\u307e\u305f\u306f next_page_offset \u3092\u4f7f\u3063\u305f\u7d9a\u304d\u306e\u53d6\u5f97\u304c\u5fc5\u8981\u306b\u306a\u308b\u3002<\/p>\n<p>\u53d6\u5f97\u3057\u305f JSON \u5168\u4f53\u304b\u3089\u3001\u691c\u8a3c\u6587\u66f8\u306b\u542b\u3081\u305f\u56fa\u6709\u6587\u5b57\u5217\u3092\u518d\u5e30\u7684\u306b\u691c\u7d22\u3059\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/>36<br \/>37<br \/>38<br \/>39<br \/>40<br \/>41<br \/>42<br \/>43<br \/>44<br \/>45<br \/>46<br \/>47<br \/>48<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">python3 - &lt;&lt;'PY'<br \/>\nimport json<br \/>\nfrom pathlib import Path<br \/>\n<br \/>\npath = Path(&quot;\/tmp\/qdrant-points.json&quot;)<br \/>\ndata = json.loads(path.read_text(encoding=&quot;utf-8&quot;))<br \/>\n<br \/>\ntargets = (<br \/>\n&nbsp; &nbsp; &quot;47821&quot;,<br \/>\n&nbsp; &nbsp; &quot;47822&quot;,<br \/>\n&nbsp; &nbsp; &quot;Lapis-7&quot;,<br \/>\n&nbsp; &nbsp; &quot;Rho-Blue&quot;,<br \/>\n&nbsp; &nbsp; &quot;\u958b\u767a\u8cac\u4efb\u8005&quot;,<br \/>\n)<br \/>\n<br \/>\nmatches = {target: [] for target in targets}<br \/>\n<br \/>\ndef walk(value, location=&quot;$&quot;):<br \/>\n&nbsp; &nbsp; if isinstance(value, dict):<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; for key, child in value.items():<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; walk(child, f&quot;{location}.{key}&quot;)<br \/>\n&nbsp; &nbsp; elif isinstance(value, list):<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; for index, child in enumerate(value):<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; walk(child, f&quot;{location}[{index}]&quot;)<br \/>\n&nbsp; &nbsp; elif isinstance(value, str):<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; for target in targets:<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if target in value:<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; matches[target].append(location)<br \/>\n<br \/>\nwalk(data)<br \/>\n<br \/>\nfailed = False<br \/>\n<br \/>\nfor target in targets:<br \/>\n&nbsp; &nbsp; locations = matches[target]<br \/>\n&nbsp; &nbsp; print(f&quot;{target}:&quot;)<br \/>\n&nbsp; &nbsp; if locations:<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; for location in locations:<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; print(f&quot; &nbsp;{location}&quot;)<br \/>\n&nbsp; &nbsp; else:<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; print(&quot; &nbsp;not found&quot;)<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; failed = True<br \/>\n<br \/>\nif failed:<br \/>\n&nbsp; &nbsp; raise SystemExit(<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &quot;One or more verification strings were not found in the retrieved payloads&quot;<br \/>\n&nbsp; &nbsp; )<br \/>\nPY<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>\u3059\u3079\u3066\u306e\u56fa\u6709\u6587\u5b57\u5217\u304c\u898b\u3064\u304b\u308c\u3070\u3001\u5c11\u306a\u304f\u3068\u3082\u53d6\u5f97\u3057\u305f\u70b9\u306e\u4ed8\u968f\u60c5\u5831\u306b\u3001\u691c\u8a3c\u6587\u66f8\u306e\u4e3b\u8981\u90e8\u5206\u304c\u6587\u5b57\u5217\u3068\u3057\u3066\u4fdd\u5b58\u3055\u308c\u3066\u3044\u308b\u3002\u3053\u308c\u306b\u3088\u308a\u3001\u30d5\u30a1\u30a4\u30eb\u540d\u3060\u3051\u304c\u767b\u9332\u3055\u308c\u3001\u672c\u6587\u304c\u7a7a\u306b\u306a\u3063\u3066\u3044\u308b\u72b6\u614b\u3092\u9664\u5916\u3067\u304d\u308b\u3002<\/p>\n<p>\u305f\u3060\u3057\u3001\u6587\u5b57\u5217\u304c\u5b58\u5728\u3059\u308b\u3053\u3068\u306f\u3001\u8cea\u554f\u6642\u306b\u305d\u306e\u70b9\u304c\u691c\u7d22\u4e0a\u4f4d\u3078\u5165\u308b\u3053\u3068\u3092\u4fdd\u8a3c\u3057\u306a\u3044\u3002\u4ed8\u968f\u60c5\u5831\u306e\u4fdd\u5b58\u306f\u767b\u9332\u7d4c\u8def\u306e\u78ba\u8a8d\u3067\u3042\u308a\u3001\u8cea\u554f\u30d9\u30af\u30c8\u30eb\u3068\u306e\u985e\u4f3c\u691c\u7d22\u306f\u6b21\u306e\u6bb5\u968e\u3067\u3042\u308b\u3002\u672c\u6587\u304c\u4fdd\u5b58\u3055\u308c\u3066\u3044\u308b\u306e\u306b\u56de\u7b54\u3067\u304d\u306a\u3044\u5834\u5408\u306f\u3001\u6587\u5b57\u62bd\u51fa\u3067\u306f\u306a\u304f\u3001\u30c1\u30e3\u30f3\u30af\u5883\u754c\u3001\u691c\u7d22\u9806\u4f4d\u3001Knowledge \u306e\u63a5\u7d9a\u3001\u751f\u6210\u7528 LLM \u3078\u306e\u6295\u5165\u3092\u8abf\u3079\u308b\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u78ba\u8a8d\u3057\u305f\u72b6\u614b<\/th>\n<th>\u6210\u7acb\u3057\u305f\u3053\u3068<\/th>\n<th>\u307e\u3060\u6210\u7acb\u3092\u78ba\u8a8d\u3057\u3066\u3044\u306a\u3044\u3053\u3068<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u70b9\u6570\u304c 0 \u3088\u308a\u5927\u304d\u3044<\/td>\n<td>\u4e00\u3064\u4ee5\u4e0a\u306e\u70b9\u304c Qdrant \u3078\u4fdd\u5b58\u3055\u308c\u305f\u3002<\/td>\n<td>\u70b9\u306b\u5fc5\u8981\u306a\u672c\u6587\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u304b\u306f\u5206\u304b\u3089\u306a\u3044\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u4ed8\u968f\u60c5\u5831\u306b 47821 \u304c\u3042\u308b<\/td>\n<td>\u672c\u756a\u30dd\u30fc\u30c8\u306e\u6587\u5b57\u5217\u304c\u4fdd\u5b58\u3055\u308c\u305f\u3002<\/td>\n<td>\u672c\u756a\u30dd\u30fc\u30c8\u306e\u8cea\u554f\u3067\u305d\u306e\u70b9\u304c\u53d6\u5f97\u3055\u308c\u308b\u304b\u306f\u5206\u304b\u3089\u306a\u3044\u3002<\/td>\n<\/tr>\n<tr>\n<td>47821 \u3068 47822 \u304c\u540c\u3058\u70b9\u306b\u3042\u308b<\/td>\n<td>\u672c\u756a\u3068\u958b\u767a\u306e\u5bfe\u7167\u60c5\u5831\u304c\u540c\u3058\u30c1\u30e3\u30f3\u30af\u306b\u542b\u307e\u308c\u308b\u3002<\/td>\n<td>\u751f\u6210\u7528 LLM \u304c\u4e8c\u3064\u306e\u5024\u3092\u6b63\u3057\u304f\u533a\u5225\u3067\u304d\u308b\u304b\u306f\u5206\u304b\u3089\u306a\u3044\u3002<\/td>\n<\/tr>\n<tr>\n<td>Rho-Blue \u3068 15 \u5206\u9593\u306e\u6761\u4ef6\u304c\u540c\u3058\u70b9\u306b\u3042\u308b<\/td>\n<td>\u5fa9\u65e7\u6761\u4ef6\u304c\u4e00\u3064\u306e\u6839\u62e0\u5358\u4f4d\u3068\u3057\u3066\u4fdd\u5b58\u3055\u308c\u305f\u3002<\/td>\n<td>\u8a00\u3044\u63db\u3048\u305f\u8cea\u554f\u3067\u691c\u7d22\u3067\u304d\u308b\u304b\u306f\u5206\u304b\u3089\u306a\u3044\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u56fa\u6709\u6587\u5b57\u5217\u304c\u898b\u3064\u304b\u3089\u306a\u3044<\/td>\n<td>\u53d6\u5f97\u7bc4\u56f2\u5916\u3001\u5225\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3001\u62bd\u51fa\u5931\u6557\u3001\u4fdd\u5b58\u5931\u6557\u306e\u3044\u305a\u308c\u304b\u3067\u3042\u308b\u3002<\/td>\n<td>\u56de\u7b54\u751f\u6210\u3092\u8a66\u3059\u524d\u306b\u4fdd\u5b58\u5bfe\u8c61\u3092\u7279\u5b9a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>7.5 Open WebUI \u3068 Qdrant \u306e\u30ed\u30b0\u3092\u4e21\u5074\u304b\u3089\u78ba\u8a8d\u3059\u308b<\/h3>\n<p>\u901a\u5e38\u5bfe\u8a71\u304c\u6210\u529f\u3057\u3066\u3044\u3066\u3082\u3001\u6587\u66f8\u767b\u9332\u6642\u3060\u3051\u969c\u5bb3\u304c\u767a\u751f\u3059\u308b\u5834\u5408\u304c\u3042\u308b\u3002\u901a\u5e38\u5bfe\u8a71\u306f\u751f\u6210\u7528 LLM \u3060\u3051\u3067\u6210\u7acb\u3059\u308b\u304c\u3001\u6587\u66f8\u767b\u9332\u3067\u306f\u6587\u5b57\u62bd\u51fa\u3001\u30c1\u30e3\u30f3\u30af\u5206\u5272\u3001\u57cb\u3081\u8fbc\u307f\u751f\u6210\u3001Qdrant \u8a8d\u8a3c\u3001\u70b9\u306e\u4fdd\u5b58\u304c\u8ffd\u52a0\u3055\u308c\u308b\u305f\u3081\u3067\u3042\u308b\u3002<\/p>\n<p>\u767b\u9332\u64cd\u4f5c\u3092\u884c\u3063\u305f\u6642\u523b\u306b\u8fd1\u3044\u30ed\u30b0\u3092\u3001Open WebUI \u3068 Qdrant \u306e\u4e21\u65b9\u304b\u3089\u78ba\u8a8d\u3059\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">docker compose logs --since=15m open-webui |<br \/>\n&nbsp; grep -Ei 'document|chunk|embedding|qdrant|retriev|error|exception|traceback' |<br \/>\n&nbsp; tail -n 200 || true<br \/>\n<br \/>\ndocker compose logs --since=15m qdrant |<br \/>\n&nbsp; grep -Ei 'collection|point|request|error|warning|panic' |<br \/>\n&nbsp; tail -n 200 || true<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>grep \u306e\u691c\u7d22\u8a9e\u306f\u3001\u7248\u306b\u3088\u3063\u3066\u5909\u5316\u3059\u308b\u30ed\u30b0\u8868\u73fe\u3092\u5e83\u304f\u62fe\u3046\u305f\u3081\u306e\u3082\u306e\u3067\u3042\u308a\u3001\u7279\u5b9a\u306e\u6587\u5b57\u5217\u304c\u5fc5\u305a\u51fa\u529b\u3055\u308c\u308b\u3053\u3068\u3092\u524d\u63d0\u306b\u3057\u3066\u3044\u306a\u3044\u3002\u8a72\u5f53\u884c\u304c\u898b\u3064\u304b\u3089\u306a\u3044\u5834\u5408\u306f\u3001\u7d5e\u308a\u8fbc\u307f\u3092\u5916\u3057\u3066\u540c\u3058\u6642\u9593\u7bc4\u56f2\u306e\u30ed\u30b0\u5168\u4f53\u3092\u898b\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">docker compose logs --since=15m --timestamps open-webui |<br \/>\n&nbsp; tail -n 300<br \/>\n<br \/>\ndocker compose logs --since=15m --timestamps qdrant |<br \/>\n&nbsp; tail -n 300<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<table>\n<thead>\n<tr>\n<th>\u75c7\u72b6<\/th>\n<th>\u7591\u3046\u51e6\u7406<\/th>\n<th>\u78ba\u8a8d\u5bfe\u8c61<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u304c\u898b\u3064\u304b\u3089\u306a\u3044<\/td>\n<td>Open WebUI \u304b\u3089 Ollama \u3078\u306e\u57cb\u3081\u8fbc\u307f\u8981\u6c42<\/td>\n<td>RAG_EMBEDDING_MODEL\u3001ollama list\u3001Ollama API \u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>Ollama \u3078\u306e\u63a5\u7d9a\u3092\u62d2\u5426\u3055\u308c\u308b<\/td>\n<td>\u30b3\u30f3\u30c6\u30ca\u30fc\u304b\u3089\u30db\u30b9\u30c8\u3078\u306e\u901a\u4fe1<\/td>\n<td>OLLAMA_BASE_URL\u3001host.docker.internal\u300111434 \u756a\u30dd\u30fc\u30c8\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>Qdrant \u306e\u8a8d\u8a3c\u306b\u5931\u6557\u3059\u308b<\/td>\n<td>Open WebUI \u3068 Qdrant \u306e API \u9375<\/td>\n<td>\u4e21\u30b3\u30f3\u30c6\u30ca\u30fc\u3078\u540c\u3058 QDRANT_API_KEY \u304c\u6e21\u3055\u308c\u3066\u3044\u308b\u304b\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u30d9\u30af\u30c8\u30eb\u6b21\u5143\u306e\u4e0d\u4e00\u81f4\u304c\u51fa\u308b<\/td>\n<td>\u65e7\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3068\u73fe\u5728\u306e\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u306e\u7d44\u307f\u5408\u308f\u305b<\/td>\n<td>\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u306e\u5909\u66f4\u5c65\u6b74\u3001\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u8a2d\u5b9a\u3001\u518d\u7d22\u5f15\u306e\u5b9f\u65bd\u72b6\u614b\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u6587\u66f8\u767b\u9332\u51e6\u7406\u304c\u4f8b\u5916\u3067\u7d42\u4e86\u3059\u308b<\/td>\n<td>\u6587\u5b57\u62bd\u51fa\u3001\u5206\u5272\u3001\u57cb\u3081\u8fbc\u307f\u3001\u4fdd\u5b58\u306e\u3044\u305a\u308c\u304b<\/td>\n<td>\u6700\u521d\u306b\u767a\u751f\u3057\u305f\u4f8b\u5916\u3068\u3001\u305d\u306e\u76f4\u524d\u306e\u51e6\u7406\u540d\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>Open WebUI \u306f\u6210\u529f\u8868\u793a\u3060\u304c\u70b9\u6570\u304c\u5897\u3048\u306a\u3044<\/td>\n<td>\u4fdd\u5b58\u51e6\u7406\u307e\u305f\u306f\u78ba\u8a8d\u5bfe\u8c61\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306e\u9078\u629e<\/td>\n<td>\u8907\u6570\u5229\u7528\u8005\u30e2\u30fc\u30c9\u3001\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u4e00\u89a7\u3001Qdrant \u5074\u306e\u8981\u6c42\u30ed\u30b0\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u969c\u5bb3\u8abf\u67fb\u3067\u306f\u3001\u6700\u5f8c\u306b\u51fa\u529b\u3055\u308c\u305f\u4e00\u822c\u7684\u306a\u30a8\u30e9\u30fc\u884c\u3060\u3051\u3067\u306a\u304f\u3001\u6700\u521d\u306e\u4f8b\u5916\u3092\u78ba\u8a8d\u3059\u308b\u3002\u57cb\u3081\u8fbc\u307f\u751f\u6210\u306e\u5931\u6557\u304c\u539f\u56e0\u3067 Qdrant \u3078\u306e\u4fdd\u5b58\u51e6\u7406\u304c\u547c\u3070\u308c\u305a\u3001\u5f8c\u7d9a\u51e6\u7406\u304c\u5225\u306e\u7a7a\u5024\u30a8\u30e9\u30fc\u3092\u51fa\u3059\u5834\u5408\u304c\u3042\u308b\u3002\u672b\u5c3e\u306e\u75c7\u72b6\u3060\u3051\u3092\u4fee\u6b63\u3059\u308b\u3068\u3001\u6700\u521d\u306e\u539f\u56e0\u304c\u6b8b\u308b\u3002<\/p>\n<p>Open WebUI \u306e RAG \u969c\u5bb3\u306f\u3001\u6587\u66f8\u51e6\u7406\u3001\u57cb\u3081\u8fbc\u307f\u3001\u30d9\u30af\u30c8\u30eb\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3001\u691c\u7d22\u3001\u751f\u6210\u3078\u306e\u6295\u5165\u3092\u5206\u3051\u3066\u8abf\u3079\u308b\u5fc5\u8981\u304c\u3042\u308b<a href=\"#ref28\">[28]<\/a>\u3002\u30c1\u30e3\u30c3\u30c8\u753b\u9762\u306b\u8868\u793a\u3055\u308c\u305f\u6700\u7d42\u56de\u7b54\u3060\u3051\u3092\u898b\u3066\u3001Qdrant \u307e\u305f\u306f\u751f\u6210\u7528 LLM \u306e\u3069\u3061\u3089\u304c\u539f\u56e0\u304b\u3092\u6c7a\u3081\u3066\u306f\u306a\u3089\u306a\u3044\u3002<\/p>\n<h3>7.6 \u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u307e\u305f\u306f\u30c1\u30e3\u30f3\u30af\u6761\u4ef6\u3092\u5909\u66f4\u3057\u305f\u3089\u518d\u7d22\u5f15\u3059\u308b<\/h3>\n<p>\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u3092\u5909\u66f4\u3059\u308b\u3068\u3001\u6b21\u5143\u6570\u304c\u540c\u3058\u3067\u3042\u3063\u3066\u3082\u3001\u6587\u7ae0\u304c\u914d\u7f6e\u3055\u308c\u308b\u610f\u5473\u7a7a\u9593\u304c\u5909\u308f\u308b\u3002\u65e7\u30e2\u30c7\u30eb\u3067\u751f\u6210\u3057\u305f\u6587\u66f8\u30d9\u30af\u30c8\u30eb\u3068\u3001\u65b0\u3057\u3044\u30e2\u30c7\u30eb\u3067\u751f\u6210\u3057\u305f\u8cea\u554f\u30d9\u30af\u30c8\u30eb\u306f\u4e92\u63db\u3067\u306f\u306a\u3044\u3002Open WebUI \u3067\u3082\u3001\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u3092\u5909\u66f4\u3057\u305f\u5834\u5408\u306f\u3001Knowledge \u306b\u5c5e\u3059\u308b\u3059\u3079\u3066\u306e\u6587\u66f8\u3092\u518d\u7d22\u5f15\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b<a href=\"#ref32\">[32]<\/a>\u3002<\/p>\n<p>\u672c\u69cb\u6210\u3067\u306f ENABLE_PERSISTENT_CONFIG=False \u3068\u3057\u3066\u3044\u308b\u305f\u3081\u3001\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u306e\u5909\u66f4\u306f\u7ba1\u7406\u753b\u9762\u3060\u3051\u3067\u884c\u308f\u305a\u3001\u69cb\u6210\u306e\u6b63\u3067\u3042\u308b .env \u3092\u66f4\u65b0\u3059\u308b\u3002\u65b0\u3057\u3044\u30e2\u30c7\u30eb\u3092 Ollama \u3078\u53d6\u5f97\u3057\u305f\u5f8c\u3001Open WebUI \u30b3\u30f3\u30c6\u30ca\u30fc\u3092\u518d\u4f5c\u6210\u3057\u3001\u5b9f\u884c\u4e2d\u306e\u74b0\u5883\u5909\u6570\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/>36<br \/>37<br \/>38<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">NEW_EMBEDDING_MODEL='model-name'<br \/>\n<br \/>\nollama pull &quot;${NEW_EMBEDDING_MODEL}&quot;<br \/>\n<br \/>\nexport NEW_EMBEDDING_MODEL<br \/>\n<br \/>\npython3 - &lt;&lt;'PY'<br \/>\nimport os<br \/>\nfrom pathlib import Path<br \/>\n<br \/>\npath = Path(&quot;.env&quot;)<br \/>\ntext = path.read_text(encoding=&quot;utf-8&quot;).splitlines()<br \/>\nnew_model = os.environ[&quot;NEW_EMBEDDING_MODEL&quot;]<br \/>\n<br \/>\nupdated = []<br \/>\nfound = False<br \/>\n<br \/>\nfor line in text:<br \/>\n&nbsp; &nbsp; if line.startswith(&quot;EMBEDDING_MODEL=&quot;):<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; updated.append(f&quot;EMBEDDING_MODEL={new_model}&quot;)<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; found = True<br \/>\n&nbsp; &nbsp; else:<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; updated.append(line)<br \/>\n<br \/>\nif not found:<br \/>\n&nbsp; &nbsp; raise SystemExit(&quot;EMBEDDING_MODEL was not found in .env&quot;)<br \/>\n<br \/>\npath.write_text(&quot;\\n&quot;.join(updated) + &quot;\\n&quot;, encoding=&quot;utf-8&quot;)<br \/>\nPY<br \/>\n<br \/>\nunset NEW_EMBEDDING_MODEL<br \/>\nchmod 600 .env<br \/>\n<br \/>\ndocker compose config --quiet<br \/>\ndocker compose up -d --force-recreate open-webui<br \/>\n<br \/>\ndocker compose exec open-webui \\<br \/>\n&nbsp; printenv RAG_EMBEDDING_MODEL<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>model-name \u306f\u5b9f\u969b\u306b\u4f7f\u7528\u3059\u308b Ollama \u306e\u30e2\u30c7\u30eb\u30bf\u30b0\u3078\u7f6e\u304d\u63db\u3048\u308b\u3002\u6700\u5f8c\u306e\u30b3\u30de\u30f3\u30c9\u3067\u65b0\u3057\u3044\u30e2\u30c7\u30eb\u540d\u304c\u8868\u793a\u3055\u308c\u3066\u3082\u3001\u65e2\u5b58\u306e Qdrant \u306e\u70b9\u306f\u65e7\u30e2\u30c7\u30eb\u3067\u751f\u6210\u3055\u308c\u305f\u307e\u307e\u3067\u3042\u308b\u3002\u74b0\u5883\u5909\u6570\u306e\u5909\u66f4\u3068 Knowledge \u306e\u518d\u7d22\u5f15\u306f\u5225\u306e\u5de5\u7a0b\u3068\u3057\u3066\u5b9f\u884c\u3059\u308b\u3002<\/p>\n<p>Open WebUI \u306e\u7ba1\u7406\u753b\u9762\u3067 <strong>Admin Panel<\/strong>\u3001<strong>Settings<\/strong>\u3001<strong>Documents<\/strong> \u3092\u958b\u304d\u3001Knowledge \u306e\u518d\u7d22\u5f15\u3092\u5b9f\u884c\u3059\u308b\u3002\u518d\u7d22\u5f15\u3067\u306f\u3001\u65e2\u5b58\u306e Knowledge \u7528\u30d9\u30af\u30c8\u30eb\u3092\u524a\u9664\u3057\u3001\u73fe\u5728\u306e\u30c1\u30e3\u30f3\u30af\u30b5\u30a4\u30ba\u3001\u91cd\u8907\u91cf\u3001\u6587\u5b57\u5206\u5272\u65b9\u5f0f\u3067\u6587\u66f8\u3092\u518d\u5206\u5272\u3057\u3001\u73fe\u5728\u306e\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u3067\u30d9\u30af\u30c8\u30eb\u3092\u4f5c\u308a\u76f4\u3059<a href=\"#ref32\">[32]<\/a>\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">Knowledge \u306e\u518d\u7d22\u5f15<br \/>\n<br \/>\n\u65e2\u5b58\u306e Knowledge \u7528\u30d9\u30af\u30c8\u30eb\u3092\u524a\u9664<br \/>\n&nbsp; \u2193<br \/>\n\u4fdd\u5b58\u6e08\u307f\u306e\u539f\u6587\u3092\u8aad\u307f\u76f4\u3059<br \/>\n&nbsp; \u2193<br \/>\n\u73fe\u5728\u306e\u30c1\u30e3\u30f3\u30af\u6761\u4ef6\u3067\u518d\u5206\u5272<br \/>\n&nbsp; \u2193<br \/>\n\u73fe\u5728\u306e\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u3067\u518d\u5909\u63db<br \/>\n&nbsp; \u2193<br \/>\n\u65b0\u3057\u3044\u30d9\u30af\u30c8\u30eb\u3092 Qdrant \u3078\u4fdd\u5b58<br \/>\n&nbsp; \u2193<br \/>\n\u70b9\u6570\u3001\u6b21\u5143\u6570\u3001\u4ed8\u968f\u60c5\u5831\u3092\u518d\u78ba\u8a8d<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>\u518d\u7d22\u5f15\u306f\u65e2\u5b58\u306e\u691c\u7d22\u72b6\u614b\u3092\u66f8\u304d\u63db\u3048\u308b\u305f\u3081\u3001\u5b9f\u884c\u524d\u306b Open WebUI \u306e\u4fdd\u5b58\u9818\u57df\u3068 Qdrant \u306e\u4fdd\u5b58\u9818\u57df\u307e\u305f\u306f\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u3092\u9000\u907f\u3059\u308b\u3002\u51e6\u7406\u4e2d\u306b\u5931\u6557\u3059\u308b\u3068\u3001\u4e00\u6642\u7684\u306b Knowledge \u304b\u3089\u691c\u7d22\u3067\u304d\u306a\u3044\u72b6\u614b\u306b\u306a\u308b\u53ef\u80fd\u6027\u304c\u3042\u308b\u3002\u66f4\u65b0\u524d\u306e\u72b6\u614b\u3078\u623b\u305b\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u3066\u304b\u3089\u5b9f\u65bd\u3059\u308b\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u5909\u66f4\u5185\u5bb9<\/th>\n<th>\u65e2\u5b58 Knowledge \u3078\u306e\u5f71\u97ff<\/th>\n<th>\u5fc5\u8981\u306a\u64cd\u4f5c<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u751f\u6210\u7528 LLM \u3060\u3051\u3092\u5909\u66f4\u3059\u308b<\/td>\n<td>\u6587\u66f8\u30d9\u30af\u30c8\u30eb\u306e\u7a7a\u9593\u306f\u5909\u308f\u3089\u306a\u3044\u3002<\/td>\n<td>\u901a\u5e38\u306f Knowledge \u306e\u518d\u7d22\u5f15\u3092\u5fc5\u8981\u3068\u3057\u306a\u3044\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u3092\u5909\u66f4\u3059\u308b<\/td>\n<td>\u65e7\u30d9\u30af\u30c8\u30eb\u3068\u65b0\u3057\u3044\u8cea\u554f\u30d9\u30af\u30c8\u30eb\u306e\u610f\u5473\u7a7a\u9593\u304c\u4e92\u63db\u3067\u306a\u304f\u306a\u308b\u3002<\/td>\n<td>\u3059\u3079\u3066\u306e Knowledge \u6587\u66f8\u3092\u518d\u7d22\u5f15\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u30c1\u30e3\u30f3\u30af\u30b5\u30a4\u30ba\u307e\u305f\u306f\u91cd\u8907\u91cf\u3092\u5909\u66f4\u3059\u308b<\/td>\n<td>\u65e2\u5b58\u6587\u66f8\u306f\u4ee5\u524d\u306e\u5883\u754c\u3092\u7dad\u6301\u3057\u3001\u65b0\u898f\u6587\u66f8\u3060\u3051\u304c\u65b0\u8a2d\u5b9a\u3092\u4f7f\u7528\u3059\u308b\u3002<\/td>\n<td>\u691c\u7d22\u6761\u4ef6\u3092\u7d71\u4e00\u3059\u308b\u5834\u5408\u306f\u518d\u7d22\u5f15\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u6587\u5b57\u5206\u5272\u65b9\u5f0f\u3092\u5909\u66f4\u3059\u308b<\/td>\n<td>\u65e2\u5b58\u6587\u66f8\u306e\u30c1\u30e3\u30f3\u30af\u69cb\u9020\u306f\u5909\u5316\u3057\u306a\u3044\u3002<\/td>\n<td>\u65b0\u3057\u3044\u5206\u5272\u65b9\u5f0f\u3092\u9069\u7528\u3059\u308b\u306b\u306f\u518d\u7d22\u5f15\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u4f1a\u8a71\u3078\u76f4\u63a5\u6dfb\u4ed8\u3057\u305f\u30d5\u30a1\u30a4\u30eb\u304c\u3042\u308b<\/td>\n<td>Knowledge \u306e\u518d\u7d22\u5f15\u5bfe\u8c61\u306b\u306f\u542b\u307e\u308c\u306a\u3044\u3002<\/td>\n<td>\u65b0\u3057\u3044\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u3092\u9069\u7528\u3059\u308b\u306b\u306f\u30d5\u30a1\u30a4\u30eb\u3092\u518d\u5ea6\u6dfb\u4ed8\u3059\u308b\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Open WebUI \u306e Knowledge \u518d\u7d22\u5f15\u306f\u3001Knowledge \u306b\u6240\u5c5e\u3059\u308b\u6587\u66f8\u3092\u5bfe\u8c61\u3068\u3059\u308b\u3002\u4f1a\u8a71\u3078\u76f4\u63a5\u6dfb\u4ed8\u3057\u305f\u30d5\u30a1\u30a4\u30eb\u306e\u30d9\u30af\u30c8\u30eb\u306f\u540c\u3058\u64cd\u4f5c\u3067\u306f\u66f4\u65b0\u3055\u308c\u306a\u3044\u305f\u3081\u3001\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u5909\u66f4\u5f8c\u306b\u518d\u5229\u7528\u3059\u308b\u5834\u5408\u306f\u3001\u5404\u30d5\u30a1\u30a4\u30eb\u3092\u518d\u5ea6\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b<a href=\"#ref32\">[32]<\/a>\u3002<\/p>\n<p>\u518d\u7d22\u5f15\u5f8c\u306b\u306f\u3001\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u4e00\u89a7\u3001\u70b9\u6570\u3001\u30d9\u30af\u30c8\u30eb\u6b21\u5143\u3001\u4ed8\u968f\u60c5\u5831\u3092\u518d\u5ea6\u78ba\u8a8d\u3059\u308b\u3002\u753b\u9762\u4e0a\u3067\u518d\u7d22\u5f15\u304c\u5b8c\u4e86\u3057\u305f\u3068\u8868\u793a\u3055\u308c\u3066\u3082\u3001\u65e7\u6b21\u5143\u306e\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u304c\u6b8b\u3063\u3066\u3044\u305f\u308a\u3001\u4ed8\u968f\u60c5\u5831\u304b\u3089\u672c\u6587\u304c\u6d88\u3048\u3066\u3044\u305f\u308a\u3059\u308b\u5834\u5408\u306b\u306f\u3001\u691c\u7d22\u8a66\u9a13\u3078\u9032\u307e\u306a\u3044\u3002<\/p>\n<h3>7.7 \u4fdd\u5b58\u5de5\u7a0b\u306e\u5b8c\u4e86\u6761\u4ef6\u3092\u56fa\u5b9a\u3059\u308b<\/h3>\n<p>Qdrant \u306e\u4fdd\u5b58\u78ba\u8a8d\u3067\u306f\u3001\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u304c\u5b58\u5728\u3059\u308b\u3068\u3044\u3046\u4e00\u3064\u306e\u4e8b\u5b9f\u3060\u3051\u3092\u5b8c\u6210\u6761\u4ef6\u306b\u3057\u306a\u3044\u3002\u767b\u9332\u524d\u5f8c\u306e\u5909\u5316\u3001\u70b9\u6570\u3001\u30d9\u30af\u30c8\u30eb\u6b21\u5143\u3001\u4ed8\u968f\u60c5\u5831\u3001\u30ed\u30b0\u3092\u7d44\u307f\u5408\u308f\u305b\u3001\u6587\u5b57\u62bd\u51fa\u304b\u3089\u30d9\u30af\u30c8\u30eb\u4fdd\u5b58\u307e\u3067\u306e\u5404\u6bb5\u968e\u3092\u5224\u5b9a\u3059\u308b\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u78ba\u8a8d\u6bb5\u968e<\/th>\n<th>\u6210\u529f\u6761\u4ef6<\/th>\n<th>\u5931\u6557\u6642\u306b\u623b\u308b\u5de5\u7a0b<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u63a5\u7d9a<\/td>\n<td>\u8a8d\u8a3c\u4ed8\u304d\u3067\u4e00\u89a7\u3068\u8a73\u7d30\u3092\u53d6\u5f97\u3067\u304d\u308b\u3002<\/td>\n<td>Qdrant \u306e\u8d77\u52d5\u3001\u30dd\u30fc\u30c8\u3001API \u9375\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u4fdd\u5b58\u72b6\u614b<\/td>\n<td>\u5bfe\u8c61\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306e points_count \u304c 0 \u3088\u308a\u5927\u304d\u3044\u3002<\/td>\n<td>Open WebUI \u306e\u767b\u9332\u51e6\u7406\u3068 Qdrant \u3078\u306e\u66f8\u304d\u8fbc\u307f\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u30d9\u30af\u30c8\u30eb\u8a2d\u5b9a<\/td>\n<td>\u73fe\u5728\u306e\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u306e\u51fa\u529b\u6b21\u5143\u3068 Qdrant \u306e\u8a2d\u5b9a\u304c\u4e00\u81f4\u3059\u308b\u3002<\/td>\n<td>\u5bfe\u8c61\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3001\u30e2\u30c7\u30eb\u5909\u66f4\u5c65\u6b74\u3001\u518d\u7d22\u5f15\u72b6\u614b\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u672c\u6587\u4fdd\u5b58<\/td>\n<td>\u4ed8\u968f\u60c5\u5831\u306b 47821\u3001Lapis-7\u3001Rho-Blue \u306a\u3069\u306e\u56fa\u6709\u6587\u5b57\u5217\u304c\u542b\u307e\u308c\u308b\u3002<\/td>\n<td>\u6587\u5b57\u62bd\u51fa\u3001\u30c1\u30e3\u30f3\u30af\u5206\u5272\u3001\u78ba\u8a8d\u5bfe\u8c61\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u767b\u9332\u6642\u30ed\u30b0<\/td>\n<td>\u672a\u89e3\u6c7a\u306e\u57cb\u3081\u8fbc\u307f\u3001\u8a8d\u8a3c\u3001\u6b21\u5143\u4e0d\u4e00\u81f4\u3001\u4fdd\u5b58\u4f8b\u5916\u304c\u306a\u3044\u3002<\/td>\n<td>\u6700\u521d\u306b\u767a\u751f\u3057\u305f\u4f8b\u5916\u306e\u51e6\u7406\u6bb5\u968e\u3078\u623b\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u5909\u66f4\u5f8c\u306e\u6574\u5408\u6027<\/td>\n<td>\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u307e\u305f\u306f\u30c1\u30e3\u30f3\u30af\u6761\u4ef6\u306e\u5909\u66f4\u5f8c\u306b\u518d\u7d22\u5f15\u3055\u308c\u3066\u3044\u308b\u3002<\/td>\n<td>\u65e7\u30d9\u30af\u30c8\u30eb\u3092\u524a\u9664\u3057\u3001\u73fe\u5728\u306e\u8a2d\u5b9a\u3067\u6587\u66f8\u3092\u518d\u51e6\u7406\u3059\u308b\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u3053\u3053\u307e\u3067\u306e\u78ba\u8a8d\u306b\u3088\u3063\u3066\u3001Argolet \u306e\u539f\u6587\u304c\u30c1\u30e3\u30f3\u30af\u3078\u5206\u5272\u3055\u308c\u3001embeddinggemma \u306e\u30d9\u30af\u30c8\u30eb\u3068\u3057\u3066 Qdrant \u306b\u4fdd\u5b58\u3055\u308c\u3001\u56de\u7b54\u6642\u306b\u518d\u5229\u7528\u3067\u304d\u308b\u6587\u5b57\u5217\u304c\u4ed8\u968f\u60c5\u5831\u3078\u6b8b\u3063\u3066\u3044\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3067\u304d\u308b\u3002\u305f\u3060\u3057\u3001\u4fdd\u5b58\u3055\u308c\u305f\u70b9\u304c\u8cea\u554f\u306b\u5bfe\u3057\u3066\u691c\u7d22\u3055\u308c\u308b\u304b\u3001\u53d6\u5f97\u3057\u305f\u65ad\u7247\u304c\u751f\u6210\u7528 LLM \u3078\u6e21\u3055\u308c\u308b\u304b\u3001\u6587\u66f8\u306b\u5fe0\u5b9f\u306a\u56de\u7b54\u306b\u306a\u308b\u304b\u306f\u307e\u3060\u78ba\u5b9a\u3057\u3066\u3044\u306a\u3044\u3002\u6b21\u306e\u5bfe\u7167\u8a66\u9a13\u3067\u306f\u3001Knowledge \u3092\u63a5\u7d9a\u3057\u306a\u3044\u72b6\u614b\u3068\u63a5\u7d9a\u3057\u305f\u72b6\u614b\u3092\u6bd4\u8f03\u3057\u3001\u4fdd\u5b58\u3055\u308c\u305f\u30d9\u30af\u30c8\u30eb\u304c\u56de\u7b54\u7d4c\u8def\u3078\u5b9f\u969b\u306b\u4f7f\u308f\u308c\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/p>\n<hr>\n<h2>8. \u5bfe\u7167\u8a66\u9a13\u306b\u3088\u3063\u3066 RAG \u306e\u6210\u7acb\u3092\u78ba\u8a8d\u3059\u308b<\/h2>\n<h3>8.1 \u8a66\u9a13\u6761\u4ef6\u3092\u56fa\u5b9a\u3059\u308b<\/h3>\n<p>RAG \u306e\u6210\u7acb\u306f\u3001Knowledge \u3092\u63a5\u7d9a\u3057\u305f\u4f1a\u8a71\u3067\u6b63\u7b54\u304c\u4e00\u5ea6\u8fd4\u3063\u305f\u3060\u3051\u3067\u306f\u78ba\u8a8d\u3067\u304d\u306a\u3044\u3002\u751f\u6210\u7528 LLM \u304c\u5076\u7136\u6b63\u3057\u3044\u5024\u3092\u751f\u6210\u3057\u305f\u53ef\u80fd\u6027\u3001\u76f4\u524d\u306e\u4f1a\u8a71\u5c65\u6b74\u304b\u3089\u60c5\u5831\u3092\u4fdd\u6301\u3057\u305f\u53ef\u80fd\u6027\u3001\u8cea\u554f\u6587\u306b\u542b\u307e\u308c\u308b\u8a9e\u304b\u3089\u63a8\u6e2c\u3057\u305f\u53ef\u80fd\u6027\u304c\u6b8b\u308b\u305f\u3081\u3067\u3042\u308b\u3002Knowledge \u3092\u63a5\u7d9a\u3057\u306a\u3044\u5bfe\u7167\u6761\u4ef6\u3068\u3001\u63a5\u7d9a\u3057\u305f\u8a66\u9a13\u6761\u4ef6\u3092\u540c\u3058\u30e2\u30c7\u30eb\u3001\u540c\u3058\u8cea\u554f\u3001\u540c\u3058\u751f\u6210\u8a2d\u5b9a\u3067\u6bd4\u8f03\u3059\u308b\u3002<\/p>\n<p>\u5404\u8a66\u9a13\u306f\u65b0\u3057\u3044\u4f1a\u8a71\u3067\u5b9f\u884c\u3059\u308b\u3002\u4e00\u3064\u306e\u4f1a\u8a71\u3067\u672c\u756a\u30dd\u30fc\u30c8\u3001\u7dca\u6025\u505c\u6b62\u3001\u5fa9\u65e7\u6761\u4ef6\u3092\u9806\u756a\u306b\u5c0b\u306d\u308b\u3068\u3001\u524d\u306e\u56de\u7b54\u3084\u51fa\u5178\u304c\u5f8c\u306e\u8cea\u554f\u3078\u6b8b\u308a\u3001Qdrant \u304b\u3089\u65b0\u305f\u306b\u53d6\u5f97\u3057\u305f\u60c5\u5831\u3068\u4f1a\u8a71\u5c65\u6b74\u304b\u3089\u518d\u5229\u7528\u3057\u305f\u60c5\u5831\u3092\u533a\u5225\u3067\u304d\u306a\u304f\u306a\u308b\u3002\u53b3\u5bc6\u306a\u78ba\u8a8d\u3067\u306f\u3001\u4e00\u554f\u3054\u3068\u306b\u4f1a\u8a71\u3092\u4f5c\u308a\u76f4\u3057\u3001Knowledge \u306e\u63a5\u7d9a\u72b6\u614b\u3060\u3051\u3092\u5909\u66f4\u3059\u308b\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u56fa\u5b9a\u5bfe\u8c61<\/th>\n<th>\u56fa\u5b9a\u3059\u308b\u5185\u5bb9<\/th>\n<th>\u56fa\u5b9a\u3059\u308b\u7406\u7531<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u751f\u6210\u7528\u30e2\u30c7\u30eb<\/td>\n<td>qwen3.5:9b-q4_K_M \u3092\u4f7f\u7528\u3059\u308b\u3002<\/td>\n<td>\u30e2\u30c7\u30eb\u5dee\u306b\u3088\u308b\u56de\u7b54\u5909\u5316\u3092\u691c\u7d22\u52b9\u679c\u3068\u6df7\u540c\u3057\u306a\u3044\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb<\/td>\n<td>embeddinggemma \u3092\u4f7f\u7528\u3059\u308b\u3002<\/td>\n<td>\u767b\u9332\u6642\u3068\u8cea\u554f\u6642\u306e\u30d9\u30af\u30c8\u30eb\u7a7a\u9593\u3092\u4e00\u81f4\u3055\u305b\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>Knowledge<\/td>\n<td>Argolet Operations \u306e\u672a\u63a5\u7d9a\u3068\u63a5\u7d9a\u3060\u3051\u3092\u5207\u308a\u66ff\u3048\u308b\u3002<\/td>\n<td>\u56de\u7b54\u5dee\u3092 Knowledge \u306e\u6709\u7121\u3078\u5e30\u5c5e\u3067\u304d\u308b\u3088\u3046\u306b\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u4f1a\u8a71\u5c65\u6b74<\/td>\n<td>\u5404\u8a66\u9a13\u3092\u65b0\u3057\u3044\u4f1a\u8a71\u3067\u5b9f\u884c\u3059\u308b\u3002<\/td>\n<td>\u4ee5\u524d\u306e\u8cea\u554f\u3001\u56de\u7b54\u3001\u51fa\u5178\u304c\u5f8c\u7d9a\u8a66\u9a13\u3078\u6df7\u5165\u3059\u308b\u3053\u3068\u3092\u9632\u3050\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u8ffd\u52a0\u6a5f\u80fd<\/td>\n<td>\u30a6\u30a7\u30d6\u691c\u7d22\u3001\u5916\u90e8\u30c4\u30fc\u30eb\u3001\u5225\u306e\u6dfb\u4ed8\u30d5\u30a1\u30a4\u30eb\u3092\u4f7f\u7528\u3057\u306a\u3044\u3002<\/td>\n<td>\u56de\u7b54\u6839\u62e0\u3092 Argolet \u6587\u66f8\u3068\u751f\u6210\u7528 LLM \u306e\u5185\u90e8\u77e5\u8b58\u306b\u9650\u5b9a\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u8cea\u554f\u6587<\/td>\n<td>\u672a\u63a5\u7d9a\u6642\u3068\u63a5\u7d9a\u6642\u306b\u540c\u3058\u6587\u5b57\u5217\u3092\u4f7f\u7528\u3059\u308b\u3002<\/td>\n<td>\u8868\u73fe\u5dee\u306b\u3088\u308b\u691c\u7d22\u9806\u4f4d\u3084\u751f\u6210\u7d50\u679c\u306e\u5909\u5316\u3092\u9664\u5916\u3059\u308b\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u8a66\u9a13\u524d\u306b\u306f\u3001Open WebUI \u306e\u30e2\u30c7\u30eb\u9078\u629e\u6b04\u306b\u6b63\u3057\u3044\u751f\u6210\u7528\u30e2\u30c7\u30eb\u304c\u8868\u793a\u3055\u308c\u3001Argolet Operations \u306b argolet.md \u304c\u767b\u9332\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b\u3002Qdrant \u306e\u5bfe\u8c61\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306b\u70b9\u304c\u5b58\u5728\u3057\u3001\u4ed8\u968f\u60c5\u5831\u306b 47821\u3001Lapis-7\u3001Rho-Blue \u304c\u542b\u307e\u308c\u3066\u3044\u308b\u3053\u3068\u3082\u524d\u7ae0\u306e\u624b\u9806\u3067\u78ba\u8a8d\u3057\u3066\u304a\u304f\u3002<\/p>\n<h3>8.2 Knowledge \u3092\u63a5\u7d9a\u3057\u306a\u3044\u72b6\u614b\u3092\u5bfe\u7167\u6761\u4ef6\u3068\u3059\u308b<\/h3>\n<p>\u65b0\u3057\u3044\u4f1a\u8a71\u3092\u4f5c\u6210\u3057\u3001qwen3.5:9b-q4_K_M \u3092\u9078\u629e\u3059\u308b\u3002Knowledge\u3001\u30d5\u30a1\u30a4\u30eb\u3001\u30a6\u30a7\u30d6\u691c\u7d22\u3001\u8ffd\u52a0\u30c4\u30fc\u30eb\u3092\u63a5\u7d9a\u305b\u305a\u3001\u6b21\u306e\u8cea\u554f\u3092\u305d\u306e\u307e\u307e\u5165\u529b\u3059\u308b\u3002<\/p>\n<div class=\"note\">\n<p>Argolet \u306e\u672c\u756a\u4fdd\u5b88\u30dd\u30fc\u30c8\u306f\u4f55\u756a\u3067\u3059\u304b\u3002<\/p>\n<\/div>\n<p>Argolet \u306f\u691c\u8a3c\u7528\u306b\u4f5c\u6210\u3057\u305f\u67b6\u7a7a\u306e\u30b7\u30b9\u30c6\u30e0\u3067\u3042\u308a\u3001\u305d\u306e\u672c\u756a\u4fdd\u5b88\u30dd\u30fc\u30c8\u3092\u751f\u6210\u7528 LLM \u304c\u6b63\u5f53\u306b\u77e5\u308b\u7d4c\u8def\u306f\u306a\u3044\u3002\u671f\u5f85\u3059\u308b\u5fdc\u7b54\u306f\u3001\u300c\u60c5\u5831\u304c\u306a\u3044\u300d\u300c\u78ba\u8a8d\u3067\u304d\u306a\u3044\u300d\u300c\u6587\u66f8\u3092\u63d0\u793a\u3057\u3066\u307b\u3057\u3044\u300d\u3068\u3044\u3063\u305f\u56de\u7b54\u4fdd\u7559\u3067\u3042\u308b\u3002\u5225\u306e\u6570\u5024\u3092\u8fd4\u3057\u305f\u5834\u5408\u306f\u3001\u4e8b\u524d\u77e5\u8b58\u3067\u306f\u306a\u304f\u6839\u62e0\u306e\u306a\u3044\u88dc\u5b8c\u3068\u3057\u3066\u8a18\u9332\u3059\u308b\u3002<\/p>\n<p>\u672a\u63a5\u7d9a\u72b6\u614b\u3067\u5076\u7136 47821 \u3068\u7b54\u3048\u308b\u53ef\u80fd\u6027\u3082\u7406\u8ad6\u4e0a\u306f\u6b8b\u308b\u3002\u305d\u306e\u5834\u5408\u3001\u6b63\u7b54\u3057\u305f\u3068\u3044\u3046\u4e8b\u5b9f\u3060\u3051\u3067 RAG \u306e\u6210\u7acb\u3092\u5224\u5b9a\u3067\u304d\u306a\u3044\u3002\u51fa\u5178\u304c\u306a\u304f\u3001\u767b\u9332\u6587\u66f8\u3082\u63a5\u7d9a\u3057\u3066\u3044\u306a\u3044\u305f\u3081\u3001\u305d\u306e\u56de\u7b54\u306f\u6587\u66f8\u306b\u6839\u62e0\u3092\u6301\u305f\u306a\u3044\u5076\u7136\u306e\u4e00\u81f4\u3068\u3057\u3066\u6271\u3046\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u672a\u63a5\u7d9a\u6642\u306e\u56de\u7b54<\/th>\n<th>\u5224\u5b9a<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u60c5\u5831\u4e0d\u8db3\u3068\u3057\u3066\u56de\u7b54\u3092\u4fdd\u7559\u3059\u308b<\/td>\n<td>\u5bfe\u7167\u6761\u4ef6\u3068\u3057\u3066\u9069\u5207\u3067\u3042\u308b\u3002\u63a5\u7d9a\u5f8c\u306e\u6b63\u7b54\u3068\u306e\u5dee\u3092\u78ba\u8a8d\u3067\u304d\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>47821 \u4ee5\u5916\u306e\u6570\u5024\u3092\u56de\u7b54\u3059\u308b<\/td>\n<td>\u6839\u62e0\u306e\u306a\u3044\u88dc\u5b8c\u304c\u767a\u751f\u3057\u3066\u3044\u308b\u3002\u63a5\u7d9a\u5f8c\u306b\u6587\u66f8\u3078\u5fe0\u5b9f\u306b\u306a\u308b\u304b\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>47821 \u3068\u56de\u7b54\u3059\u308b\u304c\u51fa\u5178\u304c\u306a\u3044<\/td>\n<td>\u5076\u7136\u306e\u4e00\u81f4\u3067\u3042\u308a\u3001RAG \u306e\u6210\u529f\u3068\u306f\u6271\u308f\u306a\u3044\u3002<\/td>\n<\/tr>\n<tr>\n<td>Argolet \u3092\u5225\u306e\u5b9f\u5728\u5bfe\u8c61\u3068\u3057\u3066\u8aac\u660e\u3059\u308b<\/td>\n<td>\u56fa\u6709\u540d\u8a5e\u306e\u8aa4\u540c\u5b9a\u304c\u767a\u751f\u3057\u3066\u3044\u308b\u3002Knowledge \u63a5\u7d9a\u5f8c\u306b\u6587\u66f8\u5185\u5bb9\u3078\u7f6e\u304d\u63db\u308f\u308b\u304b\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u56de\u7b54\u5168\u6587\u3001\u4f7f\u7528\u30e2\u30c7\u30eb\u3001Knowledge \u304c\u672a\u63a5\u7d9a\u3067\u3042\u308b\u3053\u3068\u3001\u8a66\u9a13\u65e5\u6642\u3092\u8a18\u9332\u3059\u308b\u3002\u3053\u306e\u7d50\u679c\u306f\u3001Knowledge \u63a5\u7d9a\u5f8c\u306e\u56de\u7b54\u3068\u6bd4\u8f03\u3059\u308b\u305f\u3081\u306e\u57fa\u6e96\u3067\u3042\u308a\u3001\u672a\u63a5\u7d9a\u6642\u306e\u56de\u7b54\u54c1\u8cea\u305d\u306e\u3082\u306e\u3092\u8a55\u4fa1\u3059\u308b\u8a66\u9a13\u3067\u306f\u306a\u3044\u3002<\/p>\n<h3>8.3 Knowledge \u3092\u63a5\u7d9a\u3057\u3066\u540c\u4e00\u8cea\u554f\u3092\u884c\u3046<\/h3>\n<p>\u5225\u306e\u65b0\u3057\u3044\u4f1a\u8a71\u3092\u4f5c\u6210\u3057\u3001\u540c\u3058 qwen3.5:9b-q4_K_M \u3092\u9078\u629e\u3059\u308b\u3002Argolet Operations \u3060\u3051\u3092\u63a5\u7d9a\u3057\u3001\u672a\u63a5\u7d9a\u6642\u3068\u540c\u3058\u8cea\u554f\u3092\u5165\u529b\u3059\u308b\u3002<\/p>\n<div class=\"note\">\n<p>Argolet \u306e\u672c\u756a\u4fdd\u5b88\u30dd\u30fc\u30c8\u306f\u4f55\u756a\u3067\u3059\u304b\u3002<\/p>\n<\/div>\n<p>\u671f\u5f85\u3059\u308b\u56de\u7b54\u306f 47821 \u3067\u3042\u308b\u3002\u56de\u7b54\u306b\u51fa\u5178\u304c\u8868\u793a\u3055\u308c\u308b\u5834\u5408\u306f\u3001\u5358\u306b argolet.md \u306e\u540d\u524d\u304c\u8868\u793a\u3055\u308c\u308b\u3060\u3051\u3067\u306a\u304f\u3001\u300cArgolet \u306e\u672c\u756a\u4fdd\u5b88\u30dd\u30fc\u30c8\u306f 47821 \u3067\u3042\u308b\u300d\u3068\u3044\u3046\u5bfe\u5fdc\u7b87\u6240\u304c\u691c\u7d22\u5019\u88dc\u3068\u3057\u3066\u53d6\u5f97\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/p>\n<p>\u540c\u3058\u30c1\u30e3\u30f3\u30af\u306b\u958b\u767a\u74b0\u5883\u306e 47822 \u3082\u542b\u307e\u308c\u3066\u3044\u308b\u5834\u5408\u3001\u751f\u6210\u7528 LLM \u306f\u4e8c\u3064\u306e\u5024\u304b\u3089\u672c\u756a\u74b0\u5883\u306b\u5bfe\u5fdc\u3059\u308b\u5024\u3092\u9078\u3070\u306a\u3051\u308c\u3070\u306a\u3089\u306a\u3044\u300247821 \u3092\u8fd4\u3057\u305f\u3060\u3051\u3067\u306a\u304f\u3001\u672c\u756a\u7528\u3068\u958b\u767a\u7528\u3092\u53d6\u308a\u9055\u3048\u3066\u3044\u306a\u3044\u3053\u3068\u304c\u3001\u3053\u306e\u8cea\u554f\u306e\u5224\u5b9a\u5bfe\u8c61\u306b\u306a\u308b\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u78ba\u8a8d\u5bfe\u8c61<\/th>\n<th>\u6210\u529f\u6761\u4ef6<\/th>\n<th>\u5931\u6557\u4f8b<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u691c\u7d22<\/td>\n<td>\u672c\u756a\u4fdd\u5b88\u30dd\u30fc\u30c8\u3068 47821 \u3092\u542b\u3080\u30c1\u30e3\u30f3\u30af\u304c\u53d6\u5f97\u3055\u308c\u308b\u3002<\/td>\n<td>\u7dca\u6025\u505c\u6b62\u3084\u5fa9\u65e7\u6761\u4ef6\u3060\u3051\u304c\u53d6\u5f97\u3055\u308c\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u6761\u4ef6\u8b58\u5225<\/td>\n<td>\u672c\u756a\u7528\u306e 47821 \u3092\u56de\u7b54\u3059\u308b\u3002<\/td>\n<td>\u958b\u767a\u7528\u306e 47822 \u3092\u56de\u7b54\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u6839\u62e0\u5fe0\u5b9f\u6027<\/td>\n<td>\u6587\u66f8\u306b\u8a18\u8f09\u3055\u308c\u305f\u5024\u3060\u3051\u3092\u56de\u7b54\u3059\u308b\u3002<\/td>\n<td>\u5225\u306e\u30dd\u30fc\u30c8\u756a\u53f7\u3084\u672a\u8a18\u8f09\u306e\u63a5\u7d9a\u65b9\u5f0f\u3092\u8ffd\u52a0\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u51fa\u5178<\/td>\n<td>argolet.md \u306e\u672c\u756a\u63a5\u7d9a\u90e8\u5206\u3092\u78ba\u8a8d\u3067\u304d\u308b\u3002<\/td>\n<td>\u51fa\u5178\u304c\u306a\u3044\u304b\u3001\u56de\u7b54\u3068\u7121\u95a2\u4fc2\u306a\u7b87\u6240\u3060\u3051\u304c\u8868\u793a\u3055\u308c\u308b\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u672a\u63a5\u7d9a\u6642\u306b\u306f\u56de\u7b54\u3092\u4fdd\u7559\u3057\u3001\u63a5\u7d9a\u6642\u306b\u306f\u6b63\u3057\u3044\u30c1\u30e3\u30f3\u30af\u3092\u51fa\u5178\u3068\u3057\u3066 47821 \u3092\u56de\u7b54\u3057\u305f\u5834\u5408\u3001Knowledge \u306e\u6709\u7121\u306b\u3088\u3063\u3066\u56de\u7b54\u304c\u5909\u5316\u3057\u305f\u3053\u3068\u3092\u78ba\u8a8d\u3067\u304d\u308b\u3002\u305f\u3060\u3057\u3001\u3053\u306e\u4e00\u554f\u3060\u3051\u3067\u306f\u3001\u5358\u7d14\u306a\u540d\u79f0\u3068\u6570\u5024\u306e\u691c\u7d22\u304c\u6210\u529f\u3057\u305f\u3053\u3068\u3057\u304b\u5206\u304b\u3089\u306a\u3044\u3002\u624b\u9806\u3001\u8907\u5408\u6761\u4ef6\u3001\u672a\u8a18\u8f09\u60c5\u5831\u306b\u3064\u3044\u3066\u3082\u8a66\u9a13\u3059\u308b\u3002<\/p>\n<h3>8.4 \u624b\u9806\u3068\u8907\u5408\u6761\u4ef6\u3092\u5225\u3005\u306b\u8a66\u9a13\u3059\u308b<\/h3>\n<p>\u624b\u9806\u3068\u5fa9\u65e7\u6761\u4ef6\u306f\u3001\u305d\u308c\u305e\u308c\u65b0\u3057\u3044\u4f1a\u8a71\u3067\u8a66\u9a13\u3059\u308b\u3002\u4e21\u65b9\u306e\u8cea\u554f\u3092\u672c\u756a\u30dd\u30fc\u30c8\u306e\u4f1a\u8a71\u306b\u7d9a\u3051\u3066\u5165\u529b\u3059\u308b\u3068\u3001\u65e2\u306b\u53d6\u5f97\u3055\u308c\u305f Argolet \u6587\u66f8\u304c\u4f1a\u8a71\u5c65\u6b74\u3078\u6b8b\u308a\u3001\u8cea\u554f\u3054\u3068\u306e\u691c\u7d22\u7d50\u679c\u3092\u5224\u5b9a\u3057\u306b\u304f\u304f\u306a\u308b\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u8a66\u9a13<\/th>\n<th>\u8cea\u554f<\/th>\n<th>\u671f\u5f85\u3059\u308b\u56de\u7b54<\/th>\n<th>\u78ba\u8a8d\u3059\u308b\u69cb\u9020<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u7dca\u6025\u505c\u6b62\u624b\u9806<\/td>\n<td>\u7dca\u6025\u505c\u6b62\u6642\u306b\u4f7f\u7528\u3059\u308b\u624b\u9806\u540d\u3068\u3001\u6700\u521d\u306e\u4e8c\u5de5\u7a0b\u3092\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/td>\n<td>Lapis-7 \u624b\u9806\u3092\u4f7f\u7528\u3057\u3001\u63a5\u7d9a\u30ad\u30e5\u30fc\u3092\u505c\u6b62\u3057\u3066\u304b\u3089\u66f8\u304d\u8fbc\u307f\u51e6\u7406\u3092\u505c\u6b62\u3059\u308b\u3002<\/td>\n<td>\u624b\u9806\u540d\u3060\u3051\u3067\u306a\u304f\u3001\u4e8c\u5de5\u7a0b\u306e\u5185\u5bb9\u3068\u9806\u5e8f\u304c\u540c\u3058\u30c1\u30e3\u30f3\u30af\u307e\u305f\u306f\u53d6\u5f97\u6587\u8108\u306b\u6b8b\u3063\u3066\u3044\u308b\u304b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u5fa9\u65e7\u6761\u4ef6<\/td>\n<td>\u5fa9\u65e7\u3092\u958b\u59cb\u3067\u304d\u308b\u76e3\u8996\u6761\u4ef6\u3092\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/td>\n<td>Rho-Blue \u304c 15 \u5206\u9593\u9023\u7d9a\u3057\u3066 0.20 \u672a\u6e80\u306b\u306a\u3063\u305f\u5834\u5408\u3060\u3051\u958b\u59cb\u3067\u304d\u308b\u3002<\/td>\n<td>\u6307\u6a19\u540d\u3001\u95be\u5024\u3001\u7d99\u7d9a\u6642\u9593\u3001\u958b\u59cb\u53ef\u5426\u306e\u56db\u8981\u7d20\u3092\u6b20\u843d\u306a\u304f\u53d6\u5f97\u3067\u304d\u308b\u304b\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u7dca\u6025\u505c\u6b62\u8a66\u9a13\u3067\u306f\u3001Lapis-7 \u3068\u3044\u3046\u540d\u79f0\u3060\u3051\u3092\u56de\u7b54\u3057\u3066\u3082\u5b8c\u5168\u306a\u6b63\u7b54\u3068\u306f\u3057\u306a\u3044\u3002\u300c\u63a5\u7d9a\u30ad\u30e5\u30fc\u3092\u505c\u6b62\u3059\u308b\u300d\u300c\u305d\u306e\u5f8c\u306b\u66f8\u304d\u8fbc\u307f\u51e6\u7406\u3092\u505c\u6b62\u3059\u308b\u300d\u3068\u3044\u3046\u4e8c\u5de5\u7a0b\u3068\u9806\u5e8f\u304c\u5fc5\u8981\u3067\u3042\u308b\u3002\u64cd\u4f5c\u9806\u5e8f\u3092\u9006\u306b\u3057\u305f\u5834\u5408\u306f\u3001\u95a2\u9023\u30c1\u30e3\u30f3\u30af\u3092\u53d6\u5f97\u3067\u304d\u3066\u3044\u3066\u3082\u3001\u751f\u6210\u6642\u306b\u56e0\u679c\u95a2\u4fc2\u3092\u4fdd\u6301\u3067\u304d\u306a\u304b\u3063\u305f\u3068\u5224\u5b9a\u3059\u308b\u3002<\/p>\n<p>\u5fa9\u65e7\u6761\u4ef6\u3067\u306f\u3001Rho-Blue \u3068 0.20 \u672a\u6e80\u3060\u3051\u3067\u306f\u4e0d\u5341\u5206\u3067\u3042\u308b\u3002\u300c15 \u5206\u9593\u9023\u7d9a\u3057\u3066\u300d\u3068\u3044\u3046\u7d99\u7d9a\u6761\u4ef6\u3092\u6b20\u304f\u3068\u3001\u4e00\u6642\u7684\u306a\u95be\u5024\u4f4e\u4e0b\u3067\u3082\u5fa9\u65e7\u3092\u958b\u59cb\u3067\u304d\u308b\u3068\u3044\u3046\u5225\u306e\u898f\u5247\u306b\u306a\u308b\u3002\u56de\u7b54\u306e\u4e00\u90e8\u306b\u6b63\u3057\u3044\u8a9e\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u304b\u3067\u306f\u306a\u304f\u3001\u904b\u7528\u5224\u65ad\u3092\u6c7a\u3081\u308b\u6761\u4ef6\u304c\u3059\u3079\u3066\u4fdd\u5b58\u3055\u308c\u3066\u3044\u308b\u304b\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u56de\u7b54\u72b6\u614b<\/th>\n<th>\u624b\u9806\u8a66\u9a13\u306e\u5224\u5b9a<\/th>\n<th>\u5fa9\u65e7\u6761\u4ef6\u8a66\u9a13\u306e\u5224\u5b9a<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u5168\u8981\u7d20\u304c\u6b63\u3057\u304f\u3001\u4f59\u5206\u306a\u88dc\u5b8c\u304c\u306a\u3044<\/td>\n<td>\u5408\u683c<\/td>\n<td>\u5408\u683c<\/td>\n<\/tr>\n<tr>\n<td>\u4e3b\u8981\u306a\u540d\u79f0\u3060\u3051\u304c\u6b63\u3057\u3044<\/td>\n<td>\u624b\u9806\u5185\u5bb9\u4e0d\u8db3<\/td>\n<td>\u6761\u4ef6\u5185\u5bb9\u4e0d\u8db3<\/td>\n<\/tr>\n<tr>\n<td>\u5fc5\u8981\u306a\u8981\u7d20\u306f\u3042\u308b\u304c\u9806\u5e8f\u307e\u305f\u306f\u7d99\u7d9a\u6761\u4ef6\u304c\u8aa4\u308b<\/td>\n<td>\u624b\u9806\u95a2\u4fc2\u306e\u4fdd\u6301\u306b\u5931\u6557<\/td>\n<td>\u6761\u4ef6\u95a2\u4fc2\u306e\u4fdd\u6301\u306b\u5931\u6557<\/td>\n<\/tr>\n<tr>\n<td>\u6587\u66f8\u306b\u306a\u3044\u5de5\u7a0b\u307e\u305f\u306f\u6761\u4ef6\u3092\u8ffd\u52a0\u3059\u308b<\/td>\n<td>\u6839\u62e0\u5916\u306e\u88dc\u5b8c<\/td>\n<td>\u6839\u62e0\u5916\u306e\u88dc\u5b8c<\/td>\n<\/tr>\n<tr>\n<td>\u7121\u95a2\u4fc2\u306a\u30c1\u30e3\u30f3\u30af\u3092\u51fa\u5178\u3068\u3059\u308b<\/td>\n<td>\u691c\u7d22\u5931\u6557<\/td>\n<td>\u691c\u7d22\u5931\u6557<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>8.5 \u8a00\u3044\u63db\u3048\u306b\u3088\u3063\u3066\u610f\u5473\u691c\u7d22\u3092\u78ba\u8a8d\u3059\u308b<\/h3>\n<p>\u5143\u6587\u66f8\u3068\u540c\u3058\u8a9e\u3092\u542b\u3080\u8cea\u554f\u3060\u3051\u3067\u306f\u3001\u610f\u5473\u691c\u7d22\u3067\u306f\u306a\u304f\u3001\u8868\u9762\u7684\u306a\u8a9e\u306e\u4e00\u81f4\u306b\u3088\u3063\u3066\u95a2\u9023\u30c1\u30e3\u30f3\u30af\u304c\u53d6\u5f97\u3055\u308c\u305f\u53ef\u80fd\u6027\u304c\u6b8b\u308b\u3002\u5225\u306e\u65b0\u3057\u3044\u4f1a\u8a71\u3067\u3001\u6587\u66f8\u306b\u306a\u3044\u8868\u73fe\u3078\u8a00\u3044\u63db\u3048\u3066\u8cea\u554f\u3059\u308b\u3002<\/p>\n<div class=\"note\">\n<p>\u969c\u5bb3\u5bfe\u5fdc\u5f8c\u3001\u30b5\u30fc\u30d3\u30b9\u3092\u518d\u958b\u3057\u3066\u3088\u3044\u3068\u5224\u65ad\u3059\u308b\u57fa\u6e96\u306f\u4f55\u3067\u3059\u304b\u3002<\/p>\n<\/div>\n<p>\u6587\u66f8\u3067\u306f\u300c\u5fa9\u65e7\u3092\u958b\u59cb\u3067\u304d\u308b\u76e3\u8996\u6761\u4ef6\u300d\u3068\u8a18\u8ff0\u3057\u3066\u304a\u308a\u3001\u8cea\u554f\u3067\u306f\u300c\u30b5\u30fc\u30d3\u30b9\u3092\u518d\u958b\u3057\u3066\u3088\u3044\u3068\u5224\u65ad\u3059\u308b\u57fa\u6e96\u300d\u3068\u8868\u73fe\u3057\u3066\u3044\u308b\u3002\u671f\u5f85\u3059\u308b\u56de\u7b54\u306f\u3001Rho-Blue \u304c 15 \u5206\u9593\u9023\u7d9a\u3057\u3066 0.20 \u672a\u6e80\u306b\u306a\u308b\u3053\u3068\u3067\u3042\u308b\u3002<\/p>\n<p>\u3053\u306e\u8cea\u554f\u3067\u5fa9\u65e7\u6761\u4ef6\u306e\u30c1\u30e3\u30f3\u30af\u3092\u53d6\u5f97\u3067\u304d\u308c\u3070\u3001\u5b8c\u5168\u306a\u6587\u5b57\u5217\u4e00\u81f4\u3067\u306f\u306a\u304f\u3001\u8cea\u554f\u3068\u6587\u66f8\u306e\u610f\u5473\u7684\u306a\u8fd1\u3055\u3092\u4f7f\u3063\u3066\u691c\u7d22\u3067\u304d\u305f\u3068\u5224\u65ad\u3067\u304d\u308b\u3002\u53d6\u5f97\u3067\u304d\u306a\u3044\u5834\u5408\u306f\u3001\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u306e\u65e5\u672c\u8a9e\u8868\u73fe\u3078\u306e\u9069\u5408\u3001\u30c1\u30e3\u30f3\u30af\u672c\u6587\u3001\u53d6\u5f97\u4ef6\u6570\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/p>\n<p>\u8a00\u3044\u63db\u3048\u8a66\u9a13\u3067\u3082\u3001\u56de\u7b54\u3060\u3051\u3067\u5408\u5426\u3092\u6c7a\u3081\u306a\u3044\u3002\u6b63\u7b54\u3057\u3066\u3044\u3066\u3082\u3001\u51fa\u5178\u306b\u5fa9\u65e7\u6761\u4ef6\u306e\u30c1\u30e3\u30f3\u30af\u304c\u542b\u307e\u308c\u3066\u3044\u306a\u3051\u308c\u3070\u3001\u751f\u6210\u7528 LLM \u304c\u4f1a\u8a71\u6587\u8108\u3084\u4e00\u822c\u7684\u306a\u969c\u5bb3\u5bfe\u5fdc\u306e\u77e5\u8b58\u304b\u3089\u63a8\u6e2c\u3057\u305f\u53ef\u80fd\u6027\u304c\u6b8b\u308b\u3002<\/p>\n<h3>8.6 \u6587\u66f8\u306b\u5b58\u5728\u3057\u306a\u3044\u60c5\u5831\u3092\u8cea\u554f\u3059\u308b<\/h3>\n<p>\u5225\u306e\u65b0\u3057\u3044\u4f1a\u8a71\u3067 Argolet Operations \u3092\u63a5\u7d9a\u3057\u3001\u6587\u66f8\u306b\u8a18\u8f09\u3057\u3066\u3044\u306a\u3044\u60c5\u5831\u3092\u8cea\u554f\u3059\u308b\u3002<\/p>\n<div class=\"note\">\n<p>Argolet \u306e\u958b\u767a\u8cac\u4efb\u8005\u306f\u8ab0\u3067\u3059\u304b\u3002<\/p>\n<\/div>\n<p>argolet.md \u306b\u306f\u958b\u767a\u8cac\u4efb\u8005\u540d\u3092\u8a18\u8f09\u3057\u3066\u3044\u306a\u3044\u3002\u671f\u5f85\u3059\u308b\u56de\u7b54\u306f\u3001\u300c\u6587\u66f8\u306b\u306f\u8a18\u8f09\u304c\u306a\u3044\u300d\u300c\u63d0\u4f9b\u3055\u308c\u305f\u60c5\u5831\u304b\u3089\u306f\u78ba\u8a8d\u3067\u304d\u306a\u3044\u300d\u3067\u3042\u308b\u3002\u7279\u5b9a\u306e\u4eba\u7269\u540d\u3092\u751f\u6210\u3057\u305f\u5834\u5408\u3001\u691c\u7d22\u7d50\u679c\u304c\u4e0d\u8db3\u3057\u3066\u3044\u308b\u306e\u3067\u306f\u306a\u304f\u3001\u751f\u6210\u7528 LLM \u304c\u6839\u62e0\u306e\u306a\u3044\u60c5\u5831\u3092\u88dc\u5b8c\u3057\u3066\u3044\u308b\u3002<\/p>\n<p>\u3053\u306e\u8a66\u9a13\u3067\u306f\u3001\u6587\u66f8\u5185\u306e\u300c\u958b\u767a\u8cac\u4efb\u8005\u540d\u3092\u8a18\u8f09\u3057\u3066\u3044\u306a\u3044\u300d\u3068\u3044\u3046\u8a18\u8ff0\u304c\u53d6\u5f97\u3055\u308c\u308b\u3053\u3068\u3082\u78ba\u8a8d\u3059\u308b\u3002\u8a72\u5f53\u30c1\u30e3\u30f3\u30af\u304c\u53d6\u5f97\u3055\u308c\u3001\u56de\u7b54\u3082\u4fdd\u7559\u3057\u305f\u5834\u5408\u306f\u3001\u691c\u7d22\u3068\u751f\u6210\u306e\u4e21\u65b9\u304c\u671f\u5f85\u3069\u304a\u308a\u306b\u52d5\u4f5c\u3057\u3066\u3044\u308b\u3002\u8a72\u5f53\u30c1\u30e3\u30f3\u30af\u3092\u53d6\u5f97\u3067\u304d\u305f\u306e\u306b\u4eba\u7269\u540d\u3092\u751f\u6210\u3057\u305f\u5834\u5408\u306f\u3001\u691c\u7d22\u3067\u306f\u306a\u304f\u56de\u7b54\u5fe0\u5b9f\u6027\u306e\u554f\u984c\u3067\u3042\u308b\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u691c\u7d22\u7d50\u679c<\/th>\n<th>\u56de\u7b54<\/th>\n<th>\u5224\u5b9a<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u672a\u8a18\u8f09\u3067\u3042\u308b\u3053\u3068\u3092\u793a\u3059\u30c1\u30e3\u30f3\u30af\u3092\u53d6\u5f97\u3059\u308b<\/td>\n<td>\u78ba\u8a8d\u3067\u304d\u306a\u3044\u3068\u56de\u7b54\u3059\u308b\u3002<\/td>\n<td>\u5408\u683c\u3002\u60c5\u5831\u4e0d\u8db3\u3092\u6839\u62e0\u306b\u56de\u7b54\u3092\u4fdd\u7559\u3067\u304d\u3066\u3044\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u672a\u8a18\u8f09\u3067\u3042\u308b\u3053\u3068\u3092\u793a\u3059\u30c1\u30e3\u30f3\u30af\u3092\u53d6\u5f97\u3059\u308b<\/td>\n<td>\u4eba\u7269\u540d\u3092\u751f\u6210\u3059\u308b\u3002<\/td>\n<td>\u751f\u6210\u5931\u6557\u3002\u53d6\u5f97\u6587\u66f8\u3088\u308a\u4e8b\u524d\u77e5\u8b58\u307e\u305f\u306f\u63a8\u6e2c\u3092\u512a\u5148\u3057\u3066\u3044\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u7121\u95a2\u4fc2\u306a\u30c1\u30e3\u30f3\u30af\u3092\u53d6\u5f97\u3059\u308b<\/td>\n<td>\u78ba\u8a8d\u3067\u304d\u306a\u3044\u3068\u56de\u7b54\u3059\u308b\u3002<\/td>\n<td>\u56de\u7b54\u306f\u59a5\u5f53\u3060\u304c\u691c\u7d22\u306f\u4e0d\u5341\u5206\u3067\u3042\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u7121\u95a2\u4fc2\u306a\u30c1\u30e3\u30f3\u30af\u3092\u53d6\u5f97\u3059\u308b<\/td>\n<td>\u4eba\u7269\u540d\u3092\u751f\u6210\u3059\u308b\u3002<\/td>\n<td>\u691c\u7d22\u3068\u751f\u6210\u306e\u4e21\u65b9\u306b\u5931\u6557\u3057\u3066\u3044\u308b\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>RAG \u306e\u5b9f\u7528\u6027\u306f\u3001\u8a18\u8f09\u3055\u308c\u305f\u5024\u3078\u6b63\u7b54\u3067\u304d\u308b\u3053\u3068\u3060\u3051\u3067\u306f\u6c7a\u307e\u3089\u306a\u3044\u3002\u6587\u66f8\u306b\u306a\u3044\u60c5\u5831\u3092\u300c\u306a\u3044\u300d\u3068\u5224\u65ad\u3067\u304d\u306a\u3051\u308c\u3070\u3001\u5229\u7528\u8005\u306f\u6b63\u3057\u3044\u56de\u7b54\u3068\u4f5c\u308a\u51fa\u3055\u308c\u305f\u56de\u7b54\u3092\u533a\u5225\u3067\u304d\u306a\u3044\u3002\u672a\u8a18\u8f09\u60c5\u5831\u3078\u306e\u56de\u7b54\u4fdd\u7559\u306f\u3001\u6b63\u7b54\u8a66\u9a13\u3068\u540c\u3058\u91cd\u3055\u3067\u8a55\u4fa1\u3059\u308b\u3002<\/p>\n<h3>8.7 \u691c\u7d22\u7d50\u679c\u3068\u751f\u6210\u56de\u7b54\u3092\u5206\u3051\u3066\u5224\u5b9a\u3059\u308b<\/h3>\n<p>Qdrant \u306f\u3001\u8cea\u554f\u304b\u3089\u751f\u6210\u3055\u308c\u305f\u30d9\u30af\u30c8\u30eb\u3068\u4fdd\u5b58\u6e08\u307f\u306e\u70b9\u3092\u8ddd\u96e2\u5c3a\u5ea6\u3067\u6bd4\u8f03\u3057\u3001\u8fd1\u3044\u70b9\u3092\u691c\u7d22\u7d50\u679c\u3068\u3057\u3066\u8fd4\u3059<a href=\"#ref33\">[33]<\/a>\u3002Open WebUI \u306f\u53d6\u5f97\u3057\u305f\u6587\u66f8\u65ad\u7247\u3092\u751f\u6210\u7528 LLM \u306e\u5165\u529b\u3078\u7d44\u307f\u8fbc\u307f\u3001\u6700\u7d42\u56de\u7b54\u3092\u751f\u6210\u3059\u308b\u3002\u691c\u7d22\u3068\u751f\u6210\u306f\u9023\u7d9a\u3057\u3066\u3044\u308b\u304c\u3001\u5931\u6557\u539f\u56e0\u306f\u7570\u306a\u308b\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u691c\u7d22\u7d50\u679c<\/th>\n<th>\u56de\u7b54<\/th>\n<th>\u5224\u5b9a<\/th>\n<th>\u4e3b\u306a\u78ba\u8a8d\u5bfe\u8c61<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u6b63\u3057\u3044\u30c1\u30e3\u30f3\u30af\u3092\u53d6\u5f97\u3059\u308b<\/td>\n<td>\u6587\u66f8\u3069\u304a\u308a\u306b\u56de\u7b54\u3059\u308b\u3002<\/td>\n<td>\u691c\u7d22\u304b\u3089\u751f\u6210\u307e\u3067\u306e\u57fa\u672c\u7d4c\u8def\u304c\u6210\u7acb\u3057\u3066\u3044\u308b\u3002<\/td>\n<td>\u540c\u3058\u8a66\u9a13\u3092\u518d\u5b9f\u884c\u3057\u3001\u518d\u73fe\u6027\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u6b63\u3057\u3044\u30c1\u30e3\u30f3\u30af\u3092\u53d6\u5f97\u3059\u308b<\/td>\n<td>\u5024\u3001\u6761\u4ef6\u3001\u9806\u5e8f\u3092\u8aa4\u308b\u3002<\/td>\n<td>\u691c\u7d22\u306f\u6210\u529f\u3057\u3001\u751f\u6210\u304c\u5931\u6557\u3057\u3066\u3044\u308b\u3002<\/td>\n<td>\u751f\u6210\u7528 LLM\u3001RAG \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3001\u53d6\u5f97\u6587\u8108\u91cf\u3001\u7af6\u5408\u3059\u308b\u8a18\u8ff0\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u5fc5\u8981\u306a\u30c1\u30e3\u30f3\u30af\u3092\u53d6\u5f97\u3057\u306a\u3044<\/td>\n<td>\u8aa4\u7b54\u307e\u305f\u306f\u56de\u7b54\u4e0d\u80fd\u306b\u306a\u308b\u3002<\/td>\n<td>\u691c\u7d22\u7d4c\u8def\u304c\u5931\u6557\u3057\u3066\u3044\u308b\u3002<\/td>\n<td>\u6587\u5b57\u62bd\u51fa\u3001\u30c1\u30e3\u30f3\u30af\u5206\u5272\u3001\u57cb\u3081\u8fbc\u307f\u3001Knowledge \u63a5\u7d9a\u3001\u53d6\u5f97\u4ef6\u6570\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u5fc5\u8981\u306a\u30c1\u30e3\u30f3\u30af\u3092\u53d6\u5f97\u3057\u306a\u3044<\/td>\n<td>\u5076\u7136\u6b63\u7b54\u3059\u308b\u3002<\/td>\n<td>\u6839\u62e0\u306b\u57fa\u3065\u304f\u56de\u7b54\u3067\u306f\u306a\u3044\u305f\u3081\u4e0d\u5408\u683c\u3068\u3059\u308b\u3002<\/td>\n<td>\u4e8b\u524d\u77e5\u8b58\u3001\u4f1a\u8a71\u5c65\u6b74\u3001\u8cea\u554f\u5185\u306e\u624b\u639b\u304b\u308a\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u6b63\u3057\u3044\u30c1\u30e3\u30f3\u30af\u3068\u7121\u95a2\u4fc2\u306a\u30c1\u30e3\u30f3\u30af\u3092\u53d6\u5f97\u3059\u308b<\/td>\n<td>\u6b63\u7b54\u3059\u308b\u3002<\/td>\n<td>\u57fa\u672c\u56de\u7b54\u306f\u6210\u529f\u3057\u3066\u3044\u308b\u304c\u3001\u691c\u7d22\u7cbe\u5ea6\u306b\u6539\u5584\u4f59\u5730\u304c\u3042\u308b\u3002<\/td>\n<td>\u30c1\u30e3\u30f3\u30af\u30b5\u30a4\u30ba\u3001\u53d6\u5f97\u4ef6\u6570\u3001\u985e\u4f3c\u65ad\u7247\u306e\u91cd\u8907\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u6b63\u3057\u3044\u30c1\u30e3\u30f3\u30af\u3092\u53d6\u5f97\u3059\u308b<\/td>\n<td>\u6587\u66f8\u306b\u306a\u3044\u60c5\u5831\u3092\u8ffd\u52a0\u3059\u308b\u3002<\/td>\n<td>\u6839\u62e0\u5fe0\u5b9f\u6027\u306b\u5931\u6557\u3057\u3066\u3044\u308b\u3002<\/td>\n<td>\u56de\u7b54\u6307\u793a\u3068\u751f\u6210\u7528\u30e2\u30c7\u30eb\u306e\u6319\u52d5\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u51fa\u5178\u8868\u793a\u306f\u3001\u6587\u66f8\u304c\u56de\u7b54\u306b\u4f7f\u308f\u308c\u305f\u53ef\u80fd\u6027\u3092\u78ba\u8a8d\u3059\u308b\u624b\u639b\u304b\u308a\u3067\u3042\u308b\u3002\u51fa\u5178\u540d\u3060\u3051\u3067\u306a\u304f\u3001\u8868\u793a\u3055\u308c\u305f\u65ad\u7247\u306b\u8cea\u554f\u3078\u306e\u56de\u7b54\u3092\u6c7a\u3081\u308b\u5024\u3001\u6761\u4ef6\u3001\u9806\u5e8f\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u304b\u3092\u898b\u308b\u3002\u51fa\u5178\u306b\u5fc5\u8981\u306a\u6839\u62e0\u304c\u5b58\u5728\u3057\u306a\u3044\u306e\u306b\u6b63\u7b54\u3057\u305f\u5834\u5408\u306f\u3001RAG \u306b\u3088\u308b\u6b63\u7b54\u3068\u306f\u6271\u308f\u306a\u3044\u3002<\/p>\n<p>\u691c\u7d22\u7d50\u679c\u304c\u6b63\u3057\u3044\u306e\u306b\u56de\u7b54\u304c\u8aa4\u308b\u5834\u5408\u3001\u30c1\u30e3\u30f3\u30af\u30b5\u30a4\u30ba\u3084\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u3092\u5148\u306b\u5909\u66f4\u3057\u3066\u306f\u306a\u3089\u306a\u3044\u3002\u691c\u7d22\u6bb5\u968e\u3067\u306f\u5fc5\u8981\u306a\u60c5\u5831\u3092\u53d6\u5f97\u3067\u304d\u3066\u3044\u308b\u305f\u3081\u3001\u751f\u6210\u7528 LLM \u3078\u6e21\u3055\u308c\u305f\u6587\u8108\u3001\u8907\u6570\u30c1\u30e3\u30f3\u30af\u9593\u306e\u7af6\u5408\u3001\u56de\u7b54\u6307\u793a\u3001\u30e2\u30c7\u30eb\u898f\u6a21\u3092\u78ba\u8a8d\u3059\u308b\u3002\u53cd\u5bfe\u306b\u3001\u5fc5\u8981\u306a\u30c1\u30e3\u30f3\u30af\u3092\u53d6\u5f97\u3067\u304d\u3066\u3044\u306a\u3044\u5834\u5408\u306f\u3001\u751f\u6210\u7528 LLM \u3092\u5927\u304d\u304f\u3057\u3066\u3082\u6839\u62e0\u4e0d\u8db3\u306f\u89e3\u6d88\u3057\u306a\u3044\u3002<\/p>\n<h3>8.8 \u8a66\u9a13\u7d50\u679c\u3092\u5224\u5b9a\u8868\u3068\u3057\u3066\u4fdd\u5b58\u3059\u308b<\/h3>\n<p>\u5404\u8a66\u9a13\u306b\u3064\u3044\u3066\u3001\u56de\u7b54\u6587\u3060\u3051\u3067\u306a\u304f\u3001Knowledge \u306e\u63a5\u7d9a\u72b6\u614b\u3001\u53d6\u5f97\u3055\u308c\u305f\u51fa\u5178\u3001\u5408\u5426\u3001\u5931\u6557\u6bb5\u968e\u3092\u8a18\u9332\u3059\u308b\u3002\u30e2\u30c7\u30eb\u3084 Open WebUI \u3092\u66f4\u65b0\u3057\u305f\u5f8c\u306b\u540c\u3058\u8cea\u554f\u3092\u518d\u5b9f\u884c\u3057\u3001\u691c\u7d22\u7d50\u679c\u3068\u56de\u7b54\u306e\u5909\u5316\u3092\u6bd4\u8f03\u3067\u304d\u308b\u3088\u3046\u306b\u3059\u308b\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u8a66\u9a13 ID<\/th>\n<th>Knowledge<\/th>\n<th>\u8a66\u9a13\u5185\u5bb9<\/th>\n<th>\u671f\u5f85\u7d50\u679c<\/th>\n<th>\u5408\u683c\u6761\u4ef6<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>T0<\/td>\n<td>\u672a\u63a5\u7d9a<\/td>\n<td>\u672c\u756a\u4fdd\u5b88\u30dd\u30fc\u30c8\u3092\u8cea\u554f\u3059\u308b\u3002<\/td>\n<td>\u60c5\u5831\u4e0d\u8db3\u3068\u3057\u3066\u56de\u7b54\u3092\u4fdd\u7559\u3059\u308b\u3002<\/td>\n<td>\u6587\u66f8\u306b\u57fa\u3065\u304f\u6b63\u7b54\u3092\u88c5\u308f\u306a\u3044\u3002<\/td>\n<\/tr>\n<tr>\n<td>T1<\/td>\n<td>\u63a5\u7d9a<\/td>\n<td>\u672c\u756a\u4fdd\u5b88\u30dd\u30fc\u30c8\u3092\u8cea\u554f\u3059\u308b\u3002<\/td>\n<td>47821 \u3068\u56de\u7b54\u3059\u308b\u3002<\/td>\n<td>\u672c\u756a\u63a5\u7d9a\u306e\u30c1\u30e3\u30f3\u30af\u3092\u53d6\u5f97\u3057\u300147822 \u3068\u53d6\u308a\u9055\u3048\u306a\u3044\u3002<\/td>\n<\/tr>\n<tr>\n<td>T2<\/td>\n<td>\u63a5\u7d9a<\/td>\n<td>\u7dca\u6025\u505c\u6b62\u624b\u9806\u3092\u8cea\u554f\u3059\u308b\u3002<\/td>\n<td>Lapis-7\u3001\u63a5\u7d9a\u30ad\u30e5\u30fc\u505c\u6b62\u3001\u66f8\u304d\u8fbc\u307f\u51e6\u7406\u505c\u6b62\u3092\u56de\u7b54\u3059\u308b\u3002<\/td>\n<td>\u624b\u9806\u540d\u3001\u4e8c\u5de5\u7a0b\u3001\u9806\u5e8f\u304c\u3059\u3079\u3066\u6b63\u3057\u3044\u3002<\/td>\n<\/tr>\n<tr>\n<td>T3<\/td>\n<td>\u63a5\u7d9a<\/td>\n<td>\u5fa9\u65e7\u6761\u4ef6\u3092\u8cea\u554f\u3059\u308b\u3002<\/td>\n<td>Rho-Blue\u30010.20 \u672a\u6e80\u300115 \u5206\u9593\u9023\u7d9a\u3092\u56de\u7b54\u3059\u308b\u3002<\/td>\n<td>\u6307\u6a19\u3001\u95be\u5024\u3001\u7d99\u7d9a\u6642\u9593\u3092\u6b20\u843d\u3057\u306a\u3044\u3002<\/td>\n<\/tr>\n<tr>\n<td>T4<\/td>\n<td>\u63a5\u7d9a<\/td>\n<td>\u5fa9\u65e7\u6761\u4ef6\u3092\u8a00\u3044\u63db\u3048\u3066\u8cea\u554f\u3059\u308b\u3002<\/td>\n<td>T3 \u3068\u540c\u3058\u6761\u4ef6\u3092\u56de\u7b54\u3059\u308b\u3002<\/td>\n<td>\u6587\u66f8\u3068\u7570\u306a\u308b\u8868\u73fe\u3067\u3082\u5fa9\u65e7\u6761\u4ef6\u306e\u30c1\u30e3\u30f3\u30af\u3092\u53d6\u5f97\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>T5<\/td>\n<td>\u63a5\u7d9a<\/td>\n<td>\u958b\u767a\u8cac\u4efb\u8005\u540d\u3092\u8cea\u554f\u3059\u308b\u3002<\/td>\n<td>\u6587\u66f8\u304b\u3089\u306f\u78ba\u8a8d\u3067\u304d\u306a\u3044\u3068\u56de\u7b54\u3059\u308b\u3002<\/td>\n<td>\u4eba\u7269\u540d\u3092\u4f5c\u3089\u305a\u3001\u672a\u8a18\u8f09\u3067\u3042\u308b\u3053\u3068\u3092\u793a\u3059\u51fa\u5178\u3092\u53d6\u5f97\u3059\u308b\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u8a66\u9a13\u8a18\u9332\u306b\u306f\u3001\u6b21\u306e\u60c5\u5831\u3092\u6b8b\u3059\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u8a18\u9332\u9805\u76ee<\/th>\n<th>\u5185\u5bb9<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u5b9f\u884c\u65e5\u6642<\/td>\n<td>\u8a66\u9a13\u3092\u884c\u3063\u305f\u65e5\u6642\u3092\u8a18\u9332\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>Open WebUI<\/td>\n<td>\u4f7f\u7528\u3057\u305f\u30a4\u30e1\u30fc\u30b8\u30bf\u30b0\u3092\u8a18\u9332\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>Qdrant<\/td>\n<td>\u4f7f\u7528\u3057\u305f\u30a4\u30e1\u30fc\u30b8\u30bf\u30b0\u3092\u8a18\u9332\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u751f\u6210\u7528\u30e2\u30c7\u30eb<\/td>\n<td>\u30e2\u30c7\u30eb\u540d\u3068\u91cf\u5b50\u5316\u30bf\u30b0\u3092\u8a18\u9332\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb<\/td>\n<td>\u767b\u9332\u6642\u3068\u8a66\u9a13\u6642\u306e\u30e2\u30c7\u30eb\u540d\u3092\u8a18\u9332\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u6587\u66f8<\/td>\n<td>argolet.md \u306e SHA-256 \u3092\u8a18\u9332\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u691c\u7d22\u8a2d\u5b9a<\/td>\n<td>\u30c1\u30e3\u30f3\u30af\u30b5\u30a4\u30ba\u3001\u91cd\u8907\u91cf\u3001\u53d6\u5f97\u4ef6\u6570\u3001\u6df7\u5408\u691c\u7d22\u306e\u6709\u7121\u3092\u8a18\u9332\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u8cea\u554f<\/td>\n<td>\u5165\u529b\u3057\u305f\u6587\u5b57\u5217\u3092\u7701\u7565\u305b\u305a\u8a18\u9332\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u691c\u7d22\u7d50\u679c<\/td>\n<td>\u8868\u793a\u3055\u308c\u305f\u51fa\u5178\u3068\u3001\u56de\u7b54\u306b\u5fc5\u8981\u306a\u65ad\u7247\u304c\u542b\u307e\u308c\u305f\u304b\u3092\u8a18\u9332\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u56de\u7b54<\/td>\n<td>\u751f\u6210\u3055\u308c\u305f\u56de\u7b54\u5168\u6587\u3092\u8a18\u9332\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u5224\u5b9a<\/td>\n<td>\u691c\u7d22\u3001\u5fe0\u5b9f\u6027\u3001\u5b8c\u5168\u6027\u3001\u56de\u7b54\u4fdd\u7559\u3092\u500b\u5225\u306b\u5224\u5b9a\u3059\u308b\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u4e00\u56de\u306e\u6210\u529f\u7d50\u679c\u3060\u3051\u3067\u306f\u3001\u69cb\u6210\u5909\u66f4\u5f8c\u3082\u540c\u3058\u6319\u52d5\u304c\u7d9a\u304f\u3053\u3068\u3092\u4fdd\u8a3c\u3067\u304d\u306a\u3044\u3002\u5c11\u306a\u304f\u3068\u3082 T1 \u304b\u3089 T5 \u3092\u518d\u5b9f\u884c\u3057\u3001\u6b63\u3057\u3044\u51fa\u5178\u3068\u56de\u7b54\u304c\u7e70\u308a\u8fd4\u3057\u5f97\u3089\u308c\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b\u3002\u7d50\u679c\u304c\u63fa\u308c\u308b\u5834\u5408\u306f\u3001\u540c\u3058\u8cea\u554f\u3067\u3082\u691c\u7d22\u9806\u4f4d\u307e\u305f\u306f\u751f\u6210\u7d50\u679c\u304c\u5909\u5316\u3057\u3066\u3044\u308b\u305f\u3081\u3001\u6210\u529f\u7387\u3068\u5931\u6557\u5f62\u5f0f\u3092\u8a18\u9332\u3059\u308b\u3002<\/p>\n<h3>8.9 RAG \u306e\u5b8c\u6210\u6761\u4ef6\u3092\u78ba\u5b9a\u3059\u308b<\/h3>\n<p>\u672c\u69cb\u6210\u306b\u304a\u3051\u308b RAG \u306e\u5b8c\u6210\u6761\u4ef6\u306f\u3001Open WebUI \u306e\u753b\u9762\u3067 Knowledge \u3092\u9078\u629e\u3067\u304d\u308b\u3053\u3068\u3067\u3082\u3001Qdrant \u306b\u70b9\u304c\u5b58\u5728\u3059\u308b\u3053\u3068\u3067\u3082\u306a\u3044\u3002Knowledge \u3092\u63a5\u7d9a\u3057\u306a\u3044\u72b6\u614b\u3067\u306f\u7b54\u3048\u3089\u308c\u306a\u3044\u56fa\u6709\u60c5\u5831\u306b\u3064\u3044\u3066\u3001\u63a5\u7d9a\u5f8c\u306b\u306f\u8cea\u554f\u306b\u5bfe\u5fdc\u3059\u308b\u30c1\u30e3\u30f3\u30af\u304c\u53d6\u5f97\u3055\u308c\u3001\u305d\u306e\u30c1\u30e3\u30f3\u30af\u306b\u542b\u307e\u308c\u308b\u5024\u3001\u624b\u9806\u3001\u6761\u4ef6\u3060\u3051\u3092\u4f7f\u3063\u3066\u56de\u7b54\u3067\u304d\u308b\u3053\u3068\u3067\u3042\u308b\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u5b8c\u6210\u6761\u4ef6<\/th>\n<th>\u78ba\u8a8d\u5185\u5bb9<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u5bfe\u7167\u5dee<\/td>\n<td>Knowledge \u672a\u63a5\u7d9a\u6642\u3068\u63a5\u7d9a\u6642\u3067\u3001\u6839\u62e0\u306e\u6709\u7121\u306b\u5bfe\u5fdc\u3057\u305f\u56de\u7b54\u5dee\u304c\u73fe\u308c\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u691c\u7d22\u9069\u5408<\/td>\n<td>\u8cea\u554f\u306b\u5fc5\u8981\u306a\u5024\u3001\u624b\u9806\u3001\u6761\u4ef6\u3092\u542b\u3080\u30c1\u30e3\u30f3\u30af\u304c\u53d6\u5f97\u3055\u308c\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u6761\u4ef6\u4fdd\u6301<\/td>\n<td>\u5bfe\u8c61\u74b0\u5883\u3001\u5de5\u7a0b\u9806\u5e8f\u3001\u95be\u5024\u3001\u7d99\u7d9a\u6642\u9593\u3092\u6b20\u843d\u3055\u305b\u306a\u3044\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u6839\u62e0\u5fe0\u5b9f\u6027<\/td>\n<td>\u53d6\u5f97\u6587\u66f8\u306b\u306a\u3044\u6570\u5024\u3001\u4eba\u7269\u3001\u5de5\u7a0b\u3001\u6761\u4ef6\u3092\u8ffd\u52a0\u3057\u306a\u3044\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u56de\u7b54\u4fdd\u7559<\/td>\n<td>\u6587\u66f8\u306b\u5b58\u5728\u3057\u306a\u3044\u60c5\u5831\u306b\u3064\u3044\u3066\u3001\u78ba\u8a8d\u3067\u304d\u306a\u3044\u3068\u56de\u7b54\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u518d\u73fe\u6027<\/td>\n<td>\u65b0\u3057\u3044\u4f1a\u8a71\u3067\u540c\u3058\u8a66\u9a13\u3092\u884c\u3063\u3066\u3082\u3001\u540c\u3058\u6839\u62e0\u3068\u7d50\u8ad6\u3092\u5f97\u3089\u308c\u308b\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u672a\u63a5\u7d9a\u6642\u306b\u306f Argolet \u3092\u77e5\u3089\u305a\u3001\u63a5\u7d9a\u6642\u306b\u306f 47821\u3001Lapis-7\u3001Rho-Blue \u306e\u5fa9\u65e7\u6761\u4ef6\u3092\u6587\u66f8\u3069\u304a\u308a\u306b\u56de\u7b54\u3057\u3001\u672a\u8a18\u8f09\u306e\u958b\u767a\u8cac\u4efb\u8005\u540d\u306b\u3064\u3044\u3066\u56de\u7b54\u3092\u4fdd\u7559\u3067\u304d\u308c\u3070\u3001\u767b\u9332\u7d4c\u8def\u3001\u691c\u7d22\u7d4c\u8def\u3001\u751f\u6210\u7d4c\u8def\u304c\u4e00\u7d9a\u304d\u306b\u6210\u7acb\u3057\u3066\u3044\u308b\u3002\u3053\u3053\u3067\u78ba\u8a8d\u3055\u308c\u305f\u306e\u306f\u3001\u30e2\u30c7\u30eb\u304c\u6587\u66f8\u3092\u8a18\u61b6\u3057\u305f\u3053\u3068\u3067\u306f\u306a\u3044\u3002\u8cea\u554f\u306e\u305f\u3073\u306b\u5fc5\u8981\u306a\u30c1\u30e3\u30f3\u30af\u3092 Qdrant \u304b\u3089\u53d6\u5f97\u3057\u3001\u305d\u306e\u7bc4\u56f2\u5185\u3067\u56de\u7b54\u3092\u69cb\u6210\u3067\u304d\u308b\u30ed\u30fc\u30ab\u30eb RAG \u306e\u51e6\u7406\u7d4c\u8def\u3067\u3042\u308b\u3002<\/p>\n<hr>\n<h2>9. \u691c\u7d22\u7cbe\u5ea6\u3092\u6587\u5b57\u62bd\u51fa\u3001\u5206\u5272\u3001\u691c\u7d22\u3001\u751f\u6210\u306b\u5206\u3051\u3066\u8abf\u6574\u3059\u308b<\/h2>\n<h3>9.1 \u57fa\u6e96\u69cb\u6210\u3092\u56fa\u5b9a\u3057\u3066\u4e00\u9805\u76ee\u305a\u3064\u5909\u66f4\u3059\u308b<\/h3>\n<p>RAG \u306e\u56de\u7b54\u304c\u4e0d\u6b63\u78ba\u306a\u5834\u5408\u3001\u751f\u6210\u7528 LLM\u3001\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u3001\u30c1\u30e3\u30f3\u30af\u30b5\u30a4\u30ba\u3001\u91cd\u8907\u91cf\u3001\u53d6\u5f97\u4ef6\u6570\u3092\u540c\u6642\u306b\u5909\u66f4\u3057\u3066\u306f\u306a\u3089\u306a\u3044\u3002\u56de\u7b54\u304c\u6539\u5584\u3057\u3066\u3082\u3001\u3069\u306e\u5909\u66f4\u304c\u6709\u52b9\u3060\u3063\u305f\u306e\u304b\u3092\u7279\u5b9a\u3067\u304d\u305a\u3001\u5225\u306e\u6587\u66f8\u3067\u540c\u3058\u8abf\u6574\u3092\u518d\u73fe\u3067\u304d\u306a\u3044\u305f\u3081\u3067\u3042\u308b\u3002<\/p>\n<p>\u8abf\u6574\u524d\u306b\u3001\u7b2c 8 \u7ae0\u306e T1 \u304b\u3089 T5 \u3092\u57fa\u6e96\u8a66\u9a13\u3068\u3057\u3066\u5b9f\u884c\u3057\u3001\u8cea\u554f\u3001\u53d6\u5f97\u3055\u308c\u305f\u51fa\u5178\u3001\u56de\u7b54\u3001\u5408\u5426\u3092\u4fdd\u5b58\u3059\u308b\u3002\u305d\u306e\u3046\u3048\u3067\u4e00\u3064\u306e\u8a2d\u5b9a\u3060\u3051\u3092\u5909\u66f4\u3057\u3001Knowledge \u3092\u518d\u51e6\u7406\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u304b\u3092\u5224\u65ad\u3057\u3066\u304b\u3089\u3001\u540c\u3058\u8a66\u9a13\u3092\u7e70\u308a\u8fd4\u3059\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">\u539f\u6587<br \/>\n&nbsp; \u2193<br \/>\n\u6587\u5b57\u62bd\u51fa<br \/>\n&nbsp; \u2193<br \/>\n\u898b\u51fa\u3057\u51e6\u7406\u3068\u30c1\u30e3\u30f3\u30af\u5206\u5272<br \/>\n&nbsp; \u2193<br \/>\n\u57cb\u3081\u8fbc\u307f\u30d9\u30af\u30c8\u30eb\u751f\u6210<br \/>\n&nbsp; \u2193<br \/>\nQdrant \u3078\u4fdd\u5b58<br \/>\n&nbsp; \u2193<br \/>\n\u8cea\u554f\u306b\u5bfe\u3059\u308b\u985e\u4f3c\u691c\u7d22<br \/>\n&nbsp; \u2193<br \/>\n\u53d6\u5f97\u30c1\u30e3\u30f3\u30af\u3092\u751f\u6210\u5165\u529b\u3078\u8ffd\u52a0<br \/>\n&nbsp; \u2193<br \/>\n\u751f\u6210\u7528 LLM \u304c\u56de\u7b54<br \/>\n&nbsp; \u2193<br \/>\n\u51fa\u5178\u3068\u56de\u7b54\u3092\u500b\u5225\u306b\u8a55\u4fa1<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<table>\n<thead>\n<tr>\n<th>\u5909\u66f4\u5bfe\u8c61<\/th>\n<th>\u5909\u5316\u3059\u308b\u51e6\u7406<\/th>\n<th>\u518d\u7d22\u5f15<\/th>\n<th>\u6bd4\u8f03\u5bfe\u8c61<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u6587\u66f8\u672c\u6587<\/td>\n<td>\u62bd\u51fa\u5bfe\u8c61\u3001\u30c1\u30e3\u30f3\u30af\u672c\u6587\u3001\u57cb\u3081\u8fbc\u307f\u30d9\u30af\u30c8\u30eb\u304c\u5909\u308f\u308b\u3002<\/td>\n<td>\u5fc5\u8981<\/td>\n<td>\u5909\u66f4\u524d\u5f8c\u306e\u539f\u6587\u3001\u70b9\u6570\u3001\u4ed8\u968f\u60c5\u5831\u3001\u691c\u7d22\u7d50\u679c\u3092\u6bd4\u8f03\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u6587\u5b57\u62bd\u51fa\u6a5f\u69cb<\/td>\n<td>\u62bd\u51fa\u3055\u308c\u308b\u672c\u6587\u3068\u8aad\u307f\u9806\u304c\u5909\u308f\u308b\u3002<\/td>\n<td>\u5fc5\u8981<\/td>\n<td>\u56fa\u6709\u6587\u5b57\u5217\u3001\u8868\u306e\u5217\u95a2\u4fc2\u3001\u6bb5\u843d\u9806\u5e8f\u3092\u6bd4\u8f03\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u30c1\u30e3\u30f3\u30af\u30b5\u30a4\u30ba\u3001\u91cd\u8907\u91cf\u3001\u5206\u5272\u65b9\u5f0f<\/td>\n<td>\u691c\u7d22\u5358\u4f4d\u3068\u30d9\u30af\u30c8\u30eb\u6570\u304c\u5909\u308f\u308b\u3002<\/td>\n<td>\u5fc5\u8981<\/td>\n<td>\u70b9\u6570\u3001\u5404\u30c1\u30e3\u30f3\u30af\u306e\u672c\u6587\u3001\u691c\u7d22\u9806\u4f4d\u3092\u6bd4\u8f03\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb<\/td>\n<td>\u6587\u66f8\u3068\u8cea\u554f\u3092\u914d\u7f6e\u3059\u308b\u610f\u5473\u7a7a\u9593\u304c\u5909\u308f\u308b\u3002<\/td>\n<td>\u5fc5\u8981<\/td>\n<td>\u30d9\u30af\u30c8\u30eb\u6b21\u5143\u3001\u691c\u7d22\u9806\u4f4d\u3001\u8a00\u3044\u63db\u3048\u8a66\u9a13\u306e\u7d50\u679c\u3092\u6bd4\u8f03\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u53d6\u5f97\u4ef6\u6570<\/td>\n<td>\u751f\u6210\u7528 LLM \u3078\u6e21\u3059\u30c1\u30e3\u30f3\u30af\u6570\u304c\u5909\u308f\u308b\u3002<\/td>\n<td>\u4e0d\u8981<\/td>\n<td>\u5fc5\u8981\u306a\u6839\u62e0\u306e\u53d6\u5f97\u7387\u3001\u7121\u95a2\u4fc2\u306a\u65ad\u7247\u3001\u5165\u529b\u6587\u8108\u91cf\u3092\u6bd4\u8f03\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>RAG \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8<\/td>\n<td>\u53d6\u5f97\u30c1\u30e3\u30f3\u30af\u3092\u751f\u6210\u7528 LLM \u3078\u6e21\u3059\u6307\u793a\u304c\u5909\u308f\u308b\u3002<\/td>\n<td>\u4e0d\u8981<\/td>\n<td>\u6b63\u3057\u3044\u6839\u62e0\u3092\u53d6\u5f97\u3057\u305f\u5834\u5408\u306e\u56de\u7b54\u5fe0\u5b9f\u6027\u3092\u6bd4\u8f03\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u751f\u6210\u7528 LLM\u3001\u6e29\u5ea6<\/td>\n<td>\u540c\u3058\u53d6\u5f97\u6587\u8108\u304b\u3089\u751f\u6210\u3055\u308c\u308b\u56de\u7b54\u304c\u5909\u308f\u308b\u3002<\/td>\n<td>\u4e0d\u8981<\/td>\n<td>\u6839\u62e0\u5fe0\u5b9f\u6027\u3001\u56de\u7b54\u4fdd\u7559\u3001\u518d\u73fe\u6027\u3001\u5fdc\u7b54\u901f\u5ea6\u3092\u6bd4\u8f03\u3059\u308b\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u6700\u521d\u306b\u5909\u66f4\u3059\u308b\u306e\u306f\u3001\u6700\u7d42\u56de\u7b54\u304b\u3089\u6700\u3082\u9060\u3044\u751f\u6210\u8a2d\u5b9a\u3067\u306f\u306a\u304f\u3001\u51e6\u7406\u7d4c\u8def\u306e\u4e0a\u6d41\u306b\u3042\u308b\u6587\u5b57\u62bd\u51fa\u3067\u3042\u308b\u3002\u4e0a\u6d41\u3067\u5931\u308f\u308c\u305f\u60c5\u5831\u306f\u3001\u4e0b\u6d41\u306e\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u3084\u751f\u6210\u7528 LLM\u3092\u5909\u66f4\u3057\u3066\u3082\u5fa9\u5143\u3067\u304d\u306a\u3044\u3002\u62bd\u51fa\u7d50\u679c\u304c\u6b63\u3057\u3044\u3053\u3068\u3092\u78ba\u8a8d\u3057\u3066\u304b\u3089\u3001\u5206\u5272\u3001\u691c\u7d22\u3001\u751f\u6210\u306e\u9806\u306b\u9032\u3080\u3002<\/p>\n<h3>9.2 \u539f\u6587\u3068\u62bd\u51fa\u7d50\u679c\u306e\u4e00\u81f4\u3092\u78ba\u8a8d\u3059\u308b<\/h3>\n<p>\u6587\u66f8\u306b\u7b54\u3048\u304c\u8a18\u8f09\u3055\u308c\u3066\u3044\u308b\u306e\u306b\u691c\u7d22\u7d50\u679c\u3078\u73fe\u308c\u306a\u3044\u5834\u5408\u3001\u6700\u521d\u306b\u5fc5\u8981\u306a\u6587\u5b57\u5217\u304c\u62bd\u51fa\u3055\u308c\u305f\u304b\u3092\u78ba\u8a8d\u3059\u308b\u3002\u753b\u50cf\u3060\u3051\u306e PDF\u3001\u8907\u96d1\u306a\u6bb5\u7d44\u307f\u3001\u8868\u3001\u30d8\u30c3\u30c0\u30fc\u3068\u30d5\u30c3\u30bf\u30fc\u3092\u6301\u3064\u6587\u66f8\u3067\u306f\u3001\u753b\u9762\u4e0a\u306b\u60c5\u5831\u304c\u898b\u3048\u3066\u3044\u3066\u3082\u3001\u62bd\u51fa\u7d50\u679c\u304b\u3089\u6b20\u843d\u3057\u305f\u308a\u3001\u8aad\u307f\u9806\u304c\u5d29\u308c\u305f\u308a\u3059\u308b\u3002<\/p>\n<p>Open WebUI \u306e\u6587\u66f8\u8868\u793a\u307e\u305f\u306f\u53d6\u5f97\u3057\u305f Qdrant \u306e\u4ed8\u968f\u60c5\u5831\u304b\u3089\u3001\u8cea\u554f\u3078\u306e\u56de\u7b54\u306b\u5fc5\u8981\u306a\u6587\u5b57\u5217\u3092\u78ba\u8a8d\u3059\u308b\u3002Argolet \u306e\u691c\u8a3c\u3067\u306f\u3001\u5c11\u306a\u304f\u3068\u3082\u6b21\u306e\u5bfe\u5fdc\u95a2\u4fc2\u304c\u6587\u5b57\u5217\u3068\u3057\u3066\u6b8b\u3063\u3066\u3044\u308b\u5fc5\u8981\u304c\u3042\u308b\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u8cea\u554f\u5bfe\u8c61<\/th>\n<th>\u62bd\u51fa\u7d50\u679c\u306b\u5fc5\u8981\u306a\u6587\u5b57\u5217<\/th>\n<th>\u6587\u5b57\u5217\u3060\u3051\u3067\u306f\u4e0d\u5341\u5206\u306a\u6761\u4ef6<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u672c\u756a\u4fdd\u5b88\u30dd\u30fc\u30c8<\/td>\n<td>Argolet\u3001\u672c\u756a\u300147821<\/td>\n<td>\u958b\u767a\u74b0\u5883\u306e 47822 \u3068\u5bfe\u8c61\u74b0\u5883\u3092\u533a\u5225\u3067\u304d\u308b\u5fc5\u8981\u304c\u3042\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u7dca\u6025\u505c\u6b62<\/td>\n<td>Lapis-7\u3001\u63a5\u7d9a\u30ad\u30e5\u30fc\u3001\u66f8\u304d\u8fbc\u307f\u51e6\u7406<\/td>\n<td>\u4e8c\u3064\u306e\u5de5\u7a0b\u306e\u9806\u5e8f\u304c\u4fdd\u6301\u3055\u308c\u3066\u3044\u308b\u5fc5\u8981\u304c\u3042\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u5fa9\u65e7\u6761\u4ef6<\/td>\n<td>Rho-Blue\u30010.20 \u672a\u6e80\u300115 \u5206\u9593<\/td>\n<td>\u4e00\u6642\u7684\u306a\u4f4e\u4e0b\u3067\u306f\u306a\u304f\u3001\u9023\u7d9a\u6761\u4ef6\u3067\u3042\u308b\u5fc5\u8981\u304c\u3042\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u958b\u767a\u8cac\u4efb\u8005<\/td>\n<td>\u8a18\u8f09\u3057\u3066\u3044\u306a\u3044\u3001\u5224\u65ad\u3067\u304d\u306a\u3044<\/td>\n<td>\u4eba\u7269\u540d\u304c\u5b58\u5728\u3057\u306a\u3044\u3053\u3068\u81ea\u4f53\u3092\u6839\u62e0\u3068\u3057\u3066\u53d6\u5f97\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u62bd\u51fa\u7d50\u679c\u306b\u5fc5\u8981\u306a\u6587\u5b57\u5217\u304c\u5b58\u5728\u3057\u306a\u3044\u5834\u5408\u306f\u3001\u30c1\u30e3\u30f3\u30af\u30b5\u30a4\u30ba\u3084\u53d6\u5f97\u4ef6\u6570\u3092\u5909\u66f4\u3057\u306a\u3044\u3002\u540c\u3058\u5185\u5bb9\u3092 Markdown \u3078\u79fb\u3057\u3001Markdown \u3067\u306f\u691c\u7d22\u3067\u304d\u308b\u304b\u3092\u78ba\u8a8d\u3059\u308b\u3002Markdown \u3067\u6210\u529f\u3057\u3001\u5143\u306e PDF \u3067\u5931\u6557\u3059\u308b\u5834\u5408\u3001RAG \u5168\u4f53\u3067\u306f\u306a\u304f\u6587\u66f8\u62bd\u51fa\u304c\u539f\u56e0\u3067\u3042\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">\u5143\u306e PDF \u3067\u306f\u5931\u6557<br \/>\n&nbsp; \u2193<br \/>\n\u540c\u3058\u5185\u5bb9\u3092 Markdown \u3068\u3057\u3066\u767b\u9332<br \/>\n&nbsp; \u2193<br \/>\nMarkdown \u3067\u306f\u6210\u529f<br \/>\n&nbsp; \u2193<br \/>\n\u57cb\u3081\u8fbc\u307f\u3001Qdrant\u3001\u691c\u7d22\u3001\u751f\u6210\u306e\u57fa\u672c\u7d4c\u8def\u306f\u6210\u7acb<br \/>\n&nbsp; \u2193<br \/>\nPDF \u306e\u6587\u5b57\u5c64\u3001\u8aad\u307f\u9806\u3001\u8868\u69cb\u9020\u3001\u62bd\u51fa\u6a5f\u69cb\u3092\u8abf\u6574<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>\u6587\u5b57\u5217\u304c\u5b58\u5728\u3057\u3066\u3044\u3066\u3082\u3001\u8868\u306e\u5217\u95a2\u4fc2\u3084\u624b\u9806\u306e\u9806\u5e8f\u304c\u5d29\u308c\u3066\u3044\u308b\u5834\u5408\u306f\u3001\u691c\u7d22\u7528\u6587\u66f8\u3068\u3057\u3066\u5341\u5206\u3067\u306f\u306a\u3044\u3002\u4f4d\u7f6e\u95a2\u4fc2\u306b\u4f9d\u5b58\u3059\u308b\u60c5\u5831\u306f\u3001\u5224\u65ad\u5bfe\u8c61\u3068\u5024\u306e\u5bfe\u5fdc\u3092\u6587\u7ae0\u3068\u3057\u3066\u660e\u793a\u3059\u308b\u3002\u62bd\u51fa\u6a5f\u69cb\u306e\u9ad8\u5ea6\u5316\u3088\u308a\u3001\u691c\u7d22\u306b\u5fc5\u8981\u306a\u95a2\u4fc2\u3092\u88dc\u52a9 Markdown \u3068\u3057\u3066\u4f5c\u6210\u3059\u308b\u65b9\u304c\u518d\u73fe\u6027\u3092\u78ba\u4fdd\u3057\u3084\u3059\u3044\u5834\u5408\u3082\u3042\u308b\u3002<\/p>\n<h3>9.3 \u691c\u7d22\u53ef\u80fd\u306a\u30c1\u30e3\u30f3\u30af\u672c\u6587\u306b\u306a\u3063\u3066\u3044\u308b\u304b\u78ba\u8a8d\u3059\u308b<\/h3>\n<p>\u6587\u5b57\u62bd\u51fa\u304c\u6b63\u3057\u304f\u3066\u3082\u3001\u5206\u5272\u5f8c\u306e\u30c1\u30e3\u30f3\u30af\u304c\u5358\u72ec\u3067\u610f\u5473\u3092\u6301\u305f\u306a\u3051\u308c\u3070\u3001\u5b89\u5b9a\u3057\u305f\u691c\u7d22\u306f\u3067\u304d\u306a\u3044\u3002Open WebUI \u3067\u306f\u3001Markdown \u898b\u51fa\u3057\u5206\u5272\u3092\u6709\u52b9\u306b\u3059\u308b\u3068\u898b\u51fa\u3057\u5358\u4f4d\u3067\u524d\u51e6\u7406\u3057\u305f\u5f8c\u3001\u6587\u5b57\u307e\u305f\u306f\u30c8\u30fc\u30af\u30f3\u306b\u3088\u308b\u901a\u5e38\u306e\u5206\u5272\u3092\u884c\u3046\u3002\u30c1\u30e3\u30f3\u30af\u30b5\u30a4\u30ba\u306f\u3001RAG_TEXT_SPLITTER=character \u306e\u5834\u5408\u306f\u6587\u5b57\u6570\u3001token \u306e\u5834\u5408\u306f\u30c8\u30fc\u30af\u30f3\u6570\u3068\u3057\u3066\u6271\u308f\u308c\u308b<a href=\"#ref34\">[34]<\/a>\u3002<\/p>\n<p>\u672c\u69cb\u6210\u3067\u306f\u6587\u5b57\u5206\u5272\u3092\u4f7f\u7528\u3057\u3066\u3044\u308b\u305f\u3081\u3001CHUNK_SIZE=1000 \u306f\u6700\u5927 1000 \u6587\u5b57\u3092\u610f\u5473\u3059\u308b\u3002Open WebUI \u306e\u753b\u9762\u307e\u305f\u306f Qdrant \u306e\u4ed8\u968f\u60c5\u5831\u304b\u3089\u3001\u53d6\u5f97\u5bfe\u8c61\u3068\u306a\u308b\u30c1\u30e3\u30f3\u30af\u672c\u6587\u3092\u78ba\u8a8d\u3057\u3001\u8cea\u554f\u3078\u306e\u56de\u7b54\u306b\u5fc5\u8981\u306a\u8981\u7d20\u304c\u540c\u3058\u610f\u5473\u5358\u4f4d\u3078\u6b8b\u3063\u3066\u3044\u308b\u304b\u3092\u898b\u308b\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u30c1\u30e3\u30f3\u30af\u672c\u6587\u306e\u72b6\u614b<\/th>\n<th>\u691c\u7d22\u307e\u305f\u306f\u751f\u6210\u3078\u306e\u5f71\u97ff<\/th>\n<th>\u8abf\u6574\u65b9\u5411<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u4e3b\u8a9e\u3068\u5024\u304c\u5225\u306e\u30c1\u30e3\u30f3\u30af\u3078\u5206\u304b\u308c\u3066\u3044\u308b<\/td>\n<td>47821 \u3092\u53d6\u5f97\u3057\u3066\u3082\u3001\u4f55\u306e\u5024\u304b\u3092\u78ba\u5b9a\u3067\u304d\u306a\u3044\u3002<\/td>\n<td>\u30c1\u30e3\u30f3\u30af\u30b5\u30a4\u30ba\u3092\u5e83\u3052\u308b\u304b\u3001\u539f\u6587\u306e\u4e00\u6587\u5185\u3078\u4e3b\u8a9e\u3068\u5024\u3092\u307e\u3068\u3081\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u6761\u4ef6\u3068\u4f8b\u5916\u304c\u5225\u306e\u30c1\u30e3\u30f3\u30af\u3078\u5206\u304b\u308c\u3066\u3044\u308b<\/td>\n<td>\u95be\u5024\u3060\u3051\u3092\u53d6\u5f97\u3057\u300115 \u5206\u9593\u306e\u9023\u7d9a\u6761\u4ef6\u3092\u6b20\u843d\u3055\u305b\u308b\u3002<\/td>\n<td>\u6761\u4ef6\u3092\u4e00\u6bb5\u843d\u3078\u307e\u3068\u3081\u3001\u5fc5\u8981\u306b\u5fdc\u3058\u3066\u30b5\u30a4\u30ba\u307e\u305f\u306f\u91cd\u8907\u91cf\u3092\u5897\u3084\u3059\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u8907\u6570\u306e\u5bfe\u8c61\u3068\u6570\u5024\u304c\u4e00\u3064\u306e\u30c1\u30e3\u30f3\u30af\u3078\u6df7\u5728\u3057\u3066\u3044\u308b<\/td>\n<td>\u672c\u756a\u306e 47821 \u3068\u958b\u767a\u306e 47822 \u3092\u53d6\u308a\u9055\u3048\u3084\u3059\u304f\u306a\u308b\u3002<\/td>\n<td>\u898b\u51fa\u3057\u307e\u305f\u306f\u6bb5\u843d\u3092\u5206\u3051\u3001\u30c1\u30e3\u30f3\u30af\u30b5\u30a4\u30ba\u3092\u7e2e\u5c0f\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u898b\u51fa\u3057\u3060\u3051\u306e\u6975\u7aef\u306b\u77ed\u3044\u30c1\u30e3\u30f3\u30af\u304c\u3042\u308b<\/td>\n<td>\u57cb\u3081\u8fbc\u307f\u306b\u5fc5\u8981\u306a\u610f\u5473\u60c5\u5831\u304c\u4e0d\u8db3\u3057\u3001\u691c\u7d22\u5019\u88dc\u3092\u6d88\u8cbb\u3059\u308b\u3002<\/td>\n<td>\u898b\u51fa\u3057\u76f4\u4e0b\u306b\u5bfe\u8c61\u3068\u8981\u70b9\u3092\u8a18\u8ff0\u3057\u3001\u77ed\u3044\u65ad\u7247\u3092\u96a3\u63a5\u672c\u6587\u3078\u7d71\u5408\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u540c\u3058\u6587\u7ae0\u304c\u8907\u6570\u30c1\u30e3\u30f3\u30af\u3078\u5927\u91cf\u306b\u91cd\u8907\u3057\u3066\u3044\u308b<\/td>\n<td>\u53d6\u5f97\u4e0a\u4f4d\u3092\u985e\u4f3c\u65ad\u7247\u304c\u5360\u3081\u3001\u5225\u306e\u6839\u62e0\u3092\u53d6\u5f97\u3067\u304d\u306a\u304f\u306a\u308b\u3002<\/td>\n<td>\u91cd\u8907\u91cf\u3092\u6e1b\u3089\u3059\u304b\u3001\u539f\u6587\u5185\u306e\u91cd\u8907\u8a18\u8ff0\u3092\u6574\u7406\u3059\u308b\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u691c\u7d22\u306b\u5931\u6557\u3057\u305f\u8cea\u554f\u306b\u3064\u3044\u3066\u3001\u6700\u521d\u306b\u300c\u53d6\u5f97\u3055\u308c\u308b\u3079\u304d\u7406\u60f3\u7684\u306a\u30c1\u30e3\u30f3\u30af\u300d\u3092\u6587\u7ae0\u3068\u3057\u3066\u5b9a\u7fa9\u3059\u308b\u3002\u305f\u3068\u3048\u3070\u5fa9\u65e7\u6761\u4ef6\u3067\u306f\u3001\u6b21\u306e\u4e00\u6587\u304c\u4e00\u3064\u306e\u6839\u62e0\u5358\u4f4d\u3068\u3057\u3066\u6b8b\u308b\u3053\u3068\u304c\u671b\u307e\u3057\u3044\u3002<\/p>\n<div class=\"note\">\n<p>\u5fa9\u65e7\u3092\u958b\u59cb\u3067\u304d\u308b\u306e\u306f\u3001\u76e3\u8996\u6307\u6a19 Rho-Blue \u304c 15 \u5206\u9593\u9023\u7d9a\u3057\u3066 0.20 \u672a\u6e80\u306b\u306a\u3063\u305f\u5834\u5408\u3060\u3051\u3067\u3042\u308b\u3002<\/p>\n<\/div>\n<p>\u7406\u60f3\u7684\u306a\u30c1\u30e3\u30f3\u30af\u672c\u6587\u3092\u6c7a\u3081\u305a\u306b\u30b5\u30a4\u30ba\u3060\u3051\u3092\u5909\u66f4\u3059\u308b\u3068\u3001\u70b9\u6570\u306e\u5897\u6e1b\u306f\u89b3\u5bdf\u3067\u304d\u3066\u3082\u3001\u691c\u7d22\u54c1\u8cea\u304c\u6539\u5584\u3057\u305f\u304b\u3092\u5224\u65ad\u3067\u304d\u306a\u3044\u3002\u5404\u8a66\u9a13\u8cea\u554f\u306b\u3064\u3044\u3066\u3001\u5fc5\u8981\u306a\u4e3b\u8a9e\u3001\u5024\u3001\u6761\u4ef6\u3001\u4f8b\u5916\u304c\u540c\u3058\u30c1\u30e3\u30f3\u30af\u306b\u542b\u307e\u308c\u308b\u3053\u3068\u3092\u5148\u306b\u78ba\u8a8d\u3059\u308b\u3002<\/p>\n<h3>9.4 \u30c1\u30e3\u30f3\u30af\u30b5\u30a4\u30ba\u3068\u91cd\u8907\u91cf\u3092\u6bb5\u968e\u7684\u306b\u8abf\u6574\u3059\u308b<\/h3>\n<p>\u77ed\u3044\u4ed5\u69d8\u66f8\u3067\u306f\u30011000 \u6587\u5b57\u306e\u30c1\u30e3\u30f3\u30af\u306b\u8907\u6570\u306e\u7bc0\u304c\u5165\u308b\u5834\u5408\u304c\u3042\u308b\u3002Argolet \u306e\u672c\u756a\u63a5\u7d9a\u3001\u7dca\u6025\u505c\u6b62\u3001\u5fa9\u65e7\u6761\u4ef6\u304c\u540c\u3058\u30c1\u30e3\u30f3\u30af\u3078\u6df7\u5728\u3059\u308b\u5834\u5408\u306f\u3001\u30c1\u30e3\u30f3\u30af\u30b5\u30a4\u30ba\u3092\u6bb5\u968e\u7684\u306b\u7e2e\u5c0f\u3059\u308b\u3002\u305f\u3060\u3057\u3001\u30b5\u30a4\u30ba\u3068\u91cd\u8907\u91cf\u3092\u540c\u6642\u306b\u5909\u66f4\u305b\u305a\u3001\u3069\u3061\u3089\u306e\u5909\u66f4\u304c\u691c\u7d22\u7d50\u679c\u3078\u5f71\u97ff\u3057\u305f\u304b\u3092\u5206\u3051\u308b\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u8a66\u9a13\u69cb\u6210<\/th>\n<th>\u30c1\u30e3\u30f3\u30af\u30b5\u30a4\u30ba<\/th>\n<th>\u91cd\u8907\u91cf<\/th>\n<th>\u5909\u66f4\u76ee\u7684<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>C0<\/td>\n<td>1000<\/td>\n<td>100<\/td>\n<td>\u73fe\u5728\u306e\u57fa\u6e96\u69cb\u6210\u3068\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>C1<\/td>\n<td>800<\/td>\n<td>100<\/td>\n<td>\u7570\u306a\u308b\u7bc0\u306e\u6df7\u5728\u304c\u6e1b\u308b\u304b\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>C2<\/td>\n<td>600<\/td>\n<td>100<\/td>\n<td>\u8cea\u554f\u5bfe\u8c61\u3092\u3055\u3089\u306b\u9650\u5b9a\u3067\u304d\u308b\u304b\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>C3<\/td>\n<td>600<\/td>\n<td>50<\/td>\n<td>\u540c\u3058\u5185\u5bb9\u306e\u91cd\u8907\u53d6\u5f97\u3092\u6291\u3048\u3089\u308c\u308b\u304b\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>C4<\/td>\n<td>600<\/td>\n<td>150<\/td>\n<td>\u6761\u4ef6\u3084\u624b\u9806\u304c\u5883\u754c\u3067\u5207\u308c\u308b\u5834\u5408\u306b\u3001\u9023\u7d9a\u6027\u3092\u88dc\u3048\u308b\u304b\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>C1 \u3068 C2 \u3067\u306f\u91cd\u8907\u91cf\u3092 100 \u306e\u307e\u307e\u7dad\u6301\u3057\u3001\u30c1\u30e3\u30f3\u30af\u30b5\u30a4\u30ba\u306e\u52b9\u679c\u3060\u3051\u3092\u6bd4\u8f03\u3059\u308b\u3002\u9069\u5207\u306a\u30b5\u30a4\u30ba\u304c\u6c7a\u307e\u3063\u305f\u5f8c\u3001C3 \u307e\u305f\u306f C4 \u3067\u91cd\u8907\u91cf\u3092\u8abf\u6574\u3059\u308b\u3002\u3059\u3079\u3066\u306e\u5024\u3092\u8a66\u3059\u5fc5\u8981\u306f\u306a\u304f\u3001\u524d\u6bb5\u968e\u3067\u5931\u6557\u539f\u56e0\u304c\u89e3\u6d88\u3057\u305f\u6642\u70b9\u3067\u5909\u66f4\u3092\u6b62\u3081\u308b\u3002<\/p>\n<p>\u69cb\u6210\u5024\u3092\u5909\u66f4\u3059\u308b\u5834\u5408\u306f\u3001.env \u3084 compose.yaml \u3092\u69cb\u6210\u306e\u6b63\u3068\u3057\u3066\u66f4\u65b0\u3057\u3001Open WebUI \u30b3\u30f3\u30c6\u30ca\u30fc\u3092\u518d\u4f5c\u6210\u3059\u308b\u3002\u73fe\u5728\u306e\u69cb\u6210\u3067\u306f\u30c1\u30e3\u30f3\u30af\u5024\u3092 compose.yaml \u306b\u76f4\u63a5\u8a18\u8ff0\u3057\u3066\u3044\u308b\u305f\u3081\u3001\u5bfe\u8c61\u5024\u3092\u4e00\u3064\u3060\u3051\u5909\u66f4\u3059\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">python3 - &lt;&lt;'PY'<br \/>\nfrom pathlib import Path<br \/>\n<br \/>\npath = Path(&quot;compose.yaml&quot;)<br \/>\ntext = path.read_text(encoding=&quot;utf-8&quot;)<br \/>\n<br \/>\nold = ' &nbsp; &nbsp; &nbsp;CHUNK_SIZE: &quot;1000&quot;'<br \/>\nnew = ' &nbsp; &nbsp; &nbsp;CHUNK_SIZE: &quot;800&quot;'<br \/>\n<br \/>\nif old not in text:<br \/>\n&nbsp; &nbsp; raise SystemExit(&quot;The expected CHUNK_SIZE setting was not found&quot;)<br \/>\n<br \/>\npath.write_text(text.replace(old, new, 1), encoding=&quot;utf-8&quot;)<br \/>\nPY<br \/>\n<br \/>\ndocker compose config --quiet<br \/>\ndocker compose up -d --force-recreate open-webui<br \/>\n<br \/>\ndocker compose exec open-webui printenv CHUNK_SIZE<br \/>\ndocker compose exec open-webui printenv CHUNK_OVERLAP<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>\u30c1\u30e3\u30f3\u30af\u30b5\u30a4\u30ba\u307e\u305f\u306f\u91cd\u8907\u91cf\u3092\u5909\u66f4\u3057\u305f\u3060\u3051\u3067\u306f\u3001Qdrant \u306b\u4fdd\u5b58\u6e08\u307f\u306e\u70b9\u306f\u5909\u5316\u3057\u306a\u3044\u3002Knowledge \u306e\u518d\u7d22\u5f15\u3092\u5b9f\u884c\u3057\u3001\u73fe\u5728\u306e\u8a2d\u5b9a\u3067\u6587\u5b57\u62bd\u51fa\u3001\u5206\u5272\u3001\u57cb\u3081\u8fbc\u307f\u3001\u4fdd\u5b58\u3092\u3084\u308a\u76f4\u3059<a href=\"#ref32\">[32]<\/a>\u3002\u518d\u7d22\u5f15\u5f8c\u306b\u306f\u3001\u70b9\u6570\u3068\u4ed8\u968f\u60c5\u5831\u3092\u78ba\u8a8d\u3057\u3066\u304b\u3089 T1 \u304b\u3089 T5 \u3092\u518d\u5b9f\u884c\u3059\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">\u69cb\u6210\u5024\u3092\u4e00\u3064\u5909\u66f4<br \/>\n&nbsp; \u2193<br \/>\nOpen WebUI \u3092\u518d\u4f5c\u6210<br \/>\n&nbsp; \u2193<br \/>\n\u5b9f\u884c\u4e2d\u306e\u74b0\u5883\u5909\u6570\u3092\u78ba\u8a8d<br \/>\n&nbsp; \u2193<br \/>\nKnowledge \u3092\u518d\u7d22\u5f15<br \/>\n&nbsp; \u2193<br \/>\nQdrant \u306e\u70b9\u6570\u3068\u30c1\u30e3\u30f3\u30af\u672c\u6587\u3092\u78ba\u8a8d<br \/>\n&nbsp; \u2193<br \/>\n\u540c\u3058\u8a66\u9a13\u8cea\u554f\u3092\u5b9f\u884c<br \/>\n&nbsp; \u2193<br \/>\n\u57fa\u6e96\u69cb\u6210\u3068\u6bd4\u8f03<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>\u70b9\u6570\u304c\u5897\u3048\u305f\u3053\u3068\u81ea\u4f53\u306f\u6539\u5584\u3092\u610f\u5473\u3057\u306a\u3044\u3002\u30c1\u30e3\u30f3\u30af\u3092\u5c0f\u3055\u304f\u3059\u308b\u3068\u70b9\u6570\u306f\u5897\u3048\u3084\u3059\u3044\u304c\u3001\u5fc5\u8981\u306a\u6761\u4ef6\u304c\u5206\u65ad\u3055\u308c\u308b\u53ef\u80fd\u6027\u3082\u9ad8\u307e\u308b\u3002\u8a55\u4fa1\u5bfe\u8c61\u306f\u3001\u70b9\u6570\u3067\u306f\u306a\u304f\u3001\u8cea\u554f\u306b\u5fc5\u8981\u306a\u30c1\u30e3\u30f3\u30af\u304c\u53d6\u5f97\u3055\u308c\u3001\u4f59\u5206\u306a\u30c1\u30e3\u30f3\u30af\u304c\u6e1b\u308a\u3001\u56de\u7b54\u306b\u5fc5\u8981\u306a\u95a2\u4fc2\u304c\u4fdd\u6301\u3055\u308c\u305f\u304b\u3067\u3042\u308b\u3002<\/p>\n<h3>9.5 \u53d6\u5f97\u4ef6\u6570\u306f\u691c\u7d22\u6f0f\u308c\u3092\u78ba\u8a8d\u3057\u3066\u304b\u3089\u5897\u3084\u3059<\/h3>\n<p>RAG_TOP_K \u306f\u3001\u8cea\u554f\u3054\u3068\u306b\u53d6\u5f97\u3059\u308b\u5019\u88dc\u30c1\u30e3\u30f3\u30af\u6570\u306e\u57fa\u6e96\u5024\u3067\u3042\u308b\u3002\u73fe\u5728\u306e\u69cb\u6210\u3067\u306f 3 \u4ef6\u3092\u53d6\u5f97\u3059\u308b\u3002\u5fc5\u8981\u306a\u30c1\u30e3\u30f3\u30af\u304c\u691c\u7d22\u9806\u4f4d\u306e 4 \u4f4d\u307e\u305f\u306f 5 \u4f4d\u306b\u3042\u308b\u5834\u5408\u306f\u30015 \u4ef6\u3078\u5897\u3084\u3059\u3053\u3068\u3067\u691c\u7d22\u6f0f\u308c\u3092\u6e1b\u3089\u305b\u308b\u3002<\/p>\n<p>\u53d6\u5f97\u4ef6\u6570\u3092\u5897\u3084\u3059\u524d\u306b\u3001\u73fe\u5728\u306e\u4e0a\u4f4d 3 \u4ef6\u3092\u78ba\u8a8d\u3059\u308b\u3002\u6b63\u3057\u3044\u30c1\u30e3\u30f3\u30af\u304c\u65e2\u306b\u542b\u307e\u308c\u3066\u3044\u308b\u5834\u5408\u30015 \u4ef6\u3078\u5897\u3084\u3057\u3066\u3082\u691c\u7d22\u5931\u6557\u306f\u89e3\u6d88\u3057\u306a\u3044\u3002\u8ffd\u52a0\u3055\u308c\u308b\u7121\u95a2\u4fc2\u306a\u30c1\u30e3\u30f3\u30af\u306b\u3088\u3063\u3066\u751f\u6210\u7528 LLM \u306e\u5224\u65ad\u304c\u4e0d\u5b89\u5b9a\u306b\u306a\u308b\u53ef\u80fd\u6027\u304c\u3042\u308b\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u73fe\u5728\u306e\u4e0a\u4f4d 3 \u4ef6<\/th>\n<th>\u53d6\u5f97\u4ef6\u6570\u3092\u5897\u3084\u3059\u5224\u65ad<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u6b63\u3057\u3044\u30c1\u30e3\u30f3\u30af\u304c 1 \u4f4d\u306b\u3042\u308b<\/td>\n<td>\u5897\u3084\u3055\u306a\u3044\u3002\u751f\u6210\u7528 LLM \u307e\u305f\u306f RAG \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u6b63\u3057\u3044\u30c1\u30e3\u30f3\u30af\u304c 2 \u4f4d\u307e\u305f\u306f 3 \u4f4d\u306b\u3042\u308b<\/td>\n<td>\u56de\u7b54\u3078\u6e21\u3055\u308c\u3066\u3044\u308b\u306a\u3089\u5897\u3084\u3055\u306a\u3044\u3002\u7af6\u5408\u3059\u308b\u4e0a\u4f4d\u30c1\u30e3\u30f3\u30af\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u6b63\u3057\u3044\u30c1\u30e3\u30f3\u30af\u304c 4 \u4f4d\u307e\u305f\u306f 5 \u4f4d\u306b\u3042\u308b<\/td>\n<td>3 \u304b\u3089 5 \u3078\u5897\u3084\u3057\u3001\u56de\u7b54\u3068\u5165\u529b\u6587\u8108\u306e\u5909\u5316\u3092\u6bd4\u8f03\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u6b63\u3057\u3044\u30c1\u30e3\u30f3\u30af\u304c\u4e0a\u4f4d\u5019\u88dc\u306b\u306a\u3044<\/td>\n<td>\u53d6\u5f97\u4ef6\u6570\u3067\u306f\u306a\u304f\u3001\u62bd\u51fa\u3001\u30c1\u30e3\u30f3\u30af\u672c\u6587\u3001\u57cb\u3081\u8fbc\u307f\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u540c\u3058\u5185\u5bb9\u306e\u30c1\u30e3\u30f3\u30af\u304c\u4e0a\u4f4d\u3092\u5360\u3081\u308b<\/td>\n<td>\u53d6\u5f97\u4ef6\u6570\u3092\u5897\u3084\u3059\u524d\u306b\u3001\u91cd\u8907\u91cf\u3068\u91cd\u8907\u6587\u66f8\u3092\u8abf\u6574\u3059\u308b\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Open WebUI \u306e RAG \u3067\u306f\u3001\u30c1\u30e3\u30f3\u30af\u30b5\u30a4\u30ba\u3068\u53d6\u5f97\u4ef6\u6570\u306e\u7a4d\u306b\u8fd1\u3044\u91cf\u306e\u6587\u66f8\u304c\u751f\u6210\u5165\u529b\u3078\u52a0\u308f\u308b\u30021000 \u30c8\u30fc\u30af\u30f3\u306e\u30c1\u30e3\u30f3\u30af\u3092 5 \u4ef6\u53d6\u5f97\u3059\u308b\u69cb\u6210\u3067\u306f\u3001\u691c\u7d22\u7d50\u679c\u3060\u3051\u3067\u304a\u3088\u305d 5000 \u30c8\u30fc\u30af\u30f3\u3092\u4f7f\u7528\u3057\u3001\u3053\u308c\u306b\u30b7\u30b9\u30c6\u30e0\u6307\u793a\u3001\u4f1a\u8a71\u5c65\u6b74\u3001\u8cea\u554f\u3001\u56de\u7b54\u7528\u306e\u9818\u57df\u304c\u52a0\u308f\u308b<a href=\"#ref28\">[28]<\/a>\u3002\u6587\u5b57\u5206\u5272\u3092\u4f7f\u7528\u3059\u308b\u672c\u69cb\u6210\u3067\u306f\u6587\u5b57\u6570\u3068\u30c8\u30fc\u30af\u30f3\u6570\u306f\u4e00\u81f4\u3057\u306a\u3044\u304c\u3001\u53d6\u5f97\u4ef6\u6570\u3092\u5897\u3084\u3059\u307b\u3069\u6587\u8108\u6d88\u8cbb\u304c\u5897\u3048\u308b\u95a2\u4fc2\u306f\u5909\u308f\u3089\u306a\u3044\u3002<\/p>\n<p>RAG_TOP_K \u3060\u3051\u3092\u5909\u66f4\u3059\u308b\u5834\u5408\u3001\u4fdd\u5b58\u6e08\u307f\u306e\u30c1\u30e3\u30f3\u30af\u3068\u30d9\u30af\u30c8\u30eb\u306f\u5909\u308f\u3089\u306a\u3044\u305f\u3081\u3001Knowledge \u306e\u518d\u7d22\u5f15\u306f\u4e0d\u8981\u3067\u3042\u308b\u3002Open WebUI \u30b3\u30f3\u30c6\u30ca\u30fc\u3092\u518d\u4f5c\u6210\u3057\u3001\u5b9f\u884c\u4e2d\u306e\u5024\u3092\u78ba\u8a8d\u3057\u305f\u5f8c\u3001\u540c\u3058\u8cea\u554f\u3092\u518d\u5b9f\u884c\u3059\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">python3 - &lt;&lt;'PY'<br \/>\nfrom pathlib import Path<br \/>\n<br \/>\npath = Path(&quot;compose.yaml&quot;)<br \/>\ntext = path.read_text(encoding=&quot;utf-8&quot;)<br \/>\n<br \/>\nold = ' &nbsp; &nbsp; &nbsp;RAG_TOP_K: &quot;3&quot;'<br \/>\nnew = ' &nbsp; &nbsp; &nbsp;RAG_TOP_K: &quot;5&quot;'<br \/>\n<br \/>\nif old not in text:<br \/>\n&nbsp; &nbsp; raise SystemExit(&quot;The expected RAG_TOP_K setting was not found&quot;)<br \/>\n<br \/>\npath.write_text(text.replace(old, new, 1), encoding=&quot;utf-8&quot;)<br \/>\nPY<br \/>\n<br \/>\ndocker compose config --quiet<br \/>\ndocker compose up -d --force-recreate open-webui<br \/>\n<br \/>\ndocker compose exec open-webui printenv RAG_TOP_K<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>\u53d6\u5f97\u4ef6\u6570\u3092 5 \u3078\u5897\u3084\u3057\u305f\u7d50\u679c\u3001\u5fc5\u8981\u306a\u30c1\u30e3\u30f3\u30af\u304c\u8ffd\u52a0\u3055\u308c\u3066\u6b63\u7b54\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u5834\u5408\u306f\u3001\u691c\u7d22\u6f0f\u308c\u304c\u539f\u56e0\u3060\u3063\u305f\u3068\u5224\u65ad\u3067\u304d\u308b\u3002\u6b63\u3057\u3044\u30c1\u30e3\u30f3\u30af\u304c\u5897\u3048\u305f\u4e00\u65b9\u3067\u56de\u7b54\u304c\u4e0d\u5b89\u5b9a\u306b\u306a\u3063\u305f\u5834\u5408\u306f\u3001\u53d6\u5f97\u4ef6\u6570\u3092\u623b\u3057\u3001\u30c1\u30e3\u30f3\u30af\u672c\u6587\u307e\u305f\u306f\u57cb\u3081\u8fbc\u307f\u691c\u7d22\u3092\u6539\u5584\u3059\u308b\u3002<\/p>\n<h3>9.6 \u691c\u7d22\u304c\u6b63\u3057\u3044\u5834\u5408\u3060\u3051\u751f\u6210\u8a2d\u5b9a\u3092\u8abf\u6574\u3059\u308b<\/h3>\n<p>\u6b63\u3057\u3044\u30c1\u30e3\u30f3\u30af\u304c\u53d6\u5f97\u3055\u308c\u3001\u305d\u306e\u30c1\u30e3\u30f3\u30af\u306b\u5fc5\u8981\u306a\u5024\u3001\u6761\u4ef6\u3001\u9806\u5e8f\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u306e\u306b\u56de\u7b54\u304c\u8aa4\u308b\u5834\u5408\u3001\u691c\u7d22\u7d4c\u8def\u306f\u6210\u7acb\u3057\u3066\u3044\u308b\u3002\u3053\u3053\u3067\u521d\u3081\u3066\u3001RAG \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3001\u751f\u6210\u7528 LLM\u3001\u751f\u6210\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/p>\n<p>Open WebUI \u306e RAG \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306b\u306f\u3001\u53d6\u5f97\u3057\u305f\u6587\u66f8\u65ad\u7247\u3092\u633f\u5165\u3059\u308b {{CONTEXT}} \u304c\u5fc5\u8981\u3067\u3042\u308b\u3002\u8cea\u554f\u6587\u306f\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u51e6\u7406\u5f8c\u306b\u81ea\u52d5\u7684\u306b\u8ffd\u52a0\u3055\u308c\u308b\u305f\u3081\u3001{{QUERY}} \u3092\u91cd\u306d\u3066\u8a18\u8ff0\u3059\u308b\u3068\u3001\u540c\u3058\u8cea\u554f\u304c\u4e8c\u56de\u5165\u529b\u3055\u308c\u308b<a href=\"#ref34\">[34]<\/a>\u3002<\/p>\n<p>\u56de\u7b54\u898f\u5247\u306f\u3001\u53d6\u5f97\u6587\u66f8\u306e\u7528\u9014\u3068\u60c5\u5831\u4e0d\u8db3\u6642\u306e\u52d5\u4f5c\u3092\u660e\u793a\u3059\u308b\u3002\u6b21\u306e\u3088\u3046\u306b\u3001\u6587\u66f8\u4ee5\u5916\u306e\u63a8\u6e2c\u3092\u7981\u6b62\u3057\u3001\u6839\u62e0\u304c\u306a\u3044\u5834\u5408\u306e\u5fdc\u7b54\u3092\u56fa\u5b9a\u3059\u308b\u3002<\/p>\n<div class=\"note\">\n<p>\u4ee5\u4e0b\u306e\u53c2\u8003\u6587\u8108\u3060\u3051\u306b\u57fa\u3065\u3044\u3066\u56de\u7b54\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u53c2\u8003\u6587\u8108\u306b\u56de\u7b54\u3092\u6c7a\u3081\u308b\u60c5\u5831\u304c\u306a\u3044\u5834\u5408\u306f\u3001\u78ba\u8a8d\u3067\u304d\u306a\u3044\u3068\u56de\u7b54\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u6570\u5024\u3001\u4eba\u7269\u540d\u3001\u624b\u9806\u3001\u6761\u4ef6\u3092\u63a8\u6e2c\u3057\u3066\u88dc\u308f\u306a\u3044\u3067\u304f\u3060\u3055\u3044\u3002<\/p>\n<\/div>\n<p>\u3053\u306e\u898f\u5247\u306f\u3001\u6b63\u3057\u3044\u30c1\u30e3\u30f3\u30af\u304c\u53d6\u5f97\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u3092\u524d\u63d0\u3068\u3059\u308b\u3002\u691c\u7d22\u7d50\u679c\u304c\u8aa4\u3063\u3066\u3044\u308b\u72b6\u614b\u3067\u63a8\u6e2c\u3092\u7981\u6b62\u3059\u308b\u3068\u3001\u8aa4\u7b54\u304c\u56de\u7b54\u4e0d\u80fd\u3078\u5909\u308f\u308b\u3060\u3051\u3067\u3042\u308a\u3001\u5fc5\u8981\u306a\u6839\u62e0\u3092\u53d6\u5f97\u3067\u304d\u308b\u3088\u3046\u306b\u306f\u306a\u3089\u306a\u3044\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u691c\u7d22\u7d50\u679c<\/th>\n<th>\u751f\u6210\u7d50\u679c<\/th>\n<th>\u8abf\u6574\u5bfe\u8c61<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u5fc5\u8981\u306a\u6839\u62e0\u3092\u53d6\u5f97\u3057\u3066\u3044\u308b<\/td>\n<td>\u5024\u307e\u305f\u306f\u6761\u4ef6\u3092\u8aa4\u308b\u3002<\/td>\n<td>\u7af6\u5408\u3059\u308b\u30c1\u30e3\u30f3\u30af\u3001RAG \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3001\u751f\u6210\u7528 LLM \u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u5fc5\u8981\u306a\u6839\u62e0\u3092\u53d6\u5f97\u3057\u3066\u3044\u308b<\/td>\n<td>\u6587\u66f8\u306b\u306a\u3044\u60c5\u5831\u3092\u8ffd\u52a0\u3059\u308b\u3002<\/td>\n<td>\u6839\u62e0\u9650\u5b9a\u3068\u56de\u7b54\u4fdd\u7559\u306e\u898f\u5247\u3092\u5f37\u5316\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u5fc5\u8981\u306a\u6839\u62e0\u3092\u53d6\u5f97\u3057\u3066\u3044\u308b<\/td>\n<td>\u5b9f\u884c\u3054\u3068\u306b\u56de\u7b54\u304c\u5909\u308f\u308b\u3002<\/td>\n<td>\u6e29\u5ea6\u3001\u4e71\u6570\u7a2e\u3001\u30e2\u30c7\u30eb\u898f\u6a21\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u5fc5\u8981\u306a\u6839\u62e0\u3092\u53d6\u5f97\u3057\u3066\u3044\u306a\u3044<\/td>\n<td>\u56de\u7b54\u4e0d\u80fd\u307e\u305f\u306f\u8aa4\u7b54\u306b\u306a\u308b\u3002<\/td>\n<td>\u751f\u6210\u8a2d\u5b9a\u3092\u5909\u66f4\u305b\u305a\u3001\u62bd\u51fa\u3001\u5206\u5272\u3001\u691c\u7d22\u3078\u623b\u308b\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u6e29\u5ea6\u3092\u4e0b\u3052\u308b\u3068\u3001\u540c\u3058\u5165\u529b\u306b\u5bfe\u3059\u308b\u8a9e\u53e5\u9078\u629e\u306e\u5909\u52d5\u306f\u5c0f\u3055\u304f\u306a\u308b\u3002Ollama \u3067\u306f\u6e29\u5ea6\u304c\u9ad8\u3044\u307b\u3069\u51fa\u529b\u306e\u591a\u69d8\u6027\u304c\u5897\u3048\u3001\u4f4e\u3044\u307b\u3069\u4e00\u8cab\u3057\u305f\u51fa\u529b\u306b\u306a\u308a\u3084\u3059\u3044<a href=\"#ref35\">[35]<\/a>\u3002\u305f\u3060\u3057\u3001\u6e29\u5ea6\u3092\u4e0b\u3052\u3066\u3082\u3001\u53d6\u5f97\u6587\u66f8\u306b\u306a\u3044\u60c5\u5831\u3092\u53c2\u7167\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308b\u308f\u3051\u3067\u306f\u306a\u304f\u3001\u8aa4\u3063\u305f\u6839\u62e0\u3078\u306e\u5fe0\u5b9f\u6027\u3092\u6539\u5584\u3059\u308b\u3082\u306e\u3067\u3082\u306a\u3044\u3002<\/p>\n<p>\u56de\u5e30\u8a66\u9a13\u3067\u306f\u3001\u6e29\u5ea6\u3060\u3051\u3067\u306a\u304f\u4e71\u6570\u7a2e\u3082\u56fa\u5b9a\u3067\u304d\u308c\u3070\u3001\u540c\u3058\u5165\u529b\u306b\u5bfe\u3059\u308b\u751f\u6210\u5dee\u3092\u6e1b\u3089\u305b\u308b\u3002\u305f\u3060\u3057\u3001Open WebUI \u304b\u3089 Ollama \u3078\u5b9f\u969b\u306b\u6e21\u3055\u308c\u305f\u8a2d\u5b9a\u3092\u78ba\u8a8d\u3057\u3001\u753b\u9762\u4e0a\u306e\u8868\u793a\u3060\u3051\u3067\u56fa\u5b9a\u3055\u308c\u305f\u3068\u5224\u65ad\u3057\u306a\u3044\u3002\u751f\u6210\u7528\u30e2\u30c7\u30eb\u3092\u5909\u66f4\u3057\u305f\u5834\u5408\u3082\u3001\u540c\u3058\u53d6\u5f97\u30c1\u30e3\u30f3\u30af\u3092\u4f7f\u3044\u3001\u56de\u7b54\u5fe0\u5b9f\u6027\u3068\u901f\u5ea6\u3060\u3051\u3092\u6bd4\u8f03\u3059\u308b\u3002<\/p>\n<p>\u3088\u308a\u5927\u304d\u306a\u751f\u6210\u7528 LLM \u3078\u5909\u66f4\u3059\u308b\u306e\u306f\u3001\u6b63\u3057\u3044\u6839\u62e0\u3092\u53d6\u5f97\u3067\u304d\u3066\u3044\u308b\u306b\u3082\u304b\u304b\u308f\u3089\u305a\u3001\u6761\u4ef6\u306e\u5bfe\u5fdc\u3001\u624b\u9806\u9806\u5e8f\u3001\u56de\u7b54\u4fdd\u7559\u3092\u5b89\u5b9a\u3057\u3066\u51e6\u7406\u3067\u304d\u306a\u3044\u5834\u5408\u3067\u3042\u308b\u3002\u691c\u7d22\u304c\u8aa4\u3063\u3066\u3044\u308b\u72b6\u614b\u3067\u30e2\u30c7\u30eb\u3060\u3051\u3092\u5927\u578b\u5316\u3059\u308b\u3068\u3001\u8aa4\u3063\u305f\u6839\u62e0\u3092\u3088\u308a\u81ea\u7136\u306a\u6587\u7ae0\u3078\u5909\u63db\u3059\u308b\u7d50\u679c\u306b\u306a\u308a\u5f97\u308b\u3002<\/p>\n<h3>9.7 \u75c7\u72b6\u304b\u3089\u6700\u521d\u306b\u8abf\u3079\u308b\u5c64\u3092\u6c7a\u3081\u308b<\/h3>\n<table>\n<thead>\n<tr>\n<th>\u75c7\u72b6<\/th>\n<th>\u6700\u521d\u306b\u78ba\u8a8d\u3059\u308b\u5c64<\/th>\n<th>\u6700\u521d\u306e\u64cd\u4f5c<\/th>\n<th>\u518d\u7d22\u5f15<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u6587\u66f8\u5185\u306e\u56fa\u6709\u6587\u5b57\u5217\u304c Qdrant \u306e\u4ed8\u968f\u60c5\u5831\u306b\u306a\u3044<\/td>\n<td>\u6587\u5b57\u62bd\u51fa<\/td>\n<td>\u62bd\u51fa\u7d50\u679c\u3092\u78ba\u8a8d\u3057\u3001\u540c\u3058\u5185\u5bb9\u3092 Markdown \u3067\u8a66\u9a13\u3059\u308b\u3002<\/td>\n<td>\u6587\u66f8\u307e\u305f\u306f\u62bd\u51fa\u8a2d\u5b9a\u3092\u5909\u66f4\u3057\u305f\u5834\u5408\u306f\u5fc5\u8981<\/td>\n<\/tr>\n<tr>\n<td>\u6587\u5b57\u5217\u306f\u3042\u308b\u304c\u3001\u4e3b\u8a9e\u3068\u5024\u304c\u5225\u306e\u70b9\u306b\u5206\u304b\u308c\u3066\u3044\u308b<\/td>\n<td>\u30c1\u30e3\u30f3\u30af\u5206\u5272<\/td>\n<td>\u539f\u6587\u69cb\u9020\u307e\u305f\u306f\u30c1\u30e3\u30f3\u30af\u30b5\u30a4\u30ba\u3092\u8abf\u6574\u3059\u308b\u3002<\/td>\n<td>\u5fc5\u8981<\/td>\n<\/tr>\n<tr>\n<td>\u672c\u756a\u3068\u958b\u767a\u306e\u5024\u304c\u4e00\u3064\u306e\u5927\u304d\u306a\u30c1\u30e3\u30f3\u30af\u3078\u6df7\u5728\u3059\u308b<\/td>\n<td>\u30c1\u30e3\u30f3\u30af\u5206\u5272<\/td>\n<td>\u898b\u51fa\u3057\u3068\u6bb5\u843d\u3092\u5206\u3051\u3001\u30b5\u30a4\u30ba\u3092\u6bb5\u968e\u7684\u306b\u7e2e\u5c0f\u3059\u308b\u3002<\/td>\n<td>\u5fc5\u8981<\/td>\n<\/tr>\n<tr>\n<td>\u5fc5\u8981\u306a\u30c1\u30e3\u30f3\u30af\u304c 4 \u4f4d\u307e\u305f\u306f 5 \u4f4d\u306b\u3042\u308b<\/td>\n<td>\u691c\u7d22\u4ef6\u6570<\/td>\n<td>RAG_TOP_K \u3092 3 \u304b\u3089 5 \u3078\u5897\u3084\u3059\u3002<\/td>\n<td>\u4e0d\u8981<\/td>\n<\/tr>\n<tr>\n<td>\u5fc5\u8981\u306a\u30c1\u30e3\u30f3\u30af\u304c\u5019\u88dc\u306b\u73fe\u308c\u306a\u3044<\/td>\n<td>\u57cb\u3081\u8fbc\u307f\u307e\u305f\u306f\u6587\u66f8\u8868\u73fe<\/td>\n<td>\u8a00\u3044\u63db\u3048\u8a66\u9a13\u3001\u30c1\u30e3\u30f3\u30af\u672c\u6587\u3001\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<td>\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u307e\u305f\u306f\u672c\u6587\u3092\u5909\u66f4\u3057\u305f\u5834\u5408\u306f\u5fc5\u8981<\/td>\n<\/tr>\n<tr>\n<td>\u540c\u3058\u5185\u5bb9\u306e\u30c1\u30e3\u30f3\u30af\u304c\u4e0a\u4f4d\u3092\u5360\u6709\u3059\u308b<\/td>\n<td>\u91cd\u8907\u91cf\u307e\u305f\u306f\u6587\u66f8\u91cd\u8907<\/td>\n<td>\u91cd\u8907\u91cf\u3092\u6e1b\u3089\u3057\u3001\u540c\u5185\u5bb9\u306e\u6587\u66f8\u3092\u6574\u7406\u3059\u308b\u3002<\/td>\n<td>\u5fc5\u8981<\/td>\n<\/tr>\n<tr>\n<td>\u6b63\u3057\u3044\u30c1\u30e3\u30f3\u30af\u3092\u53d6\u5f97\u3057\u3066\u3044\u308b\u304c\u5024\u3092\u8aa4\u308b<\/td>\n<td>\u751f\u6210<\/td>\n<td>\u7af6\u5408\u6587\u8108\u3001RAG \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3001\u751f\u6210\u7528\u30e2\u30c7\u30eb\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<td>\u4e0d\u8981<\/td>\n<\/tr>\n<tr>\n<td>\u6587\u66f8\u306b\u306a\u3044\u4eba\u7269\u540d\u3084\u6570\u5024\u3092\u751f\u6210\u3059\u308b<\/td>\n<td>\u751f\u6210<\/td>\n<td>\u6839\u62e0\u9650\u5b9a\u3068\u60c5\u5831\u4e0d\u8db3\u6642\u306e\u56de\u7b54\u4fdd\u7559\u3092\u660e\u793a\u3059\u308b\u3002<\/td>\n<td>\u4e0d\u8981<\/td>\n<\/tr>\n<tr>\n<td>\u4f1a\u8a71\u304c\u9577\u304f\u306a\u308b\u3068\u4ee5\u524d\u306f\u53d6\u5f97\u3067\u304d\u305f\u6839\u62e0\u3092\u4f7f\u3048\u306a\u3044<\/td>\n<td>\u6587\u8108\u91cf<\/td>\n<td>\u65b0\u3057\u3044\u4f1a\u8a71\u3067\u518d\u8a66\u9a13\u3057\u3001\u53d6\u5f97\u4ef6\u6570\u3068\u5c65\u6b74\u91cf\u3092\u6e1b\u3089\u3059\u3002<\/td>\n<td>\u4e0d\u8981<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u8abf\u6574\u3067\u306f\u3001\u75c7\u72b6\u306b\u8fd1\u3044\u8a2d\u5b9a\u3092\u7121\u4f5c\u70ba\u306b\u5909\u66f4\u3059\u308b\u306e\u3067\u306f\u306a\u304f\u3001\u51e6\u7406\u7d4c\u8def\u4e0a\u3067\u6700\u521d\u306b\u671f\u5f85\u5024\u3068\u7570\u306a\u3063\u305f\u6bb5\u968e\u3078\u623b\u308b\u3002\u4ed8\u968f\u60c5\u5831\u306b\u672c\u6587\u304c\u306a\u3051\u308c\u3070\u62bd\u51fa\u3001\u672c\u6587\u306f\u3042\u308b\u304c\u5fc5\u8981\u306a\u5358\u4f4d\u306b\u5206\u304b\u308c\u3066\u3044\u306a\u3051\u308c\u3070\u5206\u5272\u3001\u6b63\u3057\u3044\u30c1\u30e3\u30f3\u30af\u304c\u5019\u88dc\u306b\u5165\u3089\u306a\u3051\u308c\u3070\u691c\u7d22\u3001\u6b63\u3057\u3044\u30c1\u30e3\u30f3\u30af\u3092\u6e21\u3057\u3066\u3082\u8aa4\u308b\u306a\u3089\u751f\u6210\u304c\u5bfe\u8c61\u306b\u306a\u308b\u3002<\/p>\n<h3>9.8 \u8abf\u6574\u7d50\u679c\u3092\u6bd4\u8f03\u53ef\u80fd\u306a\u5f62\u3067\u8a18\u9332\u3059\u308b<\/h3>\n<p>\u5404\u69cb\u6210\u306b\u3064\u3044\u3066\u3001\u8a2d\u5b9a\u5024\u3060\u3051\u3067\u306a\u304f\u3001Qdrant \u306e\u70b9\u6570\u3001\u53d6\u5f97\u3055\u308c\u305f\u30c1\u30e3\u30f3\u30af\u3001\u6700\u7d42\u56de\u7b54\u3092\u4e00\u3064\u306e\u8a18\u9332\u3068\u3057\u3066\u6b8b\u3059\u3002\u56de\u7b54\u3060\u3051\u3092\u4fdd\u5b58\u3059\u308b\u3068\u3001\u6539\u5584\u304c\u691c\u7d22\u306b\u3088\u308b\u3082\u306e\u304b\u751f\u6210\u306b\u3088\u308b\u3082\u306e\u304b\u3092\u5f8c\u304b\u3089\u5224\u5b9a\u3067\u304d\u306a\u3044\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u8a18\u9332\u9805\u76ee<\/th>\n<th>\u8a18\u9332\u5185\u5bb9<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u69cb\u6210 ID<\/td>\n<td>C0\u3001C1\u3001K1 \u306a\u3069\u3001\u5909\u66f4\u5185\u5bb9\u3092\u8b58\u5225\u3067\u304d\u308b\u540d\u79f0\u3092\u4ed8\u3051\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u6587\u66f8\u30cf\u30c3\u30b7\u30e5<\/td>\n<td>argolet.md \u306e SHA-256 \u3092\u8a18\u9332\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u5206\u5272\u8a2d\u5b9a<\/td>\n<td>\u5206\u5272\u65b9\u5f0f\u3001\u898b\u51fa\u3057\u5206\u5272\u3001\u30c1\u30e3\u30f3\u30af\u30b5\u30a4\u30ba\u3001\u91cd\u8907\u91cf\u3092\u8a18\u9332\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u57cb\u3081\u8fbc\u307f\u8a2d\u5b9a<\/td>\n<td>\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u540d\u3068\u30d9\u30af\u30c8\u30eb\u6b21\u5143\u3092\u8a18\u9332\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>Qdrant<\/td>\n<td>\u5bfe\u8c61\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3001\u70b9\u6570\u3001\u4e3b\u8981\u30c1\u30e3\u30f3\u30af\u672c\u6587\u3092\u8a18\u9332\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u691c\u7d22\u8a2d\u5b9a<\/td>\n<td>\u53d6\u5f97\u4ef6\u6570\u3001\u6df7\u5408\u691c\u7d22\u306e\u6709\u7121\u3092\u8a18\u9332\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u691c\u7d22\u7d50\u679c<\/td>\n<td>\u8cea\u554f\u3054\u3068\u306e\u53d6\u5f97\u30c1\u30e3\u30f3\u30af\u3068\u9806\u4f4d\u3092\u8a18\u9332\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u751f\u6210\u8a2d\u5b9a<\/td>\n<td>\u751f\u6210\u7528\u30e2\u30c7\u30eb\u3001\u6e29\u5ea6\u3001\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u9577\u3092\u8a18\u9332\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u6700\u7d42\u56de\u7b54<\/td>\n<td>\u56de\u7b54\u5168\u6587\u3068\u51fa\u5178\u3092\u8a18\u9332\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u5224\u5b9a<\/td>\n<td>\u691c\u7d22\u9069\u5408\u3001\u6761\u4ef6\u4fdd\u6301\u3001\u6839\u62e0\u5fe0\u5b9f\u6027\u3001\u56de\u7b54\u4fdd\u7559\u3092\u500b\u5225\u306b\u63a1\u70b9\u3059\u308b\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u4e00\u3064\u306e\u8a2d\u5b9a\u5909\u66f4\u3067 T1 \u3060\u3051\u304c\u6539\u5584\u3057\u3001T2 \u3084 T3 \u304c\u60aa\u5316\u3059\u308b\u5834\u5408\u3001\u305d\u306e\u69cb\u6210\u3092\u5168\u9762\u7684\u306a\u6539\u5584\u3068\u306f\u6271\u308f\u306a\u3044\u3002\u305f\u3068\u3048\u3070\u30c1\u30e3\u30f3\u30af\u3092\u5c0f\u3055\u304f\u3057\u3066\u672c\u756a\u30dd\u30fc\u30c8\u306e\u691c\u7d22\u9806\u4f4d\u304c\u4e0a\u304c\u3063\u3066\u3082\u3001\u7dca\u6025\u505c\u6b62\u306e\u4e8c\u5de5\u7a0b\u304c\u5206\u65ad\u3055\u308c\u305f\u306a\u3089\u3001\u5358\u4e00\u5024\u306e\u691c\u7d22\u3068\u8907\u5408\u6761\u4ef6\u306e\u691c\u7d22\u306e\u9593\u3067\u5225\u306e\u8abf\u6574\u304c\u5fc5\u8981\u3067\u3042\u308b\u3002<\/p>\n<h3>9.9 \u8abf\u6574\u306e\u7d42\u4e86\u6761\u4ef6\u3092\u6c7a\u3081\u308b<\/h3>\n<p>\u691c\u7d22\u7cbe\u5ea6\u306e\u8abf\u6574\u306b\u306f\u3001\u3059\u3079\u3066\u306e\u6587\u66f8\u3078\u901a\u7528\u3059\u308b\u552f\u4e00\u306e\u6700\u9069\u5024\u306f\u306a\u3044\u3002\u77ed\u3044\u4ed5\u69d8\u66f8\u3001\u9577\u3044\u624b\u9806\u66f8\u3001\u8868\u4e2d\u5fc3\u306e\u8cc7\u6599\u3067\u306f\u3001\u5fc5\u8981\u306a\u691c\u7d22\u5358\u4f4d\u304c\u7570\u306a\u308b\u3002\u69cb\u6210\u3092\u7121\u671f\u9650\u306b\u5909\u66f4\u3059\u308b\u306e\u3067\u306f\u306a\u304f\u3001\u5bfe\u8c61\u6587\u66f8\u3068\u8cea\u554f\u96c6\u5408\u306b\u5bfe\u3059\u308b\u7d42\u4e86\u6761\u4ef6\u3092\u5148\u306b\u6c7a\u3081\u308b\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u7d42\u4e86\u6761\u4ef6<\/th>\n<th>\u5224\u5b9a\u5185\u5bb9<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u6587\u5b57\u62bd\u51fa<\/td>\n<td>\u56de\u7b54\u306b\u5fc5\u8981\u306a\u540d\u79f0\u3001\u5024\u3001\u6761\u4ef6\u3001\u4f8b\u5916\u304c\u4ed8\u968f\u60c5\u5831\u3078\u6b8b\u3063\u3066\u3044\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u30c1\u30e3\u30f3\u30af\u69cb\u9020<\/td>\n<td>\u5404\u8cea\u554f\u306b\u5fc5\u8981\u306a\u5224\u65ad\u6839\u62e0\u304c\u4e00\u3064\u307e\u305f\u306f\u5c11\u6570\u306e\u30c1\u30e3\u30f3\u30af\u3067\u5b8c\u7d50\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u691c\u7d22\u9069\u5408<\/td>\n<td>T1 \u304b\u3089 T5 \u3067\u5fc5\u8981\u306a\u30c1\u30e3\u30f3\u30af\u304c\u53d6\u5f97\u4ef6\u6570\u5185\u3078\u5165\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u4e0d\u8981\u53d6\u5f97<\/td>\n<td>\u56de\u7b54\u3092\u7af6\u5408\u3055\u305b\u308b\u7121\u95a2\u4fc2\u306a\u5024\u3084\u91cd\u8907\u30c1\u30e3\u30f3\u30af\u304c\u4e0a\u4f4d\u3092\u5360\u6709\u3057\u306a\u3044\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u6839\u62e0\u5fe0\u5b9f\u6027<\/td>\n<td>\u53d6\u5f97\u6587\u66f8\u306b\u306a\u3044\u4eba\u7269\u540d\u3001\u6570\u5024\u3001\u6761\u4ef6\u3001\u624b\u9806\u3092\u8ffd\u52a0\u3057\u306a\u3044\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u6761\u4ef6\u4fdd\u6301<\/td>\n<td>\u672c\u756a\u3068\u958b\u767a\u3001\u5de5\u7a0b\u9806\u5e8f\u3001\u95be\u5024\u3001\u7d99\u7d9a\u6642\u9593\u3092\u53d6\u308a\u9055\u3048\u306a\u3044\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u56de\u7b54\u4fdd\u7559<\/td>\n<td>\u6587\u66f8\u306b\u5b58\u5728\u3057\u306a\u3044\u60c5\u5831\u306b\u3064\u3044\u3066\u78ba\u8a8d\u3067\u304d\u306a\u3044\u3068\u56de\u7b54\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u518d\u73fe\u6027<\/td>\n<td>\u65b0\u3057\u3044\u4f1a\u8a71\u3067\u518d\u8a66\u9a13\u3057\u3066\u3082\u540c\u3058\u6839\u62e0\u3068\u7d50\u8ad6\u3092\u5f97\u3089\u308c\u308b\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u3053\u306e\u8abf\u6574\u5de5\u7a0b\u3067\u6c7a\u3081\u308b\u306e\u306f\u3001\u30c1\u30e3\u30f3\u30af\u30b5\u30a4\u30ba\u3084\u53d6\u5f97\u4ef6\u6570\u306e\u4e00\u822c\u7684\u306a\u6b63\u89e3\u3067\u306f\u306a\u3044\u3002\u5bfe\u8c61\u6587\u66f8\u304b\u3089\u5fc5\u8981\u306a\u5224\u65ad\u6839\u62e0\u3092\u5931\u308f\u305a\u306b\u53d6\u308a\u51fa\u3057\u3001MacBook Pro \u306e\u9650\u3089\u308c\u305f\u6587\u8108\u3068\u8a18\u61b6\u5bb9\u91cf\u306e\u7bc4\u56f2\u3067\u3001\u751f\u6210\u7528 LLM \u3078\u904e\u4e0d\u8db3\u306a\u304f\u6e21\u305b\u308b\u69cb\u6210\u3067\u3042\u308b\u3002\u691c\u7d22\u7d50\u679c\u3092\u78ba\u8a8d\u305b\u305a\u306b\u30e2\u30c7\u30eb\u3092\u5927\u578b\u5316\u3059\u308b\u306e\u3067\u306f\u306a\u304f\u3001\u60c5\u5831\u304c\u5931\u308f\u308c\u305f\u6700\u521d\u306e\u6bb5\u968e\u3078\u623b\u308b\u3053\u3068\u304c\u3001\u30ed\u30fc\u30ab\u30eb RAG \u3092\u518d\u73fe\u53ef\u80fd\u306a\u51e6\u7406\u57fa\u76e4\u3068\u3057\u3066\u8abf\u6574\u3059\u308b\u6761\u4ef6\u306b\u306a\u308b\u3002<\/p>\n<hr>\n<h2>10. \u518d\u8d77\u52d5\u3001\u4fdd\u5b58\u3001\u66f4\u65b0\u3001\u5fa9\u5143\u307e\u3067\u78ba\u8a8d\u3059\u308b<\/h2>\n<h3>10.1 \u518d\u8d77\u52d5\u8a66\u9a13\u3092\u51e6\u7406\u5c64\u3054\u3068\u306b\u884c\u3046<\/h3>\n<p>\u521d\u56de\u306e\u5bfe\u7167\u8a66\u9a13\u306b\u6210\u529f\u3057\u305f\u5f8c\u3001\u518d\u8d77\u52d5\u306b\u3088\u3063\u3066\u5229\u7528\u8005\u60c5\u5831\u3001Knowledge\u3001\u6587\u66f8\u30d9\u30af\u30c8\u30eb\u3001\u69cb\u6210\u5024\u304c\u5931\u308f\u308c\u306a\u3044\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b\u3002\u518d\u8d77\u52d5\u8a66\u9a13\u306f\u3001\u30b3\u30f3\u30c6\u30ca\u30fc\u306e\u518d\u8d77\u52d5\u3001Docker Desktop \u306e\u518d\u8d77\u52d5\u3001MacBook Pro \u306e\u518d\u8d77\u52d5\u306b\u5206\u3051\u308b\u3002\u4e09\u3064\u3092\u540c\u6642\u306b\u884c\u3046\u3068\u3001\u72b6\u614b\u6d88\u5931\u3084\u63a5\u7d9a\u5931\u6557\u304c\u3069\u306e\u5883\u754c\u3067\u8d77\u304d\u305f\u304b\u3092\u7279\u5b9a\u3067\u304d\u306a\u3044\u3002<\/p>\n<p>\u6700\u521d\u306b Qdrant \u30b3\u30f3\u30c6\u30ca\u30fc\u3060\u3051\u3092\u518d\u8d77\u52d5\u3059\u308b\u3002\u518d\u8d77\u52d5\u5f8c\u306f\u56fa\u5b9a\u6642\u9593\u3060\u3051\u5f85\u3064\u306e\u3067\u306f\u306a\u304f\u3001\u8a8d\u8a3c\u4ed8\u304d\u306e\u30d8\u30eb\u30b9\u30c1\u30a7\u30c3\u30af\u304c\u6210\u529f\u3059\u308b\u307e\u3067\u78ba\u8a8d\u3059\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">docker compose restart qdrant<br \/>\n<br \/>\n(<br \/>\n&nbsp; set -a<br \/>\n&nbsp; . .\/.env<br \/>\n&nbsp; set +a<br \/>\n<br \/>\n&nbsp; count=0<br \/>\n<br \/>\n&nbsp; until curl -fsS \\<br \/>\n&nbsp; &nbsp; -H &quot;api-key: ${QDRANT_API_KEY}&quot; \\<br \/>\n&nbsp; &nbsp; http:\/\/127.0.0.1:6333\/healthz \\<br \/>\n&nbsp; &nbsp; &gt; \/dev\/null<br \/>\n&nbsp; do<br \/>\n&nbsp; &nbsp; count=$((count + 1))<br \/>\n<br \/>\n&nbsp; &nbsp; if [ &quot;$count&quot; -ge 30 ]; then<br \/>\n&nbsp; &nbsp; &nbsp; printf '%s\\n' 'Qdrant did not become ready.' &gt;&amp;2<br \/>\n&nbsp; &nbsp; &nbsp; exit 1<br \/>\n&nbsp; &nbsp; fi<br \/>\n<br \/>\n&nbsp; &nbsp; sleep 1<br \/>\n&nbsp; done<br \/>\n)<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>Qdrant \u304c\u8981\u6c42\u3092\u53d7\u3051\u4ed8\u3051\u3089\u308c\u308b\u72b6\u614b\u306b\u306a\u3063\u305f\u5f8c\u3001Open WebUI \u3092\u518d\u8d77\u52d5\u3059\u308b\u3002Open WebUI \u306f\u8d77\u52d5\u6642\u306b Qdrant \u3068 Ollama \u306e\u63a5\u7d9a\u8a2d\u5b9a\u3092\u8aad\u307f\u8fbc\u3080\u305f\u3081\u3001\u4f9d\u5b58\u5148\u306e\u6e96\u5099\u524d\u306b\u78ba\u8a8d\u3092\u59cb\u3081\u308b\u3068\u3001\u4e00\u6642\u7684\u306a\u63a5\u7d9a\u30a8\u30e9\u30fc\u3092\u6c38\u7d9a\u7684\u306a\u969c\u5bb3\u3068\u8aa4\u8a8d\u3059\u308b\u53ef\u80fd\u6027\u304c\u3042\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">docker compose restart open-webui<br \/>\n<br \/>\ncount=0<br \/>\n<br \/>\nuntil curl -fsS \\<br \/>\n&nbsp; -o \/dev\/null \\<br \/>\n&nbsp; http:\/\/127.0.0.1:3000\/<br \/>\ndo<br \/>\n&nbsp; count=$((count + 1))<br \/>\n<br \/>\n&nbsp; if [ &quot;$count&quot; -ge 60 ]; then<br \/>\n&nbsp; &nbsp; printf '%s\\n' 'Open WebUI did not become ready.' &gt;&amp;2<br \/>\n&nbsp; &nbsp; exit 1<br \/>\n&nbsp; fi<br \/>\n<br \/>\n&nbsp; sleep 1<br \/>\ndone<br \/>\n<br \/>\ndocker compose ps<br \/>\ndocker compose logs --tail=100 qdrant<br \/>\ndocker compose logs --tail=200 open-webui<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>\u518d\u8d77\u52d5\u5f8c\u306b\u306f\u3001\u30d6\u30e9\u30a6\u30b6\u30fc\u753b\u9762\u304c\u8868\u793a\u3055\u308c\u308b\u3053\u3068\u3060\u3051\u3067\u306a\u304f\u3001\u6b21\u306e\u72b6\u614b\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u78ba\u8a8d\u5bfe\u8c61<\/th>\n<th>\u518d\u8d77\u52d5\u5f8c\u306e\u6210\u529f\u6761\u4ef6<\/th>\n<th>\u5931\u6557\u6642\u306e\u78ba\u8a8d\u5148<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u5229\u7528\u8005\u60c5\u5831<\/td>\n<td>\u65e2\u5b58\u306e\u5229\u7528\u8005\u540d\u3068\u30d1\u30b9\u30ef\u30fc\u30c9\u3067\u30ed\u30b0\u30a4\u30f3\u3067\u304d\u308b\u3002<\/td>\n<td>data\/open-webui \u306e\u4fdd\u5b58\u72b6\u614b\u3068 Open WebUI \u306e\u30ed\u30b0\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u65b0\u898f\u767b\u9332<\/td>\n<td>\u65b0\u898f\u767b\u9332\u304c\u7121\u52b9\u306e\u307e\u307e\u3067\u3042\u308b\u3002<\/td>\n<td>ENABLE_SIGNUP=False \u304c\u5b9f\u884c\u4e2d\u306e\u30b3\u30f3\u30c6\u30ca\u30fc\u3078\u6e21\u3055\u308c\u3066\u3044\u308b\u304b\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u4f1a\u8a71\u5c65\u6b74<\/td>\n<td>\u518d\u8d77\u52d5\u524d\u306e\u4f1a\u8a71\u3092\u958b\u3051\u308b\u3002<\/td>\n<td>Open WebUI \u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3068\u4fdd\u5b58\u9818\u57df\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>Knowledge<\/td>\n<td>Argolet Operations \u3068\u767b\u9332\u30d5\u30a1\u30a4\u30eb\u304c\u6b8b\u3063\u3066\u3044\u308b\u3002<\/td>\n<td>Open WebUI \u306e\u7ba1\u7406\u60c5\u5831\u3068\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u6e08\u307f\u6587\u66f8\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>Qdrant<\/td>\n<td>\u5bfe\u8c61\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3068\u70b9\u6570\u304c\u518d\u8d77\u52d5\u524d\u3068\u4e00\u81f4\u3059\u308b\u3002<\/td>\n<td>data\/qdrant \u306e\u4fdd\u5b58\u72b6\u614b\u3068 Qdrant \u306e\u30ed\u30b0\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>RAG<\/td>\n<td>T1 \u304b\u3089 T5 \u306e\u691c\u7d22\u7d50\u679c\u3068\u56de\u7b54\u304c\u518d\u73fe\u3059\u308b\u3002<\/td>\n<td>Knowledge \u63a5\u7d9a\u3001\u53d6\u5f97\u30c1\u30e3\u30f3\u30af\u3001\u751f\u6210\u5165\u529b\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u7d9a\u3044\u3066 Docker Desktop \u3092\u7d42\u4e86\u3057\u3001\u518d\u5ea6\u8d77\u52d5\u3059\u308b\u3002Docker Desktop \u306e\u8d77\u52d5\u5f8c\u306b\u540c\u3058\u30d8\u30eb\u30b9\u30c1\u30a7\u30c3\u30af\u3001\u30ed\u30b0\u30a4\u30f3\u3001\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u78ba\u8a8d\u3001\u5bfe\u7167\u8a66\u9a13\u3092\u884c\u3046\u3002\u3053\u3053\u3067\u306f\u3001Docker \u306e\u4eee\u60f3\u74b0\u5883\u304c\u518d\u4f5c\u6210\u3055\u308c\u3066\u3082\u3001\u30db\u30b9\u30c8\u4e0a\u306e\u30d0\u30a4\u30f3\u30c9\u5148\u304b\u3089\u72b6\u614b\u3092\u8aad\u307f\u76f4\u305b\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/p>\n<p>\u6700\u5f8c\u306b MacBook Pro \u3092\u518d\u8d77\u52d5\u3059\u308b\u3002\u518d\u8d77\u52d5\u5f8c\u306f\u3001Ollama \u3068 Docker Desktop \u304c\u8d77\u52d5\u3057\u3066\u3044\u308b\u3053\u3068\u3092\u305d\u308c\u305e\u308c\u78ba\u8a8d\u3059\u308b\u3002\u81ea\u52d5\u8d77\u52d5\u3055\u308c\u306a\u3044\u5834\u5408\u306f\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u8d77\u52d5\u3057\u3066\u304b\u3089\u8a66\u9a13\u3092\u7d9a\u3051\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">curl -fsS \\<br \/>\n&nbsp; http:\/\/127.0.0.1:11434\/api\/tags |<br \/>\n&nbsp; python3 -m json.tool<br \/>\n<br \/>\ndocker version<br \/>\ndocker compose ps<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>MacBook Pro \u306e\u518d\u8d77\u52d5\u5f8c\u306b\u3082 T1 \u304b\u3089 T5 \u304c\u6210\u7acb\u3059\u308c\u3070\u3001\u7aef\u672b\u306e\u7a3c\u50cd\u4e2d\u3060\u3051\u4fdd\u6301\u3055\u308c\u308b\u4e00\u6642\u72b6\u614b\u3067\u306f\u306a\u304f\u3001Ollama \u306e\u30e2\u30c7\u30eb\u4fdd\u5b58\u9818\u57df\u3001Open WebUI \u306e\u30d0\u30a4\u30f3\u30c9\u5148\u3001Qdrant \u306e\u30d0\u30a4\u30f3\u30c9\u5148\u304b\u3089\u5fc5\u8981\u306a\u72b6\u614b\u3092\u5fa9\u5143\u3067\u304d\u3066\u3044\u308b\u3002<\/p>\n<h3>10.2 \u30b3\u30f3\u30c6\u30ca\u30fc\u306e\u524a\u9664\u3068\u518d\u4f5c\u6210\u3092\u8a66\u9a13\u3059\u308b<\/h3>\n<p>docker compose restart \u306f\u65e2\u5b58\u30b3\u30f3\u30c6\u30ca\u30fc\u306e\u30d7\u30ed\u30bb\u30b9\u3092\u518d\u8d77\u52d5\u3059\u308b\u3060\u3051\u3067\u3042\u308a\u3001\u540c\u3058\u69cb\u6210\u30d5\u30a1\u30a4\u30eb\u304b\u3089\u74b0\u5883\u3092\u518d\u73fe\u3067\u304d\u308b\u3053\u3068\u307e\u3067\u306f\u78ba\u8a8d\u3057\u306a\u3044\u3002\u30b3\u30f3\u30c6\u30ca\u30fc\u3092\u524a\u9664\u3057\u3066\u4f5c\u308a\u76f4\u3057\u3001\u5b9f\u884c\u74b0\u5883\u3068\u6c38\u7d9a\u30c7\u30fc\u30bf\u304c\u5206\u96e2\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/p>\n<p>docker compose down \u306f\u3001\u65e2\u5b9a\u3067\u306f Compose \u304c\u4f5c\u6210\u3057\u305f\u30b3\u30f3\u30c6\u30ca\u30fc\u3068\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3092\u524a\u9664\u3059\u308b\u3002\u660e\u793a\u3057\u305f\u30d0\u30a4\u30f3\u30c9\u5148\u306f\u30db\u30b9\u30c8\u4e0a\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3067\u3042\u308a\u3001\u30b3\u30f3\u30c6\u30ca\u30fc\u3068\u306f\u5225\u306b\u6b8b\u308b<a href=\"#ref36\">[36]<\/a>\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">docker compose down<br \/>\n<br \/>\ntest -d data\/open-webui<br \/>\ntest -d data\/qdrant<br \/>\ntest -f .env<br \/>\ntest -f compose.yaml<br \/>\n<br \/>\ndocker compose up -d qdrant<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>Qdrant \u306e\u8d77\u52d5\u5b8c\u4e86\u3092\u30d8\u30eb\u30b9\u30c1\u30a7\u30c3\u30af\u3067\u78ba\u8a8d\u3057\u3066\u304b\u3089\u3001Open WebUI \u3092\u4f5c\u6210\u3059\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/>36<br \/>37<br \/>38<br \/>39<br \/>40<br \/>41<br \/>42<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">(<br \/>\n&nbsp; set -a<br \/>\n&nbsp; . .\/.env<br \/>\n&nbsp; set +a<br \/>\n<br \/>\n&nbsp; count=0<br \/>\n<br \/>\n&nbsp; until curl -fsS \\<br \/>\n&nbsp; &nbsp; -H &quot;api-key: ${QDRANT_API_KEY}&quot; \\<br \/>\n&nbsp; &nbsp; http:\/\/127.0.0.1:6333\/healthz \\<br \/>\n&nbsp; &nbsp; &gt; \/dev\/null<br \/>\n&nbsp; do<br \/>\n&nbsp; &nbsp; count=$((count + 1))<br \/>\n<br \/>\n&nbsp; &nbsp; if [ &quot;$count&quot; -ge 30 ]; then<br \/>\n&nbsp; &nbsp; &nbsp; printf '%s\\n' 'Qdrant did not become ready.' &gt;&amp;2<br \/>\n&nbsp; &nbsp; &nbsp; exit 1<br \/>\n&nbsp; &nbsp; fi<br \/>\n<br \/>\n&nbsp; &nbsp; sleep 1<br \/>\n&nbsp; done<br \/>\n)<br \/>\n<br \/>\ndocker compose up -d open-webui<br \/>\n<br \/>\ncount=0<br \/>\n<br \/>\nuntil curl -fsS \\<br \/>\n&nbsp; -o \/dev\/null \\<br \/>\n&nbsp; http:\/\/127.0.0.1:3000\/<br \/>\ndo<br \/>\n&nbsp; count=$((count + 1))<br \/>\n<br \/>\n&nbsp; if [ &quot;$count&quot; -ge 60 ]; then<br \/>\n&nbsp; &nbsp; printf '%s\\n' 'Open WebUI did not become ready.' &gt;&amp;2<br \/>\n&nbsp; &nbsp; exit 1<br \/>\n&nbsp; fi<br \/>\n<br \/>\n&nbsp; sleep 1<br \/>\ndone<br \/>\n<br \/>\ndocker compose ps<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>\u56fa\u5b9a\u79d2\u6570\u306e sleep \u3060\u3051\u306b\u4f9d\u5b58\u3059\u308b\u3068\u3001\u8d77\u52d5\u304c\u901f\u3044\u6a5f\u7a2e\u3067\u306f\u4e0d\u8981\u306a\u5f85\u6a5f\u304c\u767a\u751f\u3057\u3001\u8d77\u52d5\u304c\u9045\u3044\u5834\u5408\u306b\u306f\u6e96\u5099\u524d\u306b\u6b21\u306e\u51e6\u7406\u3078\u9032\u3080\u3002API \u306e\u6210\u529f\u3092\u6761\u4ef6\u306b\u3059\u308b\u3053\u3068\u3067\u3001\u7aef\u672b\u8ca0\u8377\u3084\u66f4\u65b0\u5f8c\u306e\u521d\u671f\u5316\u6642\u9593\u304c\u5909\u308f\u3063\u3066\u3082\u540c\u3058\u5224\u5b9a\u3092\u4f7f\u3048\u308b\u3002<\/p>\n<p>\u518d\u4f5c\u6210\u5f8c\u306b\u306f\u3001\u5b9f\u884c\u4e2d\u306e\u30b3\u30f3\u30c6\u30ca\u30fc\u3078\u69cb\u6210\u5024\u304c\u6e21\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">docker compose exec -T open-webui python3 - &lt;&lt;'PY'<br \/>\nimport os<br \/>\n<br \/>\nnames = (<br \/>\n&nbsp; &nbsp; &quot;ENABLE_PERSISTENT_CONFIG&quot;,<br \/>\n&nbsp; &nbsp; &quot;ENABLE_SIGNUP&quot;,<br \/>\n&nbsp; &nbsp; &quot;OLLAMA_BASE_URL&quot;,<br \/>\n&nbsp; &nbsp; &quot;VECTOR_DB&quot;,<br \/>\n&nbsp; &nbsp; &quot;QDRANT_URI&quot;,<br \/>\n&nbsp; &nbsp; &quot;RAG_EMBEDDING_MODEL&quot;,<br \/>\n&nbsp; &nbsp; &quot;CHUNK_SIZE&quot;,<br \/>\n&nbsp; &nbsp; &quot;CHUNK_OVERLAP&quot;,<br \/>\n&nbsp; &nbsp; &quot;RAG_TOP_K&quot;,<br \/>\n)<br \/>\n<br \/>\nfor name in names:<br \/>\n&nbsp; &nbsp; print(f&quot;{name}={os.environ.get(name, '')}&quot;)<br \/>\nPY<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>\u5229\u7528\u8005\u3001\u4f1a\u8a71\u3001Knowledge\u3001Qdrant \u306e\u70b9\u304c\u6b8b\u308a\u3001T1 \u304b\u3089 T5 \u304c\u518d\u73fe\u3059\u308c\u3070\u3001\u30b3\u30f3\u30c6\u30ca\u30fc\u81ea\u4f53\u306b\u306f\u5fa9\u5143\u4e0d\u80fd\u306a\u72b6\u614b\u3092\u4fdd\u6301\u3057\u3066\u3044\u306a\u3044\u3002\u53cd\u5bfe\u306b\u3001\u753b\u9762\u306f\u8d77\u52d5\u3057\u3066\u3082\u521d\u56de\u767b\u9332\u753b\u9762\u3078\u623b\u3063\u305f\u5834\u5408\u306f Open WebUI \u306e\u30d0\u30a4\u30f3\u30c9\u5148\u3001\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u304c\u6d88\u3048\u305f\u5834\u5408\u306f Qdrant \u306e\u30d0\u30a4\u30f3\u30c9\u5148\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/p>\n<div class=\"warning\">\n<p>\u672c\u69cb\u6210\u3067\u306f\u30d0\u30a4\u30f3\u30c9\u5148\u3092\u4f7f\u7528\u3057\u3066\u3044\u308b\u305f\u3081\u3001docker compose down \u3060\u3051\u3067\u306f\u30c7\u30fc\u30bf\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u524a\u9664\u3057\u306a\u3044\u3002\u305f\u3060\u3057\u3001data\/open-webui \u3084 data\/qdrant \u3092\u624b\u52d5\u3067\u524a\u9664\u3059\u308c\u3070\u72b6\u614b\u306f\u5931\u308f\u308c\u308b\u3002\u5c06\u6765\u3001\u540d\u524d\u4ed8\u304d\u30dc\u30ea\u30e5\u30fc\u30e0\u3078\u5909\u66f4\u3057\u305f\u5834\u5408\u306e\u8aa4\u64cd\u4f5c\u3082\u907f\u3051\u308b\u305f\u3081\u3001\u518d\u4f5c\u6210\u8a66\u9a13\u3067\u306f docker compose down -v \u3092\u4f7f\u7528\u3057\u306a\u3044\u3002<\/p>\n<\/div>\n<h3>10.3 Open WebUI \u306e\u6c38\u7d9a\u9818\u57df\u3092\u505c\u6b62\u6642\u306b\u4fdd\u5b58\u3059\u308b<\/h3>\n<p>Open WebUI \u306e\u6c38\u7d9a\u9818\u57df\u306b\u306f\u3001\u5229\u7528\u8005\u3001\u4f1a\u8a71\u3001Knowledge \u306e\u7ba1\u7406\u60c5\u5831\u3001\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u6e08\u307f\u30d5\u30a1\u30a4\u30eb\u3001\u8a2d\u5b9a\u3001SQLite \u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u304c\u542b\u307e\u308c\u308b\u3002\u516c\u5f0f\u6587\u66f8\u3082\u3001\/app\/backend\/data \u306b\u5bfe\u5fdc\u3059\u308b\u6c38\u7d9a\u9818\u57df\u5168\u4f53\u3092\u30d5\u30a1\u30a4\u30eb\u5358\u4f4d\u306e\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u5bfe\u8c61\u3068\u3057\u3066\u3044\u308b<a href=\"#ref37\">[37]<\/a>\u3002<\/p>\n<p>SQLite \u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3092\u542b\u3080\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u5b9f\u884c\u4e2d\u306b\u8907\u88fd\u3059\u308b\u3068\u3001\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u672c\u4f53\u3068\u95a2\u9023\u30d5\u30a1\u30a4\u30eb\u306e\u6642\u70b9\u304c\u305d\u308d\u308f\u306a\u3044\u53ef\u80fd\u6027\u304c\u3042\u308b\u3002\u672c\u69cb\u6210\u3067\u306f Open WebUI \u3092\u505c\u6b62\u3057\u3001\u66f8\u304d\u8fbc\u307f\u304c\u6b62\u307e\u3063\u305f\u72b6\u614b\u3067\u6c38\u7d9a\u9818\u57df\u3001\u539f\u6587\u3001\u69cb\u6210\u30d5\u30a1\u30a4\u30eb\u3001\u79d8\u5bc6\u5024\u3092\u4e00\u3064\u306e\u30a2\u30fc\u30ab\u30a4\u30d6\u3078\u4fdd\u5b58\u3059\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">cd &quot;$HOME\/local-rag&quot;<br \/>\n<br \/>\nSTAMP=$(date '+%Y%m%d-%H%M%S')<br \/>\nARCHIVE=&quot;backup\/open-webui-${STAMP}.tar.gz&quot;<br \/>\n<br \/>\numask 077<br \/>\n<br \/>\ndocker compose stop open-webui<br \/>\n<br \/>\nbackup_status=0<br \/>\n<br \/>\ntar -czf &quot;$ARCHIVE&quot; \\<br \/>\n&nbsp; data\/open-webui \\<br \/>\n&nbsp; documents \\<br \/>\n&nbsp; compose.yaml \\<br \/>\n&nbsp; .env ||<br \/>\n&nbsp; backup_status=$?<br \/>\n<br \/>\ndocker compose start open-webui<br \/>\n<br \/>\nif [ &quot;$backup_status&quot; -ne 0 ]; then<br \/>\n&nbsp; printf '%s\\n' 'Open WebUI backup failed.' &gt;&amp;2<br \/>\n&nbsp; exit &quot;$backup_status&quot;<br \/>\nfi<br \/>\n<br \/>\ntar -tzf &quot;$ARCHIVE&quot; &gt; \/dev\/null<br \/>\nshasum -a 256 &quot;$ARCHIVE&quot; &gt; &quot;${ARCHIVE}.sha256&quot;<br \/>\n<br \/>\nchmod 600 &quot;$ARCHIVE&quot; &quot;${ARCHIVE}.sha256&quot;<br \/>\n<br \/>\nls -lh &quot;$ARCHIVE&quot; &quot;${ARCHIVE}.sha256&quot;<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>\u30a2\u30fc\u30ab\u30a4\u30d6\u306b\u306f .env \u306e Qdrant API \u9375\u3068 Open WebUI \u306e\u79d8\u5bc6\u9375\u304c\u542b\u307e\u308c\u308b\u305f\u3081\u3001\u901a\u5e38\u306e\u6587\u66f8\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u3068\u540c\u3058\u5834\u6240\u3078\u7121\u6761\u4ef6\u306b\u5171\u6709\u3057\u3066\u306f\u306a\u3089\u306a\u3044\u3002\u6a29\u9650\u3092 600 \u306b\u3057\u3001\u6697\u53f7\u5316\u3055\u308c\u305f\u4fdd\u5b58\u5148\u3078\u7f6e\u304f\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u4fdd\u5b58\u5bfe\u8c61<\/th>\n<th>\u5fa9\u5143\u3059\u308b\u72b6\u614b<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>data\/open-webui<\/td>\n<td>\u5229\u7528\u8005\u3001\u4f1a\u8a71\u3001Knowledge \u7ba1\u7406\u60c5\u5831\u3001\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u6e08\u307f\u30d5\u30a1\u30a4\u30eb\u3001\u5185\u90e8\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9<\/td>\n<\/tr>\n<tr>\n<td>documents<\/td>\n<td>\u518d\u7d22\u5f15\u306b\u4f7f\u7528\u3059\u308b\u539f\u6587<\/td>\n<\/tr>\n<tr>\n<td>compose.yaml<\/td>\n<td>\u30b5\u30fc\u30d3\u30b9\u69cb\u6210\u3001\u30dd\u30fc\u30c8\u3001\u30d0\u30a4\u30f3\u30c9\u5148\u3001\u74b0\u5883\u5909\u6570\u306e\u5272\u308a\u5f53\u3066<\/td>\n<\/tr>\n<tr>\n<td>.env<\/td>\n<td>\u30a4\u30e1\u30fc\u30b8\u7248\u3001\u30e2\u30c7\u30eb\u540d\u3001API \u9375\u3001\u79d8\u5bc6\u9375<\/td>\n<\/tr>\n<tr>\n<td>SHA-256<\/td>\n<td>\u4fdd\u5b58\u5f8c\u307e\u305f\u306f\u8ee2\u9001\u5f8c\u306b\u30a2\u30fc\u30ab\u30a4\u30d6\u304c\u5909\u5316\u3057\u3066\u3044\u306a\u3044\u3053\u3068\u306e\u78ba\u8a8d<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u3053\u306e\u30a2\u30fc\u30ab\u30a4\u30d6\u306b\u306f Qdrant \u306e\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u30c7\u30fc\u30bf\u3092\u542b\u3081\u306a\u3044\u3002Open WebUI \u306e Knowledge \u7ba1\u7406\u60c5\u5831\u3060\u3051\u3092\u5fa9\u5143\u3057\u3066\u3082\u3001\u5bfe\u5fdc\u3059\u308b Qdrant \u306e\u70b9\u304c\u306a\u3051\u308c\u3070\u6587\u66f8\u691c\u7d22\u306f\u6210\u7acb\u3057\u306a\u3044\u3002Qdrant \u306f\u6b21\u7bc0\u306e\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u3068\u3057\u3066\u5225\u306b\u4fdd\u5b58\u3059\u308b\u3002<\/p>\n<h3>10.4 Qdrant \u306e\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u3092\u4f5c\u6210\u3057\u3066\u7aef\u672b\u5916\u306e\u30d5\u30a1\u30a4\u30eb\u3078\u4fdd\u5b58\u3059\u308b<\/h3>\n<p>Qdrant \u306e\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u306b\u306f\u3001\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u8a2d\u5b9a\u3001\u70b9\u3001\u30d9\u30af\u30c8\u30eb\u3001\u4ed8\u968f\u60c5\u5831\u3001\u69cb\u7bc9\u6e08\u307f\u7d22\u5f15\u304c\u542b\u307e\u308c\u308b\u3002\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u306f\u3001\u518d\u7d22\u5f15\u3092\u884c\u308f\u305a\u306b\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3092\u5fa9\u5143\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3067\u304d\u308b<a href=\"#ref38\">[38]<\/a>\u3002<\/p>\n<p>\u5bfe\u8c61\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u540d\u3092\u6307\u5b9a\u3057\u3001\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u3092\u4f5c\u6210\u3059\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/>36<br \/>37<br \/>38<br \/>39<br \/>40<br \/>41<br \/>42<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">cd &quot;$HOME\/local-rag&quot;<br \/>\n<br \/>\nCOLLECTION='\u5b9f\u969b\u306e\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u540d'<br \/>\nSTAMP=$(date '+%Y%m%d-%H%M%S')<br \/>\nSNAPSHOT_META=&quot;backup\/qdrant-snapshot-${STAMP}.json&quot;<br \/>\n<br \/>\nENCODED_COLLECTION=$(<br \/>\n&nbsp; python3 -c \\<br \/>\n&nbsp; &nbsp; 'import sys, urllib.parse; print(urllib.parse.quote(sys.argv[1], safe=&quot;&quot;))' \\<br \/>\n&nbsp; &nbsp; &quot;$COLLECTION&quot;<br \/>\n)<br \/>\n<br \/>\n(<br \/>\n&nbsp; set -a<br \/>\n&nbsp; . .\/.env<br \/>\n&nbsp; set +a<br \/>\n<br \/>\n&nbsp; curl -fsS \\<br \/>\n&nbsp; &nbsp; -X POST \\<br \/>\n&nbsp; &nbsp; -H &quot;api-key: ${QDRANT_API_KEY}&quot; \\<br \/>\n&nbsp; &nbsp; &quot;http:\/\/127.0.0.1:6333\/collections\/${ENCODED_COLLECTION}\/snapshots&quot; \\<br \/>\n&nbsp; &nbsp; &gt; &quot;$SNAPSHOT_META&quot;<br \/>\n)<br \/>\n<br \/>\nSNAPSHOT=$(<br \/>\n&nbsp; python3 - &quot;$SNAPSHOT_META&quot; &lt;&lt;'PY'<br \/>\nimport json<br \/>\nimport sys<br \/>\n<br \/>\nwith open(sys.argv[1], encoding=&quot;utf-8&quot;) as file:<br \/>\n&nbsp; &nbsp; data = json.load(file)<br \/>\n<br \/>\nname = data.get(&quot;result&quot;, {}).get(&quot;name&quot;)<br \/>\n<br \/>\nif not name:<br \/>\n&nbsp; &nbsp; raise SystemExit(&quot;The snapshot name was not returned&quot;)<br \/>\n<br \/>\nprint(name)<br \/>\nPY<br \/>\n)<br \/>\n<br \/>\nprintf 'snapshot=%s\\n' &quot;$SNAPSHOT&quot;<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>Qdrant \u30b3\u30f3\u30c6\u30ca\u30fc\u5185\u306e\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u4fdd\u5b58\u5148\u3078\u4f5c\u6210\u3067\u304d\u305f\u3060\u3051\u3067\u306f\u3001Qdrant \u306e\u4fdd\u5b58\u9818\u57df\u81ea\u4f53\u3092\u5931\u3063\u305f\u5834\u5408\u306b\u5fa9\u5143\u3067\u304d\u306a\u3044\u3002REST API \u304b\u3089\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3001\u72ec\u7acb\u3057\u305f\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u30d5\u30a1\u30a4\u30eb\u3068\u3057\u3066\u4fdd\u5b58\u3059\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">ENCODED_SNAPSHOT=$(<br \/>\n&nbsp; python3 -c \\<br \/>\n&nbsp; &nbsp; 'import sys, urllib.parse; print(urllib.parse.quote(sys.argv[1], safe=&quot;&quot;))' \\<br \/>\n&nbsp; &nbsp; &quot;$SNAPSHOT&quot;<br \/>\n)<br \/>\n<br \/>\nSNAPSHOT_FILE=&quot;backup\/${SNAPSHOT}&quot;<br \/>\n<br \/>\n(<br \/>\n&nbsp; set -a<br \/>\n&nbsp; . .\/.env<br \/>\n&nbsp; set +a<br \/>\n<br \/>\n&nbsp; curl -fsS \\<br \/>\n&nbsp; &nbsp; -H &quot;api-key: ${QDRANT_API_KEY}&quot; \\<br \/>\n&nbsp; &nbsp; -o &quot;$SNAPSHOT_FILE&quot; \\<br \/>\n&nbsp; &nbsp; &quot;http:\/\/127.0.0.1:6333\/collections\/${ENCODED_COLLECTION}\/snapshots\/${ENCODED_SNAPSHOT}&quot;<br \/>\n)<br \/>\n<br \/>\ntest -s &quot;$SNAPSHOT_FILE&quot;<br \/>\n<br \/>\nshasum -a 256 &quot;$SNAPSHOT_FILE&quot; \\<br \/>\n&nbsp; &gt; &quot;${SNAPSHOT_FILE}.sha256&quot;<br \/>\n<br \/>\nchmod 600 &quot;$SNAPSHOT_FILE&quot; &quot;${SNAPSHOT_FILE}.sha256&quot;<br \/>\n<br \/>\nls -lh &quot;$SNAPSHOT_FILE&quot; &quot;${SNAPSHOT_FILE}.sha256&quot;<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>Open WebUI \u304c\u8907\u6570\u306e\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3092\u4f7f\u7528\u3057\u3066\u3044\u308b\u5834\u5408\u306f\u3001\u5fc5\u8981\u306a\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3054\u3068\u306b\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u3092\u4f5c\u6210\u3059\u308b\u3002\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u5358\u4f4d\u306e\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u306b\u306f\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u5225\u540d\u304c\u542b\u307e\u308c\u306a\u3044\u305f\u3081\u3001\u5225\u540d\u3092\u4f7f\u7528\u3057\u3066\u3044\u308b\u69cb\u6210\u3067\u306f\u305d\u306e\u5b9a\u7fa9\u3082\u5225\u9014\u8a18\u9332\u3059\u308b<a href=\"#ref38\">[38]<\/a>\u3002<\/p>\n<p>\u5143\u6587\u66f8\u3082\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u3068\u306f\u5225\u306b\u4fdd\u6301\u3059\u308b\u3002\u30d9\u30af\u30c8\u30eb\u3092\u5fa9\u5143\u3067\u304d\u3066\u3082\u3001\u539f\u6587\u304c\u306a\u3051\u308c\u3070\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u3084\u30c1\u30e3\u30f3\u30af\u6761\u4ef6\u3092\u5909\u66f4\u3057\u305f\u969b\u306b\u6b63\u3057\u3044\u518d\u7d22\u5f15\u3092\u884c\u3048\u306a\u3044\u3002<\/p>\n<h3>10.5 Qdrant \u306e\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u3092\u4e00\u6642\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3078\u5fa9\u5143\u3059\u308b<\/h3>\n<p>\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u30d5\u30a1\u30a4\u30eb\u304c\u5b58\u5728\u3059\u308b\u3053\u3068\u3068\u3001\u5b9f\u969b\u306b\u5fa9\u5143\u3067\u304d\u308b\u3053\u3068\u306f\u540c\u7fa9\u3067\u306f\u306a\u3044\u3002\u5143\u306e\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3092\u524a\u9664\u305b\u305a\u3001\u4e00\u6642\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3078\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3057\u3066\u3001\u70b9\u6570\u3068\u4ed8\u968f\u60c5\u5831\u3092\u6bd4\u8f03\u3059\u308b\u3002<\/p>\n<p>\u5fa9\u5143\u5148\u306b\u306f\u5143\u306e\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3068\u7570\u306a\u308b\u540d\u524d\u3092\u4f7f\u7528\u3059\u308b\u3002\u5fa9\u5143\u8a66\u9a13\u306f\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u4f5c\u6210\u6642\u3068\u540c\u3058 Qdrant \u30a4\u30e1\u30fc\u30b8\u7248\u3067\u884c\u3044\u3001\u7248\u306e\u975e\u4e92\u63db\u306b\u3088\u308b\u5931\u6557\u3092\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u7834\u640d\u3068\u6df7\u540c\u3057\u306a\u3044\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">RESTORE_COLLECTION=&quot;${COLLECTION}-restore-${STAMP}&quot;<br \/>\n<br \/>\nENCODED_RESTORE_COLLECTION=$(<br \/>\n&nbsp; python3 -c \\<br \/>\n&nbsp; &nbsp; 'import sys, urllib.parse; print(urllib.parse.quote(sys.argv[1], safe=&quot;&quot;))' \\<br \/>\n&nbsp; &nbsp; &quot;$RESTORE_COLLECTION&quot;<br \/>\n)<br \/>\n<br \/>\n(<br \/>\n&nbsp; set -a<br \/>\n&nbsp; . .\/.env<br \/>\n&nbsp; set +a<br \/>\n<br \/>\n&nbsp; curl -fsS \\<br \/>\n&nbsp; &nbsp; -X POST \\<br \/>\n&nbsp; &nbsp; -H &quot;api-key: ${QDRANT_API_KEY}&quot; \\<br \/>\n&nbsp; &nbsp; -F &quot;snapshot=@${SNAPSHOT_FILE}&quot; \\<br \/>\n&nbsp; &nbsp; &quot;http:\/\/127.0.0.1:6333\/collections\/${ENCODED_RESTORE_COLLECTION}\/snapshots\/upload?priority=snapshot&quot; \\<br \/>\n&nbsp; &nbsp; | python3 -m json.tool<br \/>\n)<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>\u5143\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3068\u5fa9\u5143\u5148\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306e\u70b9\u6570\u3092\u53d6\u5f97\u3057\u3001\u540c\u3058\u3067\u3042\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/>36<br \/>37<br \/>38<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">(<br \/>\n&nbsp; set -a<br \/>\n&nbsp; . .\/.env<br \/>\n&nbsp; set +a<br \/>\n&nbsp; export COLLECTION RESTORE_COLLECTION<br \/>\n<br \/>\n&nbsp; python3 - &lt;&lt;'PY'<br \/>\nimport json<br \/>\nimport os<br \/>\nimport urllib.parse<br \/>\nimport urllib.request<br \/>\n<br \/>\nbase_url = &quot;http:\/\/127.0.0.1:6333&quot;<br \/>\nheaders = {&quot;api-key&quot;: os.environ[&quot;QDRANT_API_KEY&quot;]}<br \/>\n<br \/>\ndef get_collection(name):<br \/>\n&nbsp; &nbsp; encoded = urllib.parse.quote(name, safe=&quot;&quot;)<br \/>\n&nbsp; &nbsp; request = urllib.request.Request(<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; f&quot;{base_url}\/collections\/{encoded}&quot;,<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; headers=headers,<br \/>\n&nbsp; &nbsp; )<br \/>\n<br \/>\n&nbsp; &nbsp; with urllib.request.urlopen(request, timeout=10) as response:<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; return json.load(response)[&quot;result&quot;]<br \/>\n<br \/>\nsource = get_collection(os.environ[&quot;COLLECTION&quot;])<br \/>\nrestored = get_collection(os.environ[&quot;RESTORE_COLLECTION&quot;])<br \/>\n<br \/>\nsource_count = source.get(&quot;points_count&quot;)<br \/>\nrestored_count = restored.get(&quot;points_count&quot;)<br \/>\n<br \/>\nprint(f&quot;source_points={source_count}&quot;)<br \/>\nprint(f&quot;restored_points={restored_count}&quot;)<br \/>\n<br \/>\nif source_count != restored_count:<br \/>\n&nbsp; &nbsp; raise SystemExit(&quot;The restored point count does not match&quot;)<br \/>\nPY<br \/>\n)<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>\u70b9\u6570\u3060\u3051\u3067\u306a\u304f\u3001\u5fa9\u5143\u5148\u306e\u4ed8\u968f\u60c5\u5831\u306b\u691c\u8a3c\u7528\u306e\u56fa\u6709\u6587\u5b57\u5217\u304c\u6b8b\u3063\u3066\u3044\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/>36<br \/>37<br \/>38<br \/>39<br \/>40<br \/>41<br \/>42<br \/>43<br \/>44<br \/>45<br \/>46<br \/>47<br \/>48<br \/>49<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">(<br \/>\n&nbsp; set -a<br \/>\n&nbsp; . .\/.env<br \/>\n&nbsp; set +a<br \/>\n<br \/>\n&nbsp; curl -fsS \\<br \/>\n&nbsp; &nbsp; -X POST \\<br \/>\n&nbsp; &nbsp; -H &quot;api-key: ${QDRANT_API_KEY}&quot; \\<br \/>\n&nbsp; &nbsp; -H 'Content-Type: application\/json' \\<br \/>\n&nbsp; &nbsp; -d '{<br \/>\n&nbsp; &nbsp; &nbsp; &quot;limit&quot;: 100,<br \/>\n&nbsp; &nbsp; &nbsp; &quot;with_payload&quot;: true,<br \/>\n&nbsp; &nbsp; &nbsp; &quot;with_vector&quot;: false<br \/>\n&nbsp; &nbsp; }' \\<br \/>\n&nbsp; &nbsp; &quot;http:\/\/127.0.0.1:6333\/collections\/${ENCODED_RESTORE_COLLECTION}\/points\/scroll&quot; \\<br \/>\n&nbsp; &nbsp; &gt; \/tmp\/qdrant-restored-points.json<br \/>\n)<br \/>\n<br \/>\npython3 - &lt;&lt;'PY'<br \/>\nimport json<br \/>\nfrom pathlib import Path<br \/>\n<br \/>\ndata = json.loads(<br \/>\n&nbsp; &nbsp; Path(&quot;\/tmp\/qdrant-restored-points.json&quot;).read_text(<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; encoding=&quot;utf-8&quot;<br \/>\n&nbsp; &nbsp; )<br \/>\n)<br \/>\n<br \/>\ntargets = (<br \/>\n&nbsp; &nbsp; &quot;47821&quot;,<br \/>\n&nbsp; &nbsp; &quot;Lapis-7&quot;,<br \/>\n&nbsp; &nbsp; &quot;Rho-Blue&quot;,<br \/>\n)<br \/>\n<br \/>\nserialized = json.dumps(data, ensure_ascii=False)<br \/>\n<br \/>\nmissing = [<br \/>\n&nbsp; &nbsp; target<br \/>\n&nbsp; &nbsp; for target in targets<br \/>\n&nbsp; &nbsp; if target not in serialized<br \/>\n]<br \/>\n<br \/>\nif missing:<br \/>\n&nbsp; &nbsp; raise SystemExit(<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &quot;Missing restored values: &quot; + &quot;, &quot;.join(missing)<br \/>\n&nbsp; &nbsp; )<br \/>\n<br \/>\nprint(&quot;restored_payload_check=True&quot;)<br \/>\nPY<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>\u70b9\u6570\u3068\u4e3b\u8981\u306a\u4ed8\u968f\u60c5\u5831\u304c\u4e00\u81f4\u3057\u305f\u5f8c\u3001\u4e00\u6642\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3092\u524a\u9664\u3059\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">(<br \/>\n&nbsp; set -a<br \/>\n&nbsp; . .\/.env<br \/>\n&nbsp; set +a<br \/>\n<br \/>\n&nbsp; curl -fsS \\<br \/>\n&nbsp; &nbsp; -X DELETE \\<br \/>\n&nbsp; &nbsp; -H &quot;api-key: ${QDRANT_API_KEY}&quot; \\<br \/>\n&nbsp; &nbsp; &quot;http:\/\/127.0.0.1:6333\/collections\/${ENCODED_RESTORE_COLLECTION}&quot; \\<br \/>\n&nbsp; &nbsp; | python3 -m json.tool<br \/>\n)<br \/>\n<br \/>\nrm -f \/tmp\/qdrant-restored-points.json<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>\u3053\u306e\u8a66\u9a13\u306b\u3088\u308a\u3001\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u306e\u4f5c\u6210\u3001\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3001\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3001\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u4f5c\u6210\u3001\u70b9\u3068\u4ed8\u968f\u60c5\u5831\u306e\u5fa9\u5143\u307e\u3067\u304c\u6210\u7acb\u3057\u305f\u3053\u3068\u3092\u78ba\u8a8d\u3067\u304d\u308b\u3002\u5143\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3092\u6b8b\u3057\u305f\u307e\u307e\u8a66\u9a13\u3059\u308b\u305f\u3081\u3001\u901a\u5e38\u306e\u691c\u7d22\u74b0\u5883\u3092\u7834\u58ca\u3057\u306a\u3044\u3002<\/p>\n<h3>10.6 Open WebUI \u306e\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u3092\u4e00\u6642\u74b0\u5883\u3067\u8aad\u307f\u8fbc\u3080<\/h3>\n<p>Open WebUI \u306e\u30a2\u30fc\u30ab\u30a4\u30d6\u3082\u3001\u4f5c\u6210\u5f8c\u306b\u5185\u5bb9\u3092\u691c\u67fb\u3059\u308b\u3002\u6700\u521d\u306b\u4e00\u6642\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3078\u5c55\u958b\u3057\u3001SQLite \u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306e\u6574\u5408\u6027\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">cd &quot;$HOME\/local-rag&quot;<br \/>\n<br \/>\nARCHIVE='backup\/open-webui-\u5b9f\u969b\u306e\u65e5\u6642.tar.gz'<br \/>\nRESTORE_DIR=&quot;$PWD\/restore-test&quot;<br \/>\n<br \/>\nrm -rf &quot;$RESTORE_DIR&quot;<br \/>\nmkdir -p &quot;$RESTORE_DIR&quot;<br \/>\n<br \/>\ntar -xzf &quot;$ARCHIVE&quot; \\<br \/>\n&nbsp; -C &quot;$RESTORE_DIR&quot;<br \/>\n<br \/>\npython3 - &quot;$RESTORE_DIR\/data\/open-webui\/webui.db&quot; &lt;&lt;'PY'<br \/>\nimport sqlite3<br \/>\nimport sys<br \/>\n<br \/>\nconnection = sqlite3.connect(sys.argv[1])<br \/>\n<br \/>\ntry:<br \/>\n&nbsp; &nbsp; result = connection.execute(<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &quot;PRAGMA integrity_check&quot;<br \/>\n&nbsp; &nbsp; ).fetchone()[0]<br \/>\nfinally:<br \/>\n&nbsp; &nbsp; connection.close()<br \/>\n<br \/>\nprint(f&quot;integrity_check={result}&quot;)<br \/>\n<br \/>\nif result != &quot;ok&quot;:<br \/>\n&nbsp; &nbsp; raise SystemExit(&quot;The restored database is not consistent&quot;)<br \/>\nPY<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>\u6b21\u306b\u3001\u5c55\u958b\u3057\u305f\u30c7\u30fc\u30bf\u3092\u672c\u756a\u74b0\u5883\u3068\u306f\u7570\u306a\u308b 3001 \u756a\u30dd\u30fc\u30c8\u3067\u4e00\u6642\u7684\u306b\u8d77\u52d5\u3059\u308b\u3002\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u6642\u306b\u4fdd\u5b58\u3057\u305f\u30a4\u30e1\u30fc\u30b8\u30bf\u30b0\u3068 WEBUI_SECRET_KEY \u3092\u4f7f\u7528\u3059\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">(<br \/>\n&nbsp; set -a<br \/>\n&nbsp; . &quot;$RESTORE_DIR\/.env&quot;<br \/>\n&nbsp; set +a<br \/>\n<br \/>\n&nbsp; docker run -d \\<br \/>\n&nbsp; &nbsp; --rm \\<br \/>\n&nbsp; &nbsp; --name local-rag-open-webui-restore-test \\<br \/>\n&nbsp; &nbsp; -p 127.0.0.1:3001:8080 \\<br \/>\n&nbsp; &nbsp; -e &quot;WEBUI_SECRET_KEY=${WEBUI_SECRET_KEY}&quot; \\<br \/>\n&nbsp; &nbsp; -e &quot;ENABLE_PERSISTENT_CONFIG=False&quot; \\<br \/>\n&nbsp; &nbsp; -e &quot;ENABLE_SIGNUP=False&quot; \\<br \/>\n&nbsp; &nbsp; -e &quot;ENABLE_OLLAMA_API=False&quot; \\<br \/>\n&nbsp; &nbsp; -e &quot;ENABLE_OPENAI_API=False&quot; \\<br \/>\n&nbsp; &nbsp; -e &quot;ENABLE_WEB_SEARCH=False&quot; \\<br \/>\n&nbsp; &nbsp; -v &quot;$RESTORE_DIR\/data\/open-webui:\/app\/backend\/data&quot; \\<br \/>\n&nbsp; &nbsp; &quot;$OPEN_WEBUI_IMAGE&quot;<br \/>\n)<br \/>\n<br \/>\ncount=0<br \/>\n<br \/>\nuntil curl -fsS \\<br \/>\n&nbsp; -o \/dev\/null \\<br \/>\n&nbsp; http:\/\/127.0.0.1:3001\/<br \/>\ndo<br \/>\n&nbsp; count=$((count + 1))<br \/>\n<br \/>\n&nbsp; if [ &quot;$count&quot; -ge 60 ]; then<br \/>\n&nbsp; &nbsp; docker logs local-rag-open-webui-restore-test<br \/>\n&nbsp; &nbsp; exit 1<br \/>\n&nbsp; fi<br \/>\n<br \/>\n&nbsp; sleep 1<br \/>\ndone<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>\u30d6\u30e9\u30a6\u30b6\u30fc\u3067 http:\/\/127.0.0.1:3001\/ \u3092\u958b\u304d\u3001\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u6642\u306e\u5229\u7528\u8005\u3067\u30ed\u30b0\u30a4\u30f3\u3059\u308b\u3002\u5229\u7528\u8005\u60c5\u5831\u3001\u4f1a\u8a71\u3001Knowledge \u306e\u540d\u79f0\u3001\u767b\u9332\u30d5\u30a1\u30a4\u30eb\u304c\u8868\u793a\u3055\u308c\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b\u3002\u3053\u306e\u4e00\u6642\u74b0\u5883\u3067\u306f Ollama \u3068 Qdrant \u3092\u7121\u52b9\u306b\u3057\u3066\u3044\u308b\u305f\u3081\u3001RAG \u306e\u691c\u7d22\u8a66\u9a13\u3067\u306f\u306a\u304f\u3001Open WebUI \u306e\u7ba1\u7406\u60c5\u5831\u3068\u30d5\u30a1\u30a4\u30eb\u3092\u5fa9\u5143\u3067\u304d\u308b\u3053\u3068\u304c\u5bfe\u8c61\u306b\u306a\u308b\u3002<\/p>\n<p>\u78ba\u8a8d\u5f8c\u3001\u4e00\u6642\u30b3\u30f3\u30c6\u30ca\u30fc\u3068\u5c55\u958b\u5148\u3092\u524a\u9664\u3059\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">docker stop local-rag-open-webui-restore-test<br \/>\nrm -rf &quot;$RESTORE_DIR&quot;<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>Open WebUI \u306e\u4e00\u6642\u5fa9\u5143\u8a66\u9a13\u3068 Qdrant \u306e\u4e00\u6642\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u5fa9\u5143\u8a66\u9a13\u3092\u7d44\u307f\u5408\u308f\u305b\u308b\u3053\u3068\u3067\u3001\u7ba1\u7406\u60c5\u5831\u3068\u691c\u7d22\u30c7\u30fc\u30bf\u3092\u305d\u308c\u305e\u308c\u4fdd\u5b58\u3067\u304d\u3066\u3044\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3067\u304d\u308b\u3002\u969c\u5bb3\u6642\u306b\u306f\u4e21\u65b9\u3092\u540c\u3058\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u6642\u70b9\u3078\u623b\u3055\u306a\u3051\u308c\u3070\u3001Knowledge \u306e\u7ba1\u7406\u60c5\u5831\u3068 Qdrant \u306e\u70b9\u306e\u5bfe\u5fdc\u304c\u305a\u308c\u308b\u53ef\u80fd\u6027\u304c\u3042\u308b\u3002<\/p>\n<h3>10.7 \u66f4\u65b0\u524d\u306e\u72b6\u614b\u3068\u7248\u3092\u8a18\u9332\u3059\u308b<\/h3>\n<p>Open WebUI \u306e\u66f4\u65b0\u3067\u306f\u3001\u6c38\u7d9a\u30c7\u30fc\u30bf\u3092\u4fdd\u5b58\u3057\u3001\u5909\u66f4\u70b9\u3092\u78ba\u8a8d\u3057\u3001\u7279\u5b9a\u306e\u7248\u3078\u56fa\u5b9a\u3057\u305f\u3046\u3048\u3067\u30a4\u30e1\u30fc\u30b8\u3092\u518d\u4f5c\u6210\u3059\u308b\u3053\u3068\u304c\u63a8\u5968\u3055\u308c\u3066\u3044\u308b\u3002\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u79fb\u884c\u3092\u4f34\u3046\u66f4\u65b0\u3067\u306f\u3001\u5358\u306b\u65e7\u30a4\u30e1\u30fc\u30b8\u3078\u623b\u3057\u3066\u3082\u65e7\u7248\u304c\u66f4\u65b0\u5f8c\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3092\u8aad\u3081\u306a\u3044\u53ef\u80fd\u6027\u304c\u3042\u308b\u305f\u3081\u3001\u66f4\u65b0\u524d\u306e\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u304c\u5fc5\u8981\u306b\u306a\u308b<a href=\"#ref39\">[39]<\/a>\u3002<\/p>\n<p>\u66f4\u65b0\u524d\u306b\u3001Ollama\u3001\u30e2\u30c7\u30eb\u3001\u30b3\u30f3\u30c6\u30ca\u30fc\u30a4\u30e1\u30fc\u30b8\u3001\u5c55\u958b\u5f8c\u306e Compose \u69cb\u6210\u3092\u8a18\u9332\u3059\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">cd &quot;$HOME\/local-rag&quot;<br \/>\n<br \/>\nSTAMP=$(date '+%Y%m%d-%H%M%S')<br \/>\nRECORD=&quot;backup\/versions-before-${STAMP}.txt&quot;<br \/>\nEXPANDED=&quot;backup\/compose-expanded-before-${STAMP}.yaml&quot;<br \/>\n<br \/>\numask 077<br \/>\n<br \/>\n{<br \/>\n&nbsp; printf '%s\\n' '=== Ollama ==='<br \/>\n&nbsp; ollama --version<br \/>\n<br \/>\n&nbsp; printf '\\n%s\\n' '=== Ollama models ==='<br \/>\n&nbsp; ollama list<br \/>\n<br \/>\n&nbsp; printf '\\n%s\\n' '=== Docker Compose images ==='<br \/>\n&nbsp; docker compose images<br \/>\n} &gt; &quot;$RECORD&quot;<br \/>\n<br \/>\ndocker compose config \\<br \/>\n&nbsp; &gt; &quot;$EXPANDED&quot;<br \/>\n<br \/>\nchmod 600 &quot;$RECORD&quot; &quot;$EXPANDED&quot;<br \/>\n<br \/>\nshasum -a 256 &quot;$RECORD&quot; &quot;$EXPANDED&quot;<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>\u5c55\u958b\u5f8c\u306e Compose \u69cb\u6210\u306b\u306f\u79d8\u5bc6\u5024\u304c\u542b\u307e\u308c\u308b\u305f\u3081\u3001\u5171\u6709\u8cc7\u6599\u3068\u3057\u3066\u6271\u308f\u306a\u3044\u3002\u66f4\u65b0\u524d\u8a18\u9332\u306e\u76ee\u7684\u306f\u3001\u4f7f\u7528\u3057\u305f\u30a4\u30e1\u30fc\u30b8\u30bf\u30b0\u3001\u74b0\u5883\u5909\u6570\u3001\u30dd\u30fc\u30c8\u3001\u4fdd\u5b58\u5148\u3092\u969c\u5bb3\u767a\u751f\u5f8c\u306b\u518d\u73fe\u3059\u308b\u3053\u3068\u3067\u3042\u308b\u3002<\/p>\n<p>\u66f4\u65b0\u524d\u306b\u306f\u3001\u5c11\u306a\u304f\u3068\u3082\u6b21\u306e\u4fdd\u5b58\u7269\u304c\u305d\u308d\u3063\u3066\u3044\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u4fdd\u5b58\u7269<\/th>\n<th>\u5fa9\u5143\u5bfe\u8c61<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Open WebUI \u30a2\u30fc\u30ab\u30a4\u30d6<\/td>\n<td>\u5229\u7528\u8005\u3001\u4f1a\u8a71\u3001Knowledge \u7ba1\u7406\u60c5\u5831\u3001\u767b\u9332\u30d5\u30a1\u30a4\u30eb\u3001\u69cb\u6210\u3001\u79d8\u5bc6\u5024<\/td>\n<\/tr>\n<tr>\n<td>Qdrant \u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8<\/td>\n<td>\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u8a2d\u5b9a\u3001\u30d9\u30af\u30c8\u30eb\u3001\u4ed8\u968f\u60c5\u5831\u3001\u7d22\u5f15<\/td>\n<\/tr>\n<tr>\n<td>\u539f\u6587<\/td>\n<td>\u518d\u7d22\u5f15\u306b\u4f7f\u7528\u3059\u308b\u5165\u529b\u6587\u66f8<\/td>\n<\/tr>\n<tr>\n<td>\u7248\u8a18\u9332<\/td>\n<td>\u66f4\u65b0\u524d\u306e Ollama\u3001\u30e2\u30c7\u30eb\u3001Open WebUI\u3001Qdrant \u306e\u7248<\/td>\n<\/tr>\n<tr>\n<td>\u56de\u5e30\u8a66\u9a13\u7d50\u679c<\/td>\n<td>T0 \u304b\u3089 T5 \u306e\u691c\u7d22\u7d50\u679c\u3068\u56de\u7b54<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>10.8 Open WebUI \u3068 Qdrant \u3092\u5225\u3005\u306b\u66f4\u65b0\u3059\u308b<\/h3>\n<p>Open WebUI \u3068 Qdrant \u3092\u540c\u6642\u306b\u66f4\u65b0\u3059\u308b\u3068\u3001\u6587\u66f8\u767b\u9332\u3084\u691c\u7d22\u304c\u5931\u6557\u3057\u305f\u5834\u5408\u306b\u3001\u3069\u3061\u3089\u306e\u5909\u66f4\u304c\u539f\u56e0\u304b\u3092\u7279\u5b9a\u3067\u304d\u306a\u3044\u3002\u6700\u521d\u306b Open WebUI \u3060\u3051\u3092\u66f4\u65b0\u3057\u3001\u56de\u5e30\u8a66\u9a13\u3092\u5b8c\u4e86\u3057\u3066\u304b\u3089 Qdrant \u3092\u66f4\u65b0\u3059\u308b\u3002<\/p>\n<p>.env \u306e OPEN_WEBUI_IMAGE \u3092\u66f4\u65b0\u5148\u306e\u56fa\u5b9a\u30bf\u30b0\u3078\u5909\u66f4\u3059\u308b\u3002main \u3084 latest \u3078\u7f6e\u304d\u63db\u3048\u305a\u3001\u66f4\u65b0\u5bfe\u8c61\u306e\u7248\u3092\u660e\u793a\u3059\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">docker compose config --quiet<br \/>\ndocker compose pull open-webui<br \/>\ndocker compose up -d \\<br \/>\n&nbsp; --no-deps \\<br \/>\n&nbsp; open-webui<br \/>\n<br \/>\ndocker compose ps open-webui<br \/>\ndocker compose logs --tail=200 open-webui<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>Open WebUI \u306e\u66f4\u65b0\u5f8c\u306b\u306f\u3001\u30d6\u30e9\u30a6\u30b6\u30fc\u306e\u53e4\u3044\u753b\u9762\u8cc7\u6e90\u304c\u6b8b\u308b\u5834\u5408\u304c\u3042\u308b\u305f\u3081\u3001\u5fc5\u8981\u306b\u5fdc\u3058\u3066\u5f37\u5236\u518d\u8aad\u307f\u8fbc\u307f\u3059\u308b<a href=\"#ref39\">[39]<\/a>\u3002\u305d\u306e\u3046\u3048\u3067\u3001\u6b21\u306e\u9806\u306b\u78ba\u8a8d\u3059\u308b\u3002<\/p>\n<ol>\n<li>\u65e2\u5b58\u306e\u5229\u7528\u8005\u3067\u30ed\u30b0\u30a4\u30f3\u3067\u304d\u308b\u3053\u3068\u3002<\/li>\n<li>\u65b0\u898f\u767b\u9332\u304c\u7121\u52b9\u306e\u307e\u307e\u3067\u3042\u308b\u3053\u3068\u3002<\/li>\n<li>\u65e2\u5b58\u306e\u4f1a\u8a71\u3068 Knowledge \u304c\u8868\u793a\u3055\u308c\u308b\u3053\u3068\u3002<\/li>\n<li>Ollama \u306e\u751f\u6210\u7528\u30e2\u30c7\u30eb\u304c\u8868\u793a\u3055\u308c\u3001\u901a\u5e38\u5bfe\u8a71\u304c\u6210\u529f\u3059\u308b\u3053\u3068\u3002<\/li>\n<li>\u65e2\u5b58\u306e Argolet \u6587\u66f8\u306b\u3064\u3044\u3066 T1 \u304b\u3089 T5 \u304c\u6210\u7acb\u3059\u308b\u3053\u3068\u3002<\/li>\n<li>\u65b0\u3057\u3044\u691c\u8a3c\u6587\u66f8\u3092\u767b\u9332\u3057\u3001Qdrant \u306e\u70b9\u6570\u304c\u5897\u3048\u308b\u3053\u3068\u3002<\/li>\n<li>\u767b\u9332\u3057\u305f\u65b0\u3057\u3044\u60c5\u5831\u3092\u691c\u7d22\u3067\u304d\u308b\u3053\u3068\u3002<\/li>\n<\/ol>\n<p>\u65e2\u5b58 Knowledge \u306e\u691c\u7d22\u3060\u3051\u3067\u306f\u3001\u65e7\u30c7\u30fc\u30bf\u3092\u8aad\u3081\u308b\u3053\u3068\u3057\u304b\u78ba\u8a8d\u3067\u304d\u306a\u3044\u3002\u65b0\u3057\u3044\u6587\u66f8\u767b\u9332\u3092\u542b\u3081\u308b\u3053\u3068\u3067\u3001\u6587\u5b57\u62bd\u51fa\u3001\u57cb\u3081\u8fbc\u307f\u751f\u6210\u3001Qdrant \u3078\u306e\u65b0\u898f\u4fdd\u5b58\u307e\u3067\u3001\u66f4\u65b0\u5f8c\u306e\u66f8\u304d\u8fbc\u307f\u7d4c\u8def\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/p>\n<p>Open WebUI \u306e\u56de\u5e30\u8a66\u9a13\u304c\u5b8c\u4e86\u3057\u305f\u5f8c\u306b\u3001.env \u306e QDRANT_IMAGE \u3092\u66f4\u65b0\u5148\u306e\u56fa\u5b9a\u30bf\u30b0\u3078\u5909\u66f4\u3059\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">docker compose config --quiet<br \/>\ndocker compose pull qdrant<br \/>\ndocker compose up -d \\<br \/>\n&nbsp; --no-deps \\<br \/>\n&nbsp; qdrant<br \/>\n<br \/>\ndocker compose ps qdrant<br \/>\ndocker compose logs --tail=200 qdrant<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>Qdrant \u306e\u66f4\u65b0\u5f8c\u306b\u306f\u3001\u30d8\u30eb\u30b9\u30c1\u30a7\u30c3\u30af\u3001\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u4e00\u89a7\u3001\u70b9\u6570\u3001\u30d9\u30af\u30c8\u30eb\u6b21\u5143\u3001\u4ed8\u968f\u60c5\u5831\u3092\u78ba\u8a8d\u3059\u308b\u3002\u7d9a\u3044\u3066 T1 \u304b\u3089 T5 \u3068\u3001\u65b0\u3057\u3044\u6587\u66f8\u306e\u767b\u9332\u8a66\u9a13\u3092\u518d\u5b9f\u884c\u3059\u308b\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u66f4\u65b0\u5bfe\u8c61<\/th>\n<th>\u66f4\u65b0\u5f8c\u306b\u5fc5\u8981\u306a\u8a66\u9a13<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Open WebUI<\/td>\n<td>\u30ed\u30b0\u30a4\u30f3\u3001\u4f1a\u8a71\u3001Knowledge\u3001\u901a\u5e38\u5bfe\u8a71\u3001\u65e2\u5b58\u691c\u7d22\u3001\u65b0\u898f\u6587\u66f8\u767b\u9332\u3001\u56de\u7b54\u5fe0\u5b9f\u6027<\/td>\n<\/tr>\n<tr>\n<td>Qdrant<\/td>\n<td>\u8d77\u52d5\u3001\u8a8d\u8a3c\u3001\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3001\u70b9\u6570\u3001\u4ed8\u968f\u60c5\u5831\u3001\u65e2\u5b58\u691c\u7d22\u3001\u65b0\u898f\u70b9\u4fdd\u5b58<\/td>\n<\/tr>\n<tr>\n<td>\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb<\/td>\n<td>\u57cb\u3081\u8fbc\u307f API\u3001\u6b21\u5143\u6570\u3001Knowledge \u306e\u518d\u7d22\u5f15\u3001\u8a00\u3044\u63db\u3048\u691c\u7d22<\/td>\n<\/tr>\n<tr>\n<td>\u751f\u6210\u7528 LLM<\/td>\n<td>\u901a\u5e38\u5bfe\u8a71\u3001\u6761\u4ef6\u4fdd\u6301\u3001\u56de\u7b54\u4fdd\u7559\u3001\u751f\u6210\u901f\u5ea6<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>10.9 \u66f4\u65b0\u5931\u6557\u6642\u306f\u30a4\u30e1\u30fc\u30b8\u3068\u4fdd\u5b58\u72b6\u614b\u3092\u5206\u3051\u3066\u623b\u3059<\/h3>\n<p>\u66f4\u65b0\u5f8c\u306b\u969c\u5bb3\u304c\u8d77\u304d\u305f\u5834\u5408\u3001\u6700\u521d\u306b\u5909\u66f4\u3057\u305f\u30a4\u30e1\u30fc\u30b8\u30bf\u30b0\u3092\u65e7\u7248\u3078\u623b\u3059\u3002\u305f\u3060\u3057\u3001\u66f4\u65b0\u6642\u306b Open WebUI \u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u79fb\u884c\u3084 Qdrant \u306e\u4fdd\u5b58\u5f62\u5f0f\u5909\u66f4\u304c\u884c\u308f\u308c\u305f\u5834\u5408\u3001\u65e7\u30a4\u30e1\u30fc\u30b8\u3078\u623b\u3059\u3060\u3051\u3067\u306f\u5fa9\u65e7\u3057\u306a\u3044\u3002\u66f4\u65b0\u524d\u306e\u4fdd\u5b58\u72b6\u614b\u3082\u540c\u3058\u6642\u70b9\u3078\u623b\u3059\u5fc5\u8981\u304c\u3042\u308b\u3002<\/p>\n<p>Open WebUI \u3092\u66f4\u65b0\u524d\u3078\u623b\u3059\u5834\u5408\u306f\u3001\u73fe\u5728\u306e\u969c\u5bb3\u72b6\u614b\u3092\u5225\u540d\u3067\u6b8b\u3057\u3001\u66f4\u65b0\u524d\u30a2\u30fc\u30ab\u30a4\u30d6\u304b\u3089\u6c38\u7d9a\u9818\u57df\u3068\u69cb\u6210\u3092\u5fa9\u5143\u3059\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">cd &quot;$HOME\/local-rag&quot;<br \/>\n<br \/>\nARCHIVE='backup\/open-webui-\u66f4\u65b0\u524d\u306e\u65e5\u6642.tar.gz'<br \/>\nFAILED_STAMP=$(date '+%Y%m%d-%H%M%S')<br \/>\n<br \/>\ndocker compose stop open-webui<br \/>\n<br \/>\nmv data\/open-webui \\<br \/>\n&nbsp; &quot;data\/open-webui.failed-${FAILED_STAMP}&quot;<br \/>\n<br \/>\ntar -xzf &quot;$ARCHIVE&quot; \\<br \/>\n&nbsp; data\/open-webui \\<br \/>\n&nbsp; documents \\<br \/>\n&nbsp; compose.yaml \\<br \/>\n&nbsp; .env<br \/>\n<br \/>\nchmod 600 .env<br \/>\n<br \/>\ndocker compose config --quiet<br \/>\ndocker compose up -d open-webui<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>\u5fa9\u5143\u5f8c\u306b\u306f\u3001\u5229\u7528\u8005\u3001\u4f1a\u8a71\u3001Knowledge \u304c\u623b\u3063\u3066\u3044\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b\u3002Open WebUI \u306e\u7ba1\u7406\u60c5\u5831\u3092\u66f4\u65b0\u524d\u3078\u623b\u3057\u305f\u5834\u5408\u3001Qdrant \u3082\u5bfe\u5fdc\u3059\u308b\u66f4\u65b0\u524d\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u3078\u623b\u3059\u5fc5\u8981\u304c\u3042\u308b\u304b\u3092\u5224\u65ad\u3059\u308b\u3002\u66f4\u65b0\u5f8c\u306b\u6587\u66f8\u306e\u8ffd\u52a0\u3001\u524a\u9664\u3001\u518d\u7d22\u5f15\u3092\u884c\u3063\u3066\u3044\u305f\u5834\u5408\u3001\u4e21\u8005\u306e\u6642\u70b9\u306f\u4e00\u81f4\u3057\u306a\u3044\u3002<\/p>\n<p>Qdrant \u306e\u5143\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3092\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u304b\u3089\u623b\u3059\u5834\u5408\u306f\u3001Open WebUI \u3092\u505c\u6b62\u3057\u3001\u73fe\u5728\u306e\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u540d\u3092\u78ba\u8a8d\u3057\u3066\u304b\u3089\u5b9f\u884c\u3059\u308b\u3002\u6b21\u306e\u64cd\u4f5c\u306f\u65e2\u5b58\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3092\u524a\u9664\u3059\u308b\u305f\u3081\u3001\u5fa9\u5143\u8a66\u9a13\u6e08\u307f\u306e\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u3092\u6307\u5b9a\u3059\u308b\u3002<\/p>\n<div class=\"warning\">\n<p>\u6b21\u306e\u624b\u9806\u306f\u5bfe\u8c61\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3092\u524a\u9664\u3059\u308b\u3002\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u540d\u3001\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u3001\u66f4\u65b0\u524d\u306e Open WebUI \u30a2\u30fc\u30ab\u30a4\u30d6\u304c\u5bfe\u5fdc\u3059\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u3066\u304b\u3089\u5b9f\u884c\u3059\u308b\u3002<\/p>\n<\/div>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">COLLECTION='\u5fa9\u5143\u3059\u308b\u5b9f\u969b\u306e\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u540d'<br \/>\nSNAPSHOT_FILE='backup\/\u5fa9\u5143\u3059\u308b\u5b9f\u969b\u306e\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8.snapshot'<br \/>\n<br \/>\nENCODED_COLLECTION=$(<br \/>\n&nbsp; python3 -c \\<br \/>\n&nbsp; &nbsp; 'import sys, urllib.parse; print(urllib.parse.quote(sys.argv[1], safe=&quot;&quot;))' \\<br \/>\n&nbsp; &nbsp; &quot;$COLLECTION&quot;<br \/>\n)<br \/>\n<br \/>\ndocker compose stop open-webui<br \/>\n<br \/>\n(<br \/>\n&nbsp; set -a<br \/>\n&nbsp; . .\/.env<br \/>\n&nbsp; set +a<br \/>\n<br \/>\n&nbsp; curl -fsS \\<br \/>\n&nbsp; &nbsp; -X DELETE \\<br \/>\n&nbsp; &nbsp; -H &quot;api-key: ${QDRANT_API_KEY}&quot; \\<br \/>\n&nbsp; &nbsp; &quot;http:\/\/127.0.0.1:6333\/collections\/${ENCODED_COLLECTION}&quot; \\<br \/>\n&nbsp; &nbsp; | python3 -m json.tool<br \/>\n<br \/>\n&nbsp; curl -fsS \\<br \/>\n&nbsp; &nbsp; -X POST \\<br \/>\n&nbsp; &nbsp; -H &quot;api-key: ${QDRANT_API_KEY}&quot; \\<br \/>\n&nbsp; &nbsp; -F &quot;snapshot=@${SNAPSHOT_FILE}&quot; \\<br \/>\n&nbsp; &nbsp; &quot;http:\/\/127.0.0.1:6333\/collections\/${ENCODED_COLLECTION}\/snapshots\/upload?priority=snapshot&quot; \\<br \/>\n&nbsp; &nbsp; | python3 -m json.tool<br \/>\n)<br \/>\n<br \/>\ndocker compose start open-webui<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>\u5fa9\u5143\u5f8c\u306b\u306f\u70b9\u6570\u3001\u30d9\u30af\u30c8\u30eb\u6b21\u5143\u3001\u4ed8\u968f\u60c5\u5831\u3092\u78ba\u8a8d\u3057\u3001T1 \u304b\u3089 T5 \u3092\u518d\u5b9f\u884c\u3059\u308b\u3002\u753b\u9762\u304c\u8d77\u52d5\u3057\u305f\u3053\u3068\u3084\u70b9\u6570\u304c\u623b\u3063\u305f\u3053\u3068\u3060\u3051\u3067\u306f\u3001Open WebUI \u306e Knowledge \u3068 Qdrant \u306e\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u304c\u518d\u3073\u5bfe\u5fdc\u3057\u305f\u3068\u306f\u5224\u65ad\u3067\u304d\u306a\u3044\u3002<\/p>\n<h3>10.10 \u69cb\u6210\u5024\u306e\u4fdd\u5b58\u5834\u6240\u3092\u4e00\u3064\u305a\u3064\u56fa\u5b9a\u3059\u308b<\/h3>\n<p>Open WebUI \u306e\u4e00\u90e8\u306e\u74b0\u5883\u5909\u6570\u306f\u3001\u65e2\u5b9a\u3067\u306f ConfigVar \u3068\u3057\u3066\u5185\u90e8\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3078\u4fdd\u5b58\u3055\u308c\u3001\u5f8c\u306e\u8d77\u52d5\u3067\u306f\u5916\u90e8\u74b0\u5883\u5909\u6570\u3088\u308a\u512a\u5148\u3055\u308c\u308b\u3002\u672c\u69cb\u6210\u3067\u306f ENABLE_PERSISTENT_CONFIG=False \u3068\u3057\u3066\u3044\u308b\u305f\u3081\u3001Compose \u304b\u3089\u6e21\u3057\u305f\u74b0\u5883\u5909\u6570\u3092\u6bce\u56de\u8aad\u307f\u8fbc\u307f\u3001\u7ba1\u7406\u753b\u9762\u3067\u5909\u66f4\u3057\u305f ConfigVar \u306f\u518d\u8d77\u52d5\u5f8c\u306b\u4fdd\u5b58\u3055\u308c\u306a\u3044<a href=\"#ref20\">[20]<\/a>\u3002<\/p>\n<p>\u5143\u7a3f\u306e\u3088\u3046\u306b\u3001\u521d\u671f\u69cb\u6210\u3092 Compose \u3067\u6307\u5b9a\u3057\u305f\u5f8c\u3001\u7ba1\u7406\u753b\u9762\u306e\u5909\u66f4\u3092\u5225\u306e\u8a2d\u5b9a\u6e90\u3068\u3057\u3066\u4f75\u7528\u3059\u308b\u3068\u3001\u753b\u9762\u4e0a\u306e\u5024\u3068\u69cb\u6210\u30d5\u30a1\u30a4\u30eb\u306e\u3069\u3061\u3089\u304c\u6b63\u3057\u3044\u304b\u5224\u5225\u3067\u304d\u306a\u304f\u306a\u308b\u3002\u672c\u69cb\u6210\u3067\u306f\u3001\u63a5\u7d9a\u5148\u3001\u691c\u7d22\u8a2d\u5b9a\u3001\u6587\u66f8\u5206\u5272\u6761\u4ef6\u3092 compose.yaml \u3068 .env \u3078\u96c6\u7d04\u3059\u308b\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u60c5\u5831<\/th>\n<th>\u6b63\u3068\u3059\u308b\u4fdd\u5b58\u5834\u6240<\/th>\n<th>\u66f4\u65b0\u65b9\u6cd5<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u30b5\u30fc\u30d3\u30b9\u69cb\u6210\u3001\u30dd\u30fc\u30c8\u3001\u4fdd\u5b58\u5148<\/td>\n<td>compose.yaml<\/td>\n<td>\u30d5\u30a1\u30a4\u30eb\u3092\u5909\u66f4\u3057\u3001\u69cb\u6587\u78ba\u8a8d\u5f8c\u306b\u30b3\u30f3\u30c6\u30ca\u30fc\u3092\u518d\u4f5c\u6210\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u30a4\u30e1\u30fc\u30b8\u7248\u3001\u30e2\u30c7\u30eb\u540d\u3001API \u9375\u3001\u79d8\u5bc6\u9375<\/td>\n<td>.env<\/td>\n<td>\u6a29\u9650 600 \u306e\u307e\u307e\u5909\u66f4\u3057\u3001\u5bfe\u8c61\u30b3\u30f3\u30c6\u30ca\u30fc\u3092\u518d\u4f5c\u6210\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>Ollama\u3001Qdrant\u3001\u691c\u7d22\u3001\u5206\u5272\u306e\u8a2d\u5b9a<\/td>\n<td>compose.yaml \u306e\u74b0\u5883\u5909\u6570<\/td>\n<td>\u7ba1\u7406\u753b\u9762\u3060\u3051\u3067\u5909\u66f4\u305b\u305a\u3001\u69cb\u6210\u30d5\u30a1\u30a4\u30eb\u3092\u5909\u66f4\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u5229\u7528\u8005\u3001\u4f1a\u8a71\u3001Knowledge \u7ba1\u7406\u60c5\u5831<\/td>\n<td>data\/open-webui<\/td>\n<td>Open WebUI \u306e\u901a\u5e38\u64cd\u4f5c\u306b\u3088\u3063\u3066\u66f4\u65b0\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u30d9\u30af\u30c8\u30eb\u3001\u4ed8\u968f\u60c5\u5831\u3001\u7d22\u5f15<\/td>\n<td>data\/qdrant<\/td>\n<td>\u6587\u66f8\u767b\u9332\u3001\u524a\u9664\u3001\u518d\u7d22\u5f15\u306b\u3088\u3063\u3066\u66f4\u65b0\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u518d\u7d22\u5f15\u7528\u306e\u539f\u6587<\/td>\n<td>documents<\/td>\n<td>\u767b\u9332\u3057\u305f\u7248\u3068\u30cf\u30c3\u30b7\u30e5\u5024\u3092\u5bfe\u5fdc\u3055\u305b\u3066\u7ba1\u7406\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u5fa9\u5143\u70b9<\/td>\n<td>backup \u306e\u30a2\u30fc\u30ab\u30a4\u30d6\u3068\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8<\/td>\n<td>\u66f4\u65b0\u524d\u304a\u3088\u3073\u91cd\u8981\u306a\u6587\u66f8\u5909\u66f4\u524d\u306b\u65b0\u3057\u304f\u4f5c\u6210\u3059\u308b\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u7ba1\u7406\u753b\u9762\u3067\u8a2d\u5b9a\u5024\u3092\u8a66\u9a13\u7684\u306b\u5909\u66f4\u3067\u304d\u308b\u5834\u5408\u3067\u3082\u3001\u518d\u8d77\u52d5\u5f8c\u306b\u6b8b\u308b\u3068\u306f\u6271\u308f\u306a\u3044\u3002\u63a1\u7528\u3059\u308b\u5024\u304c\u6c7a\u307e\u3063\u305f\u6642\u70b9\u3067 compose.yaml \u307e\u305f\u306f .env \u3078\u53cd\u6620\u3057\u3001\u30b3\u30f3\u30c6\u30ca\u30fc\u3092\u518d\u4f5c\u6210\u3057\u305f\u5f8c\u306b\u5b9f\u884c\u4e2d\u306e\u74b0\u5883\u5909\u6570\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/p>\n<h3>10.11 \u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u306b\u542b\u307e\u308c\u306a\u3044\u5b9f\u884c\u8cc7\u6e90\u3092\u78ba\u8a8d\u3059\u308b<\/h3>\n<p>Open WebUI \u306e\u30a2\u30fc\u30ab\u30a4\u30d6\u3068 Qdrant \u306e\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u3060\u3051\u3067\u306f\u3001MacBook Pro \u3092\u5931\u3063\u305f\u5834\u5408\u306e\u5b8c\u5168\u306a\u30aa\u30d5\u30e9\u30a4\u30f3\u5fa9\u5143\u306b\u306f\u306a\u3089\u306a\u3044\u3002Ollama \u306e\u30e2\u30c7\u30eb\u30c7\u30fc\u30bf\u3068 Docker \u30a4\u30e1\u30fc\u30b8\u306f\u3001\u3053\u306e\u7ae0\u3067\u4f5c\u6210\u3057\u305f Open WebUI \u30a2\u30fc\u30ab\u30a4\u30d6\u306b\u542b\u307e\u308c\u3066\u3044\u306a\u3044\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u8cc7\u6e90<\/th>\n<th>\u901a\u5e38\u306e\u5fa9\u5143\u65b9\u6cd5<\/th>\n<th>\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u5207\u65ad\u4e0b\u3067\u5fc5\u8981\u306a\u4fdd\u5b58<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Open WebUI \u30c7\u30fc\u30bf<\/td>\n<td>\u505c\u6b62\u6642\u30a2\u30fc\u30ab\u30a4\u30d6\u304b\u3089\u5fa9\u5143\u3059\u308b\u3002<\/td>\n<td>\u30a2\u30fc\u30ab\u30a4\u30d6\u3092\u6697\u53f7\u5316\u3057\u3066\u5225\u5a92\u4f53\u3078\u4fdd\u5b58\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>Qdrant \u30c7\u30fc\u30bf<\/td>\n<td>\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u304b\u3089\u5fa9\u5143\u3059\u308b\u3002<\/td>\n<td>\u5404\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306e\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u3092\u5225\u5a92\u4f53\u3078\u4fdd\u5b58\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u539f\u6587<\/td>\n<td>documents \u304b\u3089\u518d\u767b\u9332\u3059\u308b\u3002<\/td>\n<td>\u539f\u6587\u3068\u30cf\u30c3\u30b7\u30e5\u5024\u3092\u5225\u5a92\u4f53\u3078\u4fdd\u5b58\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>Docker \u30a4\u30e1\u30fc\u30b8<\/td>\n<td>\u56fa\u5b9a\u30bf\u30b0\u3092\u518d\u53d6\u5f97\u3059\u308b\u3002<\/td>\n<td>docker image save \u3067\u30a4\u30e1\u30fc\u30b8\u672c\u4f53\u3092\u4fdd\u5b58\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>Ollama \u30e2\u30c7\u30eb<\/td>\n<td>\u30e2\u30c7\u30eb\u30bf\u30b0\u3092\u6307\u5b9a\u3057\u3066\u518d\u53d6\u5f97\u3059\u308b\u3002<\/td>\n<td>Ollama \u306e\u30e2\u30c7\u30eb\u4fdd\u5b58\u9818\u57df\u3092\u5225\u9014\u4fdd\u5168\u3059\u308b\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Docker \u30a4\u30e1\u30fc\u30b8\u3082\u7aef\u672b\u5185\u3078\u4fdd\u5b58\u3059\u308b\u5834\u5408\u306f\u3001\u56fa\u5b9a\u3057\u305f\u30a4\u30e1\u30fc\u30b8\u540d\u3092\u4e00\u3064\u306e\u30a2\u30fc\u30ab\u30a4\u30d6\u3078\u51fa\u529b\u3059\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">(<br \/>\n&nbsp; set -a<br \/>\n&nbsp; . .\/.env<br \/>\n&nbsp; set +a<br \/>\n<br \/>\n&nbsp; STAMP=$(date '+%Y%m%d-%H%M%S')<br \/>\n&nbsp; IMAGE_ARCHIVE=&quot;backup\/local-rag-images-${STAMP}.tar.gz&quot;<br \/>\n<br \/>\n&nbsp; umask 077<br \/>\n<br \/>\n&nbsp; docker image save \\<br \/>\n&nbsp; &nbsp; &quot;$OPEN_WEBUI_IMAGE&quot; \\<br \/>\n&nbsp; &nbsp; &quot;$QDRANT_IMAGE&quot; |<br \/>\n&nbsp; &nbsp; gzip &gt; &quot;$IMAGE_ARCHIVE&quot;<br \/>\n<br \/>\n&nbsp; shasum -a 256 &quot;$IMAGE_ARCHIVE&quot; \\<br \/>\n&nbsp; &nbsp; &gt; &quot;${IMAGE_ARCHIVE}.sha256&quot;<br \/>\n<br \/>\n&nbsp; chmod 600 \\<br \/>\n&nbsp; &nbsp; &quot;$IMAGE_ARCHIVE&quot; \\<br \/>\n&nbsp; &nbsp; &quot;${IMAGE_ARCHIVE}.sha256&quot;<br \/>\n)<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>\u5fa9\u5143\u6642\u306b\u306f\u6b21\u306e\u3088\u3046\u306b\u8aad\u307f\u8fbc\u3080\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">gzip -dc \\<br \/>\n&nbsp; backup\/local-rag-images-\u5b9f\u969b\u306e\u65e5\u6642.tar.gz |<br \/>\n&nbsp; docker image load<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>\u30e2\u30c7\u30eb\u3084\u30a4\u30e1\u30fc\u30b8\u3092\u518d\u53d6\u5f97\u3067\u304d\u308b\u901a\u5e38\u904b\u7528\u3067\u306f\u3001\u5bb9\u91cf\u306e\u5927\u304d\u3044\u5b9f\u884c\u8cc7\u6e90\u3092\u6bce\u56de\u4fdd\u5b58\u3059\u308b\u5fc5\u8981\u306f\u306a\u3044\u3002\u4e00\u65b9\u3001\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u5207\u65ad\u5f8c\u3082\u5fa9\u65e7\u3067\u304d\u308b\u3053\u3068\u3092\u8981\u4ef6\u3068\u3059\u308b\u306a\u3089\u3001\u30c7\u30fc\u30bf\u3060\u3051\u3067\u306a\u304f\u3001\u5b9f\u884c\u306b\u5fc5\u8981\u306a\u30e2\u30c7\u30eb\u3068\u30a4\u30e1\u30fc\u30b8\u3082\u5fa9\u65e7\u5bfe\u8c61\u3078\u542b\u3081\u308b\u3002<\/p>\n<h3>10.12 \u904b\u7528\u5de5\u7a0b\u306e\u5b8c\u4e86\u6761\u4ef6\u3092\u56fa\u5b9a\u3059\u308b<\/h3>\n<table>\n<thead>\n<tr>\n<th>\u78ba\u8a8d\u5de5\u7a0b<\/th>\n<th>\u5b8c\u4e86\u6761\u4ef6<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u30b3\u30f3\u30c6\u30ca\u30fc\u518d\u8d77\u52d5<\/td>\n<td>\u5229\u7528\u8005\u3001\u4f1a\u8a71\u3001Knowledge\u3001\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3001\u691c\u7d22\u7d50\u679c\u304c\u6b8b\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>Docker Desktop \u518d\u8d77\u52d5<\/td>\n<td>\u30d0\u30a4\u30f3\u30c9\u5148\u304b\u3089\u72b6\u614b\u3092\u8aad\u307f\u76f4\u3057\u3001\u540c\u3058\u5bfe\u7167\u8a66\u9a13\u304c\u6210\u7acb\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>MacBook Pro \u518d\u8d77\u52d5<\/td>\n<td>Ollama \u3068 Docker Desktop \u306e\u8d77\u52d5\u5f8c\u3001\u540c\u3058\u51e6\u7406\u7d4c\u8def\u3092\u518d\u73fe\u3067\u304d\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u30b3\u30f3\u30c6\u30ca\u30fc\u518d\u4f5c\u6210<\/td>\n<td>docker compose down \u5f8c\u306e\u518d\u4f5c\u6210\u3067\u3082\u72b6\u614b\u304c\u7dad\u6301\u3055\u308c\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>Open WebUI \u4fdd\u5b58<\/td>\n<td>\u505c\u6b62\u6642\u30a2\u30fc\u30ab\u30a4\u30d6\u3092\u4f5c\u6210\u3057\u3001SQLite \u306e\u6574\u5408\u6027\u3068\u4e00\u6642\u8d77\u52d5\u3092\u78ba\u8a8d\u3067\u304d\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>Qdrant \u4fdd\u5b58<\/td>\n<td>\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3001\u4e00\u6642\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3078\u5fa9\u5143\u3067\u304d\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u66f4\u65b0<\/td>\n<td>Open WebUI \u3068 Qdrant \u3092\u5225\u3005\u306b\u66f4\u65b0\u3057\u3001\u5404\u6bb5\u968e\u3067\u56de\u5e30\u8a66\u9a13\u3092\u901a\u904e\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u30ed\u30fc\u30eb\u30d0\u30c3\u30af<\/td>\n<td>\u65e7\u30a4\u30e1\u30fc\u30b8\u3060\u3051\u3067\u306a\u304f\u3001\u5bfe\u5fdc\u3059\u308b\u66f4\u65b0\u524d\u30c7\u30fc\u30bf\u3078\u623b\u305b\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u8a2d\u5b9a\u7ba1\u7406<\/td>\n<td>Compose \u3068 .env \u3092\u8a2d\u5b9a\u306e\u6b63\u3068\u3057\u3001\u518d\u8d77\u52d5\u5f8c\u306e\u5024\u3092\u518d\u73fe\u3067\u304d\u308b\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u30ed\u30fc\u30ab\u30eb RAG \u306e\u904b\u7528\u6761\u4ef6\u306f\u3001\u69cb\u7bc9\u76f4\u5f8c\u306b\u4e00\u5ea6\u3060\u3051\u6b63\u7b54\u3059\u308b\u3053\u3068\u3067\u306f\u306a\u3044\u3002MacBook Pro\u3001Docker Desktop\u3001\u30b3\u30f3\u30c6\u30ca\u30fc\u3092\u518d\u8d77\u52d5\u3057\u3066\u3082\u72b6\u614b\u304c\u6b8b\u308a\u3001\u30b3\u30f3\u30c6\u30ca\u30fc\u3092\u524a\u9664\u3057\u3066\u3082\u69cb\u6210\u304b\u3089\u518d\u4f5c\u6210\u3067\u304d\u3001\u66f4\u65b0\u524d\u306e Open WebUI \u3068 Qdrant \u3092\u72ec\u7acb\u3057\u305f\u5fa9\u5143\u7269\u3068\u3057\u3066\u4fdd\u5b58\u3067\u304d\u308b\u5fc5\u8981\u304c\u3042\u308b\u3002<\/p>\n<p>\u3055\u3089\u306b\u3001\u4fdd\u5b58\u7269\u306f\u5b9f\u969b\u306b\u4e00\u6642\u74b0\u5883\u3078\u5fa9\u5143\u3057\u3001\u5229\u7528\u8005\u60c5\u5831\u3001Knowledge\u3001\u70b9\u6570\u3001\u4ed8\u968f\u60c5\u5831\u3092\u8aad\u307f\u51fa\u305b\u306a\u3051\u308c\u3070\u306a\u3089\u306a\u3044\u3002\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u30d5\u30a1\u30a4\u30eb\u304c\u5b58\u5728\u3059\u308b\u3060\u3051\u3067\u306f\u3001\u5fa9\u5143\u7d4c\u8def\u304c\u6210\u7acb\u3057\u305f\u3053\u3068\u306b\u306f\u306a\u3089\u306a\u3044\u3002\u518d\u8d77\u52d5\u3001\u518d\u4f5c\u6210\u3001\u66f4\u65b0\u3001\u5fa9\u5143\u3092\u540c\u3058\u5bfe\u7167\u8a66\u9a13\u3067\u691c\u8a3c\u3067\u304d\u308b\u72b6\u614b\u306b\u306a\u3063\u3066\u521d\u3081\u3066\u3001\u3053\u306e\u69cb\u6210\u306f\u4e00\u6642\u7684\u306a\u5b9f\u9a13\u74b0\u5883\u3067\u306f\u306a\u304f\u3001\u7d99\u7d9a\u3057\u3066\u904b\u7528\u53ef\u80fd\u306a\u30ed\u30fc\u30ab\u30eb RAG \u3068\u306a\u308b\u3002<\/p>\n<hr>\n<h2>11. \u30ed\u30fc\u30ab\u30eb RAG \u306f\u89b3\u6e2c\u53ef\u80fd\u306a\u51e6\u7406\u7d4c\u8def\u3068\u3057\u3066\u5b8c\u6210\u3059\u308b<\/h2>\n<h3>11.1 \u4e09\u3064\u306e\u30b5\u30fc\u30d3\u30b9\u304c\u8d77\u52d5\u3057\u305f\u3060\u3051\u3067\u306f\u5b8c\u6210\u3057\u306a\u3044<\/h3>\n<p>Ollama\u3001Open WebUI\u3001Qdrant \u3092\u540c\u3058 MacBook Pro \u4e0a\u3067\u8d77\u52d5\u3057\u3001\u30d6\u30e9\u30a6\u30b6\u30fc\u304b\u3089\u751f\u6210\u7528 LLM \u3068\u5bfe\u8a71\u3067\u304d\u3066\u3082\u3001\u30ed\u30fc\u30ab\u30eb RAG \u304c\u6210\u7acb\u3057\u305f\u3068\u306f\u3044\u3048\u306a\u3044\u3002\u901a\u5e38\u5bfe\u8a71\u306f Ollama \u3060\u3051\u3067\u5b8c\u7d50\u3059\u308b\u305f\u3081\u3001\u6587\u66f8\u62bd\u51fa\u3001\u57cb\u3081\u8fbc\u307f\u751f\u6210\u3001Qdrant \u3078\u306e\u4fdd\u5b58\u3001\u985e\u4f3c\u691c\u7d22\u306e\u3044\u305a\u308c\u304b\u304c\u505c\u6b62\u3057\u3066\u3044\u3066\u3082\u3001\u81ea\u7136\u306a\u56de\u7b54\u304c\u8fd4\u308b\u5834\u5408\u304c\u3042\u308b\u3002<\/p>\n<p>\u672c\u69cb\u6210\u3067\u78ba\u8a8d\u3057\u305f\u306e\u306f\u3001\u4e09\u3064\u306e\u88fd\u54c1\u304c\u540c\u6642\u306b\u52d5\u304f\u3053\u3068\u3067\u306f\u306a\u3044\u3002\u6587\u66f8\u3092\u691c\u7d22\u53ef\u80fd\u306a\u30c1\u30e3\u30f3\u30af\u3078\u5909\u63db\u3057\u3001embeddinggemma \u3067\u57cb\u3081\u8fbc\u307f\u30d9\u30af\u30c8\u30eb\u3092\u751f\u6210\u3057\u3001Qdrant \u3078\u539f\u6587\u65ad\u7247\u3068\u3068\u3082\u306b\u4fdd\u5b58\u3057\u3001\u8cea\u554f\u6642\u306b\u95a2\u9023\u30c1\u30e3\u30f3\u30af\u3092\u53d6\u5f97\u3057\u3001\u305d\u306e\u6839\u62e0\u3092 qwen3.5:9b-q4_K_M \u3078\u6e21\u3059\u51e6\u7406\u7d4c\u8def\u3067\u3042\u308b\u3002<\/p>\n<div class=\"codecolorer-container text geshi language-plaintext nohighlight tex2jax_ignore\" style=\"overflow:auto;white-space:nowrap;width:1000px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/><\/div><\/td><td><div class=\"text codecolorer\" style=\"white-space:nowrap\">\u6587\u66f8\u767b\u9332<br \/>\n<br \/>\n\u539f\u6587<br \/>\n&nbsp; \u2193<br \/>\nOpen WebUI \u304c\u6587\u5b57\u3092\u62bd\u51fa<br \/>\n&nbsp; \u2193<br \/>\n\u898b\u51fa\u3057\u3068\u6587\u5b57\u6570\u306b\u57fa\u3065\u3044\u3066\u30c1\u30e3\u30f3\u30af\u5206\u5272<br \/>\n&nbsp; \u2193<br \/>\nembeddinggemma \u304c\u6587\u66f8\u30d9\u30af\u30c8\u30eb\u3092\u751f\u6210<br \/>\n&nbsp; \u2193<br \/>\nQdrant \u304c\u30d9\u30af\u30c8\u30eb\u3068\u539f\u6587\u65ad\u7247\u3092\u4fdd\u5b58<br \/>\n<br \/>\n<br \/>\n\u8cea\u554f\u5fdc\u7b54<br \/>\n<br \/>\n\u8cea\u554f<br \/>\n&nbsp; \u2193<br \/>\nOpen WebUI \u304c embeddinggemma \u3092\u547c\u3073\u51fa\u3059<br \/>\n&nbsp; \u2193<br \/>\nQdrant \u304c\u8cea\u554f\u306b\u8fd1\u3044\u30c1\u30e3\u30f3\u30af\u3092\u8fd4\u3059<br \/>\n&nbsp; \u2193<br \/>\nOpen WebUI \u304c\u8cea\u554f\u3068\u53d6\u5f97\u6839\u62e0\u3092\u7d44\u307f\u7acb\u3066\u308b<br \/>\n&nbsp; \u2193<br \/>\nqwen3.5:9b-q4_K_M \u304c\u56de\u7b54\u3092\u751f\u6210\u3059\u308b<br \/>\n&nbsp; \u2193<br \/>\n\u51fa\u5178\u3068\u56de\u7b54\u3092\u500b\u5225\u306b\u8a55\u4fa1\u3059\u308b<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>\u3053\u306e\u7d4c\u8def\u304c\u6700\u5f8c\u307e\u3067\u6210\u7acb\u3057\u3066\u3044\u308c\u3070\u3001\u751f\u6210\u7528 LLM \u304c\u5b66\u7fd2\u6642\u306b\u77e5\u3089\u306a\u304b\u3063\u305f Argolet \u306e\u672c\u756a\u4fdd\u5b88\u30dd\u30fc\u30c8\u3092\u3001Knowledge \u63a5\u7d9a\u6642\u306b\u3060\u3051 47821 \u3068\u56de\u7b54\u3067\u304d\u308b\u3002Lapis-7 \u624b\u9806\u3067\u306f\u63a5\u7d9a\u30ad\u30e5\u30fc\u3092\u505c\u6b62\u3057\u3066\u304b\u3089\u66f8\u304d\u8fbc\u307f\u51e6\u7406\u3092\u505c\u6b62\u3057\u3001\u5fa9\u65e7\u6761\u4ef6\u3067\u306f Rho-Blue \u304c 15 \u5206\u9593\u9023\u7d9a\u3057\u3066 0.20 \u672a\u6e80\u3067\u3042\u308b\u3053\u3068\u3092\u6b20\u843d\u306a\u304f\u8aac\u660e\u3067\u304d\u308b\u3002\u6587\u66f8\u306b\u8a18\u8f09\u3057\u3066\u3044\u306a\u3044\u958b\u767a\u8cac\u4efb\u8005\u540d\u306b\u3064\u3044\u3066\u306f\u3001\u4eba\u7269\u540d\u3092\u88dc\u308f\u305a\u3001\u78ba\u8a8d\u3067\u304d\u306a\u3044\u3068\u56de\u7b54\u3059\u308b\u3002<\/p>\n<p>\u3053\u308c\u3089\u306e\u5bfe\u7167\u8a66\u9a13\u306b\u3088\u3063\u3066\u3001\u5358\u306b\u6b63\u3057\u3044\u6587\u5b57\u5217\u304c\u51fa\u529b\u3055\u308c\u305f\u306e\u3067\u306f\u306a\u304f\u3001\u5916\u90e8\u6587\u66f8\u304c\u8cea\u554f\u6642\u306e\u6839\u62e0\u3068\u3057\u3066\u4f7f\u308f\u308c\u305f\u3053\u3068\u3092\u78ba\u8a8d\u3067\u304d\u308b\u3002Knowledge \u672a\u63a5\u7d9a\u6642\u306e\u56de\u7b54\u3001\u63a5\u7d9a\u6642\u306b\u53d6\u5f97\u3055\u308c\u305f\u30c1\u30e3\u30f3\u30af\u3001\u51fa\u5178\u3001\u6700\u7d42\u56de\u7b54\u3092\u5206\u3051\u3066\u8a18\u9332\u3059\u308b\u3053\u3068\u3067\u3001\u5076\u7136\u306e\u6b63\u7b54\u3084\u4f1a\u8a71\u5c65\u6b74\u304b\u3089\u306e\u518d\u5229\u7528\u3092 RAG \u306e\u6210\u529f\u304b\u3089\u9664\u5916\u3067\u304d\u308b\u3002<\/p>\n<h3>11.2 \u8aa4\u7b54\u3092\u51e6\u7406\u6bb5\u968e\u3078\u623b\u305b\u308b\u3053\u3068\u304c\u5b9f\u7528\u6761\u4ef6\u306b\u306a\u308b<\/h3>\n<p>\u89b3\u6e2c\u53ef\u80fd\u306a\u69cb\u6210\u3067\u306f\u3001\u6700\u7d42\u56de\u7b54\u304c\u8aa4\u3063\u305f\u5834\u5408\u306b\u3001\u51e6\u7406\u7d4c\u8def\u3092\u4e0a\u6d41\u3078\u305f\u3069\u3063\u3066\u539f\u56e0\u3092\u9650\u5b9a\u3067\u304d\u308b\u3002Qdrant \u306e\u4ed8\u968f\u60c5\u5831\u306b\u5fc5\u8981\u306a\u6587\u5b57\u5217\u304c\u306a\u3051\u308c\u3070\u3001\u751f\u6210\u7528 LLM \u3092\u5909\u66f4\u3059\u308b\u524d\u306b\u6587\u5b57\u62bd\u51fa\u3092\u8abf\u3079\u308b\u3002\u6587\u5b57\u5217\u306f\u5b58\u5728\u3059\u308b\u304c\u4e3b\u8a9e\u3068\u5024\u304c\u5225\u306e\u30c1\u30e3\u30f3\u30af\u3078\u5206\u304b\u308c\u3066\u3044\u308c\u3070\u3001\u30c1\u30e3\u30f3\u30af\u30b5\u30a4\u30ba\u3001\u91cd\u8907\u91cf\u3001\u539f\u6587\u69cb\u9020\u3092\u8abf\u6574\u3059\u308b\u3002<\/p>\n<p>\u6b63\u3057\u3044\u672c\u6587\u304c\u4fdd\u5b58\u3055\u308c\u3066\u3044\u3066\u3082\u691c\u7d22\u4e0a\u4f4d\u3078\u5165\u3089\u306a\u3044\u5834\u5408\u306f\u3001\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u3001\u8cea\u554f\u8868\u73fe\u3001\u53d6\u5f97\u4ef6\u6570\u3092\u78ba\u8a8d\u3059\u308b\u3002\u5fc5\u8981\u306a\u30c1\u30e3\u30f3\u30af\u304c\u53d6\u5f97\u3055\u308c\u3066\u3044\u308b\u306e\u306b\u5024\u3001\u6761\u4ef6\u3001\u5de5\u7a0b\u9806\u5e8f\u3092\u8aa4\u308b\u5834\u5408\u306f\u3001\u751f\u6210\u7528 LLM\u3001\u7af6\u5408\u3059\u308b\u53d6\u5f97\u6587\u8108\u3001RAG \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u78ba\u8a8d\u3059\u308b\u3002\u51e6\u7406\u6bb5\u968e\u3092\u5206\u3051\u308b\u3053\u3068\u3067\u3001\u8aa4\u7b54\u3092\u4e00\u62ec\u3057\u3066\u300c\u30e2\u30c7\u30eb\u6027\u80fd\u304c\u4f4e\u3044\u300d\u3068\u51e6\u7406\u305b\u305a\u306b\u6e08\u3080\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u89b3\u5bdf\u3057\u305f\u5931\u6557<\/th>\n<th>\u6700\u521d\u306b\u78ba\u8a8d\u3059\u308b\u6bb5\u968e<\/th>\n<th>\u78ba\u8a8d\u5185\u5bb9<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u5fc5\u8981\u306a\u56fa\u6709\u6587\u5b57\u5217\u304c\u4fdd\u5b58\u3055\u308c\u3066\u3044\u306a\u3044<\/td>\n<td>\u6587\u5b57\u62bd\u51fa<\/td>\n<td>\u539f\u6587\u306e\u6587\u5b57\u5c64\u3001\u8aad\u307f\u9806\u3001\u62bd\u51fa\u5f8c\u306e\u672c\u6587\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u540d\u79f0\u3001\u5024\u3001\u6761\u4ef6\u304c\u5225\u3005\u306e\u70b9\u306b\u5206\u304b\u308c\u3066\u3044\u308b<\/td>\n<td>\u30c1\u30e3\u30f3\u30af\u5206\u5272<\/td>\n<td>\u539f\u6587\u69cb\u9020\u3001\u30c1\u30e3\u30f3\u30af\u30b5\u30a4\u30ba\u3001\u91cd\u8907\u91cf\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u5fc5\u8981\u306a\u30c1\u30e3\u30f3\u30af\u304c\u691c\u7d22\u5019\u88dc\u3078\u73fe\u308c\u306a\u3044<\/td>\n<td>\u57cb\u3081\u8fbc\u307f\u3068\u691c\u7d22<\/td>\n<td>\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u3001\u8cea\u554f\u306e\u8a00\u3044\u63db\u3048\u3001\u53d6\u5f97\u4ef6\u6570\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u6b63\u3057\u3044\u30c1\u30e3\u30f3\u30af\u3092\u53d6\u5f97\u3057\u3066\u3044\u308b\u306e\u306b\u8aa4\u7b54\u3059\u308b<\/td>\n<td>\u751f\u6210<\/td>\n<td>\u7af6\u5408\u3059\u308b\u6587\u8108\u3001\u56de\u7b54\u898f\u5247\u3001\u751f\u6210\u7528 LLM \u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u6587\u66f8\u306b\u306a\u3044\u4eba\u7269\u540d\u3084\u6570\u5024\u3092\u8ffd\u52a0\u3059\u308b<\/td>\n<td>\u6839\u62e0\u5fe0\u5b9f\u6027<\/td>\n<td>\u60c5\u5831\u4e0d\u8db3\u6642\u306e\u56de\u7b54\u4fdd\u7559\u3068\u6839\u62e0\u9650\u5b9a\u306e\u6307\u793a\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u518d\u8d77\u52d5\u5f8c\u306b Knowledge \u307e\u305f\u306f\u70b9\u304c\u6d88\u3048\u308b<\/td>\n<td>\u6c38\u7d9a\u5316<\/td>\n<td>Open WebUI \u3068 Qdrant \u306e\u30d0\u30a4\u30f3\u30c9\u5148\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u66f4\u65b0\u5f8c\u306b\u65e2\u5b58\u6587\u66f8\u3060\u3051\u691c\u7d22\u3067\u304d\u306a\u3044<\/td>\n<td>\u4e92\u63db\u6027\u3068\u518d\u7d22\u5f15<\/td>\n<td>\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u3001\u30c1\u30e3\u30f3\u30af\u6761\u4ef6\u3001\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u8a2d\u5b9a\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u3053\u306e\u5207\u308a\u5206\u3051\u304c\u3067\u304d\u306a\u3044\u69cb\u6210\u3067\u306f\u3001\u56de\u7b54\u54c1\u8cea\u3092\u6539\u5584\u3059\u308b\u305f\u3073\u306b\u3001\u751f\u6210\u7528 LLM\u3001\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u3001\u30c1\u30e3\u30f3\u30af\u8a2d\u5b9a\u3092\u7121\u4f5c\u70ba\u306b\u5909\u66f4\u3059\u308b\u3053\u3068\u306b\u306a\u308b\u3002\u6539\u5584\u3057\u3066\u3082\u539f\u56e0\u3092\u8aac\u660e\u3067\u304d\u305a\u3001\u5225\u306e\u6587\u66f8\u3084\u66f4\u65b0\u5f8c\u306e\u74b0\u5883\u3067\u518d\u73fe\u3067\u304d\u306a\u3044\u3002\u51e6\u7406\u5883\u754c\u3054\u3068\u306b\u78ba\u8a8d\u53ef\u80fd\u306a\u4e8b\u5b9f\u3092\u7f6e\u304f\u3053\u3068\u304c\u3001\u30ed\u30fc\u30ab\u30eb RAG \u3092\u8abf\u6574\u53ef\u80fd\u306a\u6280\u8853\u57fa\u76e4\u3078\u5909\u3048\u308b\u3002<\/p>\n<h3>11.3 Qdrant \u3092\u5206\u96e2\u3059\u308b\u610f\u5473\u306f\u4e2d\u9593\u72b6\u614b\u3092\u78ba\u8a8d\u3067\u304d\u308b\u3053\u3068\u306b\u3042\u308b<\/h3>\n<p>Qdrant \u3092\u72ec\u7acb\u3057\u305f\u30b3\u30f3\u30c6\u30ca\u30fc\u3068\u3057\u3066\u914d\u7f6e\u3057\u305f\u7406\u7531\u306f\u3001\u5c06\u6765\u306e\u6587\u66f8\u6570\u5897\u52a0\u306b\u5099\u3048\u308b\u305f\u3081\u3060\u3051\u3067\u306f\u306a\u3044\u3002Open WebUI \u306e\u753b\u9762\u306e\u5916\u5074\u304b\u3089\u3001\u3069\u306e\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306b\u4f55\u4ef6\u306e\u70b9\u304c\u4fdd\u5b58\u3055\u308c\u3001\u3069\u306e\u30d9\u30af\u30c8\u30eb\u6b21\u5143\u3068\u8ddd\u96e2\u5c3a\u5ea6\u304c\u4f7f\u308f\u308c\u3001\u5404\u70b9\u306e\u4ed8\u968f\u60c5\u5831\u306b\u3069\u306e\u6587\u66f8\u65ad\u7247\u304c\u6b8b\u3063\u3066\u3044\u308b\u304b\u3092\u78ba\u8a8d\u3067\u304d\u308b\u305f\u3081\u3067\u3042\u308b\u3002<\/p>\n<p>\u751f\u6210\u7528 LLM \u306e\u56de\u7b54\u3060\u3051\u3092\u89b3\u5bdf\u3059\u308b\u69cb\u6210\u3067\u306f\u3001\u691c\u7d22\u3055\u308c\u305f\u6839\u62e0\u304c\u8aa4\u3063\u3066\u3044\u305f\u306e\u304b\u3001\u6b63\u3057\u3044\u6839\u62e0\u3092\u751f\u6210\u6642\u306b\u53d6\u308a\u9055\u3048\u305f\u306e\u304b\u3092\u5224\u5225\u3067\u304d\u306a\u3044\u3002Qdrant \u306e\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3001\u70b9\u6570\u3001\u30d9\u30af\u30c8\u30eb\u8a2d\u5b9a\u3001\u4ed8\u968f\u60c5\u5831\u3092\u78ba\u8a8d\u3067\u304d\u308c\u3070\u3001\u6587\u66f8\u767b\u9332\u304b\u3089\u985e\u4f3c\u691c\u7d22\u307e\u3067\u306e\u4e2d\u9593\u72b6\u614b\u3092\u751f\u6210\u51e6\u7406\u304b\u3089\u5206\u96e2\u3057\u3066\u8a55\u4fa1\u3067\u304d\u308b\u3002<\/p>\n<p>\u3053\u306e\u5206\u96e2\u306f\u3001\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u3092\u5909\u66f4\u3057\u305f\u5834\u5408\u306b\u3082\u610f\u5473\u3092\u6301\u3064\u3002\u65b0\u65e7\u30e2\u30c7\u30eb\u306e\u51fa\u529b\u6b21\u5143\u304c\u540c\u3058\u3067\u3042\u3063\u3066\u3082\u610f\u5473\u7a7a\u9593\u306f\u4e92\u63db\u3067\u306f\u306a\u3044\u305f\u3081\u3001\u65e2\u5b58\u6587\u66f8\u3092\u518d\u7d22\u5f15\u3057\u306a\u3051\u308c\u3070\u306a\u3089\u306a\u3044\u3002Qdrant \u306e\u4fdd\u5b58\u72b6\u614b\u3092\u89b3\u5bdf\u3067\u304d\u308c\u3070\u3001\u65e7\u30e2\u30c7\u30eb\u3067\u4f5c\u3089\u308c\u305f\u70b9\u304c\u6b8b\u3063\u3066\u3044\u306a\u3044\u304b\u3001\u518d\u7d22\u5f15\u5f8c\u306b\u70b9\u6570\u3068\u4ed8\u968f\u60c5\u5831\u304c\u5909\u5316\u3057\u305f\u304b\u3092\u78ba\u8a8d\u3067\u304d\u308b\u3002<\/p>\n<h3>11.4 \u30ed\u30fc\u30ab\u30eb\u5b8c\u7d50\u3068\u904b\u7528\u53ef\u80fd\u6027\u306f\u5225\u3005\u306b\u78ba\u8a8d\u3059\u308b<\/h3>\n<p>\u672c\u69cb\u6210\u3067\u306f\u3001\u751f\u6210\u3068\u57cb\u3081\u8fbc\u307f\u3092 macOS \u4e0a\u306e Ollama\u3001\u6587\u66f8\u7ba1\u7406\u3092 Open WebUI\u3001\u30d9\u30af\u30c8\u30eb\u4fdd\u5b58\u3068\u691c\u7d22\u3092 Qdrant \u304c\u62c5\u5f53\u3059\u308b\u3002\u751f\u6210\u3001\u57cb\u3081\u8fbc\u307f\u3001\u691c\u7d22\u3001\u6587\u66f8\u62bd\u51fa\u306e\u63a5\u7d9a\u5148\u3092 MacBook Pro \u3068 Docker Desktop \u5185\u3078\u9650\u5b9a\u3059\u308b\u3053\u3068\u3067\u3001\u8cea\u554f\u3068\u767b\u9332\u6587\u66f8\u3092\u5916\u90e8\u306e\u751f\u6210 API \u3084\u57cb\u3081\u8fbc\u307f API\u3078\u9001\u3089\u305a\u306b\u56de\u7b54\u51e6\u7406\u3092\u5b9f\u884c\u3067\u304d\u308b\u3002<\/p>\n<p>\u305f\u3060\u3057\u3001\u56de\u7b54\u51e6\u7406\u304c\u30ed\u30fc\u30ab\u30eb\u3067\u5b8c\u7d50\u3059\u308b\u3053\u3068\u3068\u3001\u904b\u7528\u53ef\u80fd\u306a\u72b6\u614b\u304c\u7d9a\u304f\u3053\u3068\u306f\u5225\u306e\u6761\u4ef6\u3067\u3042\u308b\u3002\u30b3\u30f3\u30c6\u30ca\u30fc\u306e\u518d\u8d77\u52d5\u3001Docker Desktop \u306e\u518d\u8d77\u52d5\u3001MacBook Pro \u306e\u518d\u8d77\u52d5\u3001\u30b3\u30f3\u30c6\u30ca\u30fc\u306e\u524a\u9664\u3068\u518d\u4f5c\u6210\u3092\u884c\u3063\u305f\u5f8c\u306b\u3082\u3001\u5229\u7528\u8005\u3001Knowledge\u3001\u4f1a\u8a71\u3001Qdrant \u306e\u70b9\u3001\u691c\u7d22\u7d50\u679c\u304c\u6b8b\u308b\u5fc5\u8981\u304c\u3042\u308b\u3002<\/p>\n<p>\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u3082\u3001\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u305f\u3060\u3051\u3067\u306f\u5b8c\u4e86\u3057\u306a\u3044\u3002Open WebUI \u306e\u505c\u6b62\u6642\u30a2\u30fc\u30ab\u30a4\u30d6\u306f\u4e00\u6642\u74b0\u5883\u3067\u8d77\u52d5\u3057\u3001SQLite \u306e\u6574\u5408\u6027\u3001\u5229\u7528\u8005\u60c5\u5831\u3001Knowledge \u3092\u78ba\u8a8d\u3059\u308b\u3002Qdrant \u306e\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u306f\u4e00\u6642\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3078\u5fa9\u5143\u3057\u3001\u70b9\u6570\u3068 Argolet \u306e\u56fa\u6709\u60c5\u5831\u304c\u623b\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b\u3002\u5fa9\u5143\u8a66\u9a13\u3092\u901a\u904e\u3057\u3066\u521d\u3081\u3066\u3001\u4fdd\u5b58\u7269\u3092\u969c\u5bb3\u6642\u306e\u5fa9\u65e7\u624b\u6bb5\u3068\u3057\u3066\u6271\u3048\u308b\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u6210\u7acb\u6761\u4ef6<\/th>\n<th>\u78ba\u8a8d\u3057\u305f\u5185\u5bb9<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u30ed\u30fc\u30ab\u30eb\u51e6\u7406<\/td>\n<td>\u751f\u6210\u3001\u57cb\u3081\u8fbc\u307f\u3001\u691c\u7d22\u3001\u6587\u66f8\u62bd\u51fa\u306e\u63a5\u7d9a\u5148\u304c MacBook Pro \u5185\u306b\u3042\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u89b3\u6e2c\u53ef\u80fd\u6027<\/td>\n<td>\u6587\u5b57\u62bd\u51fa\u3001\u30c1\u30e3\u30f3\u30af\u3001\u30d9\u30af\u30c8\u30eb\u3001\u53d6\u5f97\u6839\u62e0\u3001\u6700\u7d42\u56de\u7b54\u3092\u500b\u5225\u306b\u78ba\u8a8d\u3067\u304d\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u5bfe\u7167\u53ef\u80fd\u6027<\/td>\n<td>Knowledge \u672a\u63a5\u7d9a\u6642\u3068\u63a5\u7d9a\u6642\u306e\u56de\u7b54\u5dee\u3092\u540c\u3058\u8cea\u554f\u3067\u6bd4\u8f03\u3067\u304d\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u6839\u62e0\u5fe0\u5b9f\u6027<\/td>\n<td>\u6587\u66f8\u306b\u3042\u308b\u6761\u4ef6\u3092\u4fdd\u6301\u3057\u3001\u6587\u66f8\u306b\u306a\u3044\u60c5\u5831\u3092\u88dc\u308f\u306a\u3044\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u6c38\u7d9a\u6027<\/td>\n<td>\u518d\u8d77\u52d5\u3068\u30b3\u30f3\u30c6\u30ca\u30fc\u518d\u4f5c\u6210\u5f8c\u306b\u3082\u5229\u7528\u8005\u3001\u6587\u66f8\u3001\u30d9\u30af\u30c8\u30eb\u304c\u6b8b\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u5fa9\u5143\u53ef\u80fd\u6027<\/td>\n<td>Open WebUI \u3068 Qdrant \u306e\u4fdd\u5b58\u7269\u3092\u4e00\u6642\u74b0\u5883\u3078\u5fa9\u5143\u3067\u304d\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u66f4\u65b0\u53ef\u80fd\u6027<\/td>\n<td>Open WebUI \u3068 Qdrant \u3092\u5225\u3005\u306b\u66f4\u65b0\u3057\u3001\u540c\u3058\u56de\u5e30\u8a66\u9a13\u3067\u78ba\u8a8d\u3067\u304d\u308b\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>11.5 \u5b8c\u6210\u3057\u305f\u306e\u306f\u30e2\u30c7\u30eb\u3067\u306f\u306a\u304f\u6839\u62e0\u3092\u5236\u5fa1\u3059\u308b\u7d4c\u8def\u3067\u3042\u308b<\/h3>\n<p>\u3053\u306e\u69cb\u6210\u306b\u3088\u3063\u3066\u3001\u751f\u6210\u7528 LLM \u81ea\u4f53\u304c Argolet \u306e\u904b\u7528\u898f\u5247\u3092\u5b66\u7fd2\u3057\u305f\u308f\u3051\u3067\u306f\u306a\u3044\u3002\u6587\u66f8\u306f Open WebUI \u306b\u3088\u3063\u3066\u30c1\u30e3\u30f3\u30af\u3078\u5206\u5272\u3055\u308c\u3001embeddinggemma \u306e\u30d9\u30af\u30c8\u30eb\u3068\u3057\u3066 Qdrant \u3078\u4fdd\u5b58\u3055\u308c\u308b\u3002\u8cea\u554f\u6642\u306b\u306f\u5fc5\u8981\u306a\u65ad\u7247\u3060\u3051\u304c\u691c\u7d22\u3055\u308c\u3001qwen3.5:9b-q4_K_M \u306f\u3001\u305d\u306e\u5834\u3067\u6e21\u3055\u308c\u305f\u6839\u62e0\u304b\u3089\u56de\u7b54\u3092\u69cb\u6210\u3059\u308b\u3002<\/p>\n<p>\u6587\u66f8\u3092\u66f4\u65b0\u3057\u305f\u5834\u5408\u306f\u518d\u767b\u9332\u307e\u305f\u306f\u518d\u7d22\u5f15\u306b\u3088\u3063\u3066\u6839\u62e0\u3092\u5dee\u3057\u66ff\u3048\u3089\u308c\u3001\u57cb\u3081\u8fbc\u307f\u30e2\u30c7\u30eb\u3092\u5909\u66f4\u3057\u305f\u5834\u5408\u306f\u691c\u7d22\u7a7a\u9593\u3092\u4f5c\u308a\u76f4\u305b\u308b\u3002\u751f\u6210\u7528 LLM \u3092\u5909\u66f4\u3057\u3066\u3082\u3001\u540c\u3058\u691c\u7d22\u7d50\u679c\u3092\u4e0e\u3048\u3066\u56de\u7b54\u5fe0\u5b9f\u6027\u3068\u901f\u5ea6\u3092\u6bd4\u8f03\u3067\u304d\u308b\u3002\u30e2\u30c7\u30eb\u3001\u691c\u7d22\u3001\u6587\u66f8\u3092\u5206\u96e2\u3057\u305f\u3053\u3068\u3067\u3001\u77e5\u8b58\u306e\u66f4\u65b0\u3092\u30e2\u30c7\u30eb\u518d\u5b66\u7fd2\u3067\u306f\u306a\u304f\u3001\u7ba1\u7406\u53ef\u80fd\u306a\u6587\u66f8\u3068\u7d22\u5f15\u306e\u66f4\u65b0\u3068\u3057\u3066\u6271\u3048\u308b\u3002<\/p>\n<p>MacBook Pro \u4e0a\u306e\u30ed\u30fc\u30ab\u30eb RAG \u304c\u5b9f\u7528\u6bb5\u968e\u3078\u9054\u3057\u305f\u3068\u5224\u65ad\u3067\u304d\u308b\u306e\u306f\u3001\u56de\u7b54\u304c\u8fd4\u3063\u305f\u6642\u70b9\u3067\u306f\u306a\u3044\u3002\u6587\u66f8\u306e\u3069\u306e\u65ad\u7247\u304c\u4fdd\u5b58\u3055\u308c\u3001\u306a\u305c\u305d\u306e\u65ad\u7247\u304c\u691c\u7d22\u3055\u308c\u3001\u751f\u6210\u7528 LLM \u304c\u3069\u306e\u6839\u62e0\u304b\u3089\u56de\u7b54\u3057\u3001\u969c\u5bb3\u3084\u66f4\u65b0\u5f8c\u306b\u540c\u3058\u72b6\u614b\u3092\u3069\u3046\u5fa9\u5143\u3059\u308b\u304b\u3092\u8aac\u660e\u3067\u304d\u308b\u6642\u70b9\u3067\u3042\u308b\u3002\u5b8c\u6210\u3057\u305f\u306e\u306f\u4e09\u3064\u306e\u30b5\u30fc\u30d3\u30b9\u3092\u4e26\u3079\u305f\u74b0\u5883\u3067\u306f\u306a\u304f\u3001\u5229\u7528\u8005\u304c\u6839\u62e0\u3001\u5931\u6557\u4f4d\u7f6e\u3001\u8a2d\u5b9a\u3001\u5fa9\u65e7\u624b\u9806\u3092\u5236\u5fa1\u3067\u304d\u308b\u51e6\u7406\u7d4c\u8def\u3067\u3042\u308b\u3002<\/p>\n<p>\u6b21\u7a3f\u3067\u306f\u3001\u3053\u306e\u63a8\u8ad6\u30fb\u691c\u7d22\u57fa\u76e4\u3092 MCP\u3001VS Code\u3001Continue\u3001Git \u306e\u4f5c\u696d\u7d4c\u8def\u3078\u63a5\u7d9a\u3059\u308b\u3002\u6b21\u306e\u6bb5\u968e\u3067\u554f\u308f\u308c\u308b\u306e\u306f\u3001\u30ed\u30fc\u30ab\u30eb RAG \u304c\u5358\u72ec\u3067\u6b63\u7b54\u3067\u304d\u308b\u304b\u3067\u306f\u306a\u3044\u3002\u958b\u767a\u4f5c\u696d\u306e\u3069\u306e\u6642\u70b9\u3067\u6587\u66f8\u691c\u7d22\u3092\u5b9f\u884c\u3057\u3001\u3069\u306e\u64cd\u4f5c\u3092\u30e2\u30c7\u30eb\u3078\u8a31\u53ef\u3057\u3001\u3069\u306e\u5909\u66f4\u3092\u4eba\u9593\u304c\u78ba\u8a8d\u3057\u3001\u3069\u306e\u72b6\u614b\u304b\u3089\u30ed\u30fc\u30eb\u30d0\u30c3\u30af\u3067\u304d\u308b\u3088\u3046\u306b\u3059\u308b\u304b\u3067\u3042\u308b\u3002<\/p>\n<hr>\n<h2>\u53c2\u8003\u6587\u732e<\/h2>\n<ol class=\"references\">\n<li id=\"ref1\">id774, MacBook Pro \u3067\u30ed\u30fc\u30ab\u30eb LLM \u3092\u5b9f\u7528\u5316\u3059\u308b\u6761\u4ef6\uff082026-07-17\uff09. <a href=\"https:\/\/blog.id774.net\/entry\/2026\/07\/17\/5102\/\">https:\/\/blog.id774.net\/entry\/2026\/07\/17\/5102\/<\/a><\/li>\n<li id=\"ref2\">id774, \u751f\u6210 AI \u306e\u7af6\u4e89\u8ef8\u306f\u3001\u30e2\u30c7\u30eb\u304b\u3089\u696d\u52d9\u5b9f\u88c5\u3078\u79fb\u308b\uff082026-06-25\uff09. <a href=\"https:\/\/blog.id774.net\/entry\/2026\/06\/25\/4922\/\">https:\/\/blog.id774.net\/entry\/2026\/06\/25\/4922\/<\/a><\/li>\n<li id=\"ref3\">Patrick Lewis, Ethan Perez, Aleksandra Piktus, Fabio Petroni, Vladimir Karpukhin, Naman Goyal, Heinrich K\u00fcttler, Mike Lewis, Wen-tau Yih, Tim Rockt\u00e4schel, Sebastian Riedel, Douwe Kiela, Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks, Advances in Neural Information Processing Systems 33\uff082020\uff09. <a href=\"https:\/\/proceedings.neurips.cc\/paper\/2020\/hash\/6b493230205f780e1bc26945df7481e5-Abstract.html\">https:\/\/proceedings.neurips.cc\/paper\/2020\/hash\/6b493230205f780e1bc26945df7481e5-Abstract.html<\/a><\/li>\n<li id=\"ref4\">Shahul Es, Jithin James, Luis Espinosa Anke, Steven Schockaert, RAGAs: Automated Evaluation of Retrieval Augmented Generation, Proceedings of the 18th Conference of the European Chapter of the Association for Computational Linguistics: System Demonstrations\uff082024\uff09. <a href=\"https:\/\/aclanthology.org\/2024.eacl-demo.16\/\">https:\/\/aclanthology.org\/2024.eacl-demo.16\/<\/a><\/li>\n<li id=\"ref5\">Apple Developer, Explore the new system architecture of Apple silicon Macs, WWDC20\uff082020\uff09. <a href=\"https:\/\/developer.apple.com\/videos\/play\/wwdc2020\/10686\/\">https:\/\/developer.apple.com\/videos\/play\/wwdc2020\/10686\/<\/a><\/li>\n<li id=\"ref6\">Ollama, macOS\uff08n.d., 2026-07-16 \u53c2\u7167\uff09. <a href=\"https:\/\/docs.ollama.com\/macos\">https:\/\/docs.ollama.com\/macos<\/a><\/li>\n<li id=\"ref7\">Docker, Install Docker Desktop on Mac\uff08n.d., 2026-07-16 \u53c2\u7167\uff09. <a href=\"https:\/\/docs.docker.com\/desktop\/setup\/install\/mac-install\/\">https:\/\/docs.docker.com\/desktop\/setup\/install\/mac-install\/<\/a><\/li>\n<li id=\"ref8\">Docker, Compose file reference\uff08n.d., 2026-07-16 \u53c2\u7167\uff09. <a href=\"https:\/\/docs.docker.com\/reference\/compose-file\/\">https:\/\/docs.docker.com\/reference\/compose-file\/<\/a><\/li>\n<li id=\"ref9\">Docker, Volumes\uff08n.d., 2026-07-16 \u53c2\u7167\uff09. <a href=\"https:\/\/docs.docker.com\/engine\/storage\/volumes\/\">https:\/\/docs.docker.com\/engine\/storage\/volumes\/<\/a><\/li>\n<li id=\"ref10\">Docker, Explore networking how-tos on Docker Desktop\uff08n.d., 2026-07-16 \u53c2\u7167\uff09. <a href=\"https:\/\/docs.docker.com\/desktop\/features\/networking\/networking-how-tos\/\">https:\/\/docs.docker.com\/desktop\/features\/networking\/networking-how-tos\/<\/a><\/li>\n<li id=\"ref11\">Ollama, Introduction, API Reference\uff08n.d., 2026-07-16 \u53c2\u7167\uff09. <a href=\"https:\/\/docs.ollama.com\/api\/introduction\">https:\/\/docs.ollama.com\/api\/introduction<\/a><\/li>\n<li id=\"ref12\">Ollama, qwen3.5:9b\uff08n.d., 2026-07-16 \u53c2\u7167\uff09. <a href=\"https:\/\/ollama.com\/library\/qwen3.5:9b\">https:\/\/ollama.com\/library\/qwen3.5:9b<\/a><\/li>\n<li id=\"ref13\">Ollama, Usage, API Reference\uff08n.d., 2026-07-16 \u53c2\u7167\uff09. <a href=\"https:\/\/docs.ollama.com\/api\/usage\">https:\/\/docs.ollama.com\/api\/usage<\/a><\/li>\n<li id=\"ref14\">Ollama, Embeddings\uff08n.d., 2026-07-16 \u53c2\u7167\uff09. <a href=\"https:\/\/docs.ollama.com\/capabilities\/embeddings\">https:\/\/docs.ollama.com\/capabilities\/embeddings<\/a><\/li>\n<li id=\"ref15\">Ollama, Generate embeddings, API Reference\uff08n.d., 2026-07-16 \u53c2\u7167\uff09. <a href=\"https:\/\/docs.ollama.com\/api\/embed\">https:\/\/docs.ollama.com\/api\/embed<\/a><\/li>\n<li id=\"ref16\">Nils Reimers, Iryna Gurevych, Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks, Proceedings of EMNLP-IJCNLP\uff082019\uff09. <a href=\"https:\/\/aclanthology.org\/D19-1410\/\">https:\/\/aclanthology.org\/D19-1410\/<\/a><\/li>\n<li id=\"ref17\">Ollama, Context length\uff08n.d., 2026-07-16 \u53c2\u7167\uff09. <a href=\"https:\/\/docs.ollama.com\/context-length\">https:\/\/docs.ollama.com\/context-length<\/a><\/li>\n<li id=\"ref18\">Qdrant, Security\uff08n.d., 2026-07-16 \u53c2\u7167\uff09. <a href=\"https:\/\/qdrant.tech\/documentation\/security\/\">https:\/\/qdrant.tech\/documentation\/security\/<\/a><\/li>\n<li id=\"ref19\">Open WebUI, Quick Start\uff08n.d., 2026-07-16 \u53c2\u7167\uff09. <a href=\"https:\/\/docs.openwebui.com\/getting-started\/quick-start\/\">https:\/\/docs.openwebui.com\/getting-started\/quick-start\/<\/a><\/li>\n<li id=\"ref20\">Open WebUI, Environment Variable Configuration\uff08n.d., 2026-07-16 \u53c2\u7167\uff09. <a href=\"https:\/\/docs.openwebui.com\/reference\/env-configuration\/\">https:\/\/docs.openwebui.com\/reference\/env-configuration\/<\/a><\/li>\n<li id=\"ref21\">Qdrant, Local Quickstart\uff08n.d., 2026-07-16 \u53c2\u7167\uff09. <a href=\"https:\/\/qdrant.tech\/documentation\/quickstart\/\">https:\/\/qdrant.tech\/documentation\/quickstart\/<\/a><\/li>\n<li id=\"ref22\">Docker, Control startup and shutdown order in Compose\uff08n.d., 2026-07-16 \u53c2\u7167\uff09. <a href=\"https:\/\/docs.docker.com\/compose\/how-tos\/startup-order\/\">https:\/\/docs.docker.com\/compose\/how-tos\/startup-order\/<\/a><\/li>\n<li id=\"ref23\">Qdrant, Qdrant Web UI\uff08n.d., 2026-07-16 \u53c2\u7167\uff09. <a href=\"https:\/\/qdrant.tech\/documentation\/web-ui\/\">https:\/\/qdrant.tech\/documentation\/web-ui\/<\/a><\/li>\n<li id=\"ref24\">id774, AI \u306b\u81ea\u8eab\u306e\u6587\u8108\u3092\u6301\u3061\u904b\u3076\uff082026-05-04\uff09. <a href=\"https:\/\/blog.id774.net\/entry\/2026\/05\/04\/4675\/\">https:\/\/blog.id774.net\/entry\/2026\/05\/04\/4675\/<\/a><\/li>\n<li id=\"ref25\">Open WebUI, Knowledge\uff08n.d., 2026-07-16 \u53c2\u7167\uff09. <a href=\"https:\/\/docs.openwebui.com\/features\/workspace\/knowledge\/\">https:\/\/docs.openwebui.com\/features\/workspace\/knowledge\/<\/a><\/li>\n<li id=\"ref26\">Open WebUI, Retrieval Augmented Generation (RAG)\uff08n.d., 2026-07-16 \u53c2\u7167\uff09. <a href=\"https:\/\/docs.openwebui.com\/features\/chat-conversations\/rag\/\">https:\/\/docs.openwebui.com\/features\/chat-conversations\/rag\/<\/a><\/li>\n<li id=\"ref27\">Nelson F. Liu, Kevin Lin, John Hewitt, Ashwin Paranjape, Michele Bevilacqua, Fabio Petroni, Percy Liang, Lost in the Middle: How Language Models Use Long Contexts, Transactions of the Association for Computational Linguistics 12\uff082024\uff09. <a href=\"https:\/\/aclanthology.org\/2024.tacl-1.9\/\">https:\/\/aclanthology.org\/2024.tacl-1.9\/<\/a><\/li>\n<li id=\"ref28\">Open WebUI, Troubleshooting RAG\uff08n.d., 2026-07-16 \u53c2\u7167\uff09. <a href=\"https:\/\/docs.openwebui.com\/troubleshooting\/rag\/\">https:\/\/docs.openwebui.com\/troubleshooting\/rag\/<\/a><\/li>\n<li id=\"ref29\">Qdrant, Collections\uff08n.d., 2026-07-16 \u53c2\u7167\uff09. <a href=\"https:\/\/qdrant.tech\/documentation\/manage-data\/collections\/\">https:\/\/qdrant.tech\/documentation\/manage-data\/collections\/<\/a><\/li>\n<li id=\"ref30\">Qdrant, Points\uff08n.d., 2026-07-16 \u53c2\u7167\uff09. <a href=\"https:\/\/qdrant.tech\/documentation\/manage-data\/points\/\">https:\/\/qdrant.tech\/documentation\/manage-data\/points\/<\/a><\/li>\n<li id=\"ref31\">Qdrant, Indexing Vectors in HNSW, Collections\uff08n.d., 2026-07-16 \u53c2\u7167\uff09. <a href=\"https:\/\/qdrant.tech\/documentation\/manage-data\/collections\/#indexing-vectors-in-hnsw\">https:\/\/qdrant.tech\/documentation\/manage-data\/collections\/#indexing-vectors-in-hnsw<\/a><\/li>\n<li id=\"ref32\">Open WebUI, Changing the Embedding Model, Retrieval Augmented Generation (RAG)\uff08n.d., 2026-07-16 \u53c2\u7167\uff09. <a href=\"https:\/\/docs.openwebui.com\/features\/chat-conversations\/rag\/#changing-the-embedding-model\">https:\/\/docs.openwebui.com\/features\/chat-conversations\/rag\/#changing-the-embedding-model<\/a><\/li>\n<li id=\"ref33\">Qdrant, Search\uff08n.d., 2026-07-16 \u53c2\u7167\uff09. <a href=\"https:\/\/qdrant.tech\/documentation\/search\/search\/\">https:\/\/qdrant.tech\/documentation\/search\/search\/<\/a><\/li>\n<li id=\"ref34\">Open WebUI, RAG Template Customization and Chunking Configuration, Retrieval Augmented Generation (RAG)\uff08n.d., 2026-07-16 \u53c2\u7167\uff09. <a href=\"https:\/\/docs.openwebui.com\/features\/chat-conversations\/rag\/#rag-template-customization\">https:\/\/docs.openwebui.com\/features\/chat-conversations\/rag\/#rag-template-customization<\/a><\/li>\n<li id=\"ref35\">Ollama, Modelfile Reference\uff08n.d., 2026-07-16 \u53c2\u7167\uff09. <a href=\"https:\/\/docs.ollama.com\/modelfile\">https:\/\/docs.ollama.com\/modelfile<\/a><\/li>\n<li id=\"ref36\">Docker, docker compose down\uff08n.d., 2026-07-16 \u53c2\u7167\uff09. <a href=\"https:\/\/docs.docker.com\/reference\/cli\/docker\/compose\/down\/\">https:\/\/docs.docker.com\/reference\/cli\/docker\/compose\/down\/<\/a><\/li>\n<li id=\"ref37\">Open WebUI, Backups\uff08n.d., 2026-07-16 \u53c2\u7167\uff09. <a href=\"https:\/\/docs.openwebui.com\/tutorials\/maintenance\/backups\/\">https:\/\/docs.openwebui.com\/tutorials\/maintenance\/backups\/<\/a><\/li>\n<li id=\"ref38\">Qdrant, Snapshots\uff08n.d., 2026-07-16 \u53c2\u7167\uff09. <a href=\"https:\/\/qdrant.tech\/documentation\/snapshots\/\">https:\/\/qdrant.tech\/documentation\/snapshots\/<\/a><\/li>\n<li id=\"ref39\">Open WebUI, Updating Open WebUI\uff08n.d., 2026-07-16 \u53c2\u7167\uff09. <a href=\"https:\/\/docs.openwebui.com\/getting-started\/updating\/\">https:\/\/docs.openwebui.com\/getting-started\/updating\/<\/a><\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>\u524d\u7a3f\u3067\u306f\u3001MacBook Pro \u3067\u30ed\u30fc\u30ab\u30eb LLM \u3092\u5b9f\u7528\u5316\u3059\u308b\u306b\u306f\u3001\u30e2\u30c7\u30eb\u304c\u8d77\u52d5\u3059\u308b\u3060\u3051\u3067\u306a\u304f\u3001\u7528\u9014\u306b\u5bfe\u3057\u3066\u5341\u5206\u306a\u5fdc\u7b54\u901f\u5ea6\u3001\u8a18\u61b6\u5bb9\u91cf\u3001\u30e2\u30c7\u30eb\u898f\u6a21\u3001\u904b\u7528\u65b9\u6cd5\u304c\u6210\u7acb\u3057\u3066\u3044\u306a\u3051\u308c\u3070\u306a\u3089\u306a\u3044\u3053\u3068\u3092\u6574\u7406\u3057\u305f[1]\u3002\u30ed\u30fc\u30ab\u30eb R &#8230; <a title=\"MacBook Pro \u306b\u30ed\u30fc\u30ab\u30eb RAG \u3092\u69cb\u7bc9\u3059\u308b\" class=\"read-more\" href=\"https:\/\/blog.id774.net\/entry\/2026\/07\/18\/5104\/\" aria-label=\"MacBook Pro \u306b\u30ed\u30fc\u30ab\u30eb RAG \u3092\u69cb\u7bc9\u3059\u308b \u306b\u3064\u3044\u3066\u3055\u3089\u306b\u8aad\u3080\">\u7d9a\u304d\u3092\u8aad\u3080<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[14],"tags":[],"class_list":["post-5104","post","type-post","status-publish","format-standard","hentry","category-tech"],"_links":{"self":[{"href":"https:\/\/blog.id774.net\/entry\/wp-json\/wp\/v2\/posts\/5104","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.id774.net\/entry\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.id774.net\/entry\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.id774.net\/entry\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.id774.net\/entry\/wp-json\/wp\/v2\/comments?post=5104"}],"version-history":[{"count":1,"href":"https:\/\/blog.id774.net\/entry\/wp-json\/wp\/v2\/posts\/5104\/revisions"}],"predecessor-version":[{"id":5105,"href":"https:\/\/blog.id774.net\/entry\/wp-json\/wp\/v2\/posts\/5104\/revisions\/5105"}],"wp:attachment":[{"href":"https:\/\/blog.id774.net\/entry\/wp-json\/wp\/v2\/media?parent=5104"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.id774.net\/entry\/wp-json\/wp\/v2\/categories?post=5104"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.id774.net\/entry\/wp-json\/wp\/v2\/tags?post=5104"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}