From 0cd5f448f00ca728cd056c87766cc7d9397e755e Mon Sep 17 00:00:00 2001 From: happybell80 Date: Mon, 21 Jul 2025 23:54:34 +0900 Subject: [PATCH] =?UTF-8?q?=ED=8A=B8=EB=9F=AC=EB=B8=94=EC=8A=88=ED=8C=85?= =?UTF-8?q?=20=EB=AC=B8=EC=84=9C=20=EC=B6=94=EA=B0=80=20-=20=EB=A1=9C?= =?UTF-8?q?=EB=B9=99=20=EA=B8=B0=EC=96=B5=EB=A0=A5=20=EB=AC=B8=EC=A0=9C=20?= =?UTF-8?q?=EB=B0=8F=20nginx=20=ED=8F=AC=ED=8A=B8=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...œ๋น™๊ธฐ์–ต๋ ฅ๋ฌธ์ œ๋ฐnginxํฌํŠธ์ถ”๊ฐ€.md | 124 ++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 docs/troubleshooting/250721_happybell80_๋กœ๋น™๊ธฐ์–ต๋ ฅ๋ฌธ์ œ๋ฐnginxํฌํŠธ์ถ”๊ฐ€.md diff --git a/docs/troubleshooting/250721_happybell80_๋กœ๋น™๊ธฐ์–ต๋ ฅ๋ฌธ์ œ๋ฐnginxํฌํŠธ์ถ”๊ฐ€.md b/docs/troubleshooting/250721_happybell80_๋กœ๋น™๊ธฐ์–ต๋ ฅ๋ฌธ์ œ๋ฐnginxํฌํŠธ์ถ”๊ฐ€.md new file mode 100644 index 0000000..606d00e --- /dev/null +++ b/docs/troubleshooting/250721_happybell80_๋กœ๋น™๊ธฐ์–ต๋ ฅ๋ฌธ์ œ๋ฐnginxํฌํŠธ์ถ”๊ฐ€.md @@ -0,0 +1,124 @@ +# ๋กœ๋น™ ๊ธฐ์–ต๋ ฅ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐ Nginx ํฌํŠธ ์ถ”๊ฐ€ + +**๋‚ ์งœ**: 2025-07-21 +**์ž‘์—…์ž**: happybell80 & Claude + +## ์˜คํ›„ 10์‹œ 30๋ถ„ + +### 10408 ํฌํŠธ Nginx SSL ์„ค์ • ์ถ”๊ฐ€ + +**์š”์ฒญ**: ํฌ์žฌ๋‹˜ ํ…Œ์ŠคํŠธ์šฉ 10408 ํฌํŠธ์— SSL ์„ค์ • ํ•„์š” + +**ํ•ด๊ฒฐ**: +1. nginx-deploy/server-nginx-default์— ์„ค์ • ์ถ”๊ฐ€ +```nginx +# RB10408 API endpoints (ํฌ์žฌ๋‹˜ ํ…Œ์ŠคํŠธ์šฉ) +location /rb10408/ { + proxy_pass http://localhost:10408/; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; +} +``` + +2. Git push๋กœ ์ž๋™ ๋ฐฐํฌ ํŠธ๋ฆฌ๊ฑฐ +- Gitea Actions๊ฐ€ ์ž๋™์œผ๋กœ nginx ์„ค์ • ์ ์šฉ +- https://ro-being.com/rb10408/ ์ ‘์† ๊ฐ€๋Šฅ + +## ์˜คํ›„ 11์‹œ 00๋ถ„ + +### ์ด๋ฉ”์ผ ์‹ค์ œ ์ „์†ก ๊ธฐ๋Šฅ ๊ตฌํ˜„ + +**๋ฌธ์ œ**: +- "์ด๋ฉ”์ผ ์จ์ค˜"๋ผ๊ณ  ํ•˜๋ฉด ๋‚ด์šฉ๋งŒ ์ƒ์„ฑํ•˜๊ณ  ์‹ค์ œ ์ „์†ก ์•ˆ ํ•จ +- ์‚ฌ์šฉ์ž๊ฐ€ "์–ด๋””๋กœ ๋ณด๋ƒˆ์–ด?"๋ผ๊ณ  ๋ฌผ์–ด๋„ ๋Œ€๋‹ต ๋ชปํ•จ + +**์›์ธ ๋ถ„์„**: +- robing_brain.py์—์„œ ์ด๋ฉ”์ผ ๋‚ด์šฉ๋งŒ ์ƒ์„ฑํ•˜๊ณ  send_email ํ˜ธ์ถœ ์•ˆ ํ•จ +- ์˜๋„ ๋ถ„์„์ด "์จ์ค˜"๋ฅผ email intent๋กœ ์ธ์‹ ๋ชปํ•จ + +**ํ•ด๊ฒฐ**: +1. intent_patterns์— "์ด๋ฉ”์ผ.*์จ" ํŒจํ„ด ์ถ”๊ฐ€ +2. _handle_email_request ํ•จ์ˆ˜ ๊ฐœ์„  + - "์ด๋ฉ”์ผ ์จ์ค˜. ๋‚ด์šฉ์€..." ํŒจํ„ด ์ธ์‹ + - Gemini๋กœ ์‹ค์ œ ์ด๋ฉ”์ผ ๋‚ด์šฉ ์ƒ์„ฑ + - ์ƒ์„ฑ๋œ ๋‚ด์šฉ์œผ๋กœ ์‹ค์ œ ์ „์†ก + - ์ด๋ฉ”์ผ ์ฃผ์†Œ ์ž๋™ ์ถ”์ถœ (์—†์œผ๋ฉด ๊ธฐ๋ณธ๊ฐ’) + +**๊ฒฐ๊ณผ**: +```python +# ์ด์ „: ๋‚ด์šฉ๋งŒ ๋ณด์—ฌ์ฃผ๊ณ  ๋ +# ์ดํ›„: ์‹ค์ œ๋กœ ์ด๋ฉ”์ผ ์ „์†ก ํ›„ ๊ฒฐ๊ณผ ํ‘œ์‹œ +"โœ… ์ด๋ฉ”์ผ์„ happybell80@naver.com๋กœ ์ „์†กํ–ˆ์Šต๋‹ˆ๋‹ค!" +``` + +## ์˜คํ›„ 11์‹œ 30๋ถ„ + +### ๋กœ๋น™ ๊ธฐ์–ต๋ ฅ 0์ดˆ ๋ฌธ์ œ ๋ถ„์„ + +**ํ˜„์ƒ**: +- ๋กœ๋น™์ด ๋ฐ”๋กœ ์ง์ „ ๋Œ€ํ™”๋„ ๊ธฐ์–ต ๋ชปํ•จ +- ๋งค๋ฒˆ ์ƒˆ๋กœ์šด ๋Œ€ํ™”์ฒ˜๋Ÿผ ์‘๋‹ต +- ์ž๊ธฐ๊ฐ€ ๊ฐ€์ง„ ์Šคํ‚ฌ๋„ ์ธ์‹ ๋ชปํ•จ + +**DB ์‚ฌ์šฉ ํ˜„ํ™ฉ ๋ถ„์„**: +1. **PostgreSQL**: ์‚ฌ์šฉ์ž ์ •๋ณด, ์„ธ์…˜ ๊ด€๋ฆฌ +2. **Neo4j**: ์ง€์‹ ๊ทธ๋ž˜ํ”„ (๊ฑฐ์˜ ๋ฏธ์‚ฌ์šฉ) +3. **ChromaDB**: + - ๋ชจ๋“  ๋Œ€ํ™” ์ €์žฅ ์ค‘ + - ํ•˜์ง€๋งŒ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ ๋ฏธ๊ตฌํ˜„ + - ์‚ฌ์šฉ์ž ๋ฉ”์‹œ์ง€๋งŒ ์ €์žฅ, ์‘๋‹ต์€ ์ €์žฅ ์•ˆ ํ•จ + +**๊ทผ๋ณธ ์›์ธ**: +- ๋‹จ๊ธฐ ๋Œ€ํ™” ์ปจํ…์ŠคํŠธ ์ €์žฅ์†Œ ์—†์Œ +- ๊ฐ ๋ฉ”์‹œ์ง€๋ฅผ ๋…๋ฆฝ์ ์œผ๋กœ ์ฒ˜๋ฆฌ +- ์„ค๊ณ„๋Š” ๊ฑฐ์ฐฝํ•˜์ง€๋งŒ ๊ตฌํ˜„์ด ๋ฏธ์™„์„ฑ + +**๊ฐœ์„  ๋ฐฉํ–ฅ ๊ฒฐ์ •**: +1. ๊ฐ€์žฅ ์‹ฌํ”Œํ•œ ํ•ด๊ฒฐ์ฑ…: ๋ฉ”๋ชจ๋ฆฌ ๋”•์…”๋„ˆ๋ฆฌ ์‚ฌ์šฉ +2. robing_brain.py์—๋งŒ ์ฝ”๋“œ ์ถ”๊ฐ€ +3. Redis ๊ฐ™์€ ์™ธ๋ถ€ ์˜์กด์„ฑ ์ถ”๊ฐ€ ์•ˆ ํ•จ + +**์žฅ๋‹จ์  ๋ถ„์„**: +- ์žฅ์ : ์ฆ‰์‹œ ์ž‘๋™, ์ฝ”๋“œ ๊ฐ„๋‹จ, ์™ธ๋ถ€ ์˜์กด์„ฑ ์—†์Œ +- ๋‹จ์ : ์„œ๋ฒ„ ์žฌ์‹œ์ž‘ ์‹œ ์ดˆ๊ธฐํ™”, ๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์Šค ๋ฏธ์ง€์› +- ๊ฒฐ๋ก : MVP ํ”„๋กœํ† ํƒ€์ž…์— ์ ํ•ฉ + +## ์˜คํ›„ 11์‹œ 50๋ถ„ + +### ๋Œ€ํ™” ์ปจํ…์ŠคํŠธ ๊ธฐ๋Šฅ ๊ตฌํ˜„ (์ง„ํ–‰ ์ค‘) + +**๊ตฌํ˜„ ๋‚ด์šฉ**: +1. RobeingBrain ํด๋ž˜์Šค์— conversation_history ๋”•์…”๋„ˆ๋ฆฌ ์ถ”๊ฐ€ +2. ๊ฐ ๋Œ€ํ™” ํ›„ ํžˆ์Šคํ† ๋ฆฌ ์ €์žฅ (์ตœ๊ทผ 5๊ฐœ๋งŒ) +3. _handle_general_conversation์—์„œ ์ด์ „ ๋Œ€ํ™” ํฌํ•จํ•˜์—ฌ Gemini ํ˜ธ์ถœ +4. ChromaDB ์ €์žฅ ์‹œ ์‘๋‹ต๋„ ํ•จ๊ป˜ ์ €์žฅํ•˜๋„๋ก ์ˆ˜์ • ์˜ˆ์ • + +**์ฝ”๋“œ ๋ณ€๊ฒฝ์‚ฌํ•ญ**: +```python +# 1. ๋Œ€ํ™” ํžˆ์Šคํ† ๋ฆฌ ์ €์žฅ์†Œ ์ถ”๊ฐ€ +self.conversation_history: Dict[str, List[Dict[str, str]]] = {} + +# 2. ๋Œ€ํ™” ์ €์žฅ (process_request ๋๋ถ€๋ถ„) +self.conversation_history[user_id].append({ + "user": text, + "assistant": response +}) + +# 3. ์ปจํ…์ŠคํŠธ ํฌํ•จ ํ”„๋กฌํ”„ํŠธ +if history: + context_text = "์ด์ „ ๋Œ€ํ™”:\n" + ... + full_prompt = f"๋‹น์‹ ์€ ๋Œ€ํ™”์˜ ํ๋ฆ„์„ ๊ธฐ์–ตํ•˜๋Š” ๋กœ๋น™์ž…๋‹ˆ๋‹ค..." +``` + +**๋‹ค์Œ ์ž‘์—…**: +- ChromaDB์— ์‘๋‹ต๋„ ์ €์žฅํ•˜๋„๋ก ์ˆ˜์ • +- ํ…Œ์ŠคํŠธ ํ›„ ๋ฐฐํฌ + +--- + +**๊ตํ›ˆ**: +1. "ํฐ ๊ทธ๋ฆผ"๋ณด๋‹ค "์ž‘๋™ํ•˜๋Š” ์ฝ”๋“œ"๊ฐ€ ์šฐ์„  +2. ๋ณต์žกํ•œ ์•„ํ‚คํ…์ฒ˜๋ณด๋‹ค ์‹ฌํ”Œํ•œ ํ•ด๊ฒฐ์ฑ…์ด ๋•Œ๋กœ๋Š” ์ตœ์„  +3. ํ”„๋กœํ† ํƒ€์ž… ๋‹จ๊ณ„์—์„œ๋Š” ๊ณผ๋„ํ•œ ์„ค๊ณ„ ์ง€์–‘ \ No newline at end of file