{"id":16352,"date":"2024-09-23T14:08:57","date_gmt":"2024-09-23T21:08:57","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=16352"},"modified":"2025-06-13T16:36:40","modified_gmt":"2025-06-13T23:36:40","slug":"ai-powered-recommendation-engine-llm-rag","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/ko\/ai-powered-recommendation-engine-llm-rag\/","title":{"rendered":"\uac1c\ub150\uc5d0\uc11c \ucf54\ub4dc\uae4c\uc9c0: Couchbase\ub97c \uc0ac\uc6a9\ud55c LLM + RAG"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">GenAI \uae30\uc220\uc740 2023 \ub144\uacfc 2024 \ub144\uc5d0 \ud655\uc2e4\ud788 \ud2b8\ub80c\ub4dc \uc544\uc774\ud15c\uc774\uba70, \uc81c\uac00 \uc77c\ud558\ub294 \ud68c\uc0ac\uc5d0\uc11c\u00a0 <\/span><a href=\"https:\/\/tikalk.com\/\"><span style=\"font-weight: 400;\">Tikal<\/span><\/a><span style=\"font-weight: 400;\">\ub294 \ub9e4\ub144 \uc790\uccb4\uc801\uc73c\ub85c <\/span><a href=\"https:\/\/tikalk.com\/radar\/\"><span style=\"font-weight: 400;\">\uae30\uc220 \ub808\uc774\ub354 \ubc0f \ud2b8\ub80c\ub4dc<\/span><\/a><span style=\"font-weight: 400;\"> \ubcf4\uace0\uc11c\ub97c \uc791\uc131\ud558\uba74\uc11c LLM\uacfc genAI\ub294 \uc81c \uad00\uc2ec\uc744 \ud53c\ud560 \uc218 \uc5c6\uc5c8\uc2b5\ub2c8\ub2e4. \uac1c\ubc1c\uc790\ub85c\uc11c \uc800\ub294 \ubaa8\ub4e0 \uc885\ub958\uc758 TypeScript \uc624\ub958\uc640 \uc2e0\ube44\ud55c \ubcf4\ud478\ub77c\uae30 \ubb38\uc81c\ub97c \ud574\uacb0\ud558\uae30 \uc704\ud574 \uc0dd\uc131\ud615 AI \ucc57\ubd07\uc5d0 \uc790\uc8fc \ubb38\uc758\ud558\uace0, IDE\uc5d0\uc11c genAI \ubcf4\uc870 \ub3c4\uad6c\ub97c \uc0ac\uc6a9\ud558\uace0, PR\uc744 \uac1c\uc120\ud558\ub294 \ub370 \ub3c4\uc6c0\uc744 \ubc1b\uc2b5\ub2c8\ub2e4. \uc774 \uae30\uc220\uc740 \uc0b6\uc744 \ubc14\uafc0 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\uae30\uc220\uc790, \ud2b9\ud788 \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uac1c\ubc1c\uc790\ub85c\uc11c \uc774 \uc0c8\ub85c\uc6b4 \ud2b8\ub80c\ub4dc\ub294 \uc6b0\ub9ac\uac00 \uc791\uc5c5\ud558\ub294 \ubaa8\ub4e0 \ud504\ub85c\uc81d\ud2b8\uc5d0 \uc774\ub7ec\ud55c \uae30\ub2a5\uc744 \ud1b5\ud569\ud560 \uc218 \uc788\ub294 \uae30\ud68c\ub97c \uc5f4\uc5b4\uc8fc\uc5c8\uace0, \uce5c\uad6c\uc640 \ub3d9\ub8cc\ub4e4\uc774 \uc774\ub7ec\ud55c \uc635\uc158\uc744 \ud0d0\uc0c9\ud558\ub294 \uac83\uc744 \ubcf4\uace0 \uc800\ub3c4 \uadf8\ub807\uac8c \ud574\uc57c\uaca0\ub2e4\ub294 \uacb0\uc2ec\uc744 \ud558\uac8c \ub418\uc5c8\uc2b5\ub2c8\ub2e4!<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\uadf8\ub9ac\uace0 \ubc14\ub85c \uadf8 \ud504\ub85c\uc81d\ud2b8\uac00 \uc788\uc5c8\uc2b5\ub2c8\ub2e4:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\uc544\ub9c8\ucd94\uc5b4 \ubb34\uc6a9\ub2e8\uc5d0\uc11c \ucda4\uc744 \ucd94\ub294 \uc544\ub9c8\ucd94\uc5b4 \ubb34\uc6a9\uc218\uc778 \uc800\ub294 \uc544\ub9c8\ucd94\uc5b4 \uc608\uc220\uac00\ub4e4\uc774 \uc5b4\ub5bb\uac8c \ud558\uba74 \uc9c0\uc5ed\uacfc \uc804 \uc138\uacc4\uc758 \ub2e4\uc591\ud55c \ubb38\ud654 \ud589\uc0ac\ub97c \ud0d0\uc0c9\ud558\uc5ec \uc6d0\ud558\ub294 \uacf5\uc5f0 \ucd08\ub300\ub97c \ubc1b\uc744 \uc218 \uc788\uc744\uc9c0 \uad81\uae08\ud560 \ub54c\uac00 \ub9ce\uc2b5\ub2c8\ub2e4. \uc800\ud76c\ub294 \ubaa8\ub4e0 \uac83\uc744 \uc54c \uc218 \uc788\ub294 \ub9ac\uc18c\uc2a4, \uc778\ub9e5, \uc9c0\uc2dd\uc744 \uac00\uc9c0\uace0 \uc788\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \ubb3c\ub860 \uac80\uc0c9 \uc5d4\uc9c4\uc774\ub098 \uc804\ubb38 \uc6f9\uc0ac\uc774\ud2b8\ub3c4 \uc788\uc9c0\ub9cc, \ubb34\uc5c7\uc744 \uc5b4\ub5bb\uac8c \uac80\uc0c9\ud574\uc57c \ud558\ub294\uc9c0 \uc54c\uc544\uc57c \ud558\uae30 \ub54c\ubb38\uc5d0 \uc800\ub294 genAI\ub97c \uc0ac\uc6a9\ud558\uc5ec \ucd94\ucc9c\uc744 \ubc1b\uae30\ub85c \uacb0\uc815\ud588\uc2b5\ub2c8\ub2e4.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">1\ub2e8\uacc4 - \ud560 \uc218 \uc788\ub098\uc694?<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">LLM \uc911 \ud558\ub098\ub97c \uc0ac\uc6a9\ud558\uc5ec \ucd94\ucc9c \uc5d4\uc9c4\uc758 \uac00\ub2a5\uc131\uc744 \ud655\uc778\ud558\ub294 \uc791\uc5c5\uc5d0\ub294 \uc5ec\ub7ec genAI \ucc44\ud305 \uc11c\ube44\uc2a4\uc5d0\uc11c \uacc4\uc815\uc744 \uac1c\uc124\ud558\uace0 \ub3d9\uc77c\ud55c \uc9c8\ubb38\uc744 \ud558\ub294 \uac83\uc774 \ud3ec\ud568\ub418\uc5c8\uc2b5\ub2c8\ub2e4:<\/span><\/p>\n<p><i><span style=\"font-weight: 400;\">\uc6b0\ub9ac\ub294 <\/span><\/i><b><i>\uc544\ub9c8\ucd94\uc5b4<\/i><\/b> <b><i>\uc774\uc2a4\ub77c\uc5d8 \ubbfc\uc18d \ucda4<\/i><\/b><i><span style=\"font-weight: 400;\"> \uc758 \ub304\uc11c\ub4e4\uc744 \ud3ec\ud568\ud55c <\/span><\/i><b><i>\ud720\uccb4\uc5b4<\/i><\/b><i><span style=\"font-weight: 400;\">. \uc6b0\ub9ac\ub294 \ucc3e\uace0 \uc788\uc2b5\ub2c8\ub2e4 <\/span><\/i><b><i>\ubb38\ud654 <\/i><\/b><i><span style=\"font-weight: 400;\">\uadf8\ub9ac\uace0<\/span><\/i><b><i> \ubbfc\uc18d<\/i><\/b> <b><i>\uc774\ubca4\ud2b8<\/i><\/b><i><span style=\"font-weight: 400;\"> \uadf8\ub9ac\uace0 <\/span><\/i><b><i>\ucd95\uc81c<\/i><\/b><i><span style=\"font-weight: 400;\"> in <\/span><\/i><b><i>\uc720\ub7fd<\/i><\/b><i><span style=\"font-weight: 400;\"> \uacf5\uc5f0 \ucd08\ub300\ub97c \ubc1b\uc744 \uc218 \uc788\ub294 \uc635\uc158\uc5d0 \ub300\ud574 \ubb38\uc758\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <\/span><\/i><b><i>\ube44\uc6a9 \ucda9\ub2f9<\/i><\/b><i><span style=\"font-weight: 400;\">. \uba87 \uac00\uc9c0\ub97c \ucd94\ucc9c\ud574 \uc8fc\uc2dc\uaca0\uc5b4\uc694?<\/span><\/i><\/p>\n<p><span style=\"font-weight: 400;\">2024\ub144 \uc0c1\ubc18\uae30 \uacb0\uacfc\ub294 \ucc44\ud305 \uc11c\ube44\uc2a4\ub9c8\ub2e4 \ucc28\uc774\uac00 \uc788\uc5c8\uc2b5\ub2c8\ub2e4:<\/span><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\uacb0\uacfc\ub97c \ucffc\ub9ac\ud560 \uc218 \uc788\ub294 \uc804\uc6a9 \uc6f9\uc0ac\uc774\ud2b8\ub85c \uc5f0\uacb0\ub428<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\uc2e4\uc81c \uacb0\uacfc \uc81c\uacf5<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">\uacb0\uacfc\ub97c \ubc18\ud658 \ud55c \uc0ac\ub78c\ub4e4\ub85c\ubd80\ud130 \uad00\ub828\uc131\uacfc \uc815\ud655\uc131\uc744 \uae30\uc900\uc73c\ub85c \uacb0\uacfc\uc758 \ud488\uc9c8\uc744 \ud3c9\uac00 \ud55c \uacb0\uacfc \ub2e4\uc74c\uacfc \uac19\uc774 \ub05d\ub0ac\uc2b5\ub2c8\ub2e4. <\/span><b>OpenAI<\/b><span style=\"font-weight: 400;\"> GPT-<\/span><b>3<\/b><span style=\"font-weight: 400;\"> \ub97c \uc120\ud0dd\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">2\ub2e8\uacc4 - \uc774 \uc815\ub3c4\uba74 \ucda9\ubd84\ud560\uae4c\uc694?<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">1\ub2e8\uacc4\uc758 \ucc44\ud305 \ub3c4\uc6b0\ubbf8 \uc911 \ud55c \uba85\uc774 \ub2e4\ub978 \uc6f9\uc0ac\uc774\ud2b8\ub97c \ud655\uc778\ud574\ubcf4\ub77c\uace0 \uc81c\uc548\ud588\ub358 \uac83\uc744 \uae30\uc5b5\ud558\uba74\uc11c, \uadf8 \ub370\uc774\ud130 \uc911 \uc77c\ubd80\ub97c \uacb0\uacfc\uc5d0 \ud3ec\ud568\uc2dc\ud0ac \uc218 \uc788\ub2e4\uba74 \uc5b4\ub5a8\uae4c\uc694?<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\ubaa8\ub378\uc744 \ud559\uc2b5\uc2dc\ud0a8 \uc0ac\ub78c\uacfc \ud559\uc2b5 \uc2dc\uc810\uc5d0 \ub530\ub77c \ub2ec\ub77c\uc9c4\ub2e4\ub294 \uc810\uc744 \uace0\ub824\ud560 \ub54c, \ub354 \ub9ce\uc740 \ub370\uc774\ud130 \uc18c\uc2a4\ub97c \uae30\ubc18\uc73c\ub85c \ucd94\ucc9c\uc744 \ud558\uace0 \uc2f6\uc5c8\uace0 RAG\ub97c \uc0ac\uc6a9\ud558\uba74 \uac00\ub2a5\ud558\ub2e4\ub294 \uac83\uc744 \uc54c\uc558\uc2b5\ub2c8\ub2e4. \uc6b0\uc120 RAG\ub780 \ubb34\uc5c7\uc778\uac00\uc694?<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">\uac80\uc0c9 \uc99d\uac15 \uc0dd\uc131(RAG)<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">RAG\ub294 \"\uc678\ubd80\" \ub370\uc774\ud130\ub97c \ucd94\uac00\ud558\uc5ec LLM\uc5d0\uc11c \ubc1b\uc740 \uacb0\uacfc\ub97c \ubcf4\uac15\ud558\uace0 \ucd5c\uc801\ud654\ud558\ub294 \ud504\ub85c\uc138\uc2a4\uc785\ub2c8\ub2e4. \uc678\ubd80 \ub370\uc774\ud130 \uc18c\uc2a4(\uc804\uc6a9 \uc6f9\uc0ac\uc774\ud2b8)\uc5d0\uc11c \ub3d9\uc77c\ud55c \uac80\uc0c9\uc744 \uae30\ubc18\uc73c\ub85c \ud55c \uacb0\uacfc\ub97c \ucd94\uac00\ud560 \uc218 \uc788\ub2e4\uba74 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc774 \uc81c\uacf5\ud558\ub294 \uacb0\uacfc\uc758 \ub2e4\uc591\uc131\uc744 \ud655\uc7a5\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\uadf8\ub7ec\uae30 \uc704\ud574\uc11c\ub294 \ub2e4\uc74c\uc774 \ud544\uc694\ud569\ub2c8\ub2e4:<\/span><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\uc678\ubd80 \ub370\uc774\ud130 \uc18c\uc2a4 - \uc2e4\ud5d8\uc744 \uc704\ud574 \ub2e4\uc74c\uc5d0 \ub300\ud55c \ud3c9\uac00\ud310 \uacc4\uc815\uc744 \ub9cc\ub4e4\uc5c8\uc2b5\ub2c8\ub2e4. <\/span><a href=\"https:\/\/www.predicthq.com\/events\/upcoming-events\"><span style=\"font-weight: 400;\">predictHQ\uc758 \uc774\ubca4\ud2b8 API<\/span><\/a><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\ub0b4 \uc678\ubd80 \ub370\uc774\ud130 \uc800\uc7a5\uc18c\ub294 \uc815\ud655\ud788 \uc77c\uce58\ud558\uc9c0 \uc54a\ub294 \uc720\uc0ac\ub3c4 \uac80\uc0c9\uc744 \ud5c8\uc6a9\ud558\ub294 \uc5d4\uc9c4\uc785\ub2c8\ub2e4.<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4><span style=\"font-weight: 400;\">RAG\uac00 \ub370\uc774\ud130\uc5d0 \uc561\uc138\uc2a4\ud560 \uc218 \uc788\ub3c4\ub85d \ub9cc\ub4e4\uae30<\/span><\/h4>\n<p><span style=\"font-weight: 400;\">\ub370\uc774\ud130, \ub370\uc774\ud130\uc758 \ubaa8\uc591, \ub370\uc774\ud130\uc5d0 \ud3ec\ud568\ub41c \uae30\ub2a5\uc5d0 \ub300\ud55c \uc870\uc0ac\ub97c \ub9c8\ucce4\ub2e4\uba74, \uc774\uc81c \uc0ac\uc6a9\ud560 \ub370\uc774\ud130 \uae30\ub2a5\uc744 \uc120\ud0dd\ud558\uc5ec RAG\uc5d0\uc11c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub3c4\ub85d \ub9cc\ub4e4\uc5b4\uc57c \ud569\ub2c8\ub2e4.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\uc720\uc0ac\ub3c4 \uac80\uc0c9\uc744 \ud5c8\uc6a9\ud558\ub824\uba74 \ub370\uc774\ud130\ub97c \uac80\uc0c9 \uac00\ub2a5\ud55c \ud615\uc2dd\uc73c\ub85c \ubcc0\ud658\ud574\uc57c \ud569\ub2c8\ub2e4. <\/span><b>\ube44\uc2b7\ud569\ub2c8\ub2e4.<\/b><span style=\"font-weight: 400;\"> \uc815\ud655\ud55c \uc77c\uce58 \ud56d\ubaa9\uc774 \uc544\ub2c8\ub77c \uc720\uc0ac\ud55c \uc77c\uce58 \ud56d\ubaa9\uc744 \ucc3e\uae30 \ub54c\ubb38\uc5d0 \uc774\ub97c \uc704\ud55c \ub450 \uac00\uc9c0 \uc77c\ubc18\uc801\uc778 \uae30\uc220\uc774 \uc788\uc2b5\ub2c8\ub2e4:<\/span><\/p>\n<table style=\"border: 1px solid black;\">\n<tbody>\n<tr>\n<td><b>RAG \uae30\ubc95<\/b><\/td>\n<td><b>\uc138\ubd80 \uc815\ubcf4<\/b><\/td>\n<\/tr>\n<tr>\n<td>\ubca1\ud130 \uac80\uc0c9(\uc77c\ubc18 RAG\ub77c\uace0\ub3c4 \ud568)<\/td>\n<td>\uc815\ubcf4 \uc870\uac01\uacfc \uc9c8\ubb38\uc740 \ub2e4\uc74c\uacfc \uac19\uc774 \ubcc0\ud658\ub429\ub2c8\ub2e4. <b>\ubca1\ud130<\/b> \uc758 \uc22b\uc790(\ubd80\ub3d9 \uc18c\uc218\uc810).<\/p>\n<p>\uc218\ud559\uc801 \uacc4\uc0b0\uc744 \uc0ac\uc6a9\ud558\uc5ec \ubb38\uc81c\uc640 \ub370\uc774\ud130 \uac04\uc758 \uc720\uc0ac\uc131\uc744 \uacb0\uc815\ud569\ub2c8\ub2e4.<\/td>\n<\/tr>\n<tr>\n<td>GraphRAG<\/td>\n<td>\uc815\ubcf4 \uc870\uac01\uacfc \uc9c8\ubb38\uc740 \ub2e4\uc74c\uacfc \uac19\uc774 \ubcc0\ud658\ub429\ub2c8\ub2e4. <b>\uadf8\ub798\ud504<\/b> \uc815\uc810\uacfc \uac00\uc7a5\uc790\ub9ac.<\/p>\n<p>\uadf8\ub798\ud504 \uad00\uacc4\uc758 \uc720\uc0ac\uc131\uc744 \ube44\uad50\ud569\ub2c8\ub2e4.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"font-weight: 400;\">\ub370\uc774\ud130 \ud45c\ud604\uc744 \uc0dd\uc131\ud558\ub294 \ud504\ub85c\uc138\uc2a4\ub97c \ub2e4\uc74c\uacfc \uac19\uc774 \ud638\ucd9c\ud569\ub2c8\ub2e4. <\/span><b>\uc784\ubca0\ub529<\/b><span style=\"font-weight: 400;\">\uc774 \ubb38\uc11c\uc5d0\uc11c\ub294 \ubca1\ud130 \uac80\uc0c9\uc5d0 \ucd08\uc810\uc744 \ub9de\ucd9c \uac83\uc785\ub2c8\ub2e4.<\/span><\/p>\n<h4><span style=\"font-weight: 400;\">\uc720\uc0ac\uc131 \uba54\ud2b8\ub9ad<\/span><\/h4>\n<p><span style=\"font-weight: 400;\">3\uac00\uc9c0 \uc77c\ubc18\uc801\uc778 \uc635\uc158\uc774 \uc788\uc2b5\ub2c8\ub2e4(\uac04\ub2e8\ud788 \ub9d0\ud574\uc11c):<\/span><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\ub3c4\ud2b8 \uacf1: \uac01 \ubca1\ud130\uc758 \uac12\uc758 \uacf1\uc744 \uae30\ubc18\uc73c\ub85c \uc720\uc0ac\ub3c4 \uacc4\uc0b0\ud558\uae30<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\ucf54\uc0ac\uc778: \ucf54\uc0ac\uc778: \ubca1\ud130 \uc0ac\uc774\uc758 \uac01\ub3c4\ub97c \uae30\uc900\uc73c\ub85c \ud569\ub2c8\ub2e4.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">L2_norm: \ubca1\ud130 \uc0ac\uc774\uc758 \uc720\ud074\ub9ac\ub4dc \uac70\ub9ac, \ubca1\ud130 \uc0ac\uc774\uc758 \uac01\ub3c4\uc640 \uac01 \ubca1\ud130\uc758 \uae38\uc774\ub97c \uae30\uc900\uc73c\ub85c \ud569\ub2c8\ub2e4.<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">\uc790\uc138\ud788 \uc54c\uc544\ubcf4\uae30 <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/vector-similarity-search\/\">\ubca1\ud130 \uc720\uc0ac\ub3c4 \uc635\uc158<\/a>.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">3\ub2e8\uacc4 - \uc5b4\ub5bb\uac8c \ud558\ub098\uc694?<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">\uc774 \uc791\uc5c5\uc744 \uc218\ud589\ud558\ub294 \ubc29\ubc95\uacfc \uc2e4\uc81c \ucf54\ub4dc \ubc0f \uc2a4\ud06c\ub9b0\uc0f7\uc744 \uc0b4\ud3b4\ubcf4\uae30 \uc804\uc5d0 \uc774\ub7ec\ud55c \uc544\ud0a4\ud14d\ucc98\uac00 \uc5b4\ub5bb\uac8c \uad6c\ucd95\ub418\ub294\uc9c0, \uadf8\ub9ac\uace0 Couchbase\uac00 \uc5b4\ub5bb\uac8c \ub3c4\uc785\ub418\ub294\uc9c0 \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4:<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-16356 aligncenter\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image4-1.jpg\" alt=\"\" width=\"673\" height=\"682\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image4-1.jpg 673w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image4-1-296x300.jpg 296w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image4-1-65x65.jpg 65w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image4-1-50x50.jpg 50w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image4-1-300x304.jpg 300w\" sizes=\"auto, (max-width: 673px) 100vw, 673px\" \/><br style=\"font-weight: 400;\" \/><br style=\"font-weight: 400;\" \/><\/p>\n<p><span style=\"font-weight: 400;\">\uc774\uac83\uc774 \uc2e4\uc81c\ub85c \uc758\ubbf8\ud558\ub294 \ubc14\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4:<\/span><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\uc218\uc9d1 \uc571\uc73c\ub85c \uc774\ub3d9\ud569\ub2c8\ub2e4:<\/span>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">\uc678\ubd80 API\uc5d0\uc11c \ub370\uc774\ud130 \uac00\uc838\uc624\uae30<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">\ubca1\ud130 \uc784\ubca0\ub529 \ub9cc\ub4e4\uae30<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uceec\ub809\uc158\uc5d0 \ub370\uc774\ud130 \ub85c\ub4dc<\/span><\/li>\n<\/ol>\n<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4\uc5d0\uc11c \ubca1\ud130 \uac80\uc0c9 \uc778\ub371\uc2a4 \ub9cc\ub4e4\uae30<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\uc5d0 \uc2e0\uccad\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4:<\/span>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ub370\uc774\ud130\uc5d0 \uacb0\uacfc \uc694\uccad<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">\ubca1\ud130 \uac80\uc0c9 \uacb0\uacfc\ub97c LLM \ud504\ub86c\ud504\ud2b8\uc5d0 \ucee8\ud14d\uc2a4\ud2b8\ub85c \ucd94\uac00\ud569\ub2c8\ub2e4.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">\uc77c\uad00\ub41c \uacb0\uacfc\ub97c \uc0ac\uc6a9\uc790\uc5d0\uac8c \ubc18\ud658<\/span><\/li>\n<\/ol>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3><span style=\"font-weight: 400;\">\uc218\uc9d1 \uc560\ud50c\ub9ac\ucf00\uc774\uc158<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">\uc774 \uacfc\uc815\uc774 \uac00\uc7a5 \uc624\ub798 \uac78\ub838\uace0, \ub2e4\uc591\ud55c \ud544\ub4dc\uc640 \ub2e4\uc591\ud55c \ud615\uc2dd\uc758 \uc784\ubca0\ub529\uc744 \ub9cc\ub4dc\ub294 \ub370 \uc2dc\uac04\uc744 \ubcf4\ub0c8\uc2b5\ub2c8\ub2e4. \uacb0\uad6d \ub2e8\uc21c\ud654\ub97c \uc704\ud574 \uc81c\uac00 \uc218\uc9d1\ud55c \uc9c0\ub9ac \uc815\ubcf4\ub9cc \uc0ac\uc6a9\ud558\uae30\ub85c \uacb0\uc815\ud588\uc2b5\ub2c8\ub2e4:<\/span><\/p>\n<pre class=\"nums:false lang:python decode:true\">from langchain_openai import OpenAIEmbeddings\r\nembeddings_model = OpenAIEmbeddings(model=\"text-embedding-3-small\")\r\ntext = f\"Geo Info: {row['geo_info']}\"\r\n\r\nembedding = embeddings_model.embed_query(text)<\/pre>\n<p><span style=\"font-weight: 400;\">\uc784\ubca0\ub529\uc744 \ub9cc\ub4e4\uae30 \uc704\ud574 \uc800\ub294 \ud14d\uc2a4\ud2b8 \uc784\ubca0\ub529, \uc989 \ud14d\uc2a4\ud2b8 \ud45c\ud604\uacfc \ud14d\uc2a4\ud2b8 \ud45c\ud604\uc744 '\ube44\uad50'\ud558\ub294 \uc784\ubca0\ub529\uc744 \uc0ac\uc6a9\ud558\uae30\ub85c \ud588\uc2b5\ub2c8\ub2e4. \uc784\ubca0\ub529 \uc790\uccb4\uc5d0\ub294 \uc57d 1500\uac1c\uc758 \uc22b\uc790\uac00 \ud3ec\ud568\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4(\uc791\uc740 \uc22b\uc790).<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\ucf54\ub4dc \uc790\uccb4\ub294 \ub9e4\uc6b0 \ubcf5\uc7a1\ud558\uc9c0\ub294 \uc54a\uc9c0\ub9cc \uc2dc\uac04\uc774 \ub9ce\uc774 \uc18c\uc694\ub420 \uc218 \uc788\ub294\ub370, 5000\uac1c\uc758 \uc774\ubca4\ud2b8\uc5d0 \ub300\ud55c \uc784\ubca0\ub529 1\uac1c\ub97c \ub9cc\ub4dc\ub294 \ub370 \uc81c M1 16GB MacBook \ud504\ub85c\uc5d0\uc11c\ub294 \uc57d 1\uc2dc\uac04\uc774 \uac78\ub838\uc2b5\ub2c8\ub2e4.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">pandas2\ub97c \uc0ac\uc6a9\ud558\ub294 \uc804\uccb4 \ucf54\ub4dc\ub294 \ub2e4\uc74c\uc5d0\uc11c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <\/span><a href=\"https:\/\/github.com\/sshahar1\/TikalMeetup2024Ingestion\"><span style=\"font-weight: 400;\">\uc774<\/span><\/a><span style=\"font-weight: 400;\"> \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc5d0 \uc800\uc7a5\ud569\ub2c8\ub2e4.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc218\uc9d1 \ubc0f \uac80\uc0c9 \uc0c9\uc778<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">\uc9c8\ubb38\uacfc \uc678\ubd80 API\ub97c \uae30\ubc18\uc73c\ub85c \uc900\ube44\ud55c \uacb0\uacfc \uac04\uc5d0 \uc720\uc0ac\ud55c \ub370\uc774\ud130\ub97c \uac80\uc0c9\ud560 \uc218 \uc788\ub3c4\ub85d \ud558\uae30 \uc704\ud574 \ub2e4\uc74c\uacfc \uac19\uc774 \ud569\ub2c8\ub2e4.<\/span><\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uceec\ub809\uc158 \ub9cc\ub4e4\uae30<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\uc900\ube44\ub41c \ub370\uc774\ud130\ub97c \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uceec\ub809\uc158\uc5d0 \uc5c5\ub85c\ub4dc\ud569\ub2c8\ub2e4. <\/span><b>\uc784\ubca0\ub529 \ud3ec\ud568<\/b><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\ubca1\ud130 \uc720\uc0ac\uc131 \uc54c\uace0\ub9ac\uc998\uc744 \uc120\ud0dd\ud558\uc5ec \uc784\ubca0\ub529 \ud544\ub4dc\uc5d0 \uac80\uc0c9 \uc778\ub371\uc2a4\ub97c \uc0dd\uc131\ud558\uc5ec \ubca1\ud130\ub97c \ube44\uad50\ud569\ub2c8\ub2e4.<\/span><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<h4><span style=\"font-weight: 400;\">\uc0c8\ub85c\uc6b4 Couchbase \uceec\ub809\uc158<\/span><\/h4>\n<p><span style=\"font-weight: 400;\">\uc81c \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \uacbd\uc6b0 \ud638\uc2a4\ud305\ub41c Couchbase \uc11c\ube44\uc2a4\uc778 Capella\ub97c \uc0ac\uc6a9\ud558\uae30\ub85c \uc120\ud0dd\ud588\ub294\ub370, \uc124\uc815\uc774 \ub9e4\uc6b0 \uc27d\uc2b5\ub2c8\ub2e4. \uac00\uc785\ud558\uace0 \ud074\ub77c\uc6b0\ub4dc \uc11c\ube44\uc2a4\ub97c \uc120\ud0dd\ud55c \ub2e4\uc74c \uc0c8 \ud504\ub85c\uc81d\ud2b8\ub97c \ub9cc\ub4e4\uc5c8\uc2b5\ub2c8\ub2e4.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-16354\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image2-4-1024x118.png\" alt=\"\" width=\"900\" height=\"104\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image2-4-1024x118.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image2-4-300x35.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image2-4-768x89.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image2-4-1536x177.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image2-4-1320x153.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image2-4.png 1999w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">\ud504\ub85c\uc81d\ud2b8\ub97c \ud074\ub9ad\ud558\uace0 \ub370\uc774\ud130 \ub3c4\uad6c \ud0ed\uc73c\ub85c \uc774\ub3d9\ud558\uba74 \uc774\uc81c \uc900\ube44\ud55c \ub370\uc774\ud130\uc5d0 \ub300\ud55c \uc0c8 \uceec\ub809\uc158\uc744 \ub9cc\ub4e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4:<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-16353\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image1-4-893x1024.png\" alt=\"\" width=\"893\" height=\"1024\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image1-4-893x1024.png 893w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image1-4-262x300.png 262w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image1-4-768x880.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image1-4-300x344.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image1-4.png 1284w\" sizes=\"auto, (max-width: 893px) 100vw, 893px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">\uc81c\uac00 \uc900\ube44\ud55c \ub370\uc774\ud130\ub97c \uc5c5\ub85c\ub4dc\ud558\ub294 \ub370\ub294 \uba87 \uac00\uc9c0 \uc635\uc158\uc774 \uc788\uc2b5\ub2c8\ub2e4. \ud30c\uc77c \ud06c\uae30\uac00 \ub2e4\uc18c \ud06c\uae30 \ub54c\ubb38\uc5d0 \uc800\ub294 <\/span><a href=\"https:\/\/docs.couchbase.com\/server\/current\/tools\/cbimport.html\"><span style=\"font-weight: 400;\">cbimport<\/span><\/a><span style=\"font-weight: 400;\"> \uc720\ud2f8\ub9ac\ud2f0\ub97c \uc0ac\uc6a9\ud558\uc138\uc694.<\/span><\/p>\n<pre class=\"nums:false wrap:true lang:default decode:true\">.\/cbimport json --cluster couchbases:\/\/&lt;yourcluster&gt; --username &lt;your user&gt; --password &lt;your password&gt; --bucket &lt;bucket&gt; --scope-collection-exp \"&lt;scope&gt;.&lt;collection&gt;\" --dataset for_collection.json --generate-key '%id%' --cacert &lt;path to couchbase certificate&gt; --format lines<\/pre>\n<p><span style=\"font-weight: 400;\">\uc81c\uac00 \uc120\ud0dd\ud55c \uac83\uc740 <em>ID<\/em> \ud544\ub4dc\ub97c JSON \ubb38\uc11c\uc758 \ubb38\uc11c\ub85c \uc124\uc815\ud569\ub2c8\ub2e4. <em>\ud0a4<\/em> \ub97c \uceec\ub809\uc158\uc5d0 \ucd94\uac00\ud569\ub2c8\ub2e4.<\/span><\/p>\n<p><b>\uae30\uc5b5\ud558\uc138\uc694<\/b><span style=\"font-weight: 400;\"> \uadf8 \uc804\uc5d0 \uba3c\uc800 \ud574\uc57c \ud560 \uc77c\uc774 \uc788\uc2b5\ub2c8\ub2e4:<\/span><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\ucd5c\uc18c \uc4f0\uae30 \uad8c\ud55c\uc774 \uc788\ub294 \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc561\uc138\uc2a4 \uc0ac\uc6a9\uc790\/\ube44\ubc00\ubc88\ud638 \ub9cc\ub4e4\uae30<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\ud638\uc2a4\ud2b8\uc758 \ud638\ucd9c\uc744 \uc704\ud574 \ud074\ub7ec\uc2a4\ud130\ub97c \uc5fd\ub2c8\ub2e4.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\ud074\ub7ec\uc2a4\ud130\uc6a9 \uc778\uc99d\uc11c \ub2e4\uc6b4\ub85c\ub4dc<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">\ucd94\ub860\ub41c \ubb38\uc11c \uc2a4\ud0a4\ub9c8\ub294 \ub2e4\uc74c\uc744 \ubcf4\uc5ec\uc90d\ub2c8\ub2e4. <\/span><b>\uc784\ubca0\ub529<\/b><span style=\"font-weight: 400;\"> \ud544\ub4dc\ub97c \uc22b\uc790 \ubc30\uc5f4 \uc720\ud615\uc73c\ub85c \uc0dd\uc131\ud55c \uac83\uc73c\ub85c \uac04\uc8fc\ud569\ub2c8\ub2e4:<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-16355\" style=\"border: 1px solid black;\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image3-2.png\" alt=\"\" width=\"648\" height=\"296\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image3-2.png 648w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image3-2-300x137.png 300w\" sizes=\"auto, (max-width: 648px) 100vw, 648px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">\ubca1\ud130 \uc720\uc0ac\ub3c4 \uac80\uc0c9\uc744 \ud5c8\uc6a9\ud558\ub824\uba74 \uac80\uc0c9 \ud0ed\uc73c\ub85c \uc774\ub3d9\ud558\uc5ec \uac80\uc0c9 \uc778\ub371\uc2a4\ub97c \ub9cc\ub4e4\uc5b4 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\uac80\uc0c9 \uc0c9\uc778\uc5d0 \ub300\ud55c \uc784\ubca0\ub529 \ud544\ub4dc\ub97c \ub2f9\uc5f0\ud788 \uc120\ud0dd\ud574\uc57c \ud558\uc9c0\ub9cc \uc124\uc815\ud574\uc57c \ud560 \ub9e4\uac1c\ubcc0\uc218\uac00 \ub354 \ub9ce\ub2e4\ub294 \uac83\uc744 \uc54c \uc218 \uc788\uc2b5\ub2c8\ub2e4:<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-16357\" style=\"border: 1px solid black;\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image5-1-1024x311.png\" alt=\"\" width=\"900\" height=\"273\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image5-1-1024x311.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image5-1-300x91.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image5-1-768x233.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image5-1-1536x467.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image5-1-1320x401.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image5-1.png 1842w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">\uc720\uc0ac\uc131 \uba54\ud2b8\ub9ad\uc774 \ubb34\uc5c7\uc778\uc9c0 \uc774\ubbf8 \ub17c\uc758\ud588\uc9c0\ub9cc, Couchbase\ub294 l2_norm(\uc989, \uc720\ud074\ub9ac\ub4dc \uac70\ub9ac)\uacfc \ub3c4\ud2b8 \uacf1\uc744 \uc9c0\uc6d0\ud558\ubbc0\ub85c \"<\/span><b>\ub3c4\ud2b8 \uc81c\ud488\"<\/b><span style=\"font-weight: 400;\">\ub97c \uc0ac\uc6a9\ud558\uba74 \ucd94\ucc9c \uc2dc\uc2a4\ud15c\uc5d0 \ub354 \uc720\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\ub2e4\uc74c \ub2e8\uacc4\ub294 \uc9c8\ubb38\uacfc \uc720\uc0ac\ud558\uac8c \ubca1\ud130\uac00 \uc5b4\ub450\uc6cc\uc9c8 \ub54c\ub9c8\ub2e4 \ubc18\ud658\ub420 \ubb38\uc11c\uc5d0\uc11c \ucd94\uac00 \ud544\ub4dc\ub97c \uc120\ud0dd\ud558\ub294 \uac83\uc785\ub2c8\ub2e4:<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-16358\" style=\"border: 1px solid black;\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image6-1-1024x372.png\" alt=\"\" width=\"900\" height=\"327\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image6-1-1024x372.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image6-1-300x109.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image6-1-768x279.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image6-1-1536x558.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image6-1-1320x479.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image6-1.png 1999w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">\ud544\ub4dc\ub97c \ud558\ub098 \uc774\uc0c1 \ucd94\uac00\ud558\uc9c0 \uc54a\uc73c\uba74 \ubc18\ud658\ub418\ub294 \ub370\uc774\ud130\uac00 \uc5c6\uc73c\ubbc0\ub85c \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc774 \uc2e4\ud328\ud569\ub2c8\ub2e4.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\uc778\ub371\uc2a4 \ud544\ub4dc \uc120\ud0dd\uc774 \uc644\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4:<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-16359\" style=\"border: 1px solid black;\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image7-1-1024x517.png\" alt=\"\" width=\"900\" height=\"454\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image7-1-1024x517.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image7-1-300x152.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image7-1-768x388.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image7-1-1536x776.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image7-1-1320x667.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image7-1.png 1999w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">\ud504\ub85c\uc81d\ud2b8\uc758 \uc911\uc694\ud55c \uc9c0\uc810\uc5d0 \ub3c4\ub2ec\ud558\uc5ec \uc774\uc81c \uc900\ube44\ud55c \ub370\uc774\ud130\uc5d0 \ub300\ud574 \uc720\uc0ac\ub3c4 \uac80\uc0c9\uc744 \uc2e4\ud589\ud560 \uc218 \uc788\uc9c0\ub9cc \uccab \ubc88\uc9f8 \uc2dc\ub3c4\uc5d0\uc11c \uc720\uc0ac\ub3c4 \uac80\uc0c9\uc774 \uc791\ub3d9\ud558\uc9c0 \uc54a\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc720\uc0ac\ub3c4 \uac80\uc0c9\uc5d0\uc11c \uacb0\uacfc\ub97c \uc5bb\uac70\ub098 \uacb0\uacfc\ub97c \uc5bb\uc9c0 \ubabb\ud558\ub294 \uc774\uc720\ub97c \ud655\uc778\ud558\uae30 \uc704\ud55c \uba87 \uac00\uc9c0 \ud301\uc744 \uac04\ub7b5\ud558\uac8c \uc124\uba85\ud558\uaca0\uc2b5\ub2c8\ub2e4:<\/span><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\ub370\uc774\ud130\ub97c \ub9cc\ub4e4 \ub54c\uc640 \uac80\uc0c9\uc744 \uc900\ube44\ud560 \ub54c \uc784\ubca0\ub529 \uae30\uc220\uc774 \ub3d9\uc77c\ud55c\uc9c0 \ud655\uc778\ud558\uc138\uc694.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\ube44\uad50\ud558\ub824\ub294 \uc815\ubcf4\uc5d0 \ub300\ud574 \uac04\ub2e8\ud558\uace0 \uc608\uce21 \uac00\ub2a5\ud55c \ud615\uc2dd\uc73c\ub85c \uc2dc\uc791\ud558\uc138\uc694. \uc608: , ,<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\uc784\ubca0\ub529\uc744 \uc0dd\uc131\ud558\ub294 \ub370\uc774\ud130\uc5d0 \uc2e4\uc218\ub85c \ucd94\uac00\ub418\ub294 \uc815\ubcf4\uac00 \uc5c6\ub294\uc9c0 \ud655\uc778\ud558\uc138\uc694(\uc608: \uc904 \ubc14\uafc8\uc774 \uc788\ub294 \uacbd\uc6b0).<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\uc815\ud655\ud788 \uc77c\uce58\ud558\ub294 \uac80\uc0c9\uc774 \uc791\ub3d9\ud558\ub294\uc9c0 \ud655\uc778\ud569\ub2c8\ub2e4:<\/span>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">\uc784\ubca0\ub529\uc744 \uc0dd\uc131\ud55c \uc815\ud655\ud55c \ub370\uc774\ud130 \uac80\uc0c9\ud558\uae30<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">\uc784\ubca0\ub529 \ubca1\ud130\ub97c \ube44\uad50\ud558\uc5ec \uc0dd\uc131 \ubc0f \uac80\uc0c9 \ubd80\ubd84\uc5d0\uc11c \ub3d9\uc77c\ud55c \uc784\ubca0\ub529\uc774 \uc0dd\uc131\ub418\uc5c8\ub294\uc9c0 \ud655\uc778\ud569\ub2c8\ub2e4(\uc5ec\uae30\uc11c \ub514\ubc84\uae45\uc774 \uc720\uc6a9\ud569\ub2c8\ub2e4). \ucc28\uc774\uac00 \uc788\ub294 \uacbd\uc6b0 1-3\ub2e8\uacc4\ub85c \ub3cc\uc544\uac00\uc138\uc694.<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">\uc720\uc0ac\uc131 \uac80\uc0c9\uc774 \uc791\ub3d9\ud558\uba74 \uc810\ucc28\uc801\uc73c\ub85c \ud544\ub4dc\ub97c \ub354 \ucd94\uac00\ud558\uace0, \ud615\uc2dd, \uc784\ubca0\ub529 \ubc0f \uae30\ud0c0 \ub204\ub77d\ub418\uc5c8\ub2e4\uace0 \uc0dd\uac01\ub418\ub294 \ubaa8\ub4e0 \uac83\uc744 \ubcc0\uacbd\ud558\uc138\uc694.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\uc784\ubca0\ub529\uc774 \ubcc0\uacbd\ub418\uba74 \uadf8 \uc758\ubbf8\ub97c \uae30\uc5b5\ud558\uc138\uc694:<\/span><\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\uc784\ubca0\ub529 \ub2e4\uc2dc \ub9cc\ub4e4\uae30<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\uc798\ub9b0 \uceec\ub809\uc158\uc5d0 \ubcc0\uacbd \uc0ac\ud56d \ub370\uc774\ud130 \ub85c\ub4dc\ud558\uae30<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\ud544\uc694\ud55c \uacbd\uc6b0 \uac80\uc0c9 \uc0c9\uc778 \ubcc0\uacbd<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\ucf54\ub4dc \ubcc0\uacbd\uc774 \ud544\uc694\ud569\ub2c8\ub2e4.<\/span><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">\uc774\ub7ec\ud55c \ub2e8\uacc4\ub294 \ud2b9\ud788 \uc784\ubca0\ub529 \uc0dd\uc131\uc5d0 \uc2dc\uac04\uc774 \ub9ce\uc774 \uc18c\uc694\ub420 \uc218 \uc788\uc73c\ubbc0\ub85c \uba3c\uc800 \uc2dc\uc791\ud558\ub294 \uac83\uc774 \uc88b\uc2b5\ub2c8\ub2e4:<\/span><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\ubb38\uc11c\uc758 \uc77c\ubd80<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\uc791\uace0 \ube60\ub978 \uc784\ubca0\ub529 \uae30\uc220<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3><span style=\"font-weight: 400;\">LLM \ubc0f RAG \uc560\ud50c\ub9ac\ucf00\uc774\uc158<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">\uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc774 \ud574\uc57c \ud560 \uc77c\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4:<\/span><\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\uc0ac\uc6a9\uc790 \uc9c8\ubb38\uacfc \uc720\uc0ac\ud55c \uacb0\uacfc\ub97c \ucc3e\ub3c4\ub85d Couchbase\uc5d0 \uc694\uccad\ud558\uc138\uc694.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">LLM\uc5d0 \ub300\ud55c \ud504\ub86c\ud504\ud2b8 \uc9c8\ubb38\uc5d0 \ucee8\ud14d\uc2a4\ud2b8\uc5d0 \uacb0\uacfc\ub97c \ucd94\uac00\ud569\ub2c8\ub2e4.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">LLM\uc5d0\uac8c \uc9c8\ubb38\ud558\uae30<\/span><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">\uac04\ub2e8\ud558\uac8c \ud558\uae30 \uc704\ud574 \uc774 \ucf54\ub4dc\ub97c Python\uc5d0\uc11c Jupyter \ub178\ud2b8\ubd81\uc73c\ub85c \ub9cc\ub4e4\uc5c8\ub294\ub370, \uc774 \ub178\ud2b8\ubd81\uc740 \ub2e4\uc74c\uc5d0\uc11c \ucc3e\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <\/span><a href=\"https:\/\/github.com\/sshahar1\/TikalMeetup2024\"><span style=\"font-weight: 400;\">\uc800\uc7a5\uc18c<\/span><\/a><span style=\"font-weight: 400;\">. \uc774\ub97c \uc704\ud574 \ub2e4\uc74c \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc0ac\uc6a9\ud588\uc2b5\ub2c8\ub2e4:<\/span><\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/pypi.org\/project\/couchbase\/\"><span style=\"font-weight: 400;\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4<\/span><\/a><span style=\"font-weight: 400;\">: \ub0b4 \uce74\ud3a0\ub77c \ud074\ub7ec\uc2a4\ud130\uc5d0 \uc5f0\uacb0 \ubc0f \uc778\uc99d\ud558\uae30<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/www.langchain.com\/langchain\"><span style=\"font-weight: 400;\">LangChain<\/span><\/a><span style=\"font-weight: 400;\">\ub300\uaddc\ubaa8 \uc5b8\uc5b4 \ubaa8\ub378(LLM)\ub85c \uad6c\ub3d9\ub418\ub294 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uac1c\ubc1c\ud558\uae30 \uc704\ud55c \ud504\ub808\uc784\uc6cc\ud06c\uc785\ub2c8\ub2e4:<\/span>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">\uc784\ubca0\ub529<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4\ub97c \ubca1\ud130 \uc800\uc7a5\uc18c\ub85c \uc0ac\uc6a9<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">\"OpenAI\uc640 '\ucc44\ud305'<\/span><\/li>\n<\/ol>\n<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/www.langchain.com\/langgraph\"><span style=\"font-weight: 400;\">LangGraph<\/span><\/a><span style=\"font-weight: 400;\">: LLM \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \ud750\ub984\uc744 \uc0dd\uc131\ud558\uae30 \uc704\ud55c \uc0c1\ud0dc \uc800\uc7a5\ud615 \uba40\ud2f0 \uc561\ud130 LLM \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uad6c\ucd95\ud558\uae30 \uc704\ud55c \ud504\ub808\uc784\uc6cc\ud06c\uc785\ub2c8\ub2e4.<\/span><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">LangChain\uc740 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uc791\uc131, \ube4c\ub4dc, \ubc30\ud3ec \ubc0f \ubaa8\ub2c8\ud130\ub9c1\ud560 \uc218 \uc788\ub294 \ub77c\uc774\ube0c\ub7ec\ub9ac \uc138\ud2b8\uc774\uba70, \ud0c0\uc0ac API, \ub370\uc774\ud130\ubca0\uc774\uc2a4, \uc6f9 \uac80\uc0c9 \ub4f1\uacfc \uac19\uc740 \ub2e4\uc591\ud55c \ubd80\ubd84\uc744 \ucf54\ub4dc\uc5d0 \ud1b5\ud569\ud560 \uc218 \uc788\ub294 \ub9ce\uc740 \uc5d0\uc774\uc804\ud2b8\uc640 \ud655\uc7a5 \uae30\ub2a5\uc744 \uac16\ucd94\uace0 \uc788\uc2b5\ub2c8\ub2e4.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\ucd5c\uadfc\uc5d0\ub294 \uac1c\ubc1c\uc790\uac00 \uc870\uac74, \ub8e8\ud504(\uadf8\ub798\ud504\uac00 DAG\uc77c \ud544\uc694\ub294 \uc5c6\uc2b5\ub2c8\ub2e4!), \uc0ac\uc6a9\uc790 \uc0c1\ud638\uc791\uc6a9, \uadf8\ub9ac\uace0 \uc544\ub9c8\ub3c4 \uac00\uc7a5 \ub9ce\uc774 \ucc3e\ub294 \uae30\ub2a5\uc744 \ud1b5\ud574 LLM \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \ub354 \ubcf5\uc7a1\ud55c \ud1a0\ud3f4\ub85c\uc9c0\ub97c \uad6c\ucd95\ud560 \uc218 \uc788\uac8c \ud574\uc8fc\ub294 LangChain\uc758 \ud648\uc5d0\uc11c LangGraph\uc5d0 \ub300\ud574\uc11c\ub3c4 \ubc30\uc6e0\uc2b5\ub2c8\ub2e4: \uc0c1\ud0dc \uc720\uc9c0.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\ucf54\ub4dc\ub97c \uc0b4\ud3b4\ubcf4\uae30 \uc804\uc5d0 \ud658\uacbd \ud30c\uc77c(.env)\uc744 \uc0b4\ud3b4\ubcf4\uace0 \uc5b4\ub5a4 \uc790\uaca9 \uc99d\uba85\uacfc \uae30\ud0c0 \uae30\ubc00 \ub370\uc774\ud130\uac00 \ud544\uc694\ud55c\uc9c0 \ud655\uc778\ud574 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4:<\/span><\/p>\n<pre class=\"nums:false lang:default decode:true\">LANGSMITH_KEY=langsmithkey\r\nOPENAI_API_KEY=openaikey\r\nLANGCHAIN_PROJECT=myproject\r\nCOUCHBASE_CONNECTION_STRING=couchbase:\/\/mycluster.com\r\nCOUCHBASE_USER=myuser\r\nCOUCHBASE_PASS=mypass\r\nCOUCHBASE_BUCKET=mybucket\r\nCOUCHBASE_SCOPE=myscope\r\nCOUCHBASE_COLLECTION=mycollection\r\nCOUCHBASE_SEARCH_INDEX=mysearchindex\r\nLANGCHAIN_API_KEY=langchainapikey<\/pre>\n<p><span style=\"font-weight: 400;\">\uac01 \uadf8\ub798\ud504 \ub178\ub4dc\uc758 \uc0c1\ud0dc\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4:<\/span><\/p>\n<pre class=\"nums:false lang:default decode:true\">from langgraph.graph import add_messages, StateGraph\r\nfrom typing_extensions import TypedDict\r\nfrom typing import Annotated\r\nfrom langgraph.checkpoint.sqlite import SqliteSaver\r\n\r\nclass State(TypedDict):\r\n\u00a0 # Messages have the type \"list\". The `add_messages` function\r\n\u00a0 # in the annotation defines how this state key should be updated\r\n\u00a0 # (in this case, it appends messages to the list, rather than overwriting them)\r\n\u00a0 messages: Annotated[list, add_messages]\r\n\u00a0 event_type: str\r\n\u00a0 location: str\r\n\u00a0 labels: str\r\n\u00a0 \r\ngraph_builder = StateGraph(State)<\/pre>\n<p><span style=\"font-weight: 400;\">\uac10\uc18d\uae30\ub97c \uc815\uc758\ud558\uc9c0 \uc54a\uc73c\uba74 \uac01 \uadf8\ub798\ud504 \ub178\ub4dc \uac04\uc5d0 \uc0c1\ud0dc\ub97c \ub36e\uc5b4\uc4f0\uac8c \ub418\uba70, \uc0c1\ud0dc \ud074\ub798\uc2a4\uc758 \uba54\uc2dc\uc9c0 \uba64\ubc84\uc5d0\ub294 \uc0c8 \uba54\uc2dc\uc9c0\ub97c \ubaa9\ub85d\uc5d0 \ucd94\uac00\ud558\ub294 \uac10\uc18d\uae30\uac00 \uc788\ub2e4\ub294 \uc810\uc5d0 \uc720\uc758\ud558\uc138\uc694.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4\uc5d0 \uc5f0\uacb0\ud558\uc5ec LLM \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \ubca1\ud130 \uc800\uc7a5\uc18c\ub85c \uc0ac\uc6a9\ud558\ub824\uba74, \ud074\ub7ec\uc2a4\ud130\uc5d0 \uc778\uc99d\ud558\uace0 \ud074\ub7ec\uc2a4\ud130 \uc5f0\uacb0\uc744 \ubca1\ud130 \uc800\uc7a5\uc18c\uc6a9 LangChain \uac1d\uccb4\uc5d0 \uc804\ub2ec\ud569\ub2c8\ub2e4:<\/span><\/p>\n<pre class=\"nums:false lang:default decode:true\">from langchain_openai import OpenAIEmbeddings\r\nimport os\r\nfrom couchbase.cluster import Cluster\r\nfrom couchbase.options import ClusterOptions\r\nfrom couchbase.auth import PasswordAuthenticator\r\nfrom langchain_couchbase import CouchbaseVectorStore\r\n\r\nCOUCHBASE_CONNECTION_STRING = os.environ[\"COUCHBASE_CONNECTION_STRING\"]\r\nCOUCH_USER = os.environ[\"COUCHBASE_USER\"]\r\nCOUCH_PASS = os.environ[\"COUCHBASE_PASS\"]\r\nBUCKET_NAME = os.environ[\"COUCHBASE_BUCKET\"]\r\nSCOPE_NAME = os.environ[\"COUCHBASE_SCOPE\"]\r\nCOLLECTION_NAME = os.environ[\"COUCHBASE_COLLECTION\"]\r\nSEARCH_INDEX_NAME = os.environ[\"COUCHBASE_SEARCH_INDEX\"]\r\n\r\nauth = PasswordAuthenticator(COUCH_USER, COUCH_PASS)\r\noptions = ClusterOptions(auth)\r\ncluster = Cluster(COUCHBASE_CONNECTION_STRING, options)\r\nembedding = OpenAIEmbeddings(model=\"text-embedding-3-small\")\r\n\r\nvector_store = CouchbaseVectorStore(\r\n\u00a0 cluster=cluster,\r\n\u00a0 bucket_name=BUCKET_NAME,\r\n\u00a0 scope_name=SCOPE_NAME,\r\n\u00a0 collection_name=COLLECTION_NAME,\r\n\u00a0 embedding=embedding,\r\n\u00a0 index_name=SEARCH_INDEX_NAME,\r\n)<\/pre>\n<p><span style=\"font-weight: 400;\">\uba85\uc2ec\ud574\uc57c \ud560 \ub450 \uac00\uc9c0 \uc911\uc694\ud55c \uc138\ubd80 \uc0ac\ud56d\uc774 \uc788\uc2b5\ub2c8\ub2e4:<\/span><\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0 \uc784\ubca0\ub529\ud558\uae30 <\/span><b>\ud544\uc218<\/b><span style=\"font-weight: 400;\"> \uc12d\ucde8 \ubd80\ubd84\uc5d0 \uc0ac\uc6a9\ub41c \uac83\uacfc \ub3d9\uc77c\ud574\uc57c \ud569\ub2c8\ub2e4.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\uae30\ubcf8 \uc784\ubca0\ub529 \ud544\ub4dc \uc774\ub984\uc740 'embedding'\uc774\uba70, \uac80\uc0c9 \uc778\ub371\uc2a4\uc5d0\uc11c \ud574\ub2f9 \ud544\ub4dc \uc774\ub984\uc774 \ub2e4\ub978 \uacbd\uc6b0 CouchbaseVectorStore \uc778\uc2a4\ud134\uc2a4\ud654 \uc2dc \uc124\uc815\ud574\uc57c \ud569\ub2c8\ub2e4(embedding_key).<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">\uc774\uc81c LangGraph \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uc791\uc131\ud558\uace0 Couchbase\ub97c \ubca1\ud130 \uc800\uc7a5\uc18c\ub85c \uc0ac\uc6a9\ud560 \uc900\ube44\uac00 \ub418\uc5c8\uc2b5\ub2c8\ub2e4. \uac01 \uadf8\ub798\ud504\uc5d0\ub294 \ub178\ub4dc, \uc2dc\uc791\uc810, \ubc29\ud5a5\uc774 \uc9c0\uc815\ub41c \uac00\uc7a5\uc790\ub9ac\uac00 \ud544\uc694\ud569\ub2c8\ub2e4.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\uadf8\ub798\ud504\ub294 \ubca1\ud130 \uc2a4\ud1a0\uc5b4\uc5d0\uc11c \ub370\uc774\ud130\ub97c \uac00\uc838\uc640\uc11c \uc774 \uc815\ubcf4\ub97c LLM \ud504\ub86c\ud504\ud2b8 \ucee8\ud14d\uc2a4\ud2b8\uc5d0 \uacc4\uc18d \ucd94\uac00\ud569\ub2c8\ub2e4.<\/span><\/p>\n<pre class=\"nums:false lang:default decode:true\">from langchain_core.prompts import ChatPromptTemplate\r\nfrom langchain_core.output_parsers import StrOutputParser\r\nfrom langchain_openai import ChatOpenAI\r\n\r\nllm = ChatOpenAI(model=\"gpt-3.5-turbo\")\r\ntemplate = \"\"\"You are a helpful bot that serves the purpose of finding events for artists looking for venues in the USA. If you cannot answer based on the context provided, respond with a generic\r\n\u00a0 answer. Answer the question as truthfully as possible using the context below: {context}\r\nPlease also format the result in Markdown format.\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 Question: {question}\"\"\"\r\n\r\nprompt = ChatPromptTemplate.from_template(template)\r\n\r\ngeneration_chain = prompt | llm | StrOutputParser()\r\n\r\n\r\ndef chatbot(state: State):\r\n\u00a0 response = generation_chain.invoke({\"context\": state['messages'], \"question\": f\"We are a {state['event_type']} amateur group looking for {state['labels']} festivals in {state['location']}, can you please recommend some for us to reach out to?\"})\r\n\u00a0 state['messages'].append(response)\r\n\u00a0 return state\r\n\r\ndef search_couchbase(state: State):\r\n\u00a0 query = f\"Geo Info: {state['location']}\"\r\n\u00a0 \r\n\u00a0 retriever = vector_store.as_retriever()\r\n\u00a0 results = retriever.invoke(query)\r\n\u00a0 for result in results:\r\n\u00a0 \u00a0 \u00a0 text = f\"Title: {result.metadata['title']}\/{result.metadata['alternate_titles_flat']} - {result.metadata['description']} from {result.metadata['start']} to {result.metadata['end']}, location {result.metadata['geo_info']}. Labels {result.metadata['labels_flat']}, category {result.metadata['category']}\"\r\n\u00a0 \u00a0 \u00a0 state['messages'].append(text)\r\n\u00a0 return state\r\n\r\ngraph_builder.add_node(\"vector_search\", search_couchbase)\r\ngraph_builder.add_node(\"chatbot\", chatbot)\r\ngraph_builder.set_entry_point(\"vector_search\")\r\ngraph_builder.add_edge(\"vector_search\", \"chatbot\")\r\ngraph_builder.set_finish_point(\"chatbot\")\r\n\r\nmemory = SqliteSaver.from_conn_string(\":memory:\")\r\ngraph = graph_builder.compile(checkpointer=memory)<\/pre>\n<p><span style=\"font-weight: 400;\">\uc704 \ucf54\ub4dc\uc5d0\uc11c\ub294 \ub450 \uac1c\uc758 \ub178\ub4dc\ub85c \ubcc0\ud658\ub429\ub2c8\ub2e4:<\/span><\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\ubca1\ud130_\uac80\uc0c9(\uc9c4\uc785\uc810)<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\ucc57\ubd07(\uc885\ub8cc \uc9c0\uc810)<\/span><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">\uadf8\ub9bc\uc774 \ucc9c \ub9c8\ub514 \ub9d0\ubcf4\ub2e4 \uc911\uc694\ud558\uae30 \ub54c\ubb38\uc5d0 \ub2e4\uc74c \ucf54\ub4dc\ub97c \uc0ac\uc6a9\ud558\uc5ec \uadf8\ub798\ud504\ub97c \uc2dc\uac01\ud654\ud588\uc2b5\ub2c8\ub2e4:<\/span><\/p>\n<pre class=\"nums:false lang:default decode:true\">from IPython.display import Image, display\r\nfrom langchain_core.runnables.graph import CurveStyle, MermaidDrawMethod, NodeStyles\r\n\r\ndisplay(\r\n\u00a0 Image(\r\n\u00a0 \u00a0 \u00a0 graph.get_graph().draw_mermaid_png(\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 draw_method=MermaidDrawMethod.API,\r\n\u00a0 \u00a0 \u00a0 )\r\n\u00a0 )\r\n)<\/pre>\n<p><span style=\"font-weight: 400;\">\uadf8 \uacb0\uacfc \ub2e4\uc74c\uacfc \uac19\uc740 \uadf8\ub9bc\uc774 \uc644\uc131\ub418\uc5c8\uc2b5\ub2c8\ub2e4:<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-16360 size-medium\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image8-186x300.png\" alt=\"\" width=\"186\" height=\"300\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image8-186x300.png 186w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image8-300x483.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image8.png 370w\" sizes=\"auto, (max-width: 186px) 100vw, 186px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">langGraph\uc758 \ub354 \ub9ce\uc740 \uc2dc\uac01\ud654 \uc635\uc158\uc740 \ub2e4\uc74c\uc744 \ucc38\uc870\ud558\uc138\uc694. <\/span><a href=\"https:\/\/github.com\/langchain-ai\/langgraph\/blob\/main\/examples\/visualization.ipynb\"><span style=\"font-weight: 400;\">\uc774<\/span><\/a><span style=\"font-weight: 400;\"> LangGraph\uc758 \uc8fc\ud53c\ud130 \ub178\ud2b8\ubd81.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\ubca1\ud130 \uc2a4\ud1a0\uc5b4\uc5d0 \uc694\uccad\ud55c\ub2e4\ub294 \uac83\uc740 \ube44\uc2b7\ud55c \uc704\uce58\uc758 \ub370\uc774\ud130\ub97c \uac80\uc0c9\ud558\ub294 \uac83\uc744 \uc758\ubbf8\ud558\uba70, \ucffc\ub9ac \ud615\uc2dd\uc774 \uc784\ubca0\ub4dc\ub41c \ud14d\uc2a4\ud2b8\uc640 \ub3d9\uc77c\ud558\uace0 \uacb0\uacfc\uac00 \ub2e4\uc74c \ub178\ub4dc\uc5d0\uc11c \uc0ac\uc6a9\ud560 \uc0c1\ud0dc\uc5d0 \ucd94\uac00\ub418\ub294 \uac83\uc744 \uc54c \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\ucc57\ubd07 \ub178\ub4dc\ub294 \uba54\uc2dc\uc9c0\uc5d0\uc11c \uc815\ubcf4\ub97c \uac00\uc838\uc640\uc11c LLM\uc5d0 \ubcf4\ub0b4\ub294 \ud504\ub86c\ud504\ud2b8 \uc9c8\ubb38\uc5d0 \ud3ec\ud568\ud569\ub2c8\ub2e4.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\uc0c1\ud0dc\ub294 \uc778\uba54\ubaa8\ub9ac \ub370\uc774\ud130\ubca0\uc774\uc2a4 sqlite\uc5d0 \ubcf4\uad00\ub41c\ub2e4\ub294 \uc810\uc5d0 \uc720\uc758\ud558\uc138\uc694. \uadf8\ub798\ud504\ub97c \uc0ac\uc6a9\ud558\ub824\uba74 \ub2e4\uc74c \uc0d8\ud50c\uc744 \uc790\uc720\ub86d\uac8c \uc0ac\uc6a9\ud558\uc138\uc694:<\/span><\/p>\n<pre class=\"nums:false lang:default decode:true\">from random import randint\r\nfrom IPython.core.display import Markdown\r\n\r\nsession_id = randint(1, 10000)\r\nconfig = {\"configurable\": {\"thread_id\": session_id}}\r\n\r\ninput_location = \"kansas\"\r\ninput_category = \"jaz\"\r\ninput_labels = \"grange\"\r\n\r\n# Stream the graph, each output will be printed when ready\r\nfor event in graph.stream({\"event_type\": input_category, \"location\": input_location, \"labels\": input_labels}, config):\r\n\u00a0 for value in event.values():\r\n\u00a0 \u00a0 \u00a0 if len(value['messages']) &gt; 0:\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 display(Markdown(value['messages'][-1]))<\/pre>\n<p><span style=\"font-weight: 400;\">\uadf8\ub9ac\uace0 \uc544\ub9c8\ucd94\uc5b4 \uadf8\ub8f9\uc774 \ucd08\ub300\ub97c \uc694\uccad\ud560 \uc218 \uc788\ub294 \ubb38\ud654 \ud589\uc0ac\ub97c \ucd94\ucc9c\ud558\ub294 LLM \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \ub9cc\ub4e4\uc5c8\uc2b5\ub2c8\ub2e4.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">\uc694\uc57d<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">LLM \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uc2dc\uc791\ud558\ub294 \uac83\uc740 \ud765\ubbf8\uc9c4\uc9c4\ud558\uace0, \uc81c \uc18c\uacac\uc73c\ub85c\ub294 \uc989\uac01\uc801\uc778 \ud2b9\uc131\uc73c\ub85c \uc778\ud574 \uc7ac\ubbf8\uc788\uace0 \ud765\ubbf8\uc9c4\uc9c4\ud558\uba70 \uc2e4\ud589 \uac00\ub2a5\ud55c \ub7a8\ud504\uc5c5\uc774\uc9c0\ub9cc, \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uac1c\uc120\ud558\uace0 \ub354 \uac15\ub825\ud558\uac8c \ub9cc\ub4dc\ub294 \uac83\uc740 \ub354 \ub9ce\uc740 \uacfc\uc81c\ub97c \uc228\uae30\uace0 \uc788\uc2b5\ub2c8\ub2e4.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\uc774 \uae00\uc5d0\uc11c\ub294 \uae30\uc220 \ub610\ub294 RAG\ub97c \ud1b5\ud574 \uc678\ubd80 \ub370\uc774\ud130\ub85c \uc6b0\ub9ac \ubaa8\ub4dc\uc758 \uc9c0\uc2dd\uc744 \ud65c\uc6a9\ud558\ub294 \ubb38\uc81c\uc640 \uc774\ub97c \uc704\ud574 Couchbase\ub97c \ud65c\uc6a9\ud558\ub294 \ubc29\ubc95\uc5d0 \ub300\ud574 \uc9d1\uc911\uc801\uc73c\ub85c \uc124\uba85\ud588\uc2b5\ub2c8\ub2e4.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">LLM \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc774 \ubca1\ud130 \uac80\uc0c9\uc5d0\uc11c \ucc3e\uc744 \uc218 \uc788\ub294 \uc784\ubca0\ub529\uc744 \ub9cc\ub4e4\uba74 \uccab \ubc88\uc9f8 \uc2dc\ub3c4\uc5d0\uc11c \uc791\ub3d9\ud558\uc9c0 \uc54a\uc744 \uc218 \uc788\ub2e4\ub294 \uc810\uc744 \uae30\uc5b5\ud558\ub294 \uac83\uc774 \uc911\uc694\ud569\ub2c8\ub2e4. \ud615\uc2dd\uc774 \ub9de\ub294\uc9c0 \ud655\uc778\ud558\uace0 \uac04\ub2e8\ud55c \uc784\ubca0\ub529\uc73c\ub85c \uc2dc\uc791\ud558\uace0 \uac00\ub2a5\ud55c \ud55c \ub514\ubc84\uae45\uc744 \uc0ac\uc6a9\ud558\uc138\uc694.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\ub610\ud55c LLM \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0\uc11c \ubcf5\uc7a1\ud55c \uc758\uc0ac \uacb0\uc815\uacfc \ud750\ub984\uc744 \uc0dd\uc131\ud560 \uc218 \uc788\ub294 LangChain\uc758 LangGraph \uae30\ub2a5\ub3c4 \uc2dc\uc5f0\ud588\uc2b5\ub2c8\ub2e4.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">LLM \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uacfc \ud568\uaed8 \uc990\uac70\uc6b4 \uc5ec\uc815\uc744 \ubcf4\ub0b4\uc138\uc694.<\/span><\/p>\n<p><br style=\"font-weight: 400;\" \/><br style=\"font-weight: 400;\" \/><\/p>","protected":false},"excerpt":{"rendered":"<p>GenAI technologies are definitely a trending item in 2023 and 2024, and because I work for\u00a0 Tikal, which publishes its own annual technology radar and trends report, LLM and genAI did not escape my attention. As a developer myself, I [&hellip;]<\/p>","protected":false},"author":85526,"featured_media":16398,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[10122,1815,2225,9973,9139,9937],"tags":[9963,9870],"ppma_author":[10032],"class_list":["post-16352","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-artificial-intelligence-ai","category-best-practices-and-tutorials","category-cloud","category-generative-ai-genai","category-python","category-vector-search","tag-langchain","tag-llms"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.0 (Yoast SEO v26.0) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>From Concept to Code: LLM + RAG with Couchbase<\/title>\n<meta name=\"description\" content=\"Learn how to build a generative AI recommendation engine using LLM, RAG, and Couchbase integration. Step-by-step guide for developers.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/ko\/ai-powered-recommendation-engine-llm-rag\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"From Concept to Code: LLM + RAG with Couchbase\" \/>\n<meta property=\"og:description\" content=\"Learn how to build a generative AI recommendation engine using LLM, RAG, and Couchbase integration. Step-by-step guide for developers.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/ko\/ai-powered-recommendation-engine-llm-rag\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2024-09-23T21:08:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-13T23:36:40+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/From-Concept-to-Code-LLM-RAG-with-Couchbase_V2-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1340\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Sigal Shaharabani - Technical Leader, Tikal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sigal Shaharabani - Technical Leader, Tikal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"12\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/ai-powered-recommendation-engine-llm-rag\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/ai-powered-recommendation-engine-llm-rag\/\"},\"author\":{\"name\":\"Sigal Shaharabani - Technical Leader, Tikal\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/eaa4f519f1bdafc253d366c93f115114\"},\"headline\":\"From Concept to Code: LLM + RAG with Couchbase\",\"datePublished\":\"2024-09-23T21:08:57+00:00\",\"dateModified\":\"2025-06-13T23:36:40+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/ai-powered-recommendation-engine-llm-rag\/\"},\"wordCount\":2271,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/ai-powered-recommendation-engine-llm-rag\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/From-Concept-to-Code-LLM-RAG-with-Couchbase_V2-scaled.jpg\",\"keywords\":[\"langchain\",\"LLMs\"],\"articleSection\":[\"Artificial Intelligence (AI)\",\"Best Practices and Tutorials\",\"Couchbase Capella\",\"Generative AI (GenAI)\",\"Python\",\"Vector Search\"],\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/ai-powered-recommendation-engine-llm-rag\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/ai-powered-recommendation-engine-llm-rag\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/ai-powered-recommendation-engine-llm-rag\/\",\"name\":\"From Concept to Code: LLM + RAG with Couchbase\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/ai-powered-recommendation-engine-llm-rag\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/ai-powered-recommendation-engine-llm-rag\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/From-Concept-to-Code-LLM-RAG-with-Couchbase_V2-scaled.jpg\",\"datePublished\":\"2024-09-23T21:08:57+00:00\",\"dateModified\":\"2025-06-13T23:36:40+00:00\",\"description\":\"Learn how to build a generative AI recommendation engine using LLM, RAG, and Couchbase integration. Step-by-step guide for developers.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/ai-powered-recommendation-engine-llm-rag\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/ai-powered-recommendation-engine-llm-rag\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/ai-powered-recommendation-engine-llm-rag\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/From-Concept-to-Code-LLM-RAG-with-Couchbase_V2-scaled.jpg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/From-Concept-to-Code-LLM-RAG-with-Couchbase_V2-scaled.jpg\",\"width\":2560,\"height\":1340},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/ai-powered-recommendation-engine-llm-rag\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"From Concept to Code: LLM + RAG with Couchbase\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/eaa4f519f1bdafc253d366c93f115114\",\"name\":\"Sigal Shaharabani - Technical Leader, Tikal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/6bf412a23dbadb2c7664e454e6195c40\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/unnamed.jpg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/unnamed.jpg\",\"caption\":\"Sigal Shaharabani - Technical Leader, Tikal\"},\"description\":\"I am a Technical Leader and a Group Leader in Tikal, with a great passion for backend and data systems. In my spare time I enjoy swimming and Israeli folk dancing.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/ko\/author\/sigalshaharabani\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\uac1c\ub150\uc5d0\uc11c \ucf54\ub4dc\uae4c\uc9c0: Couchbase\ub97c \uc0ac\uc6a9\ud55c LLM + RAG","description":"LLM, RAG \ubc0f Couchbase \ud1b5\ud569\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc0dd\uc131\ud615 AI \ucd94\ucc9c \uc5d4\uc9c4\uc744 \uad6c\ucd95\ud558\ub294 \ubc29\ubc95\uc744 \uc54c\uc544\ubcf4\uc138\uc694. \uac1c\ubc1c\uc790\ub97c \uc704\ud55c \ub2e8\uacc4\ubcc4 \uac00\uc774\ub4dc\uc785\ub2c8\ub2e4.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/ko\/ai-powered-recommendation-engine-llm-rag\/","og_locale":"ko_KR","og_type":"article","og_title":"From Concept to Code: LLM + RAG with Couchbase","og_description":"Learn how to build a generative AI recommendation engine using LLM, RAG, and Couchbase integration. Step-by-step guide for developers.","og_url":"https:\/\/www.couchbase.com\/blog\/ko\/ai-powered-recommendation-engine-llm-rag\/","og_site_name":"The Couchbase Blog","article_published_time":"2024-09-23T21:08:57+00:00","article_modified_time":"2025-06-13T23:36:40+00:00","og_image":[{"width":2560,"height":1340,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/From-Concept-to-Code-LLM-RAG-with-Couchbase_V2-scaled.jpg","type":"image\/jpeg"}],"author":"Sigal Shaharabani - Technical Leader, Tikal","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Sigal Shaharabani - Technical Leader, Tikal","Est. reading time":"12\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/ai-powered-recommendation-engine-llm-rag\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/ai-powered-recommendation-engine-llm-rag\/"},"author":{"name":"Sigal Shaharabani - Technical Leader, Tikal","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/eaa4f519f1bdafc253d366c93f115114"},"headline":"From Concept to Code: LLM + RAG with Couchbase","datePublished":"2024-09-23T21:08:57+00:00","dateModified":"2025-06-13T23:36:40+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/ai-powered-recommendation-engine-llm-rag\/"},"wordCount":2271,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/ai-powered-recommendation-engine-llm-rag\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/From-Concept-to-Code-LLM-RAG-with-Couchbase_V2-scaled.jpg","keywords":["langchain","LLMs"],"articleSection":["Artificial Intelligence (AI)","Best Practices and Tutorials","Couchbase Capella","Generative AI (GenAI)","Python","Vector Search"],"inLanguage":"ko-KR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/ai-powered-recommendation-engine-llm-rag\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/ai-powered-recommendation-engine-llm-rag\/","url":"https:\/\/www.couchbase.com\/blog\/ai-powered-recommendation-engine-llm-rag\/","name":"\uac1c\ub150\uc5d0\uc11c \ucf54\ub4dc\uae4c\uc9c0: Couchbase\ub97c \uc0ac\uc6a9\ud55c LLM + RAG","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/ai-powered-recommendation-engine-llm-rag\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/ai-powered-recommendation-engine-llm-rag\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/From-Concept-to-Code-LLM-RAG-with-Couchbase_V2-scaled.jpg","datePublished":"2024-09-23T21:08:57+00:00","dateModified":"2025-06-13T23:36:40+00:00","description":"LLM, RAG \ubc0f Couchbase \ud1b5\ud569\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc0dd\uc131\ud615 AI \ucd94\ucc9c \uc5d4\uc9c4\uc744 \uad6c\ucd95\ud558\ub294 \ubc29\ubc95\uc744 \uc54c\uc544\ubcf4\uc138\uc694. \uac1c\ubc1c\uc790\ub97c \uc704\ud55c \ub2e8\uacc4\ubcc4 \uac00\uc774\ub4dc\uc785\ub2c8\ub2e4.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/ai-powered-recommendation-engine-llm-rag\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/ai-powered-recommendation-engine-llm-rag\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/ai-powered-recommendation-engine-llm-rag\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/From-Concept-to-Code-LLM-RAG-with-Couchbase_V2-scaled.jpg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/From-Concept-to-Code-LLM-RAG-with-Couchbase_V2-scaled.jpg","width":2560,"height":1340},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/ai-powered-recommendation-engine-llm-rag\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"From Concept to Code: LLM + RAG with Couchbase"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ube14\ub85c\uadf8","description":"NoSQL \ub370\uc774\ud130\ubca0\uc774\uc2a4, Couchbase","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ube14\ub85c\uadf8","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/eaa4f519f1bdafc253d366c93f115114","name":"\uc2dc\uac08 \uc0e4\ud558\ub77c\ubc14\ub2c8 - \uae30\uc220 \ub9ac\ub354, Tikal","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/6bf412a23dbadb2c7664e454e6195c40","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/unnamed.jpg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/unnamed.jpg","caption":"Sigal Shaharabani - Technical Leader, Tikal"},"description":"\uc800\ub294 \ud2f0\uce7c\uc758 \uae30\uc220 \ub9ac\ub354\uc774\uc790 \uadf8\ub8f9 \ub9ac\ub354\ub85c\uc11c \ubc31\uc5d4\ub4dc \ubc0f \ub370\uc774\ud130 \uc2dc\uc2a4\ud15c\uc5d0 \ub300\ud55c \uc5f4\uc815\uc744 \uac00\uc9c0\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uc5ec\uac00 \uc2dc\uac04\uc5d0\ub294 \uc218\uc601\uacfc \uc774\uc2a4\ub77c\uc5d8 \ubbfc\uc18d \ucda4\uc744 \uc990\uae41\ub2c8\ub2e4.","url":"https:\/\/www.couchbase.com\/blog\/ko\/author\/sigalshaharabani\/"}]}},"authors":[{"term_id":10032,"user_id":85526,"is_guest":0,"slug":"sigalshaharabani","display_name":"Sigal Shaharabani - Technical Leader, Tikal","avatar_url":{"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/unnamed.jpg","url2x":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/unnamed.jpg"},"author_category":"","last_name":"Shaharabani - Technical Leader, Tikal","first_name":"Sigal","job_title":"","user_url":"","description":"\uc800\ub294 \ud2f0\uce7c\uc758 \uae30\uc220 \ub9ac\ub354\uc774\uc790 \uadf8\ub8f9 \ub9ac\ub354\ub85c\uc11c \ubc31\uc5d4\ub4dc \ubc0f \ub370\uc774\ud130 \uc2dc\uc2a4\ud15c\uc5d0 \ub300\ud55c \uc5f4\uc815\uc744 \uac00\uc9c0\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uc5ec\uac00 \uc2dc\uac04\uc5d0\ub294 \uc218\uc601\uacfc \uc774\uc2a4\ub77c\uc5d8 \ubbfc\uc18d \ucda4\uc744 \uc990\uae41\ub2c8\ub2e4."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/16352","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/users\/85526"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/comments?post=16352"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/16352\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media\/16398"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media?parent=16352"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/categories?post=16352"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/tags?post=16352"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/ppma_author?post=16352"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}