Busabase
Busabase는 AI 에이전트를 위한 오픈소스(MIT) 데이터베이스 및 작업 공간입니다
AI가 웹사이트 트래픽·파일·포트폴리오를 설명하고, 쉬운 질문에 근거 있는 답변을 제공해 대시보드 없이 바로 확인합니다
AI that explains your website traffic, your uploaded files, and your portfolio. Plain-English questions, grounded answers, no dashboards to build.
데이터Python · HTMLGitHub @lubobali온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
AI content pipeline: real sources → your voice → you approve → LinkedIn + X. A guide to building your own.
README 전체를 불러오는 중입니다.
README 전문 보기 ↗I built this for myself. Every week it reads podcasts, blogs, market data, my own git log and my coding stats, writes a post every other day in my voice, designs the image, and waits for one tap on my phone. Then it publishes to LinkedIn and X. It has been live since June 2026.
This repo is a working example, not a template to copy. My topics, sources and writing style are mine. What's reusable is the pattern, and the guide shows how to rebuild it around your own topics, your own data and your own voice:
TOPIC ─▶ REAL MATERIAL ─▶ GROUND ─▶ WRITE ─▶ CLEAN + TRUTH CHECK ─▶ IMAGE ─▶ YOU APPROVE ─▶ PUBLISH
| Stage | What happens | Where | Change it with |
|---|---|---|---|
| Topic | picks which topic owns today's slot | topic_rotator.py | config/topics.yaml, config/schedule.yaml |
| Material | RSS, podcasts (transcribed), APIs, your own data | scraper.py, podcast_insights.py, *_insights.py | config/scraper_sources.yaml + a small module for your own data |
| Dedup | skips URLs, similar titles, stale news and podcast episodes already used | duplicate_checker.py, podcast_insights.py | automatic |
| Ground | 2–3 passages from your books/notes as background | knowledge_base.py | books/*.pdf + scripts/ingest_books.py |
| Write | LLM writes in your voice from the material only | writer.py | config/voice_rules.yaml, templates/voice_samples.txt |
| Clean + check | strips model junk, enforces style, rejects made-up numbers | post_processor.py | toggle fixes in process_post() |
| Image | branded card, chart or stat card rendered by Playwright | cards.py, screenshotter.py | INSIGHT_CARDS, static/assets, static/fonts |
| Approve | drafts wait as PENDING on a mobile dashboard | api.py, static/dashboard.html | — |
| Publish | LinkedIn post + first-comment link, X thread + reply | publisher.py, cron.py | .env keys |
Adding an RSS-based topic takes zero code: one entry in topics.yaml and a list of feeds in scraper_sources.yaml. Adding your own private data source (training log, sales sheet, git log…) is one small module and one elif. The guide has a full example.
git clone https://github.com/lubobali/Lubo_AI_Publisher.git
cd Lubo_AI_Publisher
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
playwright install chromium
cp .env.example .env # NVIDIA_API_KEY is the only required key
docker compose up publisher-db -d
python3 -m pytest tests/ -q # safe: uses a separate publisher_test DB
python3 scripts/test_pipeline.py # generate a week of drafts (nothing is published)
uvicorn src.api:app --port 8100 # read them at http://localhost:8100
Then follow BUILD_YOUR_OWN.md to swap in your topics, sources and voice.
This is how I configured it. Use it as a reference for what a finished setup looks like.
| Topic | Primary source | Fallback | Image |
|---|---|---|---|
| Biohacker (3 of every 9 posts) | Podcast episodes, transcribed and distilled: The Human Upgrade (Dave Asprey), Paul Saladino MD, The Ultimate Human (Gary Brecka) | 18 RSS feeds | Insight card |
| AI News | Weekly Moonshots with Peter Diamandis episode, read for news | 27 RSS feeds (OpenAI, DeepMind, NVIDIA, Hugging Face…) | Headline card |
| Tech Talk | Same episode, read for ideas worth a senior opinion | 23 RSS feeds (Pragmatic Engineer, Latent Space, Martin Fowler…) | Insight card |
| Market Pulse | Real index data from yfinance. The chart symbols are picked from the week's market podcasts | — | ECharts market card |
| Investing Principle | Finance blogs (JL Collins, A Wealth of Common Sense, Of Dollars and Data, The New Frontier) | CNBC / MarketWatch RSS | Insight card |
| My Agent Build | My real git log: commits grouped by feature, real +/- lines | — | Git card |
| Building in Public | My real coding week from DevTrack-AI / WakaTime: hours, languages, AI usage, momentum | — | Stat card |
Schedule (Chicago time): one post every other day (post_every_n_days: 2), 3–5pm on weekdays and 11am–1pm on weekends, at a random minute. The order comes from a 9-slot weekly plan where Biohacker owns 3 slots and the other 6 topics rotate and shift by one slot each week. Set post_every_n_days: 1 and that same plan runs day by day, 9 posts a week.
Designing Data-Intensive Applications · Fundamentals of Data Engineering · Data Engineering Cookbook · Fundamentals of Metadata Management · The Architecture of Open Source Applications Vol 1 + 2 · Dive into Deep Learning · Foundations of Large Language Models · Speech and Language Processing (3e) · Machine Learning Yearning · Illustrated Guide to Python 3. Plus the 4 finance blogs above.
Pipeline: pypdf → clean → ~400-word chunks (50 overlap, sentence-aware) → llama-nemotron-embed-vl-1b-v2 (2048-dim) → Postgres → numpy cosine, min score 0.35. No vector DB needed at this size. The PDFs are not in the repo.
여기까지가 README 앞부분입니다. 나머지는 원문에서 읽을 수 있습니다. README 전문 보기 ↗