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/.