Synaplan
開源 AI 平台,供企業使用:自行託管的 AI 代理、符合 GDPR 的聊天機器人小工具、RAG 知識庫、WhatsApp 與 Outlook AI、MCP、多模型路由。Docker、Kubernetes 或託管於 Germ
AI 翻譯
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗Multi-tenant agent CRM. Chat preview, leads with form fields, HITL inbox, JSON flows interpreted in-process (nudges via Inngest). WhatsApp via Zernio.
Design: docs/architecture.md (overview), AGENTS.md (for coding agents), docs/agent-runtime.md, docs/agent-flow-as-data.md.
Full walkthrough (Postgres on Mac, Inngest, ngrok / NEXT_PUBLIC_APP_URL): docs/setup.md.
npm install
npx prisma migrate deploy && npx prisma generate && npm run db:seed
npm run dev
Open http://localhost:3000/demo and talk as a customer. Pick the same lead on the left to continue that conversation.
Add to .env and restart npm run dev:
OPENAI_API_KEY=sk-...
OPENAI_CHAT_MODEL=gpt-4o-mini
Gemini/Anthropic still work if those keys are set and OpenAI is not. Without any key, classify/extract use heuristics.
Set zerino_api_key (or ZERNIO_API_KEY) and zerino_sandbox_number (or ZERNIO_SANDBOX_NUMBER). Seed / Channels binds that sandbox number to the dev tenant.
Inbound: POST /api/webhooks/zernio (message.received). The URL must be public HTTPS. Set ZERNIO_WEBHOOK_SECRET (and the same secret on the Zernio webhook) for X-Zernio-Signature - required in production; optional only for local dev.
Outbound replies use the Zernio inbox API once a WhatsApp conversation id is stored from the inbound webhook. Chat preview does not send to WhatsApp.
Inngest is only required for delayed nudges (npx inngest-cli@latest dev). Full behavior: docs/nudges.md.
Nudge timing is NUDGE_AFTER_OVERRIDE or PT1H after the lead’s last message (not after the agent reply). With a second Zernio webhook to production, nudges may run on Inngest Cloud while you watch local :8288 - use one webhook + local stack when debugging, or open the Inngest Cloud dashboard for production.
For local testing, set NUDGE_AFTER_OVERRIDE=PT5M in .env. Talk stages already include a catalog nudge; you do not need to re-seed unless the agent flow was built without one.
Register a second Zernio webhook for ngrok (production webhook can stay - you may get duplicate replies while both are active):
pnpm proxy # set NEXT_PUBLIC_APP_URL from banner, restart pnpm dev
pnpm zernio:webhook:dev
npm test covers flow validation and the interpreter.
pnpm dev # terminal 1
pnpm proxy # terminal 2 - ngrok tunnel, prints NEXT_PUBLIC_APP_URL banner
brew install ngrok/ngrok/ngrokNGROK_AUTHTOKEN=… to .env (dashboard)https://… URL from the banner into NEXT_PUBLIC_APP_URL, restart pnpm dev/admin or /channels from any deviceFor a stable URL across restarts, set NGROK_DOMAIN=your-name.ngrok.app (reserved domain on a paid ngrok plan).
pnpm proxy:stop
pnpm proxy:status
Production on a VPS with your own domain: see nginx/zapidly-ssl.example.conf.