Synaplan
开源 AI 软件平台,面向企业:自托管 AI 代理,符合 GDPR 的聊天机器人小部件,RAG 知识库,WhatsApp 与 Outlook AI,MCP,多模型路由。支持 Docker、Kubernetes 或在 Germ 托管。
AI 翻译
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
AI Intake & Operations für Energieberater. Von der ersten Kundenanfrage zum vollständig vorbereiteten Beratungsfall – automatisch. FallFlow ist kein CRM und kein allgemeiner Chatbot. Es übernimmt genau den Teil zwischen Anfrage und Beratung: Kundenanfrage → KI erkennt Angaben → fragt nur Fehlendes → sammelt Dokumente → prüft Vollständigkeit → fasst nach → legt die Fallakte an → Berater übernimmt. Next.js 16 (App Router, proxy.ts), React 19, TypeScript strict, Tailwind CSS 4, Supabase (Auth + Postgres + RLS + Storage), Zod. KI über eine OpenAI-kompatible API, ausschließlich serverseitig.查看完整 README ↗
AI Intake & Operations für Energieberater. Von der ersten Kundenanfrage zum vollständig vorbereiteten Beratungsfall – automatisch.
FallFlow ist kein CRM und kein allgemeiner Chatbot. Es übernimmt genau den Teil zwischen Anfrage und Beratung:
Kundenanfrage → KI erkennt Angaben → fragt nur Fehlendes → sammelt Dokumente → prüft Vollständigkeit → fasst nach → legt die Fallakte an → Berater übernimmt.
Next.js 16 (App Router, proxy.ts), React 19, TypeScript strict, Tailwind CSS 4, Supabase (Auth + Postgres + RLS + Storage), Zod. KI über eine OpenAI-kompatible API, ausschließlich serverseitig.
npm install
npm run dev # http://localhost:3000
Ohne Supabase-Variablen läuft die App im Demo-Modus (Daten im Arbeitsspeicher, Seed „BA Engineering & Consulting“ mit 7 Fällen). Ohne AI_API_KEY extrahiert ein regelbasierter Mock Angaben aus Freitext. Nützliche URLs: /demo (komplette Demo, läuft im Browser), /dashboard, /dashboard/intake, /dashboard/inbox, /widget/demo (echter Website-Chat gegen die API), /upload/demo-upload-weber (Kunden-Upload).
| Konzept | Umsetzung |
|---|---|
| Intake-Status | NEW → QUALIFYING → WAITING_FOR_CUSTOMER → COMPLETE → READY_FOR_REVIEW → CONVERTED (types.ts, Logik in checklist.ts) |
| Completeness Score | Anteil erfüllter Pflichtpunkte in % = Pflichtangaben (Fragen-Builder) + Pflichtdokumente. Dynamisch aus den Falldaten berechnet, nie manuell gesetzt. |
| Dokumentenbedarf | Grundriss immer; Energieausweis bei Beratungsleistungen (nicht beim Energieausweis selbst); Fotos optional (documentRequirements). |
| Lead-Readiness | Reiner Prozessstatus: Unvollständig / Fast vollständig (≤ 2 fehlen) / Vollständig (100 %) / Bereit zur Bearbeitung. Keine Kaufwahrscheinlichkeit. |
| Statusregeln | COMPLETE = alle Pflichtangaben da, Pflichtdokumente fehlen noch oder wurden erst angefordert. READY_FOR_REVIEW = Angaben da und alle Pflichtdokumente tatsächlich hochgeladen. Ein laufendes Gespräch ohne Aktivität > 30 Min. wird als WAITING_FOR_CUSTOMER angezeigt (abgeleitet, nicht gespeichert). |
| Dynamischer Frage-Flow | conversation.ts: jede Nachricht wird ausgewertet (KI oder Regeln), bekannte Angaben übernommen, nur relevante fehlende erfragt (isRelevant). Keine Beratung, nichts erfunden. |
| Automatik | case-ops.ts refreshCase: Score, Status, Zusammenfassung, automatische Dokumentenanforderung, Follow-up-Planung nach jeder Änderung. |
Siehe .env.example.
| Variable | Zweck |
|---|---|
NEXT_PUBLIC_APP_URL | Öffentliche URL (Upload-Links, OAuth-Redirects, Widget-Snippet) – in Produktion nicht localhost |
NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY | Supabase; wenn gesetzt → Produktivmodus |
SUPABASE_SERVICE_ROLE_KEY | Nur serverseitig: Widget, Kunden-Upload, Datei-Speicher, Cron |
AI_API_KEY, AI_MODEL, AI_BASE_URL | OpenAI-kompatibles Modell (optional; Extraktion und Zusammenfassung) |
CRON_SECRET | Schützt /api/cron/follow-ups (Vercel-Cron, siehe vercel.json) |
GOOGLE_*, MICROSOFT_* | E-Mail-OAuth (vorbereitet) |
STRIPE_* | Abrechnung (vorbereitet) |
case_documents, follow_ups, Kanal-Metadaten, privater Bucket case-documents, neue Standardfragen; migriert bestehende Daten).NEXT_PUBLIC_APP_URL, Redirect URL …/auth/callback.Sicherheit: RLS auf allen Tabellen (is_member/has_role). Kundendateien liegen in einem privaten Bucket ohne Policies für anon/authenticated – Zugriff nur per Service Role: Upload über /api/upload/[token], Download nur angemeldet über /api/documents/[id] (Company-gefiltert, Content-Disposition: attachment, nosniff).
src/lib/data/ – Store-Interface mit memory.ts (Demo) und supabase.ts (RLS).src/lib/intake/ – checklist.ts (rein, auch im Browser), engine.ts (Kundennachricht → Fall), case-ops.ts (Refresh, Dokumentenanforderung, Follow-ups), router.ts + identity.ts (eingehende Nachrichten Kunde/Fall zuordnen), follow-ups.ts, notes.ts, attention.ts, messages.ts.src/lib/ai/ – Gesprächslogik, Zod-validierte Extraktion und Zusammenfassung mit regelbasiertem Fallback.src/lib/integrations/ – E-Mail-Adapter; outbound.ts liefert nur delivered: true, wenn wirklich versendet wurde.src/lib/documents/storage.ts – Upload-Validierung (Magic Bytes, 10 MB, PDF/JPG/PNG/WebP) und Speicher.npm run lint
npm run typecheck
npm run build && npm start