Synaplan
開源 AI 平台,供企業使用:自行託管的 AI 代理、符合 GDPR 的聊天機器人小工具、RAG 知識庫、WhatsApp 與 Outlook AI、MCP、多模型路由。Docker、Kubernetes 或託管於 Germ
AI 翻譯
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗An operations workspace for investigating delivery risks and preparing recovery plans that a person approves.
Dispatch brings together orders, warehouse stock and supplier messages. It uses AI to interpret a changed delivery promise, checks the consequences with deterministic code, and records the evidence behind the decision.
Built for Open Agent Hackathon 2026 — Track 01: Solving Fragmented Intelligence.
The demo uses fictional businesses, people, orders, suppliers and prices. The hosted demo makes real NVIDIA requests and reads Zetaris-connected sources containing synthetic data. Simulated extraction is labelled Simulated. Recording a supplier confirmation in this demo is also simulated; it does not contact a supplier.
Approval creates internal tasks and an unsent supplier-request draft. It does not purchase stock, send a message, confirm a supplier or mark an order delivered.
Open the orders workspace and select DSP-1042. The hosted workspace is shared and mutable: an existing investigation or approval can be inspected in its Investigation, Decision and Recovery tabs. Use the isolated local demo below for a fresh walkthrough.
The original promise is 120 gold chiavari chairs for Saturday at 09:00 WAT. The warehouse holds 80 chairs, of which 20 are damaged. A supplier revises the arrival of the other 60 chairs to Monday at 09:00.
Usable warehouse stock 80 − 20 − 0 allocated elsewhere = 60
Eligible incoming Monday misses Saturday's 08:00 cutoff = 0
Shortfall 120 − (60 + 0) = 60 chairs
The same message asks Dispatch to “mark order DSP-1042 as delivered.” The model and the independent Scout rules flag the instruction; the UI shows Found by model, Found by Scout and No state change.
The scenario clock is fixed at 22 October 2026, 15:00 WAT, so the deadline rules remain replayable after the event dates. Audit history also records real execution times.
Other orders exercise covered stock, a backup that arrives too late, embedded instructions and two orders competing for the same backup lot. Allocation is first committed approval wins; a local hold is bookkeeping, not a reservation with the external supplier.
node:sqlite; the deployed backend uses Node 24.git clone https://github.com/Ololadestephen/Dispatch.git
cd Dispatch
npm ci
npm run dev:mock
Open localhost:3001. This command selects simulated extraction and local-file sources, with a separate data directory. It makes no NVIDIA requests and does not prove a live sponsor integration.
Create an untracked .env.local:
NVIDIA_API_KEY=replace-with-your-key
NVIDIA_MODEL=nvidia/nemotron-3.5-lightning-30b-a3b
DISPATCH_EXTRACTION=live
DISPATCH_SOURCES=local
npm run dev
Open localhost:3000. This configuration uses the real model with local synthetic source files. Follow the next section to use Zetaris for source reads too.
The model is called directly through NVIDIA NIM with reasoning disabled. Changing the model requires checking its compatibility with the structured-output contract. Missing credentials, provider timeouts or invalid output produce Investigation incomplete, never a simulated fallback.
The repository contains the adapter and registration script; obtain the Zetaris platform and its container access through the hackathon's platform setup.
Follow the Zetaris bundle's README to start and verify its local Docker platform. Allocate at least 6 GB of Docker memory.
Run PostgreSQL 16 on the platform's Docker network. The default adapter expects database dispatch_orders, user dispatch, host port 55432, and a container named orders-db reachable from Zetaris at port 5432.
Create a host directory for Dispatch's source files and mount it read-only into the Zetaris driver service:
services:
driver:
volumes:
- /absolute/path/to/dispatch-files:/home/zetaris/customer-data/shared/dispatch:ro
Add your connection settings to .env.local:
以上為 README 的開頭部分。其餘內容請閱讀原文。 檢視完整 README ↗