Synaplan
開源 AI 平台,供企業使用:自行託管的 AI 代理、符合 GDPR 的聊天機器人小工具、RAG 知識庫、WhatsApp 與 Outlook AI、MCP、多模型路由。Docker、Kubernetes 或託管於 Germ
AI 翻譯
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
easy crawl on on website and get you active tendder links
翻譯準備中
正在載入完整 README。 以下為已儲存的摘錄。
TenderLens is a tender-intelligence SaaS for Indian public procurement. It finds every
open tender on 35 official NIC GePNIC portals (central, PSU, defence and 27 states and UTs),
helps a contractor understand the tender documents in minutes with a Copilot that runs on
our own open-weight LLM, and lets a team manage each bid until it is won. The build spec
is docs/PLATFORM_V2.md; section 5 sets out how it competes with
incumbents such as TenderDetail: published prices, AI on every plan, page citations,
visible data freshness, and an API.檢視完整 README ↗TenderLens is a tender-intelligence SaaS for Indian public procurement. It finds every open tender on 35 official NIC GePNIC portals (central, PSU, defence and 27 states and UTs), helps a contractor understand the tender documents in minutes with a Copilot that runs on our own open-weight LLM, and lets a team manage each bid until it is won. The build spec is docs/PLATFORM_V2.md; section 5 sets out how it competes with incumbents such as TenderDetail: published prices, AI on every plan, page citations, visible data freshness, and an API.
Find
pg_trgm; no Elasticsearch)/coverage: every portal with its open tenders and last successful crawlUnderstand (Copilot)
mode: "extractive"). No paid LLM API.Manage
Stack: Python 3.12 · Django 5.2 + DRF · PostgreSQL 16 (full-text, pg_trgm, pgvector) ·
Celery 5 + Redis · llama.cpp · sentence-transformers (multilingual-e5-small) · OCRmyPDF ·
React 19 + TypeScript + Tailwind 4 + TanStack Query · Docker · Caddy
| Doc | What is in it |
|---|---|
| docs/PLATFORM_V2.md | Build spec, API contract, competitive positioning, status and next steps |
| docs/SOURCE_NOTES.md | The 35 portals, rejected ones, why award data is not collected, cross-portal duplicates |
| docs/SAAS.md | Workspaces, pipeline, calendar, recommendations, API keys, exports, billing |
| docs/DEPLOY.md | Production runbook: VPS, Caddy, backups, monitoring, monthly cost |
| LLM kit (not on GitHub) | Model choice, QLoRA fine-tuning, GGUF export, LLM evaluation. Kept on the founder's disk next to the repo (../tenderlens-llm, linked as llm/) |
| docs/INTERVIEW_NOTES.md | The non-obvious engineering decisions, explained |
cp .env.example .env # then set DJANGO_DEBUG=true and DEV_LOGIN_ENABLED=true
make up # postgres, redis, web, workers, beat, mailpit, caddy → http://localhost:8080
make crawl SOURCE=central MODE=full
No docker compose plugin on the host? Every compose target takes COMPOSE=; run
Compose from the official CLI image instead:
make up COMPOSE="docker run --rm -v /var/run/docker.sock:/var/run/docker.sock -v $PWD:$PWD -w $PWD docker:27-cli compose"
Running Django on the host instead (what the tests do): start only postgres and redis,
run uv sync --frozen --extra copilot once (the Copilot's embedding model needs torch, which
is an optional extra so the Vercel build stays under its 500 MB function limit), then
uv run --frozen python manage.py migrate && uv run --frozen python manage.py runserver.
Settings come from the process environment (not from .env), so export DJANGO_DEBUG=true DEV_LOGIN_ENABLED=true for the any-email dev sign-in, and CELERY_TASK_ALWAYS_EAGER=true
if no worker is running. The Copilot's LLM is optional: start it with
COMPOSE_PROFILES=llm (needs the model file, e.g. Qwen3.5-4B-Q4_K_M.gguf, in llm/models/); without it, answers are
extractive. The frontend dev server (npm run dev in frontend/) proxies /api to
localhost:8000. If the host's node is broken, use
docker run --rm -u $(id -u):$(id -g) -e HOME=/tmp -v "$PWD/frontend":/app -w /app node:22-bookworm-slim npm ….
Integration run, 6 October 2026 (all 35 portals, live, through the real pipeline; a bounded check, not a full crawl: up to 25 organisations and 15 detail pages per portal, ≤ 1 request/second per host):
以上為 README 的開頭部分。其餘內容請閱讀原文。 檢視完整 README ↗