Synaplan
開源 AI 平台,供企業使用:自行託管的 AI 代理、符合 GDPR 的聊天機器人小工具、RAG 知識庫、WhatsApp 與 Outlook AI、MCP、多模型路由。Docker、Kubernetes 或託管於 Germ
AI 翻譯
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗Finds Caltrans projects that fit an electrical contractor, before and after they advertise, and shows who wins them.
Out of the box it shows Districts 07/08 at $1M–$3M.
python3 -m venv .venv && .venv/bin/pip install -r requirements-dev.txt
.venv/bin/python -m scraper.run manual # scrape once (a few minutes the first time)
.venv/bin/python app.py # open http://127.0.0.1:5050
Locally the data lives in SQLite at data/bids.db.
| Variable | Purpose |
|---|---|
BID_FINDER_COMPANY | Your company name. It's added to the User-Agent and highlighted ("YOU") in bid results. |
BID_FINDER_CONTACT | An email or phone in the User-Agent, so Caltrans can reach you. |
DATABASE_URL | Postgres connection string. Required on Vercel. |
CRON_SECRET | Protects the daily scrape endpoint on Vercel. |
BID_FINDER_ALERT_TO | Recipient shown on the demo alert emails. |
The default districts, estimate range and keyword list are in config.py.
app.py.DATABASE_URL. Without it the app falls back to a temporary SQLite file
that is wiped whenever the function restarts.CRON_SECRET (any random string) and, optionally, BID_FINDER_COMPANY
and BID_FINDER_CONTACT.vercel.json schedules the daily scrape at 16:30 UTC, which is
9:30 a.m. Pacific in summer and 8:30 a.m. in winter. Click Refresh now
once to load data right away.On a hosted deployment, Refresh now runs at most once every 15 minutes, so visitors can't make the site hit Caltrans repeatedly. Each run stops optional downloads after 4 minutes, within Vercel's 5-minute function limit, and the next run continues where it stopped.
Edit the paths in deploy/com.caltransbidfinder.scrape.plist, then:
cp deploy/com.caltransbidfinder.scrape.plist ~/Library/LaunchAgents/
launchctl load ~/Library/LaunchAgents/com.caltransbidfinder.scrape.plist
/api/now/sp/page) for the advertised list (timespan=all), the
upcoming list (timespan=upcoming) and each project's bid items. It downloads
the public Bid Summary PDFs for results.pypdf. A+B (cost + time) contracts are supported.db.py).BID_FINDER_ALERT_TO.robots.txt disallows automated access. This tool reads it once a
day at very low volume with an identifying User-Agent. Revisit this if Caltrans
objects or publishes a feed..venv/bin/pytest
Tests run against real responses and Bid Summary PDFs saved in tests/fixtures/.