Task #31

[๐Ÿ”ด HIGH] telegram_bot.py์˜ ์—๋Ÿฌ/๊ฒฝ๊ณ  ๋กœ๊ทธ DB ๊ธฐ๋ก ๋ฐ ์กฐํšŒ ๊ธฐ๋Šฅ์„ ์™„์ „ํžˆ ๊ตฌํ˜„ํ•˜๊ณ , ํ˜„์žฌ syntax ์—๋Ÿฌ๋ฅผ ์ˆ˜์ •ํ•œ ๋’ค commit & ๋ด‡ ์žฌ์‹œ์ž‘๊นŒ์ง€ ์™„๋ฃŒํ•˜๋ผ.

์ž‘์—… ๋ช…๋ น์–ด
[๐Ÿ”ด HIGH] telegram_bot.py์˜ ์—๋Ÿฌ/๊ฒฝ๊ณ  ๋กœ๊ทธ DB ๊ธฐ๋ก ๋ฐ ์กฐํšŒ ๊ธฐ๋Šฅ์„ ์™„์ „ํžˆ ๊ตฌํ˜„ํ•˜๊ณ , ํ˜„์žฌ syntax ์—๋Ÿฌ๋ฅผ ์ˆ˜์ •ํ•œ ๋’ค commit & ๋ด‡ ์žฌ์‹œ์ž‘๊นŒ์ง€ ์™„๋ฃŒํ•˜๋ผ. ## ํ˜„์žฌ ์ƒํ™ฉ - ์—๋Ÿฌ ๋กœ๊ทธ DB ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋‹ค๊ฐ€ syntax ์—๋Ÿฌ ๋ฐœ์ƒ (725๋ผ์ธ ๊ทผ์ฒ˜, f-string ์•ˆ ๋”•์…”๋„ˆ๋ฆฌ ๋‹จ๋”ฐ์˜ดํ‘œ ์ถฉ๋Œ) - ๋ด‡์ด ํ˜„์žฌ syntax ์—๋Ÿฌ๋กœ ์‹คํ–‰ ์•ˆ ๋  ์ˆ˜ ์žˆ์Œ ## ๊ตฌํ˜„ ์š”๊ตฌ์‚ฌํ•ญ ### 1. DB ํ…Œ์ด๋ธ” (`_ensure_table` ํ•จ์ˆ˜ ๊ทผ์ฒ˜์— ์ถ”๊ฐ€) ```sql CREATE TABLE IF NOT EXISTS telegram_error_log ( id INTEGER PRIMARY KEY AUTOINCREMENT, level TEXT NOT NULL, -- 'ERROR' or 'WARNING' source TEXT NOT NULL, -- ์˜ˆ: 'chat_with_tools', 'task_worker', 'api_call' message TEXT NOT NULL, detail TEXT, -- ์ŠคํƒํŠธ๋ ˆ์ด์Šค ๋“ฑ ์ถ”๊ฐ€ ์ •๋ณด user_id INTEGER, -- ๊ด€๋ จ user_id (์žˆ์„ ๊ฒฝ์šฐ) task_id INTEGER, -- ๊ด€๋ จ task_id (์žˆ์„ ๊ฒฝ์šฐ) created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ``` ### 2. `_log_error(level, source, message, detail=None, user_id=None, task_id=None)` ํ•จ์ˆ˜ - level: "ERROR" ๋˜๋Š” "WARNING" - DB์— INSERT - ๋™์‹œ์— Python logging์œผ๋กœ๋„ ์ถœ๋ ฅ ### 3. ๊ธฐ์กด ์ฝ”๋“œ์— `_log_error()` ํ˜ธ์ถœ ์ถ”๊ฐ€ ์œ„์น˜ - `_chat_with_tools()` ๋‚ด API 400/429 ์—๋Ÿฌ except ๋ธ”๋ก - `_task_worker()` ๋‚ด ํƒœ์Šคํฌ ์‹คํŒจ except ๋ธ”๋ก - post-loop์—์„œ unresolved server_tool_use ๊ฐ์ง€ ์‹œ WARNING - ๋„๊ตฌ ํ•œ๋„ ์ดˆ๊ณผ ์‹œ WARNING ### 4. `/errors` ์ปค๋งจ๋“œ ํ•ธ๋“ค๋Ÿฌ - ์ตœ๊ทผ 20๊ฐœ ์—๋Ÿฌ/๊ฒฝ๊ณ  ์กฐํšŒ - ํฌ๋งท: ๋ ˆ๋ฒจ ์•„์ด์ฝ˜(๐Ÿ”ด ERROR, ๐ŸŸก WARNING) + ์‹œ๊ฐ„ + source + message ์•ž 120์ž - task_id ์žˆ์œผ๋ฉด ํ‘œ์‹œ - ๊ด€๋ฆฌ์ž(ADMIN_ID)๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ ### 5. `/start` ์ปค๋งจ๋“œ ๋ชฉ๋ก์— `/errors` ์ถ”๊ฐ€ ## ์ˆ˜์ • ์ž‘์—… 1. ๋จผ์ € `read_file("telegram_bot.py", 715, 740)` ์œผ๋กœ ํ˜„์žฌ ๊นจ์ง„ ์ฝ”๋“œ ํ™•์ธ 2. syntax ์—๋Ÿฌ ์ˆ˜์ • 3. ์œ„ ๊ธฐ๋Šฅ ์ „์ฒด ๊ตฌํ˜„ (์—†๋Š” ๋ถ€๋ถ„๋งŒ ์ถ”๊ฐ€, ์ด๋ฏธ ๊ตฌํ˜„๋œ ๋ถ€๋ถ„์€ ์ค‘๋ณต ์ถ”๊ฐ€ ๊ธˆ์ง€) 4. `execute_python`์œผ๋กœ syntax ๊ฒ€์ฆ: `python3 -m py_compile telegram_bot.py` 5. git add, commit -m "feat: error/warning log DB + /errors command", push 6. `sudo systemctl restart leninbot-telegram` 7. `sudo systemctl status leninbot-telegram` ์œผ๋กœ ์ •์ƒ ๊ฐ€๋™ ํ™•์ธ