From 2d84b87e8c24cf2184036d4b1948370e92405159 Mon Sep 17 00:00:00 2001 From: happybell80 Date: Sun, 14 Sep 2025 19:35:47 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20startup=5Fnews=5Fskill.py=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84=20=EB=B0=A9=EC=95=88=EC=9C=BC=EB=A1=9C=20=EB=AC=B8?= =?UTF-8?q?=EC=84=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...กํ”„๋กœ๋‰ด์Šค_์šฉ์–ด์ถ”์ถœ_๊ธฐ๋Šฅ์ถ”๊ฐ€.md | 37 +++++++++++-------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/troubleshooting/250914_happybell80_๊นกํ”„๋กœ๋‰ด์Šค_์šฉ์–ด์ถ”์ถœ_๊ธฐ๋Šฅ์ถ”๊ฐ€.md b/troubleshooting/250914_happybell80_๊นกํ”„๋กœ๋‰ด์Šค_์šฉ์–ด์ถ”์ถœ_๊ธฐ๋Šฅ์ถ”๊ฐ€.md index f8525d1..7f52978 100644 --- a/troubleshooting/250914_happybell80_๊นกํ”„๋กœ๋‰ด์Šค_์šฉ์–ด์ถ”์ถœ_๊ธฐ๋Šฅ์ถ”๊ฐ€.md +++ b/troubleshooting/250914_happybell80_๊นกํ”„๋กœ๋‰ด์Šค_์šฉ์–ด์ถ”์ถœ_๊ธฐ๋Šฅ์ถ”๊ฐ€.md @@ -22,15 +22,18 @@ ## ํ˜„์žฌ ์ƒํƒœ ๋ถ„์„ -### 1. ํ—ค๋“œ๋ผ์ธ ์ฒ˜๋ฆฌ ํ๋ฆ„ (ํŒŒ์ผ ๊ฒฝ๋กœ) +### 1. ์ˆ˜์ • ํ›„ ์ฒ˜๋ฆฌ ํ๋ฆ„ (startup_news_skill.py ์ถ”๊ฐ€) 1. `rb8001/main.py:206` - APScheduler ์Šค์ผ€์ค„ ๋“ฑ๋ก -2. `rb8001/main.py:394` - _run_headlines_job() ์‹คํ–‰ -3. `rb8001/app/commands/skill_commands.py:220` - fetch_naver_headlines() ํ˜ธ์ถœ -4. `skill_news/app/api/news_endpoints.py:46` - POST /naver/startup-headlines -5. `skill_news/app/services/naver_startup_news_service.py:360` - fetch_headlines() -6. `skill_news/app/services/naver_startup_news_service.py:300` - format_startup_news_for_slack() -7. `skill_news/app/data/slack_messages.md` - ํ…œํ”Œ๋ฆฟ ๋กœ๋“œ -8. `rb8001/main.py:427` - WebClient.chat_postMessage() ์ „์†ก +2. `rb8001/main.py:213` - run_headlines_job ํ˜ธ์ถœ (import ๋ณ€๊ฒฝ) +3. `rb8001/app/skills/startup_news_skill.py:run_headlines_job()` - ๋ฉ”์ธ ์‹คํ–‰ +4. `rb8001/app/skills/startup_news_skill.py:fetch_headlines()` - ๋‚ด๋ถ€ ๋ฉ”์„œ๋“œ +5. `rb8001/app/commands/skill_commands.py:220` - fetch_naver_headlines(json) +6. `skill_news/app/api/news_endpoints.py:46` - POST /naver/startup-headlines +7. `skill_news/app/services/naver_startup_news_service.py:360` - fetch_headlines() +8. `rb8001/app/skills/startup_news_skill.py:extract_terms()` - ์šฉ์–ด ์ถ”์ถœ +9. `rb8001/app/llm/gemini_handler.py:215` - extract_keywords() ํ˜ธ์ถœ +10. `rb8001/app/skills/startup_news_skill.py:build_message()` - ๋ฉ”์‹œ์ง€ ์กฐ๋ฆฝ +11. `rb8001/app/skills/startup_news_skill.py:send_to_slack()` - ์ž์ฒด Slack ์ „์†ก ### 2. ๋ฌธ์ œ์  (๊ตฌ์กฐ์ ) - **main.py ๊ณผ๋ถ€ํ•˜**: ์Šค์ผ€์ค„/์‹คํ–‰/์ „์†ก ๋ชจ๋‘ ๋‹ด๋‹น (732์ค„) @@ -39,12 +42,12 @@ - **์™•๋ณต ๋‚ญ๋น„**: rb8001โ†’skill-news(ํฌ๋งท)โ†’rb8001(์ „์†ก) - **์šฉ์–ด ์ถ”์ถœ ๋ถˆ๊ฐ€**: ์™„์„ฑ๋œ ํ…์ŠคํŠธ๋ผ ์ค‘๊ฐ„ ์‚ฝ์ž… ์–ด๋ ค์›€ -## ๊ตฌํ˜„ ๋ฐฉ์•ˆ +## ๊ตฌํ˜„ ๋ฐฉ์•ˆ (์ตœ์ข… ์„ ํƒ) -### ๋ฐฉ์•ˆ 1: rb8001์—์„œ ์ฒ˜๋ฆฌ (์„ ํƒ) +### startup_news_skill.py ์‹ ๊ทœ ์ƒ์„ฑ ```python -# main.py:_run_headlines_job() ์ˆ˜์ • -async def _run_headlines_job(channel_id: str): +# rb8001/app/skills/startup_news_skill.py +async def run_headlines_job(channel_id: str): # 1. JSON ํฌ๋งท์œผ๋กœ ํ—ค๋“œ๋ผ์ธ ์ˆ˜์ง‘ result = await sc.fetch_naver_headlines(fmt="json") # slack โ†’ json items = result.get("items", []) @@ -101,8 +104,9 @@ async def _run_headlines_job(channel_id: str): lines[insert_idx:insert_idx] = terms_section text = "\n".join(lines) - # 5. Slack ์ „์†ก - client.chat_postMessage(channel=channel_id, text=text) + # 5. ์ž์ฒด Slack ์ „์†ก (WebClient ์ง์ ‘ ์ƒ์„ฑ) + slack_client = WebClient(token=os.getenv("SLACK_BOT_TOKEN")) + slack_client.chat_postMessage(channel=channel_id, text=text) ``` ### ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์ถ”๊ฐ€ @@ -136,8 +140,9 @@ HEADLINES_TERMS_SAMPLE_SIZE=20 # ๋ถ„์„ํ•  ํ—ค๋“œ๋ผ์ธ ๊ฐœ์ˆ˜ ``` ## ๊ตฌํ˜„ ์˜ํ–ฅ -- main.py: +30์ค„ (732 โ†’ 762์ค„) -- gemini_handler.py: +5์ค„ (ํ”„๋กฌํ”„ํŠธ ์ˆ˜์ •) +- **main.py**: -50์ค„ ์‚ญ์ œ, +1์ค„ import (732 โ†’ 683์ค„) +- **startup_news_skill.py**: +150์ค„ ์‹ ๊ทœ ์ƒ์„ฑ +- **gemini_handler.py**: ํ”„๋กฌํ”„ํŠธ ์ˆ˜์ • ๋ถˆํ•„์š” (ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ „๋‹ฌ) - ๊ธฐ์กด extract_keywords() ํ•จ์ˆ˜ ํ™œ์šฉ (๋ฏธ์‚ฌ์šฉ ์ฝ”๋“œ ์žฌํ™œ์šฉ) ## ๊ตํ›ˆ