Synaplan
開源 AI 平台,供企業使用:自行託管的 AI 代理、符合 GDPR 的聊天機器人小工具、RAG 知識庫、WhatsApp 與 Outlook AI、MCP、多模型路由。Docker、Kubernetes 或託管於 Germ
AI 翻譯
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗UK to EU shipment booking by chat or spreadsheet upload, with a deterministic pre-flight checker (rules R-01 to R-10) and carrier recommendation. See PREFLIGHT_CONTEXT.md for the full brief.
npm install
cp .env.example .env.local # add GEMINI_API_KEY (optional; the app works without it)
npm run dev # http://localhost:3000
npm test # Vitest: rules, parser, real xlsx round-trip
lib/engine/engine.ts rules, carrier logic, spreadsheet reading. Ported unchanged from the prototype. Pure, no DOM.lib/parse/chat.ts built-in chat parser and AI-merge helpers. Ported unchanged.lib/pf.ts typed boundary (the two modules above are @ts-nocheck).app/api/parse-message Gemini call. Returns JSON; the client sanitises it, the engine does all checking.app/api/second-opinion advisory restricted-goods check (not one of the ten rules).app/api/uploads saves each uploaded spreadsheet (original file plus per-booking results) to Neon. Optional; skipped when DATABASE_URL is unset. No endpoint returns stored files.lib/server/db.ts, lib/server/uploads.ts, db/schema.sql Neon access, server-side analysis, table definition (created automatically on first save).lib/fixes.ts corrections (apply, log, reset, corrected-file rows). They only change data; the unchanged rules engine decides.app/api/bookings + lib/server/booking.ts records a booking. The server re-runs the rules engine and refuses any booking with a red issue.components/ React UI. legacy/ the original prototype scripts, for reference.Set GEMINI_API_KEY in .env.local locally and in Vercel project settings for deploys. Optional: GEMINI_MODEL (comma-separated fallback chain; default gemini-3.5-flash-lite,gemini-flash-lite-latest,gemini-3.8-flash), GEMINI_DAILY_CAP (default 400). On any error, 429 or timeout the client falls back to the built-in parser.
Set DATABASE_URL (the Neon connection string, starting postgresql://) in .env.local and in Vercel. Stored files can be read in the Neon console SQL editor, for example select filename, booking_count, red_count, created_at from uploads order by created_at desc;.