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 .