塑造个人品牌,发现细分市场,构建可持续盈利的产品
개인 브랜드 구축·세분화 시장 발굴·지속 가능한 수익 제품 만들기를 공유
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Every offer pays for itself. Most stores send discounts to everyone, and about two out of three go to shoppers who would have bought anyway. This engine decides, for each customer, which offer to send (or none), checks every decision against 31 business rules, and delivers it through a Telegram bot.
🎬 Demo video (3:48): not stored in the repo; rebuild it with the steps under Rebuilding the demo video.
customer data → features → segment → Claude picks an offer → 31 rules check it → Telegram
│ fails or breaks a rule
└──────────→ rules engine decides instead
| Policy | Extra net margin / week | Discount wasted on buy-anyway | Cost per extra purchase |
|---|---|---|---|
| 10% to everyone | +₹2,571 | ₹4,834 | ₹358 |
| Rules only | +₹6,801 | ₹932 | ₹103 |
| Rules + AI | +₹7,635 | ₹202 | ₹51 |
Full reports: data/eval_report.md, 30-day run: data/sim30_report.md. Customer behaviour is calibrated on public datasets (Flipkart catalog, RetailRocket clickstream, Hillstrom email test).
Needs Python 3.11+.
pip install -r requirements.txt
cp .env.example .env # add ANTHROPIC_API_KEY (and TELEGRAM_BOT_TOKEN if you want the bot)
python generate_data.py # synthetic customers → data/shop.db, data/customers.json
python run_decisions.py # decide an offer for every customer (--no-agent: rules only, no API key)
python preview.py # dashboard at http://127.0.0.1:5000
Keep DELIVERY_MODE=dry_run in .env until you really want Telegram messages to go out.
| Command | What it does |
|---|---|
python run_automation.py --once | one round of automatic decisions (events + daily check + sending) |
python show_log.py --flagged | decisions where the AI failed or broke a rule |
python evaluate.py --no-ai | compare no offers vs 10% to everyone vs rules (vs AI) |
python simulate_30d.py | 30-day forward simulation with Diwali |
python tools/experiment.py | try rule changes and measure their profit |
python calibrate.py | recalibrate personas from datasets in data/raw/ |
python -m tests.test_pipeline | tests (also test_rules_v2, test_edge_cases, test_automation, test_telegram) |
src/ engine: features, segments, agent (Claude), rules, fallback, delivery, Telegram bot, automation
config/ rules.yaml, offers, catalog, personas, response model (rules live in files, not code)
web/ dashboard page served by preview.py
data/ generated customers, CSV dataset, evaluation reports (databases are rebuilt, not committed)
docs/ data dictionary, edge cases, research notes
tests/ rule, pipeline, edge-case, automation and Telegram tests
tools/ experiments, rules PDF builder
video/ scripts that render the demo videos (story2 = latest)
The repo deploys as-is: import it at vercel.com/new (no build settings needed). vercel.json sends every request to api/index.py, which runs the same Flask app as preview.py.
ANTHROPIC_API_KEY under Project → Settings → Environment Variables so Claude decides; without it the rules engine decides.data/demo/ (rebuild with python tools/make_vercel_data.py), copied into /tmp. Changes made on the page are temporary.Vercel can't keep polling Telegram, so the bot uses a webhook: Telegram calls /api/telegram for every message and button press.
.env as TELEGRAM_WEBHOOK_SECRET=...:
python -c "import secrets; print(secrets.token_urlsafe(32))"TELEGRAM_BOT_TOKEN, TELEGRAM_WEBHOOK_SECRET (same values as .env), TELEGRAM_TEST_MODE=1 and DELIVERY_MODE=live, then redeploy.python tools/telegram_webhook.py set https://<your-app>.vercel.app (check with ... info)./test to the bot. It replies with your chat ID: add it as TELEGRAM_TEST_CHATS in Vercel (comma-separate several) and redeploy, so test copies keep arriving after the database resets.Limits: chats that pressed Start are forgotten when the instance restarts (the database lives in /tmp); at most 15 messages go out per request (SEND_MAX_PER_ROUND). While the webhook is set, a local python preview.py can't receive messages: run python tools/telegram_webhook.py delete to switch back.
data/*.db) are rebuilt by generate_data.py and run_decisions.py.data/raw/ (download them yourself): Flipkart e-commerce sample, RetailRocket events.csv, Kevin Hillstrom MineThatData email test.pip install edge-tts numpy scipy playwright && playwright install msedge # plus ffmpeg on PATH
cp data/sim_offers.db data/demo_offers.db # sim_offers.db is written by evaluate.py
PORT=5001 OFFERS_DB=data/demo_offers.db AUTOMATION=1 TELEGRAM_DISABLED=1 FORCE_DRY_RUN=1 python preview.py # keep running
python video/story2/voice.py && python video/story2/render.py && python video/story2/make.py
The render drives the real dashboard on port 5001 (dry-run, Telegram disabled). Voice is a stock neural voice; music and sound effects are synthesised in code, so there are no licensed assets.