feat: initial knowledge-inbox pipeline implementation

- Oracle ADB queue table (sql/schema.sql)
- Queue CRUD: core/queue_db.py
- YouTube transcript: core/youtube.py
- Web page fetch: core/web.py
- LLM enrichment via OCI GenAI Gemini Flash: core/enricher.py
- Text chunker: core/chunker.py
- Obsidian note writer: core/obsidian.py
- Oracle vector store insertion: core/vector.py
- Polling daemon: daemon/worker.py
- Telegram bot: bot/telegram_bot.py
- Main runner: main.py
This commit is contained in:
joungmin
2026-02-28 08:16:11 +09:00
commit 86a4104ae3
18 changed files with 926 additions and 0 deletions

23
main.py Normal file
View File

@@ -0,0 +1,23 @@
"""Main entry point: starts daemon thread + Telegram bot."""
import threading
from dotenv import load_dotenv
load_dotenv()
from bot.telegram_bot import build_app
from daemon.worker import run_loop
def main() -> None:
"""Start the daemon in a background thread, then run the bot (blocking)."""
t = threading.Thread(target=run_loop, args=(30,), daemon=True)
t.start()
app = build_app()
app.run_polling()
if __name__ == "__main__":
main()