Synaplan
開源 AI 平台,供企業使用:自行託管的 AI 代理、符合 GDPR 的聊天機器人小工具、RAG 知識庫、WhatsApp 與 Outlook AI、MCP、多模型路由。Docker、Kubernetes 或託管於 Germ
AI 翻譯
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗TalentRadar is an AI-powered job intelligence platform that ingests job postings, extracts structured signals via LLMs, and answers natural-language queries using Retrieval-Augmented Generation (RAG). It provides semantic job search, market trend analysis, and intelligent candidate matching.
git clone https://github.com/your-org/talentRadar.git
cd talentRadar
Copy the example environment file:
cp .env.example .env
Configure the following variables in .env:
| Variable | Description | Example |
|---|---|---|
GROQ_API_KEY | LLM parsing and generation | gsk_... |
TAVILY_API_KEY | Job posting search and scraping | tvly-... |
JWT_SECRET_KEY | Secret key for signing JWT tokens | python -c "import secrets; print(secrets.token_urlsafe(48))" |
Start all services including the API, Frontend, Database, Cache, Vector DB, and Celery workers:
docker-compose up -d
If running via Docker, the database is automatically started. Run migrations to setup the schema:
docker exec talentradar-api alembic upgrade head
talentRadar/
├── agents/ # AI agent layer (LangGraph, Prompts)
├── api/ # REST API (FastAPI)
│ ├── routers/ # Endpoint handlers
│ ├── schemas/ # Pydantic request/response models
│ ├── main.py # FastAPI application
├── config/ # Application settings
├── data/ # Shared data directory
├── frontend/ # Next.js web app
│ ├── app/ # Pages (App Router)
│ ├── components/ # React components
│ └── lib/ # API client, types, utils
├── infra/ # Infrastructure (Docker, K8s, Cloud Run)
├── ingestion/ # Data pipeline (Scrapers, Celery Tasks)
├── ml/ # Machine Learning scoring models
├── storage/ # Data layer (SQLAlchemy, Alembic)
└── tests/ # Test suite (pytest)
User Query -> Next.js Frontend -> FastAPI Endpoint -> LangGraph Agent -> pgvector (Retrieval) / Groq LLM (Generation) -> Response -> Frontend
API Server
AI Agents
Data Ingestion Pipeline
| Variable | Description | Default |
|---|---|---|
GROQ_API_KEY | Groq API Key | - |
TAVILY_API_KEY | Tavily API Key | - |
POSTGRES_USER | PostgreSQL user | talentRadar |
POSTGRES_PASSWORD | PostgreSQL password | devpassword |
POSTGRES_DB | PostgreSQL database name | talentRadar |
JWT_SECRET_KEY | JWT signing secret | - |
Hosted Postgres hands out one DSN rather than five fields: set DATABASE_URL
and it wins over the POSTGRES_* values above.
| Variable | Description | Default |
|---|---|---|
DATABASE_URL | Full Postgres DSN; overrides the discrete fields | - |
POSTGRES_SSL | Require TLS on the database connection | false |
VECTOR_BACKEND | pgvector, chroma, or none (no embeddings loaded) | pgvector |
TRUSTED_PROXY_HOPS | Proxies in front of the API; must be 1 behind a PaaS | 0 |
ENABLE_STEALTH_SCRAPERS | Headless-browser scrapers (needs .[stealth]) | false |
PDF_ENGINE | auto, latex, or builtin resume PDF rendering | auto |
ENABLE_SCHEDULER | In-process daily job-match scan | true |
LOG_LEVEL | Logging verbosity | INFO |
DEBUG | Opens /docs and the localhost CORS wildcard — never in production | false |
RATE_LIMIT_PER_MINUTE | Max requests per minute per IP | 60 |
See .env.example for the full annotated list.
| Command | Description |
|---|---|
docker-compose up -d | Start full local development stack |
docker exec talentradar-api alembic upgrade head | Run database migrations |
pytest tests/ -v | Run all tests |
ruff format . | Format codebase |
Install development dependencies:
pip install -e ".[dev,lint,docs]"
Run tests:
# Run all tests
pytest tests/ -v
# Run with coverage
pytest tests/ --cov=. --cov-report=html
# End-to-end pipeline test
python tests/test_pipeline_e2e.py --quick
DEPLOY.md is the runbook. The target is a stack that costs
nothing: Neon (Postgres + pgvector), Render (the API, from render.yaml),
Vercel (the frontend), Groq (the LLM). Check readiness before you start:
python -m scripts.verify_deploy # settings, DB, pgvector, migrations, model
docker build -t talentradar-api -f infra/Dockerfile .
docker run -p 8000:8000 --env-file .env talentradar-api
The default image deliberately leaves out PyTorch, TeX Live and the Camoufox
browser — together well over two gigabytes, and none of them required: the
semantic scorer runs the same model under ONNX, resume PDFs render through
PyMuPDF, and the browser-driven scrapers are off. Add any of them back with
--build-arg INSTALL_SEMANTIC=true, INSTALL_TEXLIVE=true,
INSTALL_STEALTH=true.
Error: could not connect to server: Connection refused
Solution:
docker psdocker-compose.yml.Error: ModuleNotFoundError: No module named '...'
Solution: Ensure you have installed all dependencies inside your virtual environment or Docker container:
pip install -e .